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