Open CASCADE Technology Reference Manual 8.0.0
Loading...
Searching...
No Matches
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 constructor.
 
 ~IntTools_EdgeEdge ()
 Destructor.
 
 IntTools_EdgeEdge (const TopoDS_Edge &theEdge1, const TopoDS_Edge &theEdge2)
 Constructor.
 
 IntTools_EdgeEdge (const TopoDS_Edge &theEdge1, const double aT11, const double aT12, const TopoDS_Edge &theEdge2, const double aT21, const double aT22)
 Constructor.
 
void SetEdge1 (const TopoDS_Edge &theEdge)
 Sets the first edge.
 
void SetEdge1 (const TopoDS_Edge &theEdge, const double aT1, const double aT2)
 Sets the first edge and its range.
 
void SetRange1 (const IntTools_Range &theRange1)
 Sets the range for the first edge.
 
void SetRange1 (const double aT1, const double aT2)
 Sets the range for the first edge.
 
void SetEdge2 (const TopoDS_Edge &theEdge)
 Sets the second edge.
 
void SetEdge2 (const TopoDS_Edge &theEdge, const double aT1, const double aT2)
 Sets the first edge and its range.
 
void SetRange2 (const IntTools_Range &theRange)
 Sets the range for the second edge.
 
void SetRange2 (const double aT1, const double aT2)
 Sets the range for the second edge.
 
void SetFuzzyValue (const double theFuzz)
 Sets the Fuzzy value.
 
void Perform ()
 Performs the intersection between edges.
 
bool IsDone () const
 Returns TRUE if common part(s) is(are) found.
 
double FuzzyValue () const
 Returns Fuzzy value.
 
const NCollection_Sequence< IntTools_CommonPrt > & CommonParts () const
 Returns common parts.
 
void UseQuickCoincidenceCheck (const bool bFlag)
 Sets the flag myQuickCoincidenceCheck.
 
bool IsCoincidenceCheckedQuickly ()
 Returns the flag myQuickCoincidenceCheck.
 

Protected Member Functions

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

Static Protected Member Functions

static bool FindParameters (const BRepAdaptor_Curve &theBAC, const double aT1, const double aT2, const double theTol, const double theRes, const double thePTol, const double theResCoeff, const Bnd_Box &theCBox, double &aTB1, double &aTB2)
 Looking for the range of the edge which is in the box.
 

Protected Attributes

TopoDS_Edge myEdge1
 
TopoDS_Edge myEdge2
 
occ::handle< Geom_CurvemyGeom1
 
occ::handle< Geom_CurvemyGeom2
 
BRepAdaptor_Curve myCurve1
 
BRepAdaptor_Curve myCurve2
 
double myTol1
 
double myTol2
 
double myTol
 
double myFuzzyValue
 
double myRes1
 
double myRes2
 
double myResCoeff1
 
double myResCoeff2
 
double myPTol1
 
double myPTol2
 
IntTools_Range myRange1
 
IntTools_Range myRange2
 
bool mySwap
 
int myErrorStatus
 
NCollection_Sequence< IntTools_CommonPrtmyCommonParts
 
bool 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).
 

Detailed Description

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

Constructor & Destructor Documentation

◆ IntTools_EdgeEdge() [1/3]

IntTools_EdgeEdge::IntTools_EdgeEdge ( )

Empty constructor.

◆ ~IntTools_EdgeEdge()

IntTools_EdgeEdge::~IntTools_EdgeEdge ( )

Destructor.

◆ IntTools_EdgeEdge() [2/3]

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

Constructor.

◆ IntTools_EdgeEdge() [3/3]

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

Constructor.

Member Function Documentation

◆ AddSolution()

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

Adds common part of the given type to myCommonParts.

◆ CheckCoincidence()

int IntTools_EdgeEdge::CheckCoincidence ( const double aT11,
const double aT12,
const double aT21,
const double aT22,
const double theCriteria,
const double theCurveRes1 )
protected

Checks if edges coincide on the ranges.

◆ CheckData()

void IntTools_EdgeEdge::CheckData ( )
protected

Checks the data.

◆ CommonParts()

const NCollection_Sequence< IntTools_CommonPrt > & IntTools_EdgeEdge::CommonParts ( ) const

Returns common parts.

◆ ComputeLineLine()

void IntTools_EdgeEdge::ComputeLineLine ( )
protected

Computes Line/Line intersection.

◆ FindBestSolution()

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

Looking for the minimal distance between edges on the ranges.

◆ FindParameters()

static bool IntTools_EdgeEdge::FindParameters ( const BRepAdaptor_Curve & theBAC,
const double aT1,
const double aT2,
const double theTol,
const double theRes,
const double thePTol,
const double theResCoeff,
const Bnd_Box & theCBox,
double & aTB1,
double & aTB2 )
staticprotected

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

◆ FindSolutions() [1/2]

void IntTools_EdgeEdge::FindSolutions ( const IntTools_Range & theR1,
const Bnd_Box & theBox1,
const IntTools_Range & theR2,
const Bnd_Box & theBox2,
NCollection_Sequence< IntTools_Range > & theRanges1,
NCollection_Sequence< IntTools_Range > & theRanges2 )
protected

Looking for the exact intersection ranges.

◆ FindSolutions() [2/2]

void IntTools_EdgeEdge::FindSolutions ( NCollection_Sequence< IntTools_Range > & theRanges1,
NCollection_Sequence< IntTools_Range > & theRanges2,
bool & bSplit2 )
protected

Intermediate function.

◆ FuzzyValue()

double IntTools_EdgeEdge::FuzzyValue ( ) const

Returns Fuzzy value.

◆ IsCoincidenceCheckedQuickly()

bool IntTools_EdgeEdge::IsCoincidenceCheckedQuickly ( )
inline

Returns the flag myQuickCoincidenceCheck.

◆ IsCoincident()

bool IntTools_EdgeEdge::IsCoincident ( )
protected

Checks if the edges are coincident really.

◆ IsDone()

bool IntTools_EdgeEdge::IsDone ( ) const

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

◆ IsIntersection()

bool IntTools_EdgeEdge::IsIntersection ( const double aT11,
const double aT12,
const double aT21,
const double aT22 )
protected

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

◆ MergeSolutions()

void IntTools_EdgeEdge::MergeSolutions ( const NCollection_Sequence< IntTools_Range > & theRanges1,
const NCollection_Sequence< IntTools_Range > & theRanges2,
const bool bSplit2 )
protected

Merges found solutions.

◆ Perform()

void IntTools_EdgeEdge::Perform ( )

Performs the intersection between edges.

◆ Prepare()

void IntTools_EdgeEdge::Prepare ( )
protected

Prepares the data.

◆ SetEdge1() [1/2]

void IntTools_EdgeEdge::SetEdge1 ( const TopoDS_Edge & theEdge)

Sets the first edge.

◆ SetEdge1() [2/2]

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

Sets the first edge and its range.

◆ SetEdge2() [1/2]

void IntTools_EdgeEdge::SetEdge2 ( const TopoDS_Edge & theEdge)

Sets the second edge.

◆ SetEdge2() [2/2]

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

Sets the first edge and its range.

◆ SetFuzzyValue()

void IntTools_EdgeEdge::SetFuzzyValue ( const double theFuzz)

Sets the Fuzzy value.

◆ SetRange1() [1/2]

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

Sets the range for the first edge.

◆ SetRange1() [2/2]

void IntTools_EdgeEdge::SetRange1 ( const IntTools_Range & theRange1)

Sets the range for the first edge.

◆ SetRange2() [1/2]

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

Sets the range for the second edge.

◆ SetRange2() [2/2]

void IntTools_EdgeEdge::SetRange2 ( const IntTools_Range & theRange)

Sets the range for the second edge.

◆ UseQuickCoincidenceCheck()

void IntTools_EdgeEdge::UseQuickCoincidenceCheck ( const bool bFlag)
inline

Sets the flag myQuickCoincidenceCheck.

Field Documentation

◆ myCommonParts

NCollection_Sequence<IntTools_CommonPrt> IntTools_EdgeEdge::myCommonParts
protected

◆ myCurve1

BRepAdaptor_Curve IntTools_EdgeEdge::myCurve1
protected

◆ myCurve2

BRepAdaptor_Curve IntTools_EdgeEdge::myCurve2
protected

◆ myEdge1

TopoDS_Edge IntTools_EdgeEdge::myEdge1
protected

◆ myEdge2

TopoDS_Edge IntTools_EdgeEdge::myEdge2
protected

◆ myErrorStatus

int IntTools_EdgeEdge::myErrorStatus
protected

◆ myFuzzyValue

double IntTools_EdgeEdge::myFuzzyValue
protected

◆ myGeom1

occ::handle<Geom_Curve> IntTools_EdgeEdge::myGeom1
protected

◆ myGeom2

occ::handle<Geom_Curve> IntTools_EdgeEdge::myGeom2
protected

◆ myPTol1

double IntTools_EdgeEdge::myPTol1
protected

◆ myPTol2

double IntTools_EdgeEdge::myPTol2
protected

◆ myQuickCoincidenceCheck

bool IntTools_EdgeEdge::myQuickCoincidenceCheck
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).

◆ myRange1

IntTools_Range IntTools_EdgeEdge::myRange1
protected

◆ myRange2

IntTools_Range IntTools_EdgeEdge::myRange2
protected

◆ myRes1

double IntTools_EdgeEdge::myRes1
protected

◆ myRes2

double IntTools_EdgeEdge::myRes2
protected

◆ myResCoeff1

double IntTools_EdgeEdge::myResCoeff1
protected

◆ myResCoeff2

double IntTools_EdgeEdge::myResCoeff2
protected

◆ mySwap

bool IntTools_EdgeEdge::mySwap
protected

◆ myTol

double IntTools_EdgeEdge::myTol
protected

◆ myTol1

double IntTools_EdgeEdge::myTol1
protected

◆ myTol2

double IntTools_EdgeEdge::myTol2
protected

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