Open CASCADE Technology  6.5.4
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Public Member Functions | Protected Member Functions | Protected Attributes
BOPTools_PaveFiller Class Reference

The algorithm that provides
More...

#include <BOPTools_PaveFiller.hxx>

Inheritance diagram for BOPTools_PaveFiller:
Inheritance graph
[legend]

Public Member Functions

DEFINE_STANDARD_ALLOC 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 ()
void SetContext (const Handle< IntTools_Context > &aContext)
 Sets the intersecton context


const Handle_IntTools_Context & Context () const
 Selector

ChangeContext(me:out)
returns Context from IntTools;
C++:return &
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



PaveBlocks for Split Parts of Edges.



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



Some of API FUNCTIONS



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>


void PutClosingPaveOnCurve (BOPTools_Curve &aBC, BOPTools_SSInterference &aFF)
 Put paves on the curve <aBC> in case when <aBC>
is closed 3D-curve


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
Handle_IntTools_Context myContext

Detailed Description

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



Constructor & Destructor Documentation

virtual BOPTools_PaveFiller::~BOPTools_PaveFiller ( ) [inline, virtual]

Member Function Documentation

const Handle_IntTools_Context& BOPTools_PaveFiller::Context ( ) const
virtual void BOPTools_PaveFiller::Destroy ( ) [virtual]

Reimplemented in BOPTools_Checker.

virtual void BOPTools_PaveFiller::PartialPerform ( const TColStd_SetOfInteger anObjSubSet,
const TColStd_SetOfInteger aToolSubSet 
) [virtual]
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.

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::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::SortTypes ( Standard_Integer anInd1,
Standard_Integer anInd2 
) const [protected]

Field Documentation

Handle_IntTools_Context BOPTools_PaveFiller::myContext [protected]

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