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

ModelingAlgorithms
TKGeomAlgo
Geom2dAPI


Geom2dAPI_ExtremaCurveCurve Class Reference

Describes functions for computing all the extrema
between two 2D curves.
An ExtremaCurveCurve algorithm minimizes or
maximizes the distance between a point on the first
curve and a point on the second curve. Thus, it
computes the start point and end point of
perpendiculars common to the two curves (an
intersection point is not an extremum except where
the two curves 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 ExtremaCurveCurve 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 two
curves do not correspond to one of the computed
extrema. Instead, they may be given by:
- a limit point of one curve and one of the following:
- its orthogonal projection on the other curve,
- a limit point of the other curve; or
- an intersection point between the two curves.
.

#include <Geom2dAPI_ExtremaCurveCurve.hxx>


Public Member Functions

void * operator new (size_t, void *anAddress)
void * operator new (size_t size)
void operator delete (void *anAddress)
Standard_EXPORT Geom2dAPI_ExtremaCurveCurve (const Handle(Geom2d_Curve)&C1, const Handle(Geom2d_Curve)&C2, const Quantity_Parameter U1min, const Quantity_Parameter U1max, const Quantity_Parameter U2min, const Quantity_Parameter U2max)
 Computes the extrema between
- the portion of the curve C1 limited by the two
points of parameter (U1min,U1max), and
- the portion of the curve C2 limited by the two
points of parameter (U2min,U2max).
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_Pnt2d &P1, gp_Pnt2d &P2) const
 Returns the points P1 on the first curve and P2 on
the second curve, 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 &U1, Quantity_Parameter &U2) const
 Returns the parameters U1 of the point on the first
curve and U2 of the point on the second curve, 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_Pnt2d &P1, gp_Pnt2d &P2) const
 Returns the points P1 on the first curve and P2 on
the second curve, 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 &U1, Quantity_Parameter &U2) const
 Returns the parameters U1 of the point on the first
curve and U2 of the point on the second curve, 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_ExtCC2d & Extrema () const

Private Attributes

Standard_Boolean myIsDone
Standard_Integer myIndex
Extrema_ExtCC2d myExtCC
Geom2dAdaptor_Curve myC1
Geom2dAdaptor_Curve myC2


Constructor & Destructor Documentation

Standard_EXPORT Geom2dAPI_ExtremaCurveCurve::Geom2dAPI_ExtremaCurveCurve const Handle(Geom2d_Curve)&  C1,
const Handle(Geom2d_Curve)&  C2,
const Quantity_Parameter  U1min,
const Quantity_Parameter  U1max,
const Quantity_Parameter  U2min,
const Quantity_Parameter  U2max
 


Member Function Documentation

Standard_EXPORT Quantity_Length Geom2dAPI_ExtremaCurveCurve::Distance const Standard_Integer  Index  )  const
 

const Extrema_ExtCC2d & Geom2dAPI_ExtremaCurveCurve::Extrema  )  const [inline]
 

Standard_EXPORT Quantity_Length Geom2dAPI_ExtremaCurveCurve::LowerDistance  )  const
 

Standard_EXPORT void Geom2dAPI_ExtremaCurveCurve::LowerDistanceParameters Quantity_Parameter &  U1,
Quantity_Parameter &  U2
const
 

Standard_EXPORT Standard_Integer Geom2dAPI_ExtremaCurveCurve::NbExtrema  )  const
 

Standard_EXPORT void Geom2dAPI_ExtremaCurveCurve::NearestPoints gp_Pnt2d &  P1,
gp_Pnt2d &  P2
const
 

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

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

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

Standard_EXPORT Geom2dAPI_ExtremaCurveCurve::operator Standard_Integer  )  const
 

Standard_EXPORT Geom2dAPI_ExtremaCurveCurve::operator Standard_Real  )  const
 

Standard_EXPORT void Geom2dAPI_ExtremaCurveCurve::Parameters const Standard_Integer  Index,
Quantity_Parameter &  U1,
Quantity_Parameter &  U2
const
 

Standard_EXPORT void Geom2dAPI_ExtremaCurveCurve::Points const Standard_Integer  Index,
gp_Pnt2d &  P1,
gp_Pnt2d &  P2
const
 


Field Documentation

Geom2dAdaptor_Curve Geom2dAPI_ExtremaCurveCurve::myC1 [private]
 

Geom2dAdaptor_Curve Geom2dAPI_ExtremaCurveCurve::myC2 [private]
 

Extrema_ExtCC2d Geom2dAPI_ExtremaCurveCurve::myExtCC [private]
 

Standard_Integer Geom2dAPI_ExtremaCurveCurve::myIndex [private]
 

Standard_Boolean Geom2dAPI_ExtremaCurveCurve::myIsDone [private]
 


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