Open CASCADE Technology 7.8.2.dev
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:

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

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

◆ ~BOPDS_Iterator()

virtual BOPDS_Iterator::~BOPDS_Iterator ( )
virtual

◆ BOPDS_Iterator() [2/2]

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

Constructor.

Parameters
theAllocatorthe 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 & theIndicies)

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

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

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

◆ 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: