Open CASCADE Technology 6.6.0
Public Member Functions | Protected Member Functions
IntTools_EdgeEdge Class Reference

The class provides Edge/Edge algorithm to determine
common parts between two edges in 3-d space.
Common parts can be : Vertices or Edges.

#include <IntTools_EdgeEdge.hxx>

Public Member Functions

 IntTools_EdgeEdge ()
 Empty constructor


void SetEdge1 (const TopoDS_Edge &anEdge)
 Sets the first edge


void SetTolerance1 (const Standard_Real aTolEdge1)
 Sets the value of tolerance pipe for the first edge


void SetEdge2 (const TopoDS_Edge &anEdge)
 Sets the second edge


void SetTolerance2 (const Standard_Real aTolEdge2)
 Sets the value of tolerance pipe for the first edge


void SetDiscretize (const Standard_Integer aDiscret)
 Sets the number of division for the shortest
edge among the two. The deflection is not taken
into account


void SetDeflection (const Standard_Real aDeflection)
 Sets the value of maximum reative deflection between
the two nearest points on a curve.


void SetEpsilonT (const Standard_Real anEpsT)
 Sets the criteria of equality of two arguments,
i.e. |t2-t1|<anEpsT will mean that t2=t1


void SetEpsilonNull (const Standard_Real anEpsNull)
 Sets the criteria of equality of two functions' values
i.e. |f(t2)-f(t1)|<anEpsNull will mean that f(t2)=f(t1)


void SetRange1 (const IntTools_Range &aRange)
void SetRange2 (const IntTools_Range &aRange)
void SetRange1 (const Standard_Real aFirst, const Standard_Real aLast)
void SetRange2 (const Standard_Real aFirst, const Standard_Real aLast)
void Perform ()
 The main method of the algorithm to determine
common parts between two edges in 3-d space


Standard_Boolean IsDone () const
 True if the common parts are found


Standard_Boolean Order () const
 False if the common parts are coherented with Edge1, Edge2


Standard_Integer ErrorStatus () const
 Returns the number that corresponds to the error.
The list of error-codes is in ...cxx file


const
IntTools_SequenceOfCommonPrts
CommonParts () const
 Returns the common parts (Output)


const IntTools_RangeRange1 () const
const IntTools_RangeRange2 () const

Protected Member Functions

void CheckData ()
 Fool-proof chechking the input data.
The following data is not available
* Degenerated edges is not available;
* Egdes, that don't contain 3d-curve.


void Prepare ()
 Preparing the main fields for the algorithm
* From-Curve (myCFrom,myTminFrom,myTmaxFrom),
* To -Curve (myCTo ,myTminTo ,myTmaxTo ),
* myCreiteria=myTol1+myTol2 ,
* myProjectableRanges.


Standard_Integer IsProjectable (const Standard_Real t) const
 Returns the flag 1 if it is possible to project
the point from the From-Curve at the parameter t
to the To-Curve.
Othrwise it returns 0.


Standard_Integer FindRangeOnCurve2 (IntTools_CommonPrt &aCP)
 Find the range on the curve Curve-To that corresponds
to the given range on the curve Curve-From.


Standard_Integer GetParameterOnCurve2 (const Standard_Real aT1, Standard_Real &aT2) const
 Find the value of the parameter on the curve Curve-To
that corresponds to the given parameter on the curve
Curve-From.


Standard_Integer TreatVertexType (const Standard_Real am1, const Standard_Real am2, IntTools_CommonPrt &aCP)
void IsIntersection (const Standard_Real t1, const Standard_Real t2)
void FindDerivativeRoot (const IntTools_CArray1OfReal &t, const IntTools_CArray1OfReal &f)
Standard_Real FindSimpleRoot (const Standard_Integer IP, const Standard_Real ta, const Standard_Real tb, const Standard_Real fA)
 Find the Root of the function on given interval
of the argument [ta,tb] using bisection method .
IP - a flag;
=1 - use DistanceFunction;
=2 - use DerivativeFunction;


Standard_Real DistanceFunction (const Standard_Real t)
 Calculates the DistanceFunction D(t).
D(t)=D1(t) - myCriteria;
where
D1(t) - the lower distance between a point from
the From-Curve at parameter t and
projection point of this point on To-Curve;
myCriteria=myTol1+myTol2.


Standard_Real DerivativeFunction (const Standard_Real t)
 Calculates the first derivative of
the DistanceFunction D(t).


Standard_Boolean CheckTouch (const IntTools_CommonPrt &aCP, Standard_Real &t1, Standard_Real &t2)
Standard_Boolean CheckTouchVertex (const IntTools_CommonPrt &aCP, Standard_Real &t1, Standard_Real &t2) const
void ComputeLineLine ()
Standard_Boolean IsSameCurves ()

Constructor & Destructor Documentation

IntTools_EdgeEdge::IntTools_EdgeEdge ( )

Member Function Documentation

void IntTools_EdgeEdge::CheckData ( ) [protected]
Standard_Boolean IntTools_EdgeEdge::CheckTouch ( const IntTools_CommonPrt aCP,
Standard_Real t1,
Standard_Real t2 
) [protected]
Standard_Boolean IntTools_EdgeEdge::CheckTouchVertex ( const IntTools_CommonPrt aCP,
Standard_Real t1,
Standard_Real t2 
) const [protected]
const IntTools_SequenceOfCommonPrts& IntTools_EdgeEdge::CommonParts ( ) const
void IntTools_EdgeEdge::ComputeLineLine ( ) [protected]
Standard_Real IntTools_EdgeEdge::DerivativeFunction ( const Standard_Real  t) [protected]
Standard_Real IntTools_EdgeEdge::DistanceFunction ( const Standard_Real  t) [protected]
Standard_Integer IntTools_EdgeEdge::ErrorStatus ( ) const
void IntTools_EdgeEdge::FindDerivativeRoot ( const IntTools_CArray1OfReal t,
const IntTools_CArray1OfReal f 
) [protected]
Standard_Integer IntTools_EdgeEdge::FindRangeOnCurve2 ( IntTools_CommonPrt aCP) [protected]
Standard_Real IntTools_EdgeEdge::FindSimpleRoot ( const Standard_Integer  IP,
const Standard_Real  ta,
const Standard_Real  tb,
const Standard_Real  fA 
) [protected]
Standard_Integer IntTools_EdgeEdge::GetParameterOnCurve2 ( const Standard_Real  aT1,
Standard_Real aT2 
) const [protected]
Standard_Boolean IntTools_EdgeEdge::IsDone ( ) const
void IntTools_EdgeEdge::IsIntersection ( const Standard_Real  t1,
const Standard_Real  t2 
) [protected]
Standard_Integer IntTools_EdgeEdge::IsProjectable ( const Standard_Real  t) const [protected]
Standard_Boolean IntTools_EdgeEdge::IsSameCurves ( ) [protected]
Standard_Boolean IntTools_EdgeEdge::Order ( ) const
void IntTools_EdgeEdge::Perform ( )
void IntTools_EdgeEdge::Prepare ( ) [protected]
const IntTools_Range& IntTools_EdgeEdge::Range1 ( ) const
const IntTools_Range& IntTools_EdgeEdge::Range2 ( ) const
void IntTools_EdgeEdge::SetDeflection ( const Standard_Real  aDeflection)
void IntTools_EdgeEdge::SetDiscretize ( const Standard_Integer  aDiscret)
void IntTools_EdgeEdge::SetEdge1 ( const TopoDS_Edge anEdge)
void IntTools_EdgeEdge::SetEdge2 ( const TopoDS_Edge anEdge)
void IntTools_EdgeEdge::SetEpsilonNull ( const Standard_Real  anEpsNull)
void IntTools_EdgeEdge::SetEpsilonT ( const Standard_Real  anEpsT)
void IntTools_EdgeEdge::SetRange1 ( const Standard_Real  aFirst,
const Standard_Real  aLast 
)
void IntTools_EdgeEdge::SetRange1 ( const IntTools_Range aRange)
void IntTools_EdgeEdge::SetRange2 ( const Standard_Real  aFirst,
const Standard_Real  aLast 
)
void IntTools_EdgeEdge::SetRange2 ( const IntTools_Range aRange)
void IntTools_EdgeEdge::SetTolerance1 ( const Standard_Real  aTolEdge1)
void IntTools_EdgeEdge::SetTolerance2 ( const Standard_Real  aTolEdge2)
Standard_Integer IntTools_EdgeEdge::TreatVertexType ( const Standard_Real  am1,
const Standard_Real  am2,
IntTools_CommonPrt aCP 
) [protected]

The documentation for this class was generated from the following file:
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines