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

ModelingAlgorithms
TKBO
IntTools


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

void * operator new (size_t, void *anAddress)
void * operator new (size_t size)
void operator delete (void *anAddress)
Standard_EXPORT IntTools_EdgeEdge ()
 Empty constructor
.
Standard_EXPORT void SetEdge1 (const TopoDS_Edge &anEdge)
 Sets the first edge
.
Standard_EXPORT void SetTolerance1 (const Standard_Real aTolEdge1)
 Sets the value of tolerance pipe for the first edge
.
Standard_EXPORT void SetEdge2 (const TopoDS_Edge &anEdge)
 Sets the second edge
.
Standard_EXPORT void SetTolerance2 (const Standard_Real aTolEdge2)
 Sets the value of tolerance pipe for the first edge
.
Standard_EXPORT 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
.
Standard_EXPORT void SetDeflection (const Standard_Real aDeflection)
 Sets the value of maximum reative deflection between
the two nearest points on a curve.
.
Standard_EXPORT void SetEpsilonT (const Standard_Real anEpsT)
 Sets the criteria of equality of two arguments,
i.e. |t2-t1|<anEpsT will mean that t2=t1
.
Standard_EXPORT 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)
.
Standard_EXPORT void SetRange1 (const IntTools_Range &aRange)
Standard_EXPORT void SetRange2 (const IntTools_Range &aRange)
Standard_EXPORT void SetRange1 (const Standard_Real aFirst, const Standard_Real aLast)
Standard_EXPORT void SetRange2 (const Standard_Real aFirst, const Standard_Real aLast)
Standard_EXPORT void Perform ()
 The main method of the algorithm to determine
common parts between two edges in 3-d space
.
Standard_EXPORT Standard_Boolean IsDone () const
 True if the common parts are found
.
Standard_EXPORT Standard_Boolean Order () const
 False if the common parts are coherented with Edge1, Edge2
.
Standard_EXPORT Standard_Integer ErrorStatus () const
 Returns the number that corresponds to the error.
The list of error-codes is in ...cxx file
.
Standard_EXPORT const IntTools_SequenceOfCommonPrtsCommonParts () const
 Returns the common parts (Output)
.
Standard_EXPORT const IntTools_RangeRange1 () const
Standard_EXPORT const IntTools_RangeRange2 () const

Private Member Functions

Standard_EXPORT 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.
.
Standard_EXPORT void Prepare ()
 Preparing the main fields for the algorithm
* From-Curve (myCFrom,myTminFrom,myTmaxFrom),
* To -Curve (myCTo ,myTminTo ,myTmaxTo ),
* myCreiteria=myTol1+myTol2 ,
* myProjectableRanges.
.
Standard_EXPORT 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_EXPORT void FindProjectableRoot (const Standard_Real t1, const Standard_Real t2, const Standard_Integer f1, const Standard_Integer f2, Standard_Real &tRoot)
 Find a bound of a projectable range for the From-Curve
using bisection method.
t1, t2 - interval for searching along t.
f1, f2 - values of the function IsProjectable()
at t1 and t2.
.
Standard_EXPORT 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_EXPORT Standard_Real DerivativeFunction (const Standard_Real t)
 Calculates the first derivative of
the DistanceFunction D(t).
.
Standard_EXPORT 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_EXPORT Standard_Real FindGoldRoot (const Standard_Real ta, const Standard_Real tb, const Standard_Real coeff)
 Find the Root of the function on given interval
of the argument [ta,tb] using Fibonacci method .
.
Standard_EXPORT 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_EXPORT 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_EXPORT Standard_Integer TreatVertexType (const Standard_Real am1, const Standard_Real am2, IntTools_CommonPrt &aCP)
Standard_EXPORT void IsIntersection (const Standard_Real t1, const Standard_Real t2)
Standard_EXPORT void FindDerivativeRoot (const IntTools_CArray1OfReal &t, const IntTools_CArray1OfReal &f)
Standard_EXPORT void RemoveIdenticalRoots ()
Standard_EXPORT Standard_Boolean CheckTouch (const IntTools_CommonPrt &aCP, Standard_Real &t1, Standard_Real &t2)
Standard_EXPORT Standard_Boolean CheckTouchVertex (const IntTools_CommonPrt &aCP, Standard_Real &t1, Standard_Real &t2) const
Standard_EXPORT Standard_Boolean CheckInterval (const Standard_Real t1, const Standard_Real t2)

Private Attributes

TopoDS_Edge myEdge1
TopoDS_Edge myEdge2
Standard_Real myTol1
Standard_Real myTol2
Standard_Integer myDiscret
Standard_Real myEpsT
Standard_Real myEpsNull
Standard_Real myDeflection
BRepAdaptor_Curve myCFrom
Standard_Real myTminFrom
Standard_Real myTmaxFrom
Standard_Real myTolFrom
BRepAdaptor_Curve myCTo
Standard_Real myTminTo
Standard_Real myTmaxTo
Standard_Real myTolTo
Standard_Real myCriteria
Standard_Boolean myIsDone
Standard_Integer myErrorStatus
IntTools_SequenceOfRanges myProjectableRanges
IntTools_CArray1OfReal myFuncArray
IntTools_CArray1OfReal myArgsArray
IntTools_SequenceOfRoots mySequenceOfRoots
IntTools_SequenceOfCommonPrts mySeqOfCommonPrts
Standard_Boolean myOrder
Standard_Real myPar1
Standard_Boolean myParallel
Standard_Boolean myAllNullFlag
IntTools_Range myRange1
IntTools_Range myRange2


Constructor & Destructor Documentation

Standard_EXPORT IntTools_EdgeEdge::IntTools_EdgeEdge  ) 
 


Member Function Documentation

Standard_EXPORT void IntTools_EdgeEdge::CheckData  )  [private]
 

Standard_EXPORT Standard_Boolean IntTools_EdgeEdge::CheckInterval const Standard_Real  t1,
const Standard_Real  t2
[private]
 

Standard_EXPORT Standard_Boolean IntTools_EdgeEdge::CheckTouch const IntTools_CommonPrt aCP,
Standard_Real &  t1,
Standard_Real &  t2
[private]
 

Standard_EXPORT Standard_Boolean IntTools_EdgeEdge::CheckTouchVertex const IntTools_CommonPrt aCP,
Standard_Real &  t1,
Standard_Real &  t2
const [private]
 

Standard_EXPORT const IntTools_SequenceOfCommonPrts& IntTools_EdgeEdge::CommonParts  )  const
 

Standard_EXPORT Standard_Real IntTools_EdgeEdge::DerivativeFunction const Standard_Real  t  )  [private]
 

Standard_EXPORT Standard_Real IntTools_EdgeEdge::DistanceFunction const Standard_Real  t  )  [private]
 

Standard_EXPORT Standard_Integer IntTools_EdgeEdge::ErrorStatus  )  const
 

Standard_EXPORT void IntTools_EdgeEdge::FindDerivativeRoot const IntTools_CArray1OfReal t,
const IntTools_CArray1OfReal f
[private]
 

Standard_EXPORT Standard_Real IntTools_EdgeEdge::FindGoldRoot const Standard_Real  ta,
const Standard_Real  tb,
const Standard_Real  coeff
[private]
 

Standard_EXPORT void IntTools_EdgeEdge::FindProjectableRoot const Standard_Real  t1,
const Standard_Real  t2,
const Standard_Integer  f1,
const Standard_Integer  f2,
Standard_Real &  tRoot
[private]
 

Standard_EXPORT Standard_Integer IntTools_EdgeEdge::FindRangeOnCurve2 IntTools_CommonPrt aCP  )  [private]
 

Standard_EXPORT Standard_Real IntTools_EdgeEdge::FindSimpleRoot const Standard_Integer  IP,
const Standard_Real  ta,
const Standard_Real  tb,
const Standard_Real  fA
[private]
 

Standard_EXPORT Standard_Integer IntTools_EdgeEdge::GetParameterOnCurve2 const Standard_Real  aT1,
Standard_Real &  aT2
const [private]
 

Standard_EXPORT Standard_Boolean IntTools_EdgeEdge::IsDone  )  const
 

Standard_EXPORT void IntTools_EdgeEdge::IsIntersection const Standard_Real  t1,
const Standard_Real  t2
[private]
 

Standard_EXPORT Standard_Integer IntTools_EdgeEdge::IsProjectable const Standard_Real  t  )  const [private]
 

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

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

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

Standard_EXPORT Standard_Boolean IntTools_EdgeEdge::Order  )  const
 

Standard_EXPORT void IntTools_EdgeEdge::Perform  ) 
 

Standard_EXPORT void IntTools_EdgeEdge::Prepare  )  [private]
 

Standard_EXPORT const IntTools_Range& IntTools_EdgeEdge::Range1  )  const
 

Standard_EXPORT const IntTools_Range& IntTools_EdgeEdge::Range2  )  const
 

Standard_EXPORT void IntTools_EdgeEdge::RemoveIdenticalRoots  )  [private]
 

Standard_EXPORT void IntTools_EdgeEdge::SetDeflection const Standard_Real  aDeflection  ) 
 

Standard_EXPORT void IntTools_EdgeEdge::SetDiscretize const Standard_Integer  aDiscret  ) 
 

Standard_EXPORT void IntTools_EdgeEdge::SetEdge1 const TopoDS_Edge &  anEdge  ) 
 

Standard_EXPORT void IntTools_EdgeEdge::SetEdge2 const TopoDS_Edge &  anEdge  ) 
 

Standard_EXPORT void IntTools_EdgeEdge::SetEpsilonNull const Standard_Real  anEpsNull  ) 
 

Standard_EXPORT void IntTools_EdgeEdge::SetEpsilonT const Standard_Real  anEpsT  ) 
 

Standard_EXPORT void IntTools_EdgeEdge::SetRange1 const Standard_Real  aFirst,
const Standard_Real  aLast
 

Standard_EXPORT void IntTools_EdgeEdge::SetRange1 const IntTools_Range aRange  ) 
 

Standard_EXPORT void IntTools_EdgeEdge::SetRange2 const Standard_Real  aFirst,
const Standard_Real  aLast
 

Standard_EXPORT void IntTools_EdgeEdge::SetRange2 const IntTools_Range aRange  ) 
 

Standard_EXPORT void IntTools_EdgeEdge::SetTolerance1 const Standard_Real  aTolEdge1  ) 
 

Standard_EXPORT void IntTools_EdgeEdge::SetTolerance2 const Standard_Real  aTolEdge2  ) 
 

Standard_EXPORT Standard_Integer IntTools_EdgeEdge::TreatVertexType const Standard_Real  am1,
const Standard_Real  am2,
IntTools_CommonPrt aCP
[private]
 


Field Documentation

Standard_Boolean IntTools_EdgeEdge::myAllNullFlag [private]
 

IntTools_CArray1OfReal IntTools_EdgeEdge::myArgsArray [private]
 

BRepAdaptor_Curve IntTools_EdgeEdge::myCFrom [private]
 

Standard_Real IntTools_EdgeEdge::myCriteria [private]
 

BRepAdaptor_Curve IntTools_EdgeEdge::myCTo [private]
 

Standard_Real IntTools_EdgeEdge::myDeflection [private]
 

Standard_Integer IntTools_EdgeEdge::myDiscret [private]
 

TopoDS_Edge IntTools_EdgeEdge::myEdge1 [private]
 

TopoDS_Edge IntTools_EdgeEdge::myEdge2 [private]
 

Standard_Real IntTools_EdgeEdge::myEpsNull [private]
 

Standard_Real IntTools_EdgeEdge::myEpsT [private]
 

Standard_Integer IntTools_EdgeEdge::myErrorStatus [private]
 

IntTools_CArray1OfReal IntTools_EdgeEdge::myFuncArray [private]
 

Standard_Boolean IntTools_EdgeEdge::myIsDone [private]
 

Standard_Boolean IntTools_EdgeEdge::myOrder [private]
 

Standard_Real IntTools_EdgeEdge::myPar1 [private]
 

Standard_Boolean IntTools_EdgeEdge::myParallel [private]
 

IntTools_SequenceOfRanges IntTools_EdgeEdge::myProjectableRanges [private]
 

IntTools_Range IntTools_EdgeEdge::myRange1 [private]
 

IntTools_Range IntTools_EdgeEdge::myRange2 [private]
 

IntTools_SequenceOfCommonPrts IntTools_EdgeEdge::mySeqOfCommonPrts [private]
 

IntTools_SequenceOfRoots IntTools_EdgeEdge::mySequenceOfRoots [private]
 

Standard_Real IntTools_EdgeEdge::myTmaxFrom [private]
 

Standard_Real IntTools_EdgeEdge::myTmaxTo [private]
 

Standard_Real IntTools_EdgeEdge::myTminFrom [private]
 

Standard_Real IntTools_EdgeEdge::myTminTo [private]
 

Standard_Real IntTools_EdgeEdge::myTol1 [private]
 

Standard_Real IntTools_EdgeEdge::myTol2 [private]
 

Standard_Real IntTools_EdgeEdge::myTolFrom [private]
 

Standard_Real IntTools_EdgeEdge::myTolTo [private]
 


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