Open CASCADE Technology 6.5.2
Public Member Functions | Protected Member Functions | Protected Attributes
BOPTools_PaveFiller Class Reference

The algorithm that provides
1. creation of the data structure (DS)
2. creation of the interferences' pool
3. invocation of Perform() to fill the DS

#include <BOPTools_PaveFiller.hxx>

Inheritance diagram for BOPTools_PaveFiller:
Inheritance graph
[legend]

Public Member Functions

void * operator new (size_t, void *anAddress)
void * operator new (size_t size)
void operator delete (void *anAddress)
 BOPTools_PaveFiller ()
 Empty Contructor

 BOPTools_PaveFiller (const BOPTools_InterferencePool &aIP)
 Constructor

 BOPTools_PaveFiller (const BOPTools_InterferencePool &theIP, const BOPTools_SSIntersectionAttribute &theSectionAttribute)
 Constructor

virtual void Destroy ()
 Destructor

virtual ~BOPTools_PaveFiller ()
virtual void Perform ()
 Fills the DS

virtual void PartialPerform (const TColStd_SetOfInteger &anObjSubSet, const TColStd_SetOfInteger &aToolSubSet)
virtual void ToCompletePerform ()
const IntTools_ContextContext () const
 Selector

IntTools_ContextChangeContext ()
 Selector

void SetInterferencePool (const BOPTools_InterferencePool &aPool)
 Selector

Standard_Boolean IsDone () const
 Selector

const BOPTools_PavePoolPavePool () const
 Selector

BOPTools_PavePoolChangePavePool ()
 Selector

const BOPTools_CommonBlockPoolCommonBlockPool () const
 Selector

BOPTools_CommonBlockPoolChangeCommonBlockPool ()
 Selector

const BOPTools_SplitShapesPoolSplitShapesPool () const
 Selector

BOPTools_SplitShapesPoolChangeSplitShapesPool ()
 Selector

BooleanOperations_PShapesDataStructure DS ()
 Selector

BOPTools_PInterferencePool InterfPool ()
 Selector

const
BOPTools_IteratorOfCoupleOfShape
IteratorOfCoupleOfShape () const
 Selector

const
BOPTools_SSIntersectionAttribute
SectionAttribute () const
 Selector

void SetSectionAttribute (const BOPTools_SSIntersectionAttribute &anAtt)
 Selector

Standard_Integer SplitsInFace (const Standard_Integer aBid, const Standard_Integer nF1, const Standard_Integer nF2, TColStd_ListOfInteger &aLs)
 For the face <nF1> get all splits that are IN-2D
to the face <nF2>; The result is in <aLs>
Returns 0 if OK;

Standard_Integer SplitsInFace (const Standard_Integer nE1, const Standard_Integer nF2, TColStd_ListOfInteger &aLs)
 For the edge <nE1> get all splits that are IN-2D
to the face <nF1>; The result is in <aLs>
Returns 0 if OK;

Standard_Integer SplitsOnEdge (const Standard_Integer nE1, const Standard_Integer nE2, TColStd_ListOfInteger &aLs)
 For the edge <nE1> get all splits that are ON-3D
to the edge <nE2>; The result is in <aLs>
Returns 0 if OK;

Standard_Integer SplitsOnFace (const Standard_Integer nE1, const Standard_Integer nF2, TColStd_ListOfInteger &aLs)
 For the edge <nE1> get all splits that are ON-3D
to the face <nF2>; The result is in <aLs>
Returns 0 if OK;

Standard_Integer SplitsOnFace (const Standard_Integer aBid, const Standard_Integer nF1, const Standard_Integer nF2, TColStd_ListOfInteger &aLs)
 For the face <nF1> get all splits that are ON-3D
to the face <nF2>; The result is in <aLs>
Returns 0 if OK;

Standard_Integer SplitsInFace (const Standard_Integer aBid, const Standard_Integer nF1, const Standard_Integer nF2, BOPTools_ListOfPaveBlock &aLs)
 For the face <nF1> get all PaveBlocks that are IN-2D
to the face <nF2>; The result is in <aLs>
Returns 0 if OK;

Standard_Integer SplitsInFace (const Standard_Integer nE1, const Standard_Integer nF2, BOPTools_ListOfPaveBlock &aLs)
 For the edge <nE1> get all PaveBlocks that are IN-2D
to the face <nF1>; The result is in <aLs>
Returns 0 if OK;

