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_PavePool & | PavePool () const |
| Selector
|
BOPTools_PavePool & | ChangePavePool () |
| Selector
|
const BOPTools_CommonBlockPool & | CommonBlockPool () const |
| Selector
|
BOPTools_CommonBlockPool & | ChangeCommonBlockPool () |
| Selector
|
const BOPTools_SplitShapesPool & | SplitShapesPool () const |
| Selector
|
BOPTools_SplitShapesPool & | ChangeSplitShapesPool () |
| 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 |