Open CASCADE Technology 7.8.0
Public Member Functions | Protected Member Functions
BOPDS_IteratorSI Class Reference

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>

Inheritance diagram for BOPDS_IteratorSI:
Inheritance graph
[legend]

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

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

Constructor & Destructor Documentation

◆ BOPDS_IteratorSI() [1/2]

BOPDS_IteratorSI::BOPDS_IteratorSI ( )

Empty constructor.

◆ ~BOPDS_IteratorSI()

virtual BOPDS_IteratorSI::~BOPDS_IteratorSI ( )
virtual

◆ BOPDS_IteratorSI() [2/2]

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

Constructor.

Parameters
theAllocatorthe allocator to manage the memory

Member Function Documentation

◆ Intersect()

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

◆ UpdateByLevelOfCheck()

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.


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