Skip to main content

Module extrema

Module extrema 

Source
Expand description

The stationary approaches between two geometries.

Elsewhere this is Extrema and the GeomAPI_Extrema* family. The consumer that drives it is minimum distance between shapes, which is BRepExtrema there and lives in ogeom-algo here; this module answers for the geometry, and the shape layer assembles the answer for topology.

§What an extremum is, and what it is not

An approach is stationary when the connecting vector is perpendicular to every tangent it meets: the derivative of the squared distance is zero in each parameter. Those are the only approaches this module reports. Two kinds of candidate are deliberately not here:

  • Domain-end candidates. A pair of segments whose closest points are endpoint to endpoint has no interior stationary approach, and the answer comes back empty. The endpoints are points, and points against curves and surfaces are projections, which the caller owns: at the shape level, an edge’s ends are vertices, and the vertex pairs cover exactly these candidates. Folding them in here would answer the shape question badly instead of the geometry question well.
  • A guessed point on a constant-distance locus. Parallel lines, concentric circles, a sphere inside a sphere: the nearest distance is attained along a whole locus, and no isolated point is the answer. That is reported as Extrema::family, the way the conventional kernel’s IsParallel flag says the same thing.

Every approach reported is verifiable on the spot: two parameter sets, the two evaluated points, and the distance between them, which is the claim.

Structs§

Approach
One stationary approach between two geometries.
Extrema
Every stationary approach found, nearest first.
ExtremaOptions
How hard the seeding looks.

Functions§

extrema_curve_curve
The stationary approaches between two curves.
extrema_curve_surface
The stationary approaches between a curve and a surface.
extrema_surface_surface
The stationary approaches between two surfaces.