OCC Main Page | ModelingAlgorithms | Toolkits | Packages | Class Hierarchy | Data Structures | File List | Data Fields | Globals

ModelingAlgorithms
TKGeomAlgo
GeomAPI


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:
- 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.
.

#include <GeomAPI_ExtremaCurveSurface.hxx>


Public Member Functions

void * operator new (size_t, void *anAddress)
void * operator new (size_t size)
void operator delete (void *anAddress)
Standard_EXPORT 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.
.
Standard_EXPORT GeomAPI_ExtremaCurveSurface (const Handle(Geom_Curve)&Curve, const Handle(Geom_Surface)&Surface)
 Computes the extrema distances between the
curve <c> and the surface <s>.
.
Standard_EXPORT GeomAPI_ExtremaCurveSurface (const Handle(Geom_Curve)&Curve, const Handle(Geom_Surface)&Surface, const Quantity_Parameter Wmin, const Quantity_Parameter Wmax, const Quantity_Parameter Umin, const Quantity_Parameter Umax, const Quantity_Parameter Vmin, const Quantity_Parameter Vmax)
 Computes the extrema distances between the
curve <c> and the surface <s>. 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.
.
Standard_EXPORT void Init (const Handle(Geom_Curve)&Curve, const Handle(Geom_Surface)&Surface)
 Computes the extrema distances between the
curve <c> and the surface <s>.
.
Standard_EXPORT void Init (const Handle(Geom_Curve)&Curve, const Handle(Geom_Surface)&Surface, const Quantity_Parameter Wmin, const Quantity_Parameter Wmax, const Quantity_Parameter Umin, const Quantity_Parameter Umax, const Quantity_Parameter Vmin, const Quantity_Parameter Vmax)
 Computes the extrema distances between the
curve <c> and the surface <s>. 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.
.
Standard_EXPORT Standard_Integer NbExtrema () const
 Returns the number of extrema computed by this algorithm.
Note: if this algorithm fails, NbExtrema returns 0.
.
Standard_EXPORT operator Standard_Integer () const
Standard_EXPORT 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.
.
Standard_EXPORT void Parameters (const Standard_Integer Index, Quantity_Parameter &W, Quantity_Parameter &U, Quantity_Parameter &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.
.
Standard_EXPORT Quantity_Length 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.
.
Standard_EXPORT 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.
.
Standard_EXPORT void LowerDistanceParameters (Quantity_Parameter &W, Quantity_Parameter &U, Quantity_Parameter &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.
.
Standard_EXPORT Quantity_Length LowerDistance () const
 Computes the distance between the end points of the
shortest extremum computed by this algorithm.
Exceptions - StdFail_NotDone if this algorithm fails.
.
Standard_EXPORT operator Standard_Real () const
const Extrema_ExtCS & Extrema () const
 Returns the algorithmic object from Extrema
.

Private Attributes

Standard_Boolean myIsDone
Standard_Integer myIndex
Extrema_ExtCS myExtCS


Constructor & Destructor Documentation

Standard_EXPORT GeomAPI_ExtremaCurveSurface::GeomAPI_ExtremaCurveSurface  ) 
 

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

Standard_EXPORT GeomAPI_ExtremaCurveSurface::GeomAPI_ExtremaCurveSurface const Handle(Geom_Curve)&  Curve,
const Handle(Geom_Surface)&  Surface,
const Quantity_Parameter  Wmin,
const Quantity_Parameter  Wmax,
const Quantity_Parameter  Umin,
const Quantity_Parameter  Umax,
const Quantity_Parameter  Vmin,
const Quantity_Parameter  Vmax
 


Member Function Documentation

Standard_EXPORT Quantity_Length GeomAPI_ExtremaCurveSurface::Distance const Standard_Integer  Index  )  const
 

const Extrema_ExtCS & GeomAPI_ExtremaCurveSurface::Extrema  )  const [inline]
 

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

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

Standard_EXPORT Quantity_Length GeomAPI_ExtremaCurveSurface::LowerDistance  )  const
 

Standard_EXPORT void GeomAPI_ExtremaCurveSurface::LowerDistanceParameters Quantity_Parameter &  W,
Quantity_Parameter &  U,
Quantity_Parameter &  V
const
 

Standard_EXPORT Standard_Integer GeomAPI_ExtremaCurveSurface::NbExtrema  )  const
 

Standard_EXPORT void GeomAPI_ExtremaCurveSurface::NearestPoints gp_Pnt &  PC,
gp_Pnt &  PS
const
 

void GeomAPI_ExtremaCurveSurface::operator delete void *  anAddress  )  [inline]
 

void* GeomAPI_ExtremaCurveSurface::operator new size_t  size  )  [inline]
 

void* GeomAPI_ExtremaCurveSurface::operator new size_t  ,
void *  anAddress
[inline]
 

Standard_EXPORT GeomAPI_ExtremaCurveSurface::operator Standard_Integer  )  const
 

Standard_EXPORT GeomAPI_ExtremaCurveSurface::operator Standard_Real  )  const
 

Standard_EXPORT void GeomAPI_ExtremaCurveSurface::Parameters const Standard_Integer  Index,
Quantity_Parameter &  W,
Quantity_Parameter &  U,
Quantity_Parameter &  V
const
 

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


Field Documentation

Extrema_ExtCS GeomAPI_ExtremaCurveSurface::myExtCS [private]
 

Standard_Integer GeomAPI_ExtremaCurveSurface::myIndex [private]
 

Standard_Boolean GeomAPI_ExtremaCurveSurface::myIsDone [private]
 


The documentation for this class was generated from the following files:
Generated on Mon Aug 25 13:41:49 2008 for OpenCASCADE by  doxygen 1.4.1