Standard_Integer SplitsOnEdge (const Standard_Integer nE1, const Standard_Integer nE2, BOPTools_ListOfPaveBlock &aLs)
 For the edge <nE1> get all PaveBlocks that are ON-3D
to the edge <nE2>; The result is in <aLs>
Returns 0 if OK;

Standard_Integer SplitsOnFace (const Standard_Integer nE1, const Standard_Integer nF2, BOPTools_ListOfPaveBlock &aLs)
 For the edge <nE1> get all PaveBlocks that are ON-3D
to the face <nF2>; The result is in <aLs>
Returns 0 if OK;

Standard_Integer SplitsOnFace (const Standard_Integer aBid, const Standard_Integer nF1, const Standard_Integer nF2, BOPTools_ListOfPaveBlock &aLs)
 For the face <nF1> get all PaveBlocks that are ON-3D
to the face <nF2>; The result is in <aLs>
Returns 0 if OK;

Standard_Integer FindSDVertex (const Standard_Integer nV) const
 Find for the vertex <nV> SD-vertex (if possible) and return
its DS-index. Otherwise it returns 0.

void PrepareSetForFace (const Standard_Integer nF1, const Standard_Integer nF2, BOPTools_PaveSet &aPaveSet)
 For couple of faces <nF1>, <nF2> prepare set of all paves
of all edges <aPaveSet>

Protected Member Functions

virtual void PerformVV ()
 Computes Vertex/Vertex interferences

virtual void PerformVE ()
 Computes Vertex/Edge interferences

virtual void PerformVF ()
 Computes Vertex/Face interferences

virtual void PerformEE ()
 Computes Edge/Edge interferences

virtual void PerformEF ()
 Computes Edge/Face interferences

virtual void PerformFF ()
 Computes Face/Face interferences

void SortTypes (Standard_Integer &anInd1, Standard_Integer &anInd2) const
 Sorts the types of shapes with DS-indices
<anInd1> and <anInd2> in increasing order of
types of the shapes

void PerformNewVertices ()
Standard_Boolean IsSuccesstorsComputed (const Standard_Integer iF1, const Standard_Integer iF2) const
virtual void PrepareEdges ()
 Prepare end paves for each edge

virtual void PreparePaveBlocks (const TopAbs_ShapeEnum aType1, const TopAbs_ShapeEnum aType2)
 Prepare PaveBlocks for each edge (EE-interferences)

virtual void PreparePaveBlocks (const Standard_Integer anE)
 Prepare PaveBlocks for given edge (EE-interferences)

void RefinePavePool ()
 Refines myPavePool taking into account new Paves obtained from EE algo

void MakeSplitEdges ()
 Makes split edges from source edges

void DoSDEdges ()
 Update Lists of PaveBlocks with info about
indices of split edges that are Same Domain
with other splits or faces

void CorrectShrunkRanges (const Standard_Integer aSide, const BOPTools_Pave &aPave, IntTools_ShrunkRange &aSR)
 Update Shrunk Range <aSR> for Pave <aPave>

Standard_Integer SplitIndex (const BOPTools_PaveBlock &aPB)
 Returns the Index of Split edge for the PaveBlock <aPB>
in DS.
If the PaveBlock is not found, returns 0;

Standard_Boolean IsBlocksCoinside (const BOPTools_PaveBlock &aPB1, const BOPTools_PaveBlock &aPB2) const
 Returns TRUE if the two PaveBlocks have vertices
that touch each other in terms of Tolerances of
the vertices

void MakeBlocks ()
 Make Pave Blocks for intersection curves

void MakeAloneVertices ()
 Make vertices that are place of intersection
between faces

void PutPaveOnCurve (const BOPTools_PaveSet &aPaveSet, const Standard_Real aTolR3D, BOPTools_Curve &aBCurve)
 Among Paves from <aPaveSet> find ones that belong
to intersection curve <aBCurve> with 3D-tolerance
value <aTolR3D>

void PutPaveOnCurve (const BOPTools_Pave &aPave, const Standard_Real aTolR3D, BOPTools_Curve &aBCurve)
 Try to put Pave <aPave> on intersection curve <aBCurve>
with 3D-tolerance value <aTolR3D>

void PutPavesOnCurves ()
void MakeSectionEdges ()
 For all inrefered faces make section edges from
intersection curves and corresp. Paves on them

void PutBoundPaveOnCurve (BOPTools_Curve &aBC, BOPTools_SSInterference &aFF)
 Try to put own bounds of the curve on the curve <aBC>

void PutBoundPaveOnCurve (const gp_Pnt &aP, const Standard_Real aT, BOPTools_Curve &aBC, BOPTools_SSInterference &aFF)
 Try to put 3D-point <aP> (parameter aT) on the curve <aBC>

void PutBoundPaveOnCurveSpec (BOPTools_Curve &aBC, BOPTools_SSInterference &aFF)
 Try to put own bounds of the curve on the curve <aBC>


void PutBoundPaveOnCurveSpec (const gp_Pnt &aP, const Standard_Real aT, BOPTools_Curve &aBC, BOPTools_SSInterference &aFF)
 Try to put 3D-point <aP> (parameter aT) on the curve <aBC>

Standard_Boolean FindPave (const gp_Pnt &aP, const Standard_Real aTpV, const BOPTools_PaveSet &aPS, BOPTools_Pave &aPV)
 Returns TRUE if 3D-point <aP> coinsides with some Pave
from <aPS> (with 3D-tolerance value <aTpV>);
In TRUE case <aPV> will contain the Pave .

Standard_Boolean CheckCoincidence (const BOPTools_PaveBlock &aPB, const BOPTools_SSInterference &aFF)
 Returns TRUE if PaveBlock <aPB> lays on the faces
from FF-interference <aFF>

Standard_Integer CheckIntermediatePoint (const BOPTools_PaveBlock &aPB, const BOPTools_PaveBlock &aPBR, const Standard_Real aTol)
 Returns 0 if some arbitrary intermediate point from
PaveBlock <aPB> lays on the PaveBlock <aPBR>
(with 3D-tolerance value <aTol>)

Standard_Integer CheckFacePaves (const TopoDS_Vertex &aV, const Standard_Integer nF)
 Internal usage

void StickVertices (const Standard_Integer nF1, const Standard_Integer nF2, TColStd_IndexedMapOfInteger &aMV)
 Internal usage

Standard_Integer ExpectedPoolLength () const
 Returns the value of expected length of array of interferences

Standard_Boolean ExtendedTolerance (const Standard_Integer nV, Standard_Real &aTolExt)

Protected Attributes

BOPTools_PInterferencePool myIntrPool
BooleanOperations_PShapesDataStructure myDS
BOPTools_PavePool myPavePool
BOPTools_PavePool myPavePoolNew
BOPTools_CommonBlockPool myCommonBlockPool
BOPTools_SplitShapesPool mySplitShapesPool
BOPTools_SSIntersectionAttribute mySectionAttribute
Standard_Integer myNbSources
Standard_Integer myNbEdges
Standard_Boolean myIsDone
BOPTools_IteratorOfCoupleOfShape myDSIt
IntTools_Context myContext

Constructor & Destructor Documentation

BOPTools_PaveFiller::BOPTools_PaveFiller ( )
BOPTools_PaveFiller::BOPTools_PaveFiller ( const BOPTools_InterferencePool aIP)
BOPTools_PaveFiller::BOPTools_PaveFiller ( const BOPTools_InterferencePool theIP,
const BOPTools_SSIntersectionAttribute theSectionAttribute 
)
virtual BOPTools_PaveFiller::~BOPTools_PaveFiller ( ) [inline, virtual]

Member Function Documentation

BOPTools_CommonBlockPool& BOPTools_PaveFiller::ChangeCommonBlockPool ( )
IntTools_Context& BOPTools_PaveFiller::ChangeContext ( )
BOPTools_PavePool& BOPTools_PaveFiller::ChangePavePool ( )
BOPTools_SplitShapesPool& BOPTools_PaveFiller::ChangeSplitShapesPool ( )
Standard_Boolean BOPTools_PaveFiller::CheckCoincidence ( const BOPTools_PaveBlock aPB,
const BOPTools_SSInterference aFF 
) [protected]
Standard_Integer BOPTools_PaveFiller::CheckFacePaves ( const TopoDS_Vertex aV,
const Standard_Integer  nF 
) [protected]
Standard_Integer BOPTools_PaveFiller::CheckIntermediatePoint ( const BOPTools_PaveBlock aPB,
const BOPTools_PaveBlock aPBR,
const Standard_Real  aTol 
) [protected]
const BOPTools_CommonBlockPool& BOPTools_PaveFiller::CommonBlockPool ( ) const
const IntTools_Context& BOPTools_PaveFiller::Context ( ) const
void BOPTools_PaveFiller::CorrectShrunkRanges ( const Standard_Integer  aSide,
const BOPTools_Pave aPave,
IntTools_ShrunkRange aSR 
) [protected]
virtual void BOPTools_PaveFiller::Destroy ( ) [virtual]

