Open CASCADE Technology 7.8.0
|
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>
Public Member Functions | |
BOPDS_IteratorSI () | |
Empty constructor. | |
virtual | ~BOPDS_IteratorSI () |
BOPDS_IteratorSI (const Handle< NCollection_BaseAllocator > &theAllocator) | |
Constructor. | |
void | UpdateByLevelOfCheck (const Standard_Integer 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 Handle< NCollection_BaseAllocator > &theAllocator) | |
Constructor. | |
void | SetDS (const BOPDS_PDS &pDS) |
Modifier Sets the data structure <pDS> to process. | |
const BOPDS_DS & | DS () 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. | |
Standard_Boolean | More () const |
Returns true if still there are pairs of intersected shapes. | |
void | Next () |
Moves iterations ahead. | |
void | Value (Standard_Integer &theIndex1, Standard_Integer &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 Handle< IntTools_Context > &theCtx=Handle< IntTools_Context >(), const Standard_Boolean theCheckOBB=Standard_False, const Standard_Real theFuzzyValue=Precision::Confusion()) |
Perform the intersection algorithm and prepare the results to be used. | |
void | IntersectExt (const TColStd_MapOfInteger &theIndicies) |
Updates the tree of Bounding Boxes with increased boxes and intersects such elements with the tree. | |
Standard_Integer | ExpectedLength () const |
Returns the number of intersections founded. | |
Standard_Integer | BlockLength () const |
Returns the block length. | |
void | SetRunParallel (const Standard_Boolean 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. | |
Standard_Boolean | RunParallel () const |
Returns the flag of parallel processing. | |
Protected Member Functions | |
virtual void | Intersect (const Handle< IntTools_Context > &theCtx=Handle< IntTools_Context >(), const Standard_Boolean theCheckOBB=Standard_False, const Standard_Real theFuzzyValue=Precision::Confusion()) override |
Intersects the Bounding boxes of sub-shapes of the arguments with the tree and saves the interfering pairs for further geometrical intersection. | |
Protected methods for bounding boxes intersection |
Additional Inherited Members | |
Static Public Member Functions inherited from BOPDS_Iterator | |
static Standard_Integer | NbExtInterfs () |
Protected Attributes inherited from BOPDS_Iterator | |
Handle< NCollection_BaseAllocator > | myAllocator |
Allocator. | |
Standard_Integer | myLength |
Length of the intersection vector of particular intersection type. | |
BOPDS_PDS | myDS |
Data Structure. | |
BOPDS_VectorOfVectorOfPair | myLists |
Pairs with interfering bounding boxes. | |
BOPDS_VectorOfPair::Iterator | myIterator |
Iterator on each interfering type. | |
Standard_Boolean | myRunParallel |
Flag for parallel processing. | |
BOPDS_VectorOfVectorOfPair | myExtLists |
Extra pairs of sub-shapes found after intersection of increased sub-shapes. | |
Standard_Boolean | myUseExt |
Information flag for using the extra lists. | |
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.
BOPDS_IteratorSI::BOPDS_IteratorSI | ( | ) |
Empty constructor.
|
virtual |
BOPDS_IteratorSI::BOPDS_IteratorSI | ( | const Handle< NCollection_BaseAllocator > & | theAllocator | ) |
Constructor.
theAllocator | the allocator to manage the memory |
|
overrideprotectedvirtual |
Intersects the Bounding boxes of sub-shapes of the arguments with the tree and saves the interfering pairs for further geometrical intersection.
Reimplemented from BOPDS_Iterator.
void BOPDS_IteratorSI::UpdateByLevelOfCheck | ( | const Standard_Integer | 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.