Open CASCADE Technology
7.0.0
|
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 () | |
Destructor. More... | |
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_SequenceOfCommonPrts & | CommonParts () const |
Returns common parts. More... | |
void | UseQuickCoincidenceCheck (const Standard_Boolean bFlag) |
Sets the flag myQuickCoincidenceCheck. More... | |
Standard_Boolean | IsCoincidenceCheckedQuickly () |
Returns the flag myQuickCoincidenceCheck. 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... | |
Standard_Boolean | IsCoincident () |
Checks if the edges are coincident really. More... | |
Static Protected Member Functions | |
static Standard_Boolean | FindParameters (const BRepAdaptor_Curve &theBAC, const Standard_Real aT1, const Standard_Real aT2, const Standard_Real theTol, 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_Curve > | myGeom1 |
Handle< Geom_Curve > | myGeom2 |
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 |
Standard_Boolean | myQuickCoincidenceCheck |
Allows avoiding use Edge-Edge intersection algorithm (i.e. speeding up the Boolean algorithm) if the edges are coincided really. If it is not evidently set of this flag should be avoided (otherwise, the performance of Boolean algorithm will be slower). More... | |
The class provides Edge/Edge intersection algorithm based on the intersection between edges bounding boxes.
IntTools_EdgeEdge::IntTools_EdgeEdge | ( | ) |
Empty contructor.
IntTools_EdgeEdge::~IntTools_EdgeEdge | ( | ) |
Destructor.
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.
|
protected |
Adds common part of the given type to myCommonParts.
|
protected |
Checks if edges coincide on the ranges.
|
protected |
Checks the data.
const IntTools_SequenceOfCommonPrts& IntTools_EdgeEdge::CommonParts | ( | ) | const |
Returns common parts.
|
protected |
Computes Line/Line intersection.
|
protected |
Looking for the minimal distance between edges on the ranges.
|
staticprotected |
Looking for the range of the edge whick is in the box.
|
protected |
Intermediate function.
|
protected |
Looking for the exact intersection ranges.
|
inline |
Returns the flag myQuickCoincidenceCheck.
|
protected |
Checks if the edges are coincident really.
Standard_Boolean IntTools_EdgeEdge::IsDone | ( | ) | const |
Returns TRUE if common part(s) is(are) found.
|
protected |
Checks is there an intersection between edges on the given ranges (for nearly conicident edges)
|
protected |
Merges found solutions.
void IntTools_EdgeEdge::Perform | ( | ) |
Performs the intersection between edges.
|
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.
|
inline |
Sets the flag myQuickCoincidenceCheck.
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
Allows avoiding use Edge-Edge intersection algorithm (i.e. speeding up the Boolean algorithm) if the edges are coincided really. If it is not evidently set of this flag should be avoided (otherwise, the performance of Boolean algorithm will be slower).
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |