OCCT3D OCCT 8.0.1
OCCT documentation

Search guides and API reference

Enter at least two characters.

    Open CASCADE Technology Reference Manual 8.0.1
    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()

    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: