Open CASCADE Technology  6.9.1
Public Member Functions | Protected Member Functions | Static Protected Member Functions | Protected Attributes
IntTools_EdgeEdge Class Reference

The class provides Edge/Edge intersection algorithm based on the intersection between edges bounding boxes. More...

#include <IntTools_EdgeEdge.hxx>

Public Member Functions

 IntTools_EdgeEdge ()
 Empty contructor. More...
 
 ~IntTools_EdgeEdge ()
 
 IntTools_EdgeEdge (const TopoDS_Edge &theEdge1, const TopoDS_Edge &theEdge2)
 Contructor. More...
 
 IntTools_EdgeEdge (const TopoDS_Edge &theEdge1, const Standard_Real aT11, const Standard_Real aT12, const TopoDS_Edge &theEdge2, const Standard_Real aT21, const Standard_Real aT22)
 Contructor. More...
 
void SetEdge1 (const TopoDS_Edge &theEdge)
 Sets the first edge. More...
 
void SetEdge1 (const TopoDS_Edge &theEdge, const Standard_Real aT1, const Standard_Real aT2)
 Sets the first edge and its range. More...
 
void SetRange1 (const IntTools_Range &theRange1)
 Sets the range for the first edge. More...
 
void SetRange1 (const Standard_Real aT1, const Standard_Real aT2)
 Sets the range for the first edge. More...
 
void SetEdge2 (const TopoDS_Edge &theEdge)
 Sets the second edge. More...
 
void SetEdge2 (const TopoDS_Edge &theEdge, const Standard_Real aT1, const Standard_Real aT2)
 Sets the first edge and its range. More...
 
void SetRange2 (const IntTools_Range &theRange)
 Sets the range for the second edge. More...
 
void SetRange2 (const Standard_Real aT1, const Standard_Real aT2)
 Sets the range for the second edge. More...
 
void Perform ()
 Performs the intersection between edges. More...
 
Standard_Boolean IsDone () const
 Returns TRUE if common part(s) is(are) found. More...
 
const IntTools_SequenceOfCommonPrtsCommonParts () const
 Returns common parts. More...
 

Protected Member Functions

void CheckData ()
 Checks the data. More...
 
void Prepare ()
 Prepares the data. More...
 
void ComputeLineLine ()
 Computes Line/Line intersection. More...
 
void FindSolutions (IntTools_SequenceOfRanges &theRanges1, IntTools_SequenceOfRanges &theRanges2, Standard_Boolean &bSplit2)
 Intermediate function. More...
 
void FindSolutions (const IntTools_Range &theR1, const IntTools_Range &theR2, const Bnd_Box &theBox2, IntTools_SequenceOfRanges &theRanges1, IntTools_SequenceOfRanges &theRanges2)
 Looking for the exact intersection ranges. More...
 
void MergeSolutions (const IntTools_SequenceOfRanges &theRanges1, const IntTools_SequenceOfRanges &theRanges2, const Standard_Boolean bSplit2)
 Merges found solutions. More...
 
Standard_Integer CheckCoincidence (const Standard_Real aT11, const Standard_Real aT12, const Standard_Real aT21, const Standard_Real aT22, const Standard_Real theCriteria, const Standard_Real theCurveRes1)
 Checks if edges coincide on the ranges. More...
 
void AddSolution (const Standard_Real aT11, const Standard_Real aT12, const Standard_Real aT21, const Standard_Real aT22, const TopAbs_ShapeEnum theType)
 Adds common part of the given type to myCommonParts. More...
 
void FindBestSolution (const Standard_Real aT11, const Standard_Real aT12, const Standard_Real aT21, const Standard_Real aT22, Standard_Real &aT1, Standard_Real &aT2)
 Looking for the minimal distance between edges on the ranges. More...
 
Standard_Boolean IsIntersection (const Standard_Real aT11, const Standard_Real aT12, const Standard_Real aT21, const Standard_Real aT22)
 Checks is there an intersection between edges on the given ranges (for nearly conicident edges) More...
 

Static Protected Member Functions

static Standard_Boolean FindParameters (const BRepAdaptor_Curve &theBAC, const Standard_Real aT1, const Standard_Real aT2, const Standard_Real theRes, const Standard_Real thePTol, const Standard_Real theResCoeff, const Bnd_Box &theCBox, Standard_Real &aTB1, Standard_Real &aTB2)
 Looking for the range of the edge whick is in the box. More...
 

Protected Attributes

TopoDS_Edge myEdge1
 
TopoDS_Edge myEdge2
 
Handle< Geom_CurvemyGeom1
 
Handle< Geom_CurvemyGeom2
 
BRepAdaptor_Curve myCurve1
 
BRepAdaptor_Curve myCurve2
 
Standard_Real myTol1
 
Standard_Real myTol2
 
Standard_Real myTol
 
Standard_Real myRes1
 
Standard_Real myRes2
 
Standard_Real myResCoeff1
 
Standard_Real myResCoeff2
 
Standard_Real myPTol1
 
Standard_Real myPTol2
 
IntTools_Range myRange1
 
IntTools_Range myRange2
 
Standard_Boolean mySwap
 
Standard_Integer myErrorStatus
 
IntTools_SequenceOfCommonPrts myCommonParts
 

Detailed Description

The class provides Edge/Edge intersection algorithm based on the intersection between edges bounding boxes.

Constructor & Destructor Documentation

IntTools_EdgeEdge::IntTools_EdgeEdge ( )

Empty contructor.

IntTools_EdgeEdge::~IntTools_EdgeEdge ( )
IntTools_EdgeEdge::IntTools_EdgeEdge ( const TopoDS_Edge theEdge1,
const TopoDS_Edge theEdge2 
)

Contructor.

IntTools_EdgeEdge::IntTools_EdgeEdge ( const TopoDS_Edge theEdge1,
const Standard_Real  aT11,
const Standard_Real  aT12,
const TopoDS_Edge theEdge2,
const Standard_Real  aT21,
const Standard_Real  aT22 
)

Contructor.

Member Function Documentation

void IntTools_EdgeEdge::AddSolution ( const Standard_Real  aT11,
const Standard_Real  aT12,
const Standard_Real  aT21,
const Standard_Real  aT22,
const TopAbs_ShapeEnum  theType 
)
protected

Adds common part of the given type to myCommonParts.

Standard_Integer IntTools_EdgeEdge::CheckCoincidence ( const Standard_Real  aT11,
const Standard_Real  aT12,
const Standard_Real  aT21,
const Standard_Real  aT22,
const Standard_Real  theCriteria,
const Standard_Real  theCurveRes1 
)
protected

Checks if edges coincide on the ranges.

void IntTools_EdgeEdge::CheckData ( )
protected

Checks the data.

const IntTools_SequenceOfCommonPrts& IntTools_EdgeEdge::CommonParts ( ) const

Returns common parts.

void IntTools_EdgeEdge::ComputeLineLine ( )
protected

Computes Line/Line intersection.

void IntTools_EdgeEdge::FindBestSolution ( const Standard_Real  aT11,
const Standard_Real  aT12,
const Standard_Real  aT21,
const Standard_Real  aT22,
Standard_Real aT1,
Standard_Real aT2 
)
protected

Looking for the minimal distance between edges on the ranges.

static Standard_Boolean IntTools_EdgeEdge::FindParameters ( const BRepAdaptor_Curve theBAC,
const Standard_Real  aT1,
const Standard_Real  aT2,
const Standard_Real  theRes,
const Standard_Real  thePTol,
const Standard_Real  theResCoeff,
const Bnd_Box theCBox,
Standard_Real aTB1,
Standard_Real aTB2 
)
staticprotected

Looking for the range of the edge whick is in the box.

void IntTools_EdgeEdge::FindSolutions ( IntTools_SequenceOfRanges theRanges1,
IntTools_SequenceOfRanges theRanges2,
Standard_Boolean bSplit2 
)
protected

Intermediate function.

void IntTools_EdgeEdge::FindSolutions ( const IntTools_Range theR1,
const IntTools_Range theR2,
const Bnd_Box theBox2,
IntTools_SequenceOfRanges theRanges1,
IntTools_SequenceOfRanges theRanges2 
)
protected

Looking for the exact intersection ranges.

Standard_Boolean IntTools_EdgeEdge::IsDone ( ) const

Returns TRUE if common part(s) is(are) found.

Standard_Boolean IntTools_EdgeEdge::IsIntersection ( const Standard_Real  aT11,
const Standard_Real  aT12,
const Standard_Real  aT21,
const Standard_Real  aT22 
)
protected

Checks is there an intersection between edges on the given ranges (for nearly conicident edges)

void IntTools_EdgeEdge::MergeSolutions ( const IntTools_SequenceOfRanges theRanges1,
const IntTools_SequenceOfRanges theRanges2,
const Standard_Boolean  bSplit2 
)
protected

Merges found solutions.

void IntTools_EdgeEdge::Perform ( )

Performs the intersection between edges.

void IntTools_EdgeEdge::Prepare ( )
protected

Prepares the data.

void IntTools_EdgeEdge::SetEdge1 ( const TopoDS_Edge theEdge)

Sets the first edge.

void IntTools_EdgeEdge::SetEdge1 ( const TopoDS_Edge theEdge,
const Standard_Real  aT1,
const Standard_Real  aT2 
)

Sets the first edge and its range.

void IntTools_EdgeEdge::SetEdge2 ( const TopoDS_Edge theEdge)

Sets the second edge.

void IntTools_EdgeEdge::SetEdge2 ( const TopoDS_Edge theEdge,
const Standard_Real  aT1,
const Standard_Real  aT2 
)

Sets the first edge and its range.

void IntTools_EdgeEdge::SetRange1 ( const IntTools_Range theRange1)

Sets the range for the first edge.

void IntTools_EdgeEdge::SetRange1 ( const Standard_Real  aT1,
const Standard_Real  aT2 
)

Sets the range for the first edge.

void IntTools_EdgeEdge::SetRange2 ( const IntTools_Range theRange)

Sets the range for the second edge.

void IntTools_EdgeEdge::SetRange2 ( const Standard_Real  aT1,
const Standard_Real  aT2 
)

Sets the range for the second edge.

Field Documentation

IntTools_SequenceOfCommonPrts IntTools_EdgeEdge::myCommonParts
protected
BRepAdaptor_Curve IntTools_EdgeEdge::myCurve1
protected
BRepAdaptor_Curve IntTools_EdgeEdge::myCurve2
protected
TopoDS_Edge IntTools_EdgeEdge::myEdge1
protected
TopoDS_Edge IntTools_EdgeEdge::myEdge2
protected
Standard_Integer IntTools_EdgeEdge::myErrorStatus
protected
Handle< Geom_Curve > IntTools_EdgeEdge::myGeom1
protected
Handle< Geom_Curve > IntTools_EdgeEdge::myGeom2
protected
Standard_Real IntTools_EdgeEdge::myPTol1
protected
Standard_Real IntTools_EdgeEdge::myPTol2
protected
IntTools_Range IntTools_EdgeEdge::myRange1
protected
IntTools_Range IntTools_EdgeEdge::myRange2
protected
Standard_Real IntTools_EdgeEdge::myRes1
protected
Standard_Real IntTools_EdgeEdge::myRes2
protected
Standard_Real IntTools_EdgeEdge::myResCoeff1
protected
Standard_Real IntTools_EdgeEdge::myResCoeff2
protected
Standard_Boolean IntTools_EdgeEdge::mySwap
protected
Standard_Real IntTools_EdgeEdge::myTol
protected
Standard_Real IntTools_EdgeEdge::myTol1
protected
Standard_Real IntTools_EdgeEdge::myTol2
protected

The documentation for this class was generated from the following file: