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
    BOPDS_IteratorSI Class Reference

    The class BOPDS_IteratorSI is 1.to compute self-intersections between BRep sub-shapes of each argument of an operation (see the class BOPDS_DS) in terms of theirs bounding boxes 2.provides interface to iterare the pairs of intersected sub-shapes of given type. More...

    #include <BOPDS_IteratorSI.hxx>

    Inheritance diagram for BOPDS_IteratorSI:

    Public Member Functions

     BOPDS_IteratorSI ()
     Empty constructor.
     ~BOPDS_IteratorSI () override
     BOPDS_IteratorSI (const occ::handle< NCollection_BaseAllocator > &theAllocator)
     Constructor.
    void UpdateByLevelOfCheck (const int theLevel)
     Updates the lists of possible intersections according to the value of <theLevel>. It defines which interferferences will be checked: 0 - only V/V; 1 - V/V and V/E; 2 - V/V, V/E and E/E; 3 - V/V, V/E, E/E and V/F; 4 - V/V, V/E, E/E, V/F and E/F; other - all interferences.
    Public Member Functions inherited from BOPDS_Iterator
     BOPDS_Iterator ()
     Empty constructor.
    virtual ~BOPDS_Iterator ()
     BOPDS_Iterator (const occ::handle< NCollection_BaseAllocator > &theAllocator)
     Constructor.
    void SetDS (const BOPDS_PDS &pDS)
     Modifier Sets the data structure <pDS> to process.
    const BOPDS_DSDS () const
     Selector Returns the data structure.
    void Initialize (const TopAbs_ShapeEnum theType1, const TopAbs_ShapeEnum theType2)
     Initializes the iterator theType1 - the first type of shape theType2 - the second type of shape.
    bool More () const
     Returns true if still there are pairs of intersected shapes.
    void Next ()
     Moves iterations ahead.
    void Value (int &theIndex1, int &theIndex2) const
     Returns indices (DS) of intersected shapes theIndex1 - the index of the first shape theIndex2 - the index of the second shape.
    virtual void Prepare (const occ::handle< IntTools_Context > &theCtx=occ::handle< IntTools_Context >(), const bool theCheckOBB=false, const double theFuzzyValue=Precision::Confusion())
     Perform the intersection algorithm and prepare the results to be used.
    void IntersectExt (const NCollection_Map< int > &theIndicies)
     Updates the tree of Bounding Boxes with increased boxes and intersects such elements with the tree.
    int ExpectedLength () const
     Returns the number of intersections founded.
    int BlockLength () const
     Returns the block length.
    void SetRunParallel (const bool theFlag)
     Set the flag of parallel processing if <theFlag> is true the parallel processing is switched on if <theFlag> is false the parallel processing is switched off.
    bool RunParallel () const
     Returns the flag of parallel processing.

    Protected Member Functions

    void Intersect (const occ::handle< IntTools_Context > &theCtx=occ::handle< IntTools_Context >(), const bool theCheckOBB=false, const double theFuzzyValue=Precision::Confusion()) override
    Protected Member Functions inherited from BOPDS_Iterator

    Additional Inherited Members

    Static Public Member Functions inherited from BOPDS_Iterator
    static int NbExtInterfs ()
    Protected Attributes inherited from BOPDS_Iterator
    occ::handle< NCollection_BaseAllocatormyAllocator
     Allocator.
    int myLength
     Length of the intersection vector of particular intersection type.
    BOPDS_PDS myDS
     Data Structure.
    NCollection_DynamicArray< NCollection_DynamicArray< BOPDS_Pair > > myLists
     Pairs with interfering bounding boxes.
    NCollection_DynamicArray< BOPDS_Pair >::Iterator myIterator
     Iterator on each interfering type.
    bool myRunParallel
     Flag for parallel processing.
    NCollection_DynamicArray< NCollection_DynamicArray< BOPDS_Pair > > myExtLists
     Extra pairs of sub-shapes found after intersection of increased sub-shapes.
    bool myUseExt
     Information flag for using the extra lists.

    Detailed Description

    The class BOPDS_IteratorSI is 1.to compute self-intersections between BRep sub-shapes of each argument of an operation (see the class BOPDS_DS) in terms of theirs bounding boxes 2.provides interface to iterare the pairs of intersected sub-shapes of given type.

    Constructor & Destructor Documentation

    ◆ BOPDS_IteratorSI() [1/2]

    BOPDS_IteratorSI::BOPDS_IteratorSI ( )

    Empty constructor.

    ◆ ~BOPDS_IteratorSI()

    BOPDS_IteratorSI::~BOPDS_IteratorSI ( )
    override

    ◆ BOPDS_IteratorSI() [2/2]

    BOPDS_IteratorSI::BOPDS_IteratorSI ( const occ::handle< NCollection_BaseAllocator > & theAllocator)

    Constructor.

    Parameters
    theAllocatorthe allocator to manage the memory

    Member Function Documentation

    ◆ Intersect()

    void BOPDS_IteratorSI::Intersect ( const occ::handle< IntTools_Context > & theCtx = occ::handleIntTools_Context >(),
    const bool theCheckOBB = false,
    const double theFuzzyValue = Precision::Confusion() )
    overrideprotectedvirtual

    Reimplemented from BOPDS_Iterator.

    ◆ UpdateByLevelOfCheck()

    void BOPDS_IteratorSI::UpdateByLevelOfCheck ( const int theLevel)

    Updates the lists of possible intersections according to the value of <theLevel>. It defines which interferferences will be checked: 0 - only V/V; 1 - V/V and V/E; 2 - V/V, V/E and E/E; 3 - V/V, V/E, E/E and V/F; 4 - V/V, V/E, E/E, V/F and E/F; other - all interferences.


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