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

ModelingAlgorithms
TKGeomAlgo
GeomAPI


GeomAPI_ExtremaCurveCurve Class Reference

Describes functions for computing all the extrema
between two 3D 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 start and end points of perpendiculars
common to the two curves (an intersection point is
not an extremum unless 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 <GeomAPI_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 GeomAPI_ExtremaCurveCurve ()
 Constructs an empty algorithm for computing
extrema between two curves. Use an Init function
to define the curves on which it is going to work.
.
Standard_EXPORT GeomAPI_ExtremaCurveCurve (const Handle(Geom_Curve)&C1, const Handle(Geom_Curve)&C2)
 Computes the extrema between the curves C1 and C2.
.
Standard_EXPORT GeomAPI_ExtremaCurveCurve (const Handle(Geom_Curve)&C1, const Handle(Geom_Curve)&C2, const Quantity_Parameter U1min, const Quantity_Parameter U1max, const Quantity_Parameter U2min, const Quantity_Parameter U2max)
 Computes 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 void Init (const Handle(Geom_Curve)&C1, const Handle(Geom_Curve)&C2)
 Initializes this algorithm with the given arguments
and computes the extrema between the curves C1 and C2
.
Standard_EXPORT void Init (const Handle(Geom_Curve)&C1, const Handle(Geom_Curve)&C2, const Quantity_Parameter U1min, const Quantity_Parameter U1max, const Quantity_Parameter U2min, const Quantity_Parameter U2max)
 Initializes this algorithm with the given arguments
and 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_Pnt &P1, gp_Pnt &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_Pnt &P1, gp_Pnt &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_ExtCC & Extrema () const
 return the algorithmic object from Extrema

Standard_EXPORT Standard_Boolean TotalNearestPoints (gp_Pnt &P1, gp_Pnt &P2)
 set in <p1> and <p2> the couple solution points
such a the distance [P1,P2] is the minimum. taking in account
extremity points of curves.

Standard_EXPORT Standard_Boolean TotalLowerDistanceParameters (Quantity_Parameter &U1, Quantity_Parameter &U2)
 set in <u1> and <u2> the parameters of the couple
solution points which represents the total nearest
solution.

Standard_EXPORT Quantity_Length TotalLowerDistance ()
 return the distance of the total nearest couple solution
point.
//! if <myextcc> is not done


Private Member Functions

Standard_EXPORT void TotalPerform ()

Private Attributes

Standard_Boolean myIsDone
Standard_Integer myIndex
Extrema_ExtCC myExtCC
GeomAdaptor_Curve myC1
GeomAdaptor_Curve myC2
Standard_Boolean myTotalExt
Standard_Boolean myIsInfinite
Standard_Real myTotalDist
gp_Pnt myTotalPoints [2]
Standard_Real myTotalPars [2]


Constructor & Destructor Documentation

Standard_EXPORT GeomAPI_ExtremaCurveCurve::GeomAPI_ExtremaCurveCurve  ) 
 

Standard_EXPORT GeomAPI_ExtremaCurveCurve::GeomAPI_ExtremaCurveCurve const Handle(Geom_Curve)&  C1,
const Handle(Geom_Curve)&  C2
 

Standard_EXPORT GeomAPI_ExtremaCurveCurve::GeomAPI_ExtremaCurveCurve const Handle(Geom_Curve)&  C1,
const Handle(Geom_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 GeomAPI_ExtremaCurveCurve::Distance const Standard_Integer  Index  )  const
 

const Extrema_ExtCC & GeomAPI_ExtremaCurveCurve::Extrema  )  const [inline]
 

Standard_EXPORT void GeomAPI_ExtremaCurveCurve::Init const Handle(Geom_Curve)&  C1,
const Handle(Geom_Curve)&  C2,
const Quantity_Parameter  U1min,
const Quantity_Parameter  U1max,
const Quantity_Parameter  U2min,
const Quantity_Parameter  U2max
 

Standard_EXPORT void GeomAPI_ExtremaCurveCurve::Init const Handle(Geom_Curve)&  C1,
const Handle(Geom_Curve)&  C2
 

Standard_EXPORT Quantity_Length GeomAPI_ExtremaCurveCurve::LowerDistance  )  const
 

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

Standard_EXPORT Standard_Integer GeomAPI_ExtremaCurveCurve::NbExtrema  )  const
 

Standard_EXPORT void GeomAPI_ExtremaCurveCurve::NearestPoints gp_Pnt &  P1,
gp_Pnt &  P2
const
 

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

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

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

Standard_EXPORT GeomAPI_ExtremaCurveCurve::operator Standard_Integer  )  const
 

Standard_EXPORT GeomAPI_ExtremaCurveCurve::operator Standard_Real  )  const
 

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

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

Standard_EXPORT Quantity_Length GeomAPI_ExtremaCurveCurve::TotalLowerDistance  ) 
 

Standard_EXPORT Standard_Boolean GeomAPI_ExtremaCurveCurve::TotalLowerDistanceParameters Quantity_Parameter &  U1,
Quantity_Parameter &  U2
 

Standard_EXPORT Standard_Boolean GeomAPI_ExtremaCurveCurve::TotalNearestPoints gp_Pnt &  P1,
gp_Pnt &  P2
 

Standard_EXPORT void GeomAPI_ExtremaCurveCurve::TotalPerform  )  [private]
 


Field Documentation

GeomAdaptor_Curve GeomAPI_ExtremaCurveCurve::myC1 [private]
 

GeomAdaptor_Curve GeomAPI_ExtremaCurveCurve::myC2 [private]
 

Extrema_ExtCC GeomAPI_ExtremaCurveCurve::myExtCC [private]
 

Standard_Integer GeomAPI_ExtremaCurveCurve::myIndex [private]
 

Standard_Boolean GeomAPI_ExtremaCurveCurve::myIsDone [private]
 

Standard_Boolean GeomAPI_ExtremaCurveCurve::myIsInfinite [private]
 

Standard_Real GeomAPI_ExtremaCurveCurve::myTotalDist [private]
 

Standard_Boolean GeomAPI_ExtremaCurveCurve::myTotalExt [private]
 

Standard_Real GeomAPI_ExtremaCurveCurve::myTotalPars[2] [private]
 

gp_Pnt GeomAPI_ExtremaCurveCurve::myTotalPoints[2] [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