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

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

    #include <BOPDS_Iterator.hxx>

    Inheritance diagram for BOPDS_Iterator:

    Public Member Functions

     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.

    Static Public Member Functions

    Number of extra interfering types
    static int NbExtInterfs ()

    Protected Member Functions

    Protected methods for bounding boxes intersection

    Intersects the Bounding boxes of sub-shapes of the arguments with the tree and saves the interfering pairs for further geometrical intersection.

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

    Protected Attributes

    Fields
    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_Iterator is 1.to compute intersections between BRep sub-shapes of arguments of an operation (see the class BOPDS_DS) in terms of theirs bounding boxes 2.provides interface to iterate the pairs of intersected sub-shapes of given type.

    Constructor & Destructor Documentation

    ◆ BOPDS_Iterator() [1/2]

    BOPDS_Iterator::BOPDS_Iterator ( )

    Empty constructor.

    ◆ ~BOPDS_Iterator()

    virtual BOPDS_Iterator::~BOPDS_Iterator ( )
    virtual

    ◆ BOPDS_Iterator() [2/2]

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

    Constructor.

    Parameters
    theAllocatorthe allocator to manage the memory

    Member Function Documentation

    ◆ BlockLength()

    int BOPDS_Iterator::BlockLength ( ) const

    Returns the block length.

    ◆ DS()

    const BOPDS_DS & BOPDS_Iterator::DS ( ) const

    Selector Returns the data structure.

    ◆ ExpectedLength()

    int BOPDS_Iterator::ExpectedLength ( ) const

    Returns the number of intersections founded.

    ◆ Initialize()

    void BOPDS_Iterator::Initialize ( const TopAbs_ShapeEnum theType1,
    const TopAbs_ShapeEnum theType2 )

    Initializes the iterator theType1 - the first type of shape theType2 - the second type of shape.

    ◆ Intersect()

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

    Reimplemented in BOPDS_IteratorSI.

    ◆ IntersectExt()

    void BOPDS_Iterator::IntersectExt ( const NCollection_Map< int > & theIndicies)

    Updates the tree of Bounding Boxes with increased boxes and intersects such elements with the tree.

    ◆ More()

    bool BOPDS_Iterator::More ( ) const

    Returns true if still there are pairs of intersected shapes.

    ◆ NbExtInterfs()

    int BOPDS_Iterator::NbExtInterfs ( )
    inlinestatic

    ◆ Next()

    void BOPDS_Iterator::Next ( )

    Moves iterations ahead.

    ◆ Prepare()

    virtual void BOPDS_Iterator::Prepare ( const occ::handle< IntTools_Context > & theCtx = occ::handleIntTools_Context >(),
    const bool theCheckOBB = false,
    const double theFuzzyValue = Precision::Confusion() )
    virtual

    Perform the intersection algorithm and prepare the results to be used.

    ◆ RunParallel()

    bool BOPDS_Iterator::RunParallel ( ) const

    Returns the flag of parallel processing.

    ◆ SetDS()

    void BOPDS_Iterator::SetDS ( const BOPDS_PDS & pDS)

    Modifier Sets the data structure <pDS> to process.

    ◆ SetRunParallel()

    void BOPDS_Iterator::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.

    ◆ Value()

    void BOPDS_Iterator::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.

    Field Documentation

    ◆ myAllocator

    occ::handle<NCollection_BaseAllocator> BOPDS_Iterator::myAllocator
    protected

    Allocator.

    ◆ myDS

    BOPDS_PDS BOPDS_Iterator::myDS
    protected

    Data Structure.

    ◆ myExtLists

    NCollection_DynamicArray<NCollection_DynamicArray<BOPDS_Pair> > BOPDS_Iterator::myExtLists
    protected

    Extra pairs of sub-shapes found after intersection of increased sub-shapes.

    ◆ myIterator

    NCollection_DynamicArray<BOPDS_Pair>::Iterator BOPDS_Iterator::myIterator
    protected

    Iterator on each interfering type.

    ◆ myLength

    int BOPDS_Iterator::myLength
    protected

    Length of the intersection vector of particular intersection type.

    ◆ myLists

    NCollection_DynamicArray<NCollection_DynamicArray<BOPDS_Pair> > BOPDS_Iterator::myLists
    protected

    Pairs with interfering bounding boxes.

    ◆ myRunParallel

    bool BOPDS_Iterator::myRunParallel
    protected

    Flag for parallel processing.

    ◆ myUseExt

    bool BOPDS_Iterator::myUseExt
    protected

    Information flag for using the extra lists.


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