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 | |
| 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 Handle< IntTools_Context > &theCtx=Handle< IntTools_Context >(), const Standard_Boolean theCheckOBB=Standard_False, const Standard_Real theFuzzyValue=Precision::Confusion()) | 
| 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.
| const BOPDS_DS & BOPDS_Iterator::DS | ( | ) | const | 
Selector Returns the data structure.
| 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 | 
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.
| void BOPDS_Iterator::SetDS | ( | const BOPDS_PDS & | pDS | ) | 
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.