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

ModelingAlgorithms
TKGeomAlgo
Geom2dGcc


Geom2dGcc_Circ2dTanOnRad Class Reference

This class implements the algorithms used to
create a 2d circle tangent to a 2d entity,
centered on a 2d entity and with a given radius.
More than one argument must be a curve.
The arguments of all construction methods are :
- The qualified element for the tangency constrains
(QualifiedCirc, QualifiedLin, QualifiedCurvPoints).
- The Center element (circle, line, curve).
- A real Tolerance.
Tolerance is only used in the limits cases.
For example :
We want to create a circle tangent to an OutsideCurv Cu1
centered on a line OnLine with a radius Radius and with
a tolerance Tolerance.
If we did not used Tolerance it is impossible to
find a solution in the the following case : OnLine is
outside Cu1. There is no intersection point between Cu1
and OnLine. The distance between the line and the
circle is greater than Radius.
With Tolerance we will give a solution if the
distance between Cu1 and OnLine is lower than or
equal Tolerance.
.

#include <Geom2dGcc_Circ2dTanOnRad.hxx>


Public Member Functions

void * operator new (size_t, void *anAddress)
void * operator new (size_t size)
void operator delete (void *anAddress)
Standard_EXPORT Geom2dGcc_Circ2dTanOnRad (const Geom2dGcc_QualifiedCurve &Qualified1, const Geom2dAdaptor_Curve &OnCurv, const Standard_Real Radius, const Standard_Real Tolerance)
 Constructs one or more 2D circles of radius Radius,
centered on the 2D curve OnCurv and:
- tangential to the curve Qualified1
.
Standard_EXPORT Geom2dGcc_Circ2dTanOnRad (const Handle(Geom2d_Point)&Point1, const Geom2dAdaptor_Curve &OnCurv, const Standard_Real Radius, const Standard_Real Tolerance)
 Constructs one or more 2D circles of radius Radius,
centered on the 2D curve OnCurv and:
passing through the point Point1.
OnCurv is an adapted curve, i.e. an object which is an
interface between:
- the services provided by a 2D curve from the package Geom2d,
- and those required on the curve by the construction algorithm.
Similarly, the qualified curve Qualified1 is created from
an adapted curve.
Adapted curves are created in the following way:
Handle(Geom2d_Curve) myCurveOn = ... ;
Geom2dAdaptor_Curve OnCurv ( myCurveOn ) ;
The algorithm is then constructed with this object:
Handle(Geom2d_Curve) myCurve1 = ...
;
Geom2dAdaptor_Curve Adapted1 ( myCurve1 ) ;
Geom2dGcc_QualifiedCurve
Qualified1 = Geom2dGcc::Outside(Adapted1);
Standard_Real Radius = ... , Tolerance = ... ;
Geom2dGcc_Circ2dTanOnRad
myAlgo ( Qualified1 , OnCurv , Radius , Tolerance ) ;
if ( myAlgo.IsDone() )
{ Standard_Integer Nbr = myAlgo.NbSolutions() ;
gp_Circ2d Circ ;
for ( Standard_Integer i = 1 ;
i <= nbr ; i++ )
{ Circ = myAlgo.ThisSolution (i) ;
...
}
}
.
Standard_EXPORT void Results (const GccAna_Circ2dTanOnRad &Circ)
Standard_EXPORT void Results (const Geom2dGcc_MyCirc2dTanOnRad &Circ)
Standard_EXPORT Standard_Boolean IsDone () const
 Returns true if the construction algorithm does not fail
(even if it finds no solution).
Note: IsDone protects against a failure arising from a
more internal intersection algorithm which has reached
its numeric limits.
.
Standard_EXPORT Standard_Integer NbSolutions () const
 Returns the number of circles, representing solutions
computed by this algorithm.
Exceptions: StdFail_NotDone if the construction fails.
.
Standard_EXPORT gp_Circ2d ThisSolution (const Standard_Integer Index) const
 Returns the solution number Index and raises OutOfRange
exception if Index is greater than the number of solutions.
Be carefull: the Index is only a way to get all the
solutions, but is not associated to theses outside the context
of the algorithm-object.
Exceptions
Standard_OutOfRange if Index is less than zero or
greater than the number of solutions computed by this algorithm.
StdFail_NotDone if the construction fails.
.
Standard_EXPORT void WhichQualifier (const Standard_Integer Index, GccEnt_Position &Qualif1) const
 Returns the qualifier Qualif1 of the tangency argument
for the solution of index Index computed by this algorithm.
The returned qualifier is:
- that specified at the start of construction when the
solutions are defined as enclosed, enclosing or
outside with respect to the arguments, or
- that computed during construction (i.e. enclosed,
enclosing or outside) when the solutions are defined
as unqualified with respect to the arguments, or
- GccEnt_noqualifier if the tangency argument is a point.
Exceptions
Standard_OutOfRange if Index is less than zero or
greater than the number of solutions computed by this algorithm.
StdFail_NotDone if the construction fails.
.
Standard_EXPORT void Tangency1 (const Standard_Integer Index, Standard_Real &ParSol, Standard_Real &ParArg, gp_Pnt2d &PntSol) const
 Returns informations about the tangency point between the
result number Index and the first argument.
ParSol is the intrinsic parameter of the point on the solution curv.
ParArg is the intrinsic parameter of the point on the argument curv.
PntSol is the tangency point on the solution curv.
PntArg is the tangency point on the argument curv.
Exceptions
Standard_OutOfRange if Index is less than zero or
greater than the number of solutions computed by this algorithm.
StdFail_NotDone if the construction fails.
.
Standard_EXPORT void CenterOn3 (const Standard_Integer Index, Standard_Real &ParArg, gp_Pnt2d &PntSol) const
 Returns the center PntSol on the second argument (i.e.
line or circle) of the solution of index Index computed by
this algorithm.
ParArg is the intrinsic parameter of the point on the argument curv.
PntSol is the center point of the solution curv.
PntArg is the projection of PntSol on the argument curv.
Exceptions:
Standard_OutOfRange if Index is less than zero or
greater than the number of solutions computed by this algorithm.
StdFail_NotDone if the construction fails.
.
Standard_EXPORT Standard_Boolean IsTheSame1 (const Standard_Integer Index) const
 Returns true if the solution of index Index and the first
argument of this algorithm are the same (i.e. there are 2
identical circles).
If Rarg is the radius of the first argument, Rsol is the
radius of the solution and dist is the distance between
the two centers, we consider the two circles to be
identical if |Rarg - Rsol| and dist are less than
or equal to the tolerance criterion given at the time of
construction of this algorithm.
OutOfRange is raised if Index is greater than the number of solutions.
notDone is raised if the construction algorithm did not succeed.
.

Private Attributes

Standard_Boolean WellDone
Standard_Integer NbrSol
TColgp_Array1OfCirc2d cirsol
GccEnt_Array1OfPosition qualifier1
TColStd_Array1OfInteger TheSame1
TColgp_Array1OfPnt2d pnttg1sol
TColStd_Array1OfReal par1sol
TColStd_Array1OfReal pararg1
TColgp_Array1OfPnt2d pntcen3
TColStd_Array1OfReal parcen3


Constructor & Destructor Documentation

Standard_EXPORT Geom2dGcc_Circ2dTanOnRad::Geom2dGcc_Circ2dTanOnRad const Geom2dGcc_QualifiedCurve Qualified1,
const Geom2dAdaptor_Curve &  OnCurv,
const Standard_Real  Radius,
const Standard_Real  Tolerance
 

Standard_EXPORT Geom2dGcc_Circ2dTanOnRad::Geom2dGcc_Circ2dTanOnRad const Handle(Geom2d_Point)&  Point1,
const Geom2dAdaptor_Curve &  OnCurv,
const Standard_Real  Radius,
const Standard_Real  Tolerance
 


Member Function Documentation

Standard_EXPORT void Geom2dGcc_Circ2dTanOnRad::CenterOn3 const Standard_Integer  Index,
Standard_Real &  ParArg,
gp_Pnt2d &  PntSol
const
 

Standard_EXPORT Standard_Boolean Geom2dGcc_Circ2dTanOnRad::IsDone  )  const
 

Standard_EXPORT Standard_Boolean Geom2dGcc_Circ2dTanOnRad::IsTheSame1 const Standard_Integer  Index  )  const
 

Standard_EXPORT Standard_Integer Geom2dGcc_Circ2dTanOnRad::NbSolutions  )  const
 

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

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

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

Standard_EXPORT void Geom2dGcc_Circ2dTanOnRad::Results const Geom2dGcc_MyCirc2dTanOnRad Circ  ) 
 

Standard_EXPORT void Geom2dGcc_Circ2dTanOnRad::Results const GccAna_Circ2dTanOnRad Circ  ) 
 

Standard_EXPORT void Geom2dGcc_Circ2dTanOnRad::Tangency1 const Standard_Integer  Index,
Standard_Real &  ParSol,
Standard_Real &  ParArg,
gp_Pnt2d &  PntSol
const
 

Standard_EXPORT gp_Circ2d Geom2dGcc_Circ2dTanOnRad::ThisSolution const Standard_Integer  Index  )  const
 

Standard_EXPORT void Geom2dGcc_Circ2dTanOnRad::WhichQualifier const Standard_Integer  Index,
GccEnt_Position Qualif1
const
 


Field Documentation

TColgp_Array1OfCirc2d Geom2dGcc_Circ2dTanOnRad::cirsol [private]
 

Standard_Integer Geom2dGcc_Circ2dTanOnRad::NbrSol [private]
 

TColStd_Array1OfReal Geom2dGcc_Circ2dTanOnRad::par1sol [private]
 

TColStd_Array1OfReal Geom2dGcc_Circ2dTanOnRad::pararg1 [private]
 

TColStd_Array1OfReal Geom2dGcc_Circ2dTanOnRad::parcen3 [private]
 

TColgp_Array1OfPnt2d Geom2dGcc_Circ2dTanOnRad::pntcen3 [private]
 

TColgp_Array1OfPnt2d Geom2dGcc_Circ2dTanOnRad::pnttg1sol [private]
 

GccEnt_Array1OfPosition Geom2dGcc_Circ2dTanOnRad::qualifier1 [private]
 

TColStd_Array1OfInteger Geom2dGcc_Circ2dTanOnRad::TheSame1 [private]
 

Standard_Boolean Geom2dGcc_Circ2dTanOnRad::WellDone [private]
 


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