Open CASCADE Technology Reference Manual 8.0.0
Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions
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:
Inheritance graph
[legend]

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 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.

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: