# GeomAPI_ExtremaCurveSurface Class Reference

Describes functions for computing all the extrema between a curve and a surface. An ExtremaCurveSurface algorithm minimizes or maximizes the distance between a point on the curve and a point on the surface. Thus, it computes start and end points of perpendiculars common to the curve and the surface (an intersection point is not an extremum except where the curve and the surface are tangential at this point). Solutions consist of pairs of points, and an extremum is considered to be a segment joining the two points of a solution. An ExtremaCurveSurface object provides a framework for: More...

`#include <GeomAPI_ExtremaCurveSurface.hxx>`

## Public Member Functions

GeomAPI_ExtremaCurveSurface ()
Constructs an empty algorithm for computing extrema between a curve and a surface. Use an Init function to define the curve and the surface on which it is going to work. More...

GeomAPI_ExtremaCurveSurface (const Handle< Geom_Curve > &Curve, const Handle< Geom_Surface > &Surface)
Computes the extrema distances between the curve ` and the surface . ` More...

GeomAPI_ExtremaCurveSurface (const Handle< Geom_Curve > &Curve, const Handle< Geom_Surface > &Surface, const Standard_Real Wmin, const Standard_Real Wmax, const Standard_Real Umin, const Standard_Real Umax, const Standard_Real Vmin, const Standard_Real Vmax)
Computes the extrema distances between the curve ` and the surface . The solution point are computed in the domain [Wmin,Wmax] of the curve and in the domain [Umin,Umax] [Vmin,Vmax] of the surface. Warning Use the function NbExtrema to obtain the number of solutions. If this algorithm fails, NbExtrema returns 0. ` More...

void Init (const Handle< Geom_Curve > &Curve, const Handle< Geom_Surface > &Surface)
Computes the extrema distances between the curve ` and the surface . ` More...

void Init (const Handle< Geom_Curve > &Curve, const Handle< Geom_Surface > &Surface, const Standard_Real Wmin, const Standard_Real Wmax, const Standard_Real Umin, const Standard_Real Umax, const Standard_Real Vmin, const Standard_Real Vmax)
Computes the extrema distances between the curve ` and the surface . The solution point are computed in the domain [Wmin,Wmax] of the curve and in the domain [Umin,Umax] [Vmin,Vmax] of the surface. Warning Use the function NbExtrema to obtain the number of solutions. If this algorithm fails, NbExtrema returns 0. ` More...

Standard_Integer NbExtrema () const
Returns the number of extrema computed by this algorithm. Note: if this algorithm fails, NbExtrema returns 0. More...

operator Standard_Integer () const

void Points (const Standard_Integer Index, gp_Pnt &P1, gp_Pnt &P2) const
Returns the points P1 on the curve and P2 on the surface, which are the ends of the extremum of index Index computed by this algorithm. Exceptions Standard_OutOfRange if Index is not in the range [ 1,NbExtrema ], where NbExtrema is the number of extrema computed by this algorithm. More...

void Parameters (const Standard_Integer Index, Standard_Real &W, Standard_Real &U, Standard_Real &V) const
Returns the parameters W of the point on the curve, and (U,V) of the point on the surface, which are the ends of the extremum of index Index computed by this algorithm. Exceptions Standard_OutOfRange if Index is not in the range [ 1,NbExtrema ], where NbExtrema is the number of extrema computed by this algorithm. More...

Standard_Real Distance (const Standard_Integer Index) const
Computes the distance between the end points of the extremum of index Index computed by this algorithm. Exceptions Standard_OutOfRange if index is not in the range [ 1,NbExtrema ], where NbExtrema is the number of extrema computed by this algorithm. More...

Standard_Boolean IsParallel () const
Returns True if the curve is on a parallel surface. More...

void NearestPoints (gp_Pnt &PC, gp_Pnt &PS) const
Returns the points PC on the curve and PS on the surface, which are the ends of the shortest extremum computed by this algorithm. Exceptions - StdFail_NotDone if this algorithm fails. More...

void LowerDistanceParameters (Standard_Real &W, Standard_Real &U, Standard_Real &V) const
Returns the parameters W of the point on the curve and (U,V) of the point on the surface, which are the ends of the shortest extremum computed by this algorithm. Exceptions - StdFail_NotDone if this algorithm fails. More...

Standard_Real LowerDistance () const
Computes the distance between the end points of the shortest extremum computed by this algorithm. Exceptions - StdFail_NotDone if this algorithm fails. More...

operator Standard_Real () const

const Extrema_ExtCSExtrema () const
Returns the algorithmic object from Extrema. More...

## Detailed Description

Describes functions for computing all the extrema between a curve and a surface. An ExtremaCurveSurface algorithm minimizes or maximizes the distance between a point on the curve and a point on the surface. Thus, it computes start and end points of perpendiculars common to the curve and the surface (an intersection point is not an extremum except where the curve and the surface are tangential at this point). Solutions consist of pairs of points, and an extremum is considered to be a segment joining the two points of a solution. An ExtremaCurveSurface object provides a framework for:

• defining the construction of the extrema,
• implementing the construction algorithm, and
• consulting the results. Warning In some cases, the nearest points between a curve and a surface do not correspond to one of the computed extrema. Instead, they may be given by:
• a point of a bounding curve of the surface and one of the following:
• its orthogonal projection on the curve,
• a limit point of the curve; or
• a limit point of the curve and its projection on the surface; or
• an intersection point between the curve and the surface.

## ◆ GeomAPI_ExtremaCurveSurface() [1/3]

 GeomAPI_ExtremaCurveSurface::GeomAPI_ExtremaCurveSurface ( )

Constructs an empty algorithm for computing extrema between a curve and a surface. Use an Init function to define the curve and the surface on which it is going to work.

## ◆ GeomAPI_ExtremaCurveSurface() [2/3]

 GeomAPI_ExtremaCurveSurface::GeomAPI_ExtremaCurveSurface ( const Handle< Geom_Curve > & Curve, const Handle< Geom_Surface > & Surface )

Computes the extrema distances between the curve ` and the surface . `

## ◆ GeomAPI_ExtremaCurveSurface() [3/3]

 GeomAPI_ExtremaCurveSurface::GeomAPI_ExtremaCurveSurface ( const Handle< Geom_Curve > & Curve, const Handle< Geom_Surface > & Surface, const Standard_Real Wmin, const Standard_Real Wmax, const Standard_Real Umin, const Standard_Real Umax, const Standard_Real Vmin, const Standard_Real Vmax )

Computes the extrema distances between the curve ` and the surface . The solution point are computed in the domain [Wmin,Wmax] of the curve and in the domain [Umin,Umax] [Vmin,Vmax] of the surface. Warning Use the function NbExtrema to obtain the number of solutions. If this algorithm fails, NbExtrema returns 0. `

## ◆ Distance()

 Standard_Real GeomAPI_ExtremaCurveSurface::Distance ( const Standard_Integer Index ) const

Computes the distance between the end points of the extremum of index Index computed by this algorithm. Exceptions Standard_OutOfRange if index is not in the range [ 1,NbExtrema ], where NbExtrema is the number of extrema computed by this algorithm.

## ◆ Extrema()

 const Extrema_ExtCS& GeomAPI_ExtremaCurveSurface::Extrema ( ) const

Returns the algorithmic object from Extrema.

## ◆ Init() [1/2]

 void GeomAPI_ExtremaCurveSurface::Init ( const Handle< Geom_Curve > & Curve, const Handle< Geom_Surface > & Surface )

Computes the extrema distances between the curve ` and the surface . `

## ◆ Init() [2/2]

 void GeomAPI_ExtremaCurveSurface::Init ( const Handle< Geom_Curve > & Curve, const Handle< Geom_Surface > & Surface, const Standard_Real Wmin, const Standard_Real Wmax, const Standard_Real Umin, const Standard_Real Umax, const Standard_Real Vmin, const Standard_Real Vmax )

Computes the extrema distances between the curve ` and the surface . The solution point are computed in the domain [Wmin,Wmax] of the curve and in the domain [Umin,Umax] [Vmin,Vmax] of the surface. Warning Use the function NbExtrema to obtain the number of solutions. If this algorithm fails, NbExtrema returns 0. `

## ◆ IsParallel()

 Standard_Boolean GeomAPI_ExtremaCurveSurface::IsParallel ( ) const
inline

Returns True if the curve is on a parallel surface.

## ◆ LowerDistance()

 Standard_Real GeomAPI_ExtremaCurveSurface::LowerDistance ( ) const

Computes the distance between the end points of the shortest extremum computed by this algorithm. Exceptions - StdFail_NotDone if this algorithm fails.

## ◆ LowerDistanceParameters()

 void GeomAPI_ExtremaCurveSurface::LowerDistanceParameters ( Standard_Real & W, Standard_Real & U, Standard_Real & V ) const

Returns the parameters W of the point on the curve and (U,V) of the point on the surface, which are the ends of the shortest extremum computed by this algorithm. Exceptions - StdFail_NotDone if this algorithm fails.

## ◆ NbExtrema()

 Standard_Integer GeomAPI_ExtremaCurveSurface::NbExtrema ( ) const

Returns the number of extrema computed by this algorithm. Note: if this algorithm fails, NbExtrema returns 0.

## ◆ NearestPoints()

 void GeomAPI_ExtremaCurveSurface::NearestPoints ( gp_Pnt & PC, gp_Pnt & PS ) const

Returns the points PC on the curve and PS on the surface, which are the ends of the shortest extremum computed by this algorithm. Exceptions - StdFail_NotDone if this algorithm fails.

## ◆ operator Standard_Integer()

 GeomAPI_ExtremaCurveSurface::operator Standard_Integer ( ) const

## ◆ operator Standard_Real()

 GeomAPI_ExtremaCurveSurface::operator Standard_Real ( ) const

## ◆ Parameters()

 void GeomAPI_ExtremaCurveSurface::Parameters ( const Standard_Integer Index, Standard_Real & W, Standard_Real & U, Standard_Real & V ) const

Returns the parameters W of the point on the curve, and (U,V) of the point on the surface, which are the ends of the extremum of index Index computed by this algorithm. Exceptions Standard_OutOfRange if Index is not in the range [ 1,NbExtrema ], where NbExtrema is the number of extrema computed by this algorithm.

## ◆ Points()

 void GeomAPI_ExtremaCurveSurface::Points ( const Standard_Integer Index, gp_Pnt & P1, gp_Pnt & P2 ) const

Returns the points P1 on the curve and P2 on the surface, which are the ends of the extremum of index Index computed by this algorithm. Exceptions Standard_OutOfRange if Index is not in the range [ 1,NbExtrema ], where NbExtrema is the number of extrema computed by this algorithm.

The documentation for this class was generated from the following file: