Open CASCADE Technology  7.3.1.dev
Public Member Functions
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:
Inheritance graph
[legend]

Public Member Functions

 BOPDS_Iterator ()
 Empty contructor. More...
 
virtual ~BOPDS_Iterator ()
 
 BOPDS_Iterator (const Handle< NCollection_BaseAllocator > &theAllocator)
 Contructor theAllocator - the allocator to manage the memory. More...
 
void SetDS (const BOPDS_PDS &pDS)
 Modifier Sets the data structure <pDS> to process. More...
 
const BOPDS_DSDS () const
 Selector Returns the data structure. More...
 
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. More...
 
Standard_Boolean More () const
 Returns true if still there are pairs of intersected shapes. More...
 
void Next ()
 Moves iterations ahead. More...
 
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. More...
 
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. More...
 
void PrepareExt (const TColStd_MapOfInteger &theIndicies)
 Updates the tree of Bounding Boxes with increased boxes and intersects such elements with the tree. More...
 
Standard_Integer ExpectedLength () const
 Returns the number of intersections founded. More...
 
Standard_Integer BlockLength () const
 Returns the block length. More...
 
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. More...
 
Standard_Boolean RunParallel () const
 Returns the flag of parallel processing. More...
 

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. More...
 
void IntersectExt (const TColStd_MapOfInteger &theIndices)
 Intersects the bounding boxes of the shapes with given indices in DS with the tree of bounding boxes and saves the interfering pairs in extra lists for further geometrical intersection. More...
 

Protected Attributes

Fields
Handle< NCollection_BaseAllocatormyAllocator
 Allocator. More...
 
Standard_Integer myLength
 Length of the intersection vector of particular intersection type. More...
 
BOPDS_PDS myDS
 Data Structure. More...
 
BOPDS_VectorOfVectorOfPair myLists
 Pairs with interfering bounding boxes. More...
 
BOPDS_VectorOfPair::Iterator myIterator
 Iterator on each interfering type. More...
 
Standard_Boolean myRunParallel
 Flag for parallel processing. More...
 
BOPTools_BoxBndTree myBoxTree
 Unbalanced tree of bounding boxes. More...
 
BOPDS_VectorOfVectorOfPair myExtLists
 Extra pairs of sub-shapes found after intersection of increased sub-shapes. More...
 
Standard_Boolean myUseExt
 Information flag for using the extra lists. More...
 

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

◆ ~BOPDS_Iterator()

virtual BOPDS_Iterator::~BOPDS_Iterator ( )
virtual

◆ BOPDS_Iterator() [2/2]

BOPDS_Iterator::BOPDS_Iterator ( const Handle< NCollection_BaseAllocator > &  theAllocator)

Contructor theAllocator - the allocator to manage the memory.

Member Function Documentation

◆ BlockLength()

Standard_Integer BOPDS_Iterator::BlockLength ( ) const

Returns the block length.

◆ DS()

const BOPDS_DS& BOPDS_Iterator::DS ( ) const

Selector Returns the data structure.

◆ ExpectedLength()

Standard_Integer 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 Handle< IntTools_Context > &  theCtx = HandleIntTools_Context >(),
const Standard_Boolean  theCheckOBB = Standard_False,
const Standard_Real  theFuzzyValue = Precision::Confusion() 
)
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.

◆ IntersectExt()

void BOPDS_Iterator::IntersectExt ( const TColStd_MapOfInteger theIndices)
protected

Intersects the bounding boxes of the shapes with given indices in DS with the tree of bounding boxes and saves the interfering pairs in extra lists for further geometrical intersection.

◆ More()

Standard_Boolean BOPDS_Iterator::More ( ) const

Returns true if still there are pairs of intersected shapes.

◆ NbExtInterfs()

static Standard_Integer BOPDS_Iterator::NbExtInterfs ( )
inlinestatic

◆ Next()

void BOPDS_Iterator::Next ( )

Moves iterations ahead.

◆ Prepare()

virtual void BOPDS_Iterator::Prepare ( const Handle< IntTools_Context > &  theCtx = HandleIntTools_Context >(),
const Standard_Boolean  theCheckOBB = Standard_False,
const Standard_Real  theFuzzyValue = Precision::Confusion() 
)
virtual

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

◆ PrepareExt()

void BOPDS_Iterator::PrepareExt ( const TColStd_MapOfInteger theIndicies)

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

◆ RunParallel()

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

◆ Value()

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.

Field Documentation

◆ myAllocator

Handle< NCollection_BaseAllocator > BOPDS_Iterator::myAllocator
protected

Allocator.

◆ myBoxTree

BOPTools_BoxBndTree BOPDS_Iterator::myBoxTree
protected

Unbalanced tree of bounding boxes.

◆ myDS

BOPDS_PDS BOPDS_Iterator::myDS
protected

Data Structure.

◆ myExtLists

BOPDS_VectorOfVectorOfPair BOPDS_Iterator::myExtLists
protected

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

◆ myIterator

BOPDS_VectorOfPair::Iterator BOPDS_Iterator::myIterator
protected

Iterator on each interfering type.

◆ myLength

Standard_Integer BOPDS_Iterator::myLength
protected

Length of the intersection vector of particular intersection type.

◆ myLists

BOPDS_VectorOfVectorOfPair BOPDS_Iterator::myLists
protected

Pairs with interfering bounding boxes.

◆ myRunParallel

Standard_Boolean BOPDS_Iterator::myRunParallel
protected

Flag for parallel processing.

◆ myUseExt

Standard_Boolean BOPDS_Iterator::myUseExt
protected

Information flag for using the extra lists.


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