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

ModelingAlgorithms
TKGeomAlgo
Geom2dGcc


Geom2dGcc_Circ2d3Tan Class Reference

This class implements the algorithms used to
create 2d circles tangent to 3 points/lines/circles/
curves with one curve or more.
The arguments of all construction methods are :
- The three qualifiied elements for the
tangency constrains (QualifiedCirc, QualifiedLine,
Qualifiedcurv, Points).
- A parameter for each QualifiedCurv.
Describes functions for building a 2D circle:
- tangential to 3 curves, or
- tangential to 2 curves and passing through a point, or
- tangential to a curve and passing through 2 points, or
- passing through 3 points.
A Circ2d3Tan object provides a framework for:
- defining the construction of 2D circles(s),
- implementing the construction algorithm, and
- consulting the result(s).
.

#include <Geom2dGcc_Circ2d3Tan.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_Circ2d3Tan (const Geom2dGcc_QualifiedCurve &Qualified1, const Geom2dGcc_QualifiedCurve &Qualified2, const Geom2dGcc_QualifiedCurve &Qualified3, const Standard_Real Tolerance, const Standard_Real Param1, const Standard_Real Param2, const Standard_Real Param3)
 Constructs one or more 2D circles
tangential to three curves Qualified1, Qualified2 and
Qualified3, where Param1, Param2 and Param3 are
used, respectively, as the initial values of the
parameters on Qualified1, Qualified2 and Qualified3
of the tangency point between these arguments and
the solution sought, if the algorithm chooses an
iterative method to find the solution (i.e. if either
Qualified1, Qualified2 or Qualified3 is more complex
than a line or a circle).
.
Standard_EXPORT Geom2dGcc_Circ2d3Tan (const Geom2dGcc_QualifiedCurve &Qualified1, const Geom2dGcc_QualifiedCurve &Qualified2, const Handle(Geom2d_Point)&Point, const Standard_Real Tolerance, const Standard_Real Param1, const Standard_Real Param2)
 Constructs one or more 2D circles
tangential to two curves Qualified1 and Qualified2
and passing through the point Point, where Param1
and Param2 are used, respectively, as the initial
values of the parameters on Qualified1 and
Qualified2 of the tangency point between this
argument and the solution sought, if the algorithm
chooses an iterative method to find the solution (i.e. if
either Qualified1 or Qualified2 is more complex than
a line or a circle).
.
Standard_EXPORT Geom2dGcc_Circ2d3Tan (const Geom2dGcc_QualifiedCurve &Qualified1, const Handle(Geom2d_Point)&Point1, const Handle(Geom2d_Point)&Point2, const Standard_Real Tolerance, const Standard_Real Param1)
 Constructs one or more 2D circles tangential to the curve Qualified1 and passing
through two points Point1 and Point2, where Param1
is used as the initial value of the parameter on
Qualified1 of the tangency point between this
argument and the solution sought, if the algorithm
chooses an iterative method to find the solution (i.e. if
Qualified1 is more complex than a line or a circle)
.
Standard_EXPORT Geom2dGcc_Circ2d3Tan (const Handle(Geom2d_Point)&Point1, const Handle(Geom2d_Point)&Point2, const Handle(Geom2d_Point)&Point3, const Standard_Real Tolerance)
 Constructs one or more 2D circles passing through three points Point1, Point2 and Point3.
Tolerance is a tolerance criterion used by the algorithm
to find a solution when, mathematically, the problem
posed does not have a solution, but where there is
numeric uncertainty attached to the arguments.
For example, take:
- two circles C1 and C2, such that C2 is inside C1,
and almost tangential to C1; there is in fact no point
of intersection between C1 and C2; and
- a circle C3 outside C1.
You now want to find a circle which is tangential to C1,
C2 and C3: a pure mathematical resolution will not find
a solution. This is where the tolerance criterion is used:
the algorithm considers that C1 and C2 are tangential if
the shortest distance between these two circles is less
than or equal to Tolerance. Thus, the algorithm finds a solution.
Warning
An iterative algorithm is used if Qualified1, Qualified2 or
Qualified3 is more complex than a line or a circle. In
such cases, the algorithm constructs only one solution.
Exceptions
GccEnt_BadQualifier if a qualifier is inconsistent with
the argument it qualifies (for example, enclosing for a line).
.
Standard_EXPORT void Results (const GccAna_Circ2d3Tan &Circ, const Standard_Integer Rank1, const Standard_Integer Rank2, const Standard_Integer Rank3)
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
 This method returns the number of solutions.
NotDone is raised if the algorithm failed.
.
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.
.
Standard_EXPORT void WhichQualifier (const Standard_Integer Index, GccEnt_Position &Qualif1, GccEnt_Position &Qualif2, GccEnt_Position &Qualif3) const
 It returns the informations about the qualifiers of the tangency
arguments concerning the solution number Index.
It returns the real qualifiers (the qualifiers given to the
constructor method in case of enclosed, enclosing and outside
and the qualifiers computedin case of unqualified).
.
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 and the first argument.
ParSol is the intrinsic parameter of the point PntSol on the solution curv.
ParArg is the intrinsic parameter of the point PntSol on the argument curv.
.
Standard_EXPORT void Tangency2 (const Standard_Integer Index, Standard_Real &ParSol, Standard_Real &ParArg, gp_Pnt2d &PntSol) const
 Returns informations about the tangency point between the
result and the second argument.
ParSol is the intrinsic parameter of the point PntSol on the solution curv.
ParArg is the intrinsic parameter of the point PntSol on the argument curv.
.
Standard_EXPORT void Tangency3 (const Standard_Integer Index, Standard_Real &ParSol, Standard_Real &ParArg, gp_Pnt2d &PntSol) const
 Returns informations about the tangency point between the
result and the third argument.
ParSol is the intrinsic parameter of the point PntSol on the solution curv.
ParArg is the intrinsic parameter of the point PntSol on the argument curv.
.
Standard_EXPORT Standard_Boolean IsTheSame1 (const Standard_Integer Index) const
 Returns True if the solution is equal to the first argument.
.
Standard_EXPORT Standard_Boolean IsTheSame2 (const Standard_Integer Index) const
 Returns True if the solution is equal to the second argument.
.
Standard_EXPORT Standard_Boolean IsTheSame3 (const Standard_Integer Index) const
 Returns True if the solution is equal to the third argument.
If Rarg is the radius of the first, second or third
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.
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.
.

Private Attributes

TColgp_Array1OfCirc2d cirsol
Standard_Real NbrSol
Standard_Boolean WellDone
GccEnt_Array1OfPosition qualifier1
GccEnt_Array1OfPosition qualifier2
GccEnt_Array1OfPosition qualifier3
TColStd_Array1OfInteger TheSame1
TColStd_Array1OfInteger TheSame2
TColStd_Array1OfInteger TheSame3
TColgp_Array1OfPnt2d pnttg1sol
TColgp_Array1OfPnt2d pnttg2sol
TColgp_Array1OfPnt2d pnttg3sol
TColStd_Array1OfReal par1sol
TColStd_Array1OfReal par2sol
TColStd_Array1OfReal par3sol
TColStd_Array1OfReal pararg1
TColStd_Array1OfReal pararg2
TColStd_Array1OfReal pararg3


Constructor & Destructor Documentation

Standard_EXPORT Geom2dGcc_Circ2d3Tan::Geom2dGcc_Circ2d3Tan const Geom2dGcc_QualifiedCurve Qualified1,
const Geom2dGcc_QualifiedCurve Qualified2,
const Geom2dGcc_QualifiedCurve Qualified3,
const Standard_Real  Tolerance,
const Standard_Real  Param1,
const Standard_Real  Param2,
const Standard_Real  Param3
 

Standard_EXPORT Geom2dGcc_Circ2d3Tan::Geom2dGcc_Circ2d3Tan const Geom2dGcc_QualifiedCurve Qualified1,
const Geom2dGcc_QualifiedCurve Qualified2,
const Handle(Geom2d_Point)&  Point,
const Standard_Real  Tolerance,
const Standard_Real  Param1,
const Standard_Real  Param2
 

Standard_EXPORT Geom2dGcc_Circ2d3Tan::Geom2dGcc_Circ2d3Tan const Geom2dGcc_QualifiedCurve Qualified1,
const Handle(Geom2d_Point)&  Point1,
const Handle(Geom2d_Point)&  Point2,
const Standard_Real  Tolerance,
const Standard_Real  Param1
 

Standard_EXPORT Geom2dGcc_Circ2d3Tan::Geom2dGcc_Circ2d3Tan const Handle(Geom2d_Point)&  Point1,
const Handle(Geom2d_Point)&  Point2,
const Handle(Geom2d_Point)&  Point3,
const Standard_Real  Tolerance
 


Member Function Documentation

Standard_EXPORT Standard_Boolean Geom2dGcc_Circ2d3Tan::IsDone  )  const
 

Standard_EXPORT Standard_Boolean Geom2dGcc_Circ2d3Tan::IsTheSame1 const Standard_Integer  Index  )  const
 

Standard_EXPORT Standard_Boolean Geom2dGcc_Circ2d3Tan::IsTheSame2 const Standard_Integer  Index  )  const
 

Standard_EXPORT Standard_Boolean Geom2dGcc_Circ2d3Tan::IsTheSame3 const Standard_Integer  Index  )  const
 

Standard_EXPORT Standard_Integer Geom2dGcc_Circ2d3Tan::NbSolutions  )  const
 

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

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

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

Standard_EXPORT void Geom2dGcc_Circ2d3Tan::Results const GccAna_Circ2d3Tan Circ,
const Standard_Integer  Rank1,
const Standard_Integer  Rank2,
const Standard_Integer  Rank3
 

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

Standard_EXPORT void Geom2dGcc_Circ2d3Tan::Tangency2 const Standard_Integer  Index,
Standard_Real &  ParSol,
Standard_Real &  ParArg,
gp_Pnt2d &  PntSol
const
 

Standard_EXPORT void Geom2dGcc_Circ2d3Tan::Tangency3 const Standard_Integer  Index,
Standard_Real &  ParSol,
Standard_Real &  ParArg,
gp_Pnt2d &  PntSol
const
 

Standard_EXPORT gp_Circ2d Geom2dGcc_Circ2d3Tan::ThisSolution const Standard_Integer  Index  )  const
 

Standard_EXPORT void Geom2dGcc_Circ2d3Tan::WhichQualifier const Standard_Integer  Index,
GccEnt_Position Qualif1,
GccEnt_Position Qualif2,
GccEnt_Position Qualif3
const
 


Field Documentation

TColgp_Array1OfCirc2d Geom2dGcc_Circ2d3Tan::cirsol [private]
 

Standard_Real Geom2dGcc_Circ2d3Tan::NbrSol [private]
 

TColStd_Array1OfReal Geom2dGcc_Circ2d3Tan::par1sol [private]
 

TColStd_Array1OfReal Geom2dGcc_Circ2d3Tan::par2sol [private]
 

TColStd_Array1OfReal Geom2dGcc_Circ2d3Tan::par3sol [private]
 

TColStd_Array1OfReal Geom2dGcc_Circ2d3Tan::pararg1 [private]
 

TColStd_Array1OfReal Geom2dGcc_Circ2d3Tan::pararg2 [private]
 

TColStd_Array1OfReal Geom2dGcc_Circ2d3Tan::pararg3 [private]
 

TColgp_Array1OfPnt2d Geom2dGcc_Circ2d3Tan::pnttg1sol [private]
 

TColgp_Array1OfPnt2d Geom2dGcc_Circ2d3Tan::pnttg2sol [private]
 

TColgp_Array1OfPnt2d Geom2dGcc_Circ2d3Tan::pnttg3sol [private]
 

GccEnt_Array1OfPosition Geom2dGcc_Circ2d3Tan::qualifier1 [private]
 

GccEnt_Array1OfPosition Geom2dGcc_Circ2d3Tan::qualifier2 [private]
 

GccEnt_Array1OfPosition Geom2dGcc_Circ2d3Tan::qualifier3 [private]
 

TColStd_Array1OfInteger Geom2dGcc_Circ2d3Tan::TheSame1 [private]
 

TColStd_Array1OfInteger Geom2dGcc_Circ2d3Tan::TheSame2 [private]
 

TColStd_Array1OfInteger Geom2dGcc_Circ2d3Tan::TheSame3 [private]
 

Standard_Boolean Geom2dGcc_Circ2d3Tan::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