Reimplemented in BOPTools_Checker.

void BOPTools_PaveFiller::DoSDEdges ( ) [protected]
BooleanOperations_PShapesDataStructure BOPTools_PaveFiller::DS ( )
Standard_Integer BOPTools_PaveFiller::ExpectedPoolLength ( ) const [protected]
Standard_Boolean BOPTools_PaveFiller::ExtendedTolerance ( const Standard_Integer  nV,
Standard_Real aTolExt 
) [protected]
Standard_Boolean BOPTools_PaveFiller::FindPave ( const gp_Pnt aP,
const Standard_Real  aTpV,
const BOPTools_PaveSet aPS,
BOPTools_Pave aPV 
) [protected]
Standard_Integer BOPTools_PaveFiller::FindSDVertex ( const Standard_Integer  nV) const
BOPTools_PInterferencePool BOPTools_PaveFiller::InterfPool ( )
Standard_Boolean BOPTools_PaveFiller::IsBlocksCoinside ( const BOPTools_PaveBlock aPB1,
const BOPTools_PaveBlock aPB2 
) const [protected]
Standard_Boolean BOPTools_PaveFiller::IsDone ( ) const
Standard_Boolean BOPTools_PaveFiller::IsSuccesstorsComputed ( const Standard_Integer  iF1,
const Standard_Integer  iF2 
) const [protected]
const BOPTools_IteratorOfCoupleOfShape& BOPTools_PaveFiller::IteratorOfCoupleOfShape ( ) const
void BOPTools_PaveFiller::MakeAloneVertices ( ) [protected]
void BOPTools_PaveFiller::MakeBlocks ( ) [protected]
void BOPTools_PaveFiller::MakeSectionEdges ( ) [protected]
void BOPTools_PaveFiller::MakeSplitEdges ( ) [protected]
void BOPTools_PaveFiller::operator delete ( void *  anAddress) [inline]

Reimplemented in BOPTools_Checker.

void* BOPTools_PaveFiller::operator new ( size_t  ,
void *  anAddress 
) [inline]

Reimplemented in BOPTools_Checker.

void* BOPTools_PaveFiller::operator new ( size_t  size) [inline]

Reimplemented in BOPTools_Checker.

virtual void BOPTools_PaveFiller::PartialPerform ( const TColStd_SetOfInteger anObjSubSet,
const TColStd_SetOfInteger aToolSubSet 
) [virtual]
const BOPTools_PavePool& BOPTools_PaveFiller::PavePool ( ) const
virtual void BOPTools_PaveFiller::Perform ( ) [virtual]

Reimplemented in BOPTools_Checker.

virtual void BOPTools_PaveFiller::PerformEE ( ) [protected, virtual]

Reimplemented in BOPTools_Checker.

virtual void BOPTools_PaveFiller::PerformEF ( ) [protected, virtual]

Reimplemented in BOPTools_Checker.

virtual void BOPTools_PaveFiller::PerformFF ( ) [protected, virtual]

Reimplemented in BOPTools_Checker.

void BOPTools_PaveFiller::PerformNewVertices ( ) [protected]
virtual void BOPTools_PaveFiller::PerformVE ( ) [protected, virtual]

Reimplemented in BOPTools_Checker.

virtual void BOPTools_PaveFiller::PerformVF ( ) [protected, virtual]

Reimplemented in BOPTools_Checker.

virtual void BOPTools_PaveFiller::PerformVV ( ) [protected, virtual]

Reimplemented in BOPTools_Checker.

virtual void BOPTools_PaveFiller::PrepareEdges ( ) [protected, virtual]

Reimplemented in BOPTools_Checker.

virtual void BOPTools_PaveFiller::PreparePaveBlocks ( const TopAbs_ShapeEnum  aType1,
const TopAbs_ShapeEnum  aType2 
) [protected, virtual]

Reimplemented in BOPTools_Checker.

virtual void BOPTools_PaveFiller::PreparePaveBlocks ( const Standard_Integer  anE) [protected, virtual]

Reimplemented in BOPTools_Checker.

void BOPTools_PaveFiller::PrepareSetForFace ( const Standard_Integer  nF1,
const Standard_Integer  nF2,
BOPTools_PaveSet aPaveSet 
)
void BOPTools_PaveFiller::PutBoundPaveOnCurve ( BOPTools_Curve aBC,
BOPTools_SSInterference aFF 
) [protected]
void BOPTools_PaveFiller::PutBoundPaveOnCurve ( const gp_Pnt aP,
const Standard_Real  aT,
BOPTools_Curve aBC,
BOPTools_SSInterference aFF 
) [protected]
void BOPTools_PaveFiller::PutBoundPaveOnCurveSpec ( const gp_Pnt aP,
const Standard_Real  aT,
BOPTools_Curve aBC,
BOPTools_SSInterference aFF 
) [protected]
void BOPTools_PaveFiller::PutBoundPaveOnCurveSpec ( BOPTools_Curve aBC,
BOPTools_SSInterference aFF 
) [protected]
void BOPTools_PaveFiller::PutPaveOnCurve ( const BOPTools_PaveSet aPaveSet,
const Standard_Real  aTolR3D,
BOPTools_Curve aBCurve 
) [protected]
void BOPTools_PaveFiller::PutPaveOnCurve ( const BOPTools_Pave aPave,
const Standard_Real  aTolR3D,
BOPTools_Curve aBCurve 
) [protected]
void BOPTools_PaveFiller::PutPavesOnCurves ( ) [protected]
void BOPTools_PaveFiller::RefinePavePool ( ) [protected]
const BOPTools_SSIntersectionAttribute& BOPTools_PaveFiller::SectionAttribute ( ) const
void BOPTools_PaveFiller::SetInterferencePool ( const BOPTools_InterferencePool aPool)
void BOPTools_PaveFiller::SetSectionAttribute ( const BOPTools_SSIntersectionAttribute anAtt)
void BOPTools_PaveFiller::SortTypes ( Standard_Integer anInd1,
Standard_Integer anInd2 
) const [protected]
Standard_Integer BOPTools_PaveFiller::SplitIndex ( const BOPTools_PaveBlock aPB) [protected]
const BOPTools_SplitShapesPool& BOPTools_PaveFiller::SplitShapesPool ( ) const
Standard_Integer BOPTools_PaveFiller::SplitsInFace ( const Standard_Integer  nE1,
const Standard_Integer  nF2,
BOPTools_ListOfPaveBlock aLs 
)
Standard_Integer BOPTools_PaveFiller::SplitsInFace ( const Standard_Integer  aBid,
const Standard_Integer  nF1,
const Standard_Integer  nF2,
BOPTools_ListOfPaveBlock aLs 
)
Standard_Integer BOPTools_PaveFiller::SplitsInFace ( const Standard_Integer  aBid,
const Standard_Integer  nF1,
const Standard_Integer  nF2,
TColStd_ListOfInteger aLs 
)
Standard_Integer BOPTools_PaveFiller::SplitsInFace ( const Standard_Integer  nE1,
const Standard_Integer  nF2,
TColStd_ListOfInteger aLs 
)
Standard_Integer BOPTools_PaveFiller::SplitsOnEdge ( const Standard_Integer  nE1,
const Standard_Integer  nE2,
TColStd_ListOfInteger aLs 
)
Standard_Integer BOPTools_PaveFiller::SplitsOnEdge ( const Standard_Integer  nE1,
const Standard_Integer  nE2,
BOPTools_ListOfPaveBlock aLs 
)
Standard_Integer BOPTools_PaveFiller::SplitsOnFace ( const Standard_Integer  aBid,
const Standard_Integer  nF1,
const Standard_Integer  nF2,
TColStd_ListOfInteger aLs 
)
Standard_Integer BOPTools_PaveFiller::SplitsOnFace ( const Standard_Integer  aBid,
const Standard_Integer  nF1,
const Standard_Integer  nF2,
BOPTools_ListOfPaveBlock aLs 
)
Standard_Integer BOPTools_PaveFiller::SplitsOnFace ( const Standard_Integer  nE1,
const Standard_Integer  nF2,
TColStd_ListOfInteger aLs 
)
Standard_Integer BOPTools_PaveFiller::SplitsOnFace ( const Standard_Integer  nE1,
const Standard_Integer  nF2,
BOPTools_ListOfPaveBlock aLs 
)
void BOPTools_PaveFiller::StickVertices ( const Standard_Integer  nF1,
const Standard_Integer  nF2,
TColStd_IndexedMapOfInteger aMV 
) [protected]
virtual void BOPTools_PaveFiller::ToCompletePerform ( ) [virtual]

Field Documentation


The documentation for this class was generated from the following file:
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines