Open CASCADE Technology  7.1.0.beta
Public Member Functions | Protected Types | Protected Member Functions | Static Protected Member Functions | Protected Attributes
BOPAlgo_PaveFiller Class Reference

#include <BOPAlgo_PaveFiller.hxx>

Inheritance diagram for BOPAlgo_PaveFiller:
Inheritance graph
[legend]

Public Member Functions

 BOPAlgo_PaveFiller ()
 
virtual ~BOPAlgo_PaveFiller ()
 
 BOPAlgo_PaveFiller (const BOPCol_BaseAllocator &theAllocator)
 
const BOPDS_DSDS ()
 
BOPDS_PDS PDS ()
 
const BOPDS_PIteratorIterator ()
 
void SetArguments (const BOPCol_ListOfShape &theLS)
 
const BOPCol_ListOfShapeArguments () const
 
Handle< IntTools_ContextContext ()
 
void SetSectionAttribute (const BOPAlgo_SectionAttribute &theSecAttr)
 
void SetNonDestructive (const Standard_Boolean theFlag)
 Sets the flag that defines the mode of treatment. In non-destructive mode the argument shapes are not modified. Instead a copy of a sub-shape is created in the result if it is needed to be updated. More...
 
Standard_Boolean NonDestructive () const
 Returns the flag that defines the mode of treatment. In non-destructive mode the argument shapes are not modified. Instead a copy of a sub-shape is created in the result if it is needed to be updated. More...
 
virtual void Perform () override
 
- Public Member Functions inherited from BOPAlgo_Algo
Standard_Integer ErrorStatus () const
 
Standard_Integer WarningStatus () const
 
const BOPCol_BaseAllocatorAllocator () const
 
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. More...
 
Standard_Boolean RunParallel () const
 Returns the flag of parallel processing. More...
 
void SetFuzzyValue (const Standard_Real theFuzz)
 Sets the additional tolerance. More...
 
Standard_Real FuzzyValue () const
 Returns the additional tolerance. More...
 
void SetProgressIndicator (const Handle< Message_ProgressIndicator > &theObj)
 Set the Progress Indicator object. More...
 

Protected Types

typedef NCollection_DataMap< Handle< BOPDS_PaveBlock >, Bnd_Box, TColStd_MapTransientHasherBOPAlgo_DataMapOfPaveBlockBndBox
 

Protected Member Functions

void SetNonDestructive ()
 Sets non-destructive mode automatically if an argument contains a locked sub-shape (see TopoDS_Shape::Locked()). More...
 
void SetIsPrimary (const Standard_Boolean theFlag)
 
Standard_Boolean IsPrimary () const
 
virtual void PerformInternal ()
 
virtual void Clear ()
 
virtual void Init ()
 
void Prepare ()
 
virtual void PerformVV ()
 
virtual void PerformVE ()
 
virtual void PerformVF ()
 
virtual void PerformEE ()
 
virtual void PerformEF ()
 
virtual void PerformFF ()
 
virtual void PerformVZ ()
 
virtual void PerformEZ ()
 
virtual void PerformFZ ()
 
virtual void PerformZZ ()
 
virtual void PerformSZ (const TopAbs_ShapeEnum aTS)
 
void TreatVerticesEE ()
 
void MakeSDVerticesFF (const BOPCol_DataMapOfIntegerListOfInteger &aDMVLV, BOPCol_DataMapOfIntegerInteger &theDMNewSD)
 
void MakeSplitEdges ()
 
void MakeBlocks ()
 
void MakePCurves ()
 
Standard_Integer MakeSDVertices (const BOPCol_ListOfInteger &theVertIndices, const Standard_Boolean theAddInterfs=1)
 
void ProcessDE ()
 
void FillShrunkData (Handle< BOPDS_PaveBlock > &thePB)
 
void FillShrunkData (const TopAbs_ShapeEnum theType1, const TopAbs_ShapeEnum theType2)
 
Standard_Integer PerformVerticesEE (BOPDS_IndexedDataMapOfShapeCoupleOfPaveBlocks &theMVCPB, const BOPCol_BaseAllocator &theAllocator)
 
Standard_Integer PerformVerticesEF (BOPDS_IndexedDataMapOfShapeCoupleOfPaveBlocks &theMVCPB, const BOPCol_BaseAllocator &theAllocator)
 
Standard_Boolean CheckFacePaves (const TopoDS_Vertex &theVnew, const BOPCol_MapOfInteger &theMIF)
 
Standard_Boolean IsExistingVertex (const gp_Pnt &theP, const Standard_Real theTol, const BOPCol_MapOfInteger &theMVOn) const
 
void PutPavesOnCurve (const BOPCol_MapOfInteger &theMVOn, const Standard_Real theTolR3D, BOPDS_Curve &theNC, const Standard_Integer nF1, const Standard_Integer nF2, const BOPCol_MapOfInteger &theMI, const BOPCol_MapOfInteger &theMVEF, BOPCol_DataMapOfIntegerReal &theMVTol, BOPCol_DataMapOfIntegerListOfInteger &aDMVLV)
 Checks and puts paves from <theMVOn> on the curve <theNC>. More...
 
void FilterPavesOnCurves (const BOPDS_VectorOfCurve &theVNC, const Standard_Real theTolR3D)
 
Standard_Boolean ExtendedTolerance (const Standard_Integer nV, const BOPCol_MapOfInteger &aMI, Standard_Real &aTolVExt, const Standard_Integer aType=0)
 Depending on the parameter aType it checks whether the vertex nV was created in EE or EF intersections. If so, it increases aTolVExt from tolerance value of vertex to the max distance from vertex nV to the ends of the range of common part. Possible values of aType: 1 - checks only EE; 2 - checks only EF; other - checks both types of intersections. More...
 
void PutBoundPaveOnCurve (const TopoDS_Face &theF1, const TopoDS_Face &theF2, const Standard_Real theTolR3D, BOPDS_Curve &theNC, BOPCol_ListOfInteger &theLBV)
 
Standard_Boolean IsExistingPaveBlock (const Handle< BOPDS_PaveBlock > &thePB, const BOPDS_Curve &theNC, const Standard_Real theTolR3D, const BOPDS_IndexedMapOfPaveBlock &theMPB, const BOPDS_MapOfPaveBlock &theMPBCommon, Handle< BOPDS_PaveBlock > &thePBOut, Standard_Real &theTolNew)
 
Standard_Boolean IsExistingPaveBlock (const Handle< BOPDS_PaveBlock > &thePB, const BOPDS_Curve &theNC, const BOPCol_ListOfInteger &theLSE)
 
Standard_Integer PostTreatFF (BOPDS_IndexedDataMapOfShapeCoupleOfPaveBlocks &theMSCPB, BOPCol_DataMapOfShapeInteger &theMVI, BOPDS_DataMapOfPaveBlockListOfPaveBlock &theDMExEdges, BOPCol_DataMapOfIntegerInteger &theDMNewSD, const BOPCol_IndexedMapOfShape &theMicroEdges, const BOPCol_BaseAllocator &theAllocator)
 Treatment of section edges. More...
 
void FindPaveBlocks (const Standard_Integer theV, const Standard_Integer theF, BOPDS_ListOfPaveBlock &theLPB)
 
void FillPaves (const Standard_Integer theV, const Standard_Integer theE, const Standard_Integer theF, const BOPDS_ListOfPaveBlock &theLPB, const Handle< BOPDS_PaveBlock > &thePB)
 
void MakeSplitEdge (const Standard_Integer theV, const Standard_Integer theF)
 
void GetEFPnts (const Standard_Integer nF1, const Standard_Integer nF2, IntSurf_ListOfPntOn2S &aListOfPnts)
 
void PutEFPavesOnCurve (BOPDS_Curve &theNC, const BOPCol_MapOfInteger &theMI, const BOPCol_MapOfInteger &theMVEF, BOPCol_DataMapOfIntegerReal &theMVTol, BOPCol_DataMapOfIntegerListOfInteger &aDMVLV)
 Checks and puts paves created in EF intersections on the curve <theNC>. More...
 
void PutStickPavesOnCurve (const TopoDS_Face &aF1, const TopoDS_Face &aF2, const BOPCol_MapOfInteger &theMI, BOPDS_Curve &theNC, const BOPCol_MapOfInteger &theMVStick, BOPCol_DataMapOfIntegerReal &theMVTol, BOPCol_DataMapOfIntegerListOfInteger &aDMVLV)
 Puts stick paves on the curve <theNC> More...
 
void GetStickVertices (const Standard_Integer nF1, const Standard_Integer nF2, BOPCol_MapOfInteger &theMVStick, BOPCol_MapOfInteger &theMVEF, BOPCol_MapOfInteger &theMI)
 Collects indices of vertices created in all intersections between two faces (<nF1> and <nF2>) to the map <theMVStick>. Also, it collects indices of EF vertices to the <theMVEF> map and indices of all subshapes of these two faces to the <theMI> map. More...
 
void GetFullShapeMap (const Standard_Integer nF, BOPCol_MapOfInteger &theMI)
 Collects index nF and indices of all subshapes of the shape with index <nF> to the map <theMI>. More...
 
void RemoveUsedVertices (BOPDS_Curve &theNC, BOPCol_MapOfInteger &theMV)
 Removes indices of vertices that are already on the curve <theNC> from the map <theMV>. It is used in PutEFPavesOnCurve and PutStickPavesOnCurve methods. More...
 
void PutPaveOnCurve (const Standard_Integer nV, const Standard_Real theTolR3D, const BOPDS_Curve &theNC, const BOPCol_MapOfInteger &theMI, BOPCol_DataMapOfIntegerReal &theMVTol, BOPCol_DataMapOfIntegerListOfInteger &aDMVLV, const Standard_Integer aType=0)
 Puts the pave nV on the curve theNC. Parameter aType defines whether to check the pave with extended tolerance: 0 - do not perform the check; other - perform the check (aType goes to ExtendedTolerance). More...
 
void ProcessExistingPaveBlocks (const Standard_Integer theInt, const BOPDS_IndexedMapOfPaveBlock &theMPBOnIn, const BOPCol_DataMapOfIntegerListOfInteger &theDMBV, BOPDS_IndexedDataMapOfShapeCoupleOfPaveBlocks &theMSCPB, BOPCol_DataMapOfShapeInteger &theMVI, BOPDS_MapOfPaveBlock &theMPB)
 Adds the existing edges from the map <theMPBOnIn> which interfere with the vertices from <theMVB> map to the post treatment of section edges. More...
 
void UpdateExistingPaveBlocks (const Handle< BOPDS_PaveBlock > &thePB, BOPDS_ListOfPaveBlock &theLPB, const Standard_Integer nF1, const Standard_Integer nF2)
 Replaces existing pave block <thePB> with new pave blocks <theLPB>. The list <theLPB> contains images of <thePB> which were created in the post treatment of section edges. More...
 
void TreatNewVertices (const BOPDS_IndexedDataMapOfShapeCoupleOfPaveBlocks &theMVCPB, BOPCol_IndexedDataMapOfShapeListOfShape &theImages)
 Treatment of vertices that were created in EE intersections. More...
 
void PutClosingPaveOnCurve (BOPDS_Curve &aNC)
 Put paves on the curve <aBC> in case when <aBC> is closed 3D-curve. More...
 
void PreparePostTreatFF (const Standard_Integer aInt, const Standard_Integer aCur, const Handle< BOPDS_PaveBlock > &aPB, BOPDS_IndexedDataMapOfShapeCoupleOfPaveBlocks &aMSCPB, BOPCol_DataMapOfShapeInteger &aMVI, BOPDS_ListOfPaveBlock &aLPB)
 Keeps data for post treatment. More...
 
void RefineFaceInfoOn ()
 Refines the state On for the all faces having state information. More...
 
void UpdateFaceInfo (BOPDS_DataMapOfPaveBlockListOfPaveBlock &theDME, const BOPCol_DataMapOfIntegerInteger &theDMV)
 Updates the information about faces. More...
 
void ForceInterfVE (const Standard_Integer nV, Handle< BOPDS_PaveBlock > &aPB, BOPDS_MapOfPaveBlock &aMPB)
 Updates tolerance of vertex with index <nV> to make it interfere with edge. More...
 
Standard_Boolean ForceInterfVF (const Standard_Integer nV, const Standard_Integer nF)
 Updates tolerance of vertex with index <nV> to make it interfere with face with index <nF> More...
 
Standard_Boolean CheckPlanes (const Standard_Integer nF1, const Standard_Integer nF2) const
 Checks if there are any common or intersecting sub shapes between two planar faces. More...
 
Standard_Integer SplitEdge (const Standard_Integer nE, const Standard_Integer nV1, const Standard_Real aT1, const Standard_Integer nV2, const Standard_Real aT2)
 Creates new edge from the edge nE with vertices nV1 and nV2 and returns the index of that new edge in the DS. More...
 
void UpdatePaveBlocks (const BOPCol_DataMapOfIntegerInteger &aDMNewSD)
 Updates pave blocks which have the paves with indices contained in the map <aDMNewSD>. More...
 
Standard_Integer UpdateVertex (const Standard_Integer nV, const Standard_Real aTolNew)
 Updates tolerance vertex nV due to V/E interference. It always creates new vertex if nV is from arguments. More...
 
void UpdatePaveBlocksWithSDVertices ()
 
void UpdateCommonBlocksWithSDVertices ()
 
void UpdateBlocksWithSharedVertices ()
 
Standard_Boolean EstimatePaveOnCurve (const Standard_Integer nV, const BOPDS_Curve &theNC, const Standard_Real theTolR3D)
 
void UpdateEdgeTolerance (const Standard_Integer nE, const Standard_Real aTolNew)
 
void RemovePaveBlocks (const BOPCol_MapOfInteger theEdges)
 
void CorrectToleranceOfSE ()
 
void ReduceIntersectionRange (const Standard_Integer theV1, const Standard_Integer theV2, const Standard_Integer theE, const Standard_Integer theF, Standard_Real &theTS1, Standard_Real &theTS2)
 Reduce the intersection range using the common ranges of Edge/Edge interferences to avoid creation of close intersection vertices. More...
 
Standard_Boolean GetPBBox (const TopoDS_Edge &theE, const Handle< BOPDS_PaveBlock > &thePB, BOPAlgo_DataMapOfPaveBlockBndBox &thePBBox, Standard_Real &theFirst, Standard_Real &theLast, Standard_Real &theSFirst, Standard_Real &theSLast, Bnd_Box &theBox)
 Gets the bounding box for the given Pave Block. If Pave Block has shrunk data it will be used to get the box, and the Shrunk Range (<theSFirst>, <theSLast>). Otherwise the box will be computed using BndLib_Add3dCurve method, and the Shrunk Range will be equal to the PB's range. To avoid re-computation of the bounding box for the same Pave Block it will be saved in the map <thePBBox>. Returns FALSE in case the PB's range is less than the Precision::PConfusion(), otherwise returns TRUE. More...
 
- Protected Member Functions inherited from BOPAlgo_Algo
 BOPAlgo_Algo ()
 
virtual ~BOPAlgo_Algo ()
 
 BOPAlgo_Algo (const BOPCol_BaseAllocator &theAllocator)
 
virtual void CheckData ()
 
virtual void CheckResult ()
 
void UserBreak () const
 Breaks the execution if the break signal is indicated by myProgressIndicator. More...
 

Static Protected Member Functions

static Standard_Boolean CheckFacePaves (const Standard_Integer theN, const BOPCol_MapOfInteger &theMIFOn, const BOPCol_MapOfInteger &theMIFIn)
 

Protected Attributes

BOPCol_ListOfShape myArguments
 
BOPDS_PDS myDS
 
BOPDS_PIterator myIterator
 
Handle< IntTools_ContextmyContext
 
BOPAlgo_SectionAttribute mySectionAttribute
 
Standard_Boolean myNonDestructive
 
Standard_Boolean myIsPrimary
 
- Protected Attributes inherited from BOPAlgo_Algo
BOPCol_BaseAllocator myAllocator
 
Standard_Integer myErrorStatus
 
Standard_Integer myWarningStatus
 
Standard_Boolean myRunParallel
 
Standard_Real myFuzzyValue
 
Handle< Message_ProgressIndicatormyProgressIndicator
 

Additional Inherited Members

- Static Public Member Functions inherited from BOPAlgo_Algo
static Standard_Boolean GetParallelMode ()
 
static void SetParallelMode (const Standard_Boolean theNewMode)
 

Member Typedef Documentation

Constructor & Destructor Documentation

BOPAlgo_PaveFiller::BOPAlgo_PaveFiller ( )
virtual BOPAlgo_PaveFiller::~BOPAlgo_PaveFiller ( )
virtual
BOPAlgo_PaveFiller::BOPAlgo_PaveFiller ( const BOPCol_BaseAllocator theAllocator)

Member Function Documentation

const BOPCol_ListOfShape& BOPAlgo_PaveFiller::Arguments ( ) const
Standard_Boolean BOPAlgo_PaveFiller::CheckFacePaves ( const TopoDS_Vertex theVnew,
const BOPCol_MapOfInteger theMIF 
)
protected
static Standard_Boolean BOPAlgo_PaveFiller::CheckFacePaves ( const Standard_Integer  theN,
const BOPCol_MapOfInteger theMIFOn,
const BOPCol_MapOfInteger theMIFIn 
)
staticprotected
Standard_Boolean BOPAlgo_PaveFiller::CheckPlanes ( const Standard_Integer  nF1,
const Standard_Integer  nF2 
) const
protected

Checks if there are any common or intersecting sub shapes between two planar faces.

virtual void BOPAlgo_PaveFiller::Clear ( )
protectedvirtual
Handle< IntTools_Context > BOPAlgo_PaveFiller::Context ( )
void BOPAlgo_PaveFiller::CorrectToleranceOfSE ( )
protected
const BOPDS_DS& BOPAlgo_PaveFiller::DS ( )
Standard_Boolean BOPAlgo_PaveFiller::EstimatePaveOnCurve ( const Standard_Integer  nV,
const BOPDS_Curve theNC,
const Standard_Real  theTolR3D 
)
protected
Standard_Boolean BOPAlgo_PaveFiller::ExtendedTolerance ( const Standard_Integer  nV,
const BOPCol_MapOfInteger aMI,
Standard_Real aTolVExt,
const Standard_Integer  aType = 0 
)
protected

Depending on the parameter aType it checks whether the vertex nV was created in EE or EF intersections. If so, it increases aTolVExt from tolerance value of vertex to the max distance from vertex nV to the ends of the range of common part. Possible values of aType: 1 - checks only EE; 2 - checks only EF; other - checks both types of intersections.

void BOPAlgo_PaveFiller::FillPaves ( const Standard_Integer  theV,
const Standard_Integer  theE,
const Standard_Integer  theF,
const BOPDS_ListOfPaveBlock theLPB,
const Handle< BOPDS_PaveBlock > &  thePB 
)
protected
void BOPAlgo_PaveFiller::FillShrunkData ( Handle< BOPDS_PaveBlock > &  thePB)
protected
void BOPAlgo_PaveFiller::FillShrunkData ( const TopAbs_ShapeEnum  theType1,
const TopAbs_ShapeEnum  theType2 
)
protected
void BOPAlgo_PaveFiller::FilterPavesOnCurves ( const BOPDS_VectorOfCurve theVNC,
const Standard_Real  theTolR3D 
)
protected
void BOPAlgo_PaveFiller::FindPaveBlocks ( const Standard_Integer  theV,
const Standard_Integer  theF,
BOPDS_ListOfPaveBlock theLPB 
)
protected
void BOPAlgo_PaveFiller::ForceInterfVE ( const Standard_Integer  nV,
Handle< BOPDS_PaveBlock > &  aPB,
BOPDS_MapOfPaveBlock aMPB 
)
protected

Updates tolerance of vertex with index <nV> to make it interfere with edge.

Standard_Boolean BOPAlgo_PaveFiller::ForceInterfVF ( const Standard_Integer  nV,
const Standard_Integer  nF 
)
protected

Updates tolerance of vertex with index <nV> to make it interfere with face with index <nF>

void BOPAlgo_PaveFiller::GetEFPnts ( const Standard_Integer  nF1,
const Standard_Integer  nF2,
IntSurf_ListOfPntOn2S aListOfPnts 
)
protected
void BOPAlgo_PaveFiller::GetFullShapeMap ( const Standard_Integer  nF,
BOPCol_MapOfInteger theMI 
)
protected

Collects index nF and indices of all subshapes of the shape with index <nF> to the map <theMI>.

Standard_Boolean BOPAlgo_PaveFiller::GetPBBox ( const TopoDS_Edge theE,
const Handle< BOPDS_PaveBlock > &  thePB,
BOPAlgo_DataMapOfPaveBlockBndBox thePBBox,
Standard_Real theFirst,
Standard_Real theLast,
Standard_Real theSFirst,
Standard_Real theSLast,
Bnd_Box theBox 
)
protected

Gets the bounding box for the given Pave Block. If Pave Block has shrunk data it will be used to get the box, and the Shrunk Range (<theSFirst>, <theSLast>). Otherwise the box will be computed using BndLib_Add3dCurve method, and the Shrunk Range will be equal to the PB's range. To avoid re-computation of the bounding box for the same Pave Block it will be saved in the map <thePBBox>. Returns FALSE in case the PB's range is less than the Precision::PConfusion(), otherwise returns TRUE.

void BOPAlgo_PaveFiller::GetStickVertices ( const Standard_Integer  nF1,
const Standard_Integer  nF2,
BOPCol_MapOfInteger theMVStick,
BOPCol_MapOfInteger theMVEF,
BOPCol_MapOfInteger theMI 
)
protected

Collects indices of vertices created in all intersections between two faces (<nF1> and <nF2>) to the map <theMVStick>. Also, it collects indices of EF vertices to the <theMVEF> map and indices of all subshapes of these two faces to the <theMI> map.

virtual void BOPAlgo_PaveFiller::Init ( )
protectedvirtual

Reimplemented in BOPAlgo_CheckerSI.

Standard_Boolean BOPAlgo_PaveFiller::IsExistingPaveBlock ( const Handle< BOPDS_PaveBlock > &  thePB,
const BOPDS_Curve theNC,
const Standard_Real  theTolR3D,
const BOPDS_IndexedMapOfPaveBlock theMPB,
const BOPDS_MapOfPaveBlock theMPBCommon,
Handle< BOPDS_PaveBlock > &  thePBOut,
Standard_Real theTolNew 
)
protected
Standard_Boolean BOPAlgo_PaveFiller::IsExistingPaveBlock ( const Handle< BOPDS_PaveBlock > &  thePB,
const BOPDS_Curve theNC,
const BOPCol_ListOfInteger theLSE 
)
protected
Standard_Boolean BOPAlgo_PaveFiller::IsExistingVertex ( const gp_Pnt theP,
const Standard_Real  theTol,
const BOPCol_MapOfInteger theMVOn 
) const
protected
Standard_Boolean BOPAlgo_PaveFiller::IsPrimary ( ) const
protected
const BOPDS_PIterator& BOPAlgo_PaveFiller::Iterator ( )
void BOPAlgo_PaveFiller::MakeBlocks ( )
protected
void BOPAlgo_PaveFiller::MakePCurves ( )
protected
Standard_Integer BOPAlgo_PaveFiller::MakeSDVertices ( const BOPCol_ListOfInteger theVertIndices,
const Standard_Boolean  theAddInterfs = 1 
)
protected
void BOPAlgo_PaveFiller::MakeSDVerticesFF ( const BOPCol_DataMapOfIntegerListOfInteger aDMVLV,
BOPCol_DataMapOfIntegerInteger theDMNewSD 
)
protected
void BOPAlgo_PaveFiller::MakeSplitEdge ( const Standard_Integer  theV,
const Standard_Integer  theF 
)
protected
void BOPAlgo_PaveFiller::MakeSplitEdges ( )
protected
Standard_Boolean BOPAlgo_PaveFiller::NonDestructive ( ) const

Returns the flag that defines the mode of treatment. In non-destructive mode the argument shapes are not modified. Instead a copy of a sub-shape is created in the result if it is needed to be updated.

BOPDS_PDS BOPAlgo_PaveFiller::PDS ( )
virtual void BOPAlgo_PaveFiller::Perform ( )
overridevirtual

Implements BOPAlgo_Algo.

Reimplemented in BOPAlgo_CheckerSI.

virtual void BOPAlgo_PaveFiller::PerformEE ( )
protectedvirtual
virtual void BOPAlgo_PaveFiller::PerformEF ( )
protectedvirtual
virtual void BOPAlgo_PaveFiller::PerformEZ ( )
protectedvirtual
virtual void BOPAlgo_PaveFiller::PerformFF ( )
protectedvirtual
virtual void BOPAlgo_PaveFiller::PerformFZ ( )
protectedvirtual
virtual void BOPAlgo_PaveFiller::PerformInternal ( )
protectedvirtual
virtual void BOPAlgo_PaveFiller::PerformSZ ( const TopAbs_ShapeEnum  aTS)
protectedvirtual
virtual void BOPAlgo_PaveFiller::PerformVE ( )
protectedvirtual
Standard_Integer BOPAlgo_PaveFiller::PerformVerticesEE ( BOPDS_IndexedDataMapOfShapeCoupleOfPaveBlocks theMVCPB,
const BOPCol_BaseAllocator theAllocator 
)
protected
Standard_Integer BOPAlgo_PaveFiller::PerformVerticesEF ( BOPDS_IndexedDataMapOfShapeCoupleOfPaveBlocks theMVCPB,
const BOPCol_BaseAllocator theAllocator 
)
protected
virtual void BOPAlgo_PaveFiller::PerformVF ( )
protectedvirtual
virtual void BOPAlgo_PaveFiller::PerformVV ( )
protectedvirtual
virtual void BOPAlgo_PaveFiller::PerformVZ ( )
protectedvirtual
virtual void BOPAlgo_PaveFiller::PerformZZ ( )
protectedvirtual
Standard_Integer BOPAlgo_PaveFiller::PostTreatFF ( BOPDS_IndexedDataMapOfShapeCoupleOfPaveBlocks theMSCPB,
BOPCol_DataMapOfShapeInteger theMVI,
BOPDS_DataMapOfPaveBlockListOfPaveBlock theDMExEdges,
BOPCol_DataMapOfIntegerInteger theDMNewSD,
const BOPCol_IndexedMapOfShape theMicroEdges,
const BOPCol_BaseAllocator theAllocator 
)
protected

Treatment of section edges.

void BOPAlgo_PaveFiller::Prepare ( )
protected
void BOPAlgo_PaveFiller::PreparePostTreatFF ( const Standard_Integer  aInt,
const Standard_Integer  aCur,
const Handle< BOPDS_PaveBlock > &  aPB,
BOPDS_IndexedDataMapOfShapeCoupleOfPaveBlocks aMSCPB,
BOPCol_DataMapOfShapeInteger aMVI,
BOPDS_ListOfPaveBlock aLPB 
)
protected

Keeps data for post treatment.

void BOPAlgo_PaveFiller::ProcessDE ( )
protected
void BOPAlgo_PaveFiller::ProcessExistingPaveBlocks ( const Standard_Integer  theInt,
const BOPDS_IndexedMapOfPaveBlock theMPBOnIn,
const BOPCol_DataMapOfIntegerListOfInteger theDMBV,
BOPDS_IndexedDataMapOfShapeCoupleOfPaveBlocks theMSCPB,
BOPCol_DataMapOfShapeInteger theMVI,
BOPDS_MapOfPaveBlock theMPB 
)
protected

Adds the existing edges from the map <theMPBOnIn> which interfere with the vertices from <theMVB> map to the post treatment of section edges.

void BOPAlgo_PaveFiller::PutBoundPaveOnCurve ( const TopoDS_Face theF1,
const TopoDS_Face theF2,
const Standard_Real  theTolR3D,
BOPDS_Curve theNC,
BOPCol_ListOfInteger theLBV 
)
protected
void BOPAlgo_PaveFiller::PutClosingPaveOnCurve ( BOPDS_Curve aNC)
protected

Put paves on the curve <aBC> in case when <aBC> is closed 3D-curve.

void BOPAlgo_PaveFiller::PutEFPavesOnCurve ( BOPDS_Curve theNC,
const BOPCol_MapOfInteger theMI,
const BOPCol_MapOfInteger theMVEF,
BOPCol_DataMapOfIntegerReal theMVTol,
BOPCol_DataMapOfIntegerListOfInteger aDMVLV 
)
protected

Checks and puts paves created in EF intersections on the curve <theNC>.

void BOPAlgo_PaveFiller::PutPaveOnCurve ( const Standard_Integer  nV,
const Standard_Real  theTolR3D,
const BOPDS_Curve theNC,
const BOPCol_MapOfInteger theMI,
BOPCol_DataMapOfIntegerReal theMVTol,
BOPCol_DataMapOfIntegerListOfInteger aDMVLV,
const Standard_Integer  aType = 0 
)
protected

Puts the pave nV on the curve theNC. Parameter aType defines whether to check the pave with extended tolerance: 0 - do not perform the check; other - perform the check (aType goes to ExtendedTolerance).

void BOPAlgo_PaveFiller::PutPavesOnCurve ( const BOPCol_MapOfInteger theMVOn,
const Standard_Real  theTolR3D,
BOPDS_Curve theNC,
const Standard_Integer  nF1,
const Standard_Integer  nF2,
const BOPCol_MapOfInteger theMI,
const BOPCol_MapOfInteger theMVEF,
BOPCol_DataMapOfIntegerReal theMVTol,
BOPCol_DataMapOfIntegerListOfInteger aDMVLV 
)
protected

Checks and puts paves from <theMVOn> on the curve <theNC>.

void BOPAlgo_PaveFiller::PutStickPavesOnCurve ( const TopoDS_Face aF1,
const TopoDS_Face aF2,
const BOPCol_MapOfInteger theMI,
BOPDS_Curve theNC,
const BOPCol_MapOfInteger theMVStick,
BOPCol_DataMapOfIntegerReal theMVTol,
BOPCol_DataMapOfIntegerListOfInteger aDMVLV 
)
protected

Puts stick paves on the curve <theNC>

void BOPAlgo_PaveFiller::ReduceIntersectionRange ( const Standard_Integer  theV1,
const Standard_Integer  theV2,
const Standard_Integer  theE,
const Standard_Integer  theF,
Standard_Real theTS1,
Standard_Real theTS2 
)
protected

Reduce the intersection range using the common ranges of Edge/Edge interferences to avoid creation of close intersection vertices.

void BOPAlgo_PaveFiller::RefineFaceInfoOn ( )
protected

Refines the state On for the all faces having state information.

void BOPAlgo_PaveFiller::RemovePaveBlocks ( const BOPCol_MapOfInteger  theEdges)
protected
void BOPAlgo_PaveFiller::RemoveUsedVertices ( BOPDS_Curve theNC,
BOPCol_MapOfInteger theMV 
)
protected

Removes indices of vertices that are already on the curve <theNC> from the map <theMV>. It is used in PutEFPavesOnCurve and PutStickPavesOnCurve methods.

void BOPAlgo_PaveFiller::SetArguments ( const BOPCol_ListOfShape theLS)
void BOPAlgo_PaveFiller::SetIsPrimary ( const Standard_Boolean  theFlag)
protected
void BOPAlgo_PaveFiller::SetNonDestructive ( const Standard_Boolean  theFlag)

Sets the flag that defines the mode of treatment. In non-destructive mode the argument shapes are not modified. Instead a copy of a sub-shape is created in the result if it is needed to be updated.

void BOPAlgo_PaveFiller::SetNonDestructive ( )
protected

Sets non-destructive mode automatically if an argument contains a locked sub-shape (see TopoDS_Shape::Locked()).

void BOPAlgo_PaveFiller::SetSectionAttribute ( const BOPAlgo_SectionAttribute theSecAttr)
Standard_Integer BOPAlgo_PaveFiller::SplitEdge ( const Standard_Integer  nE,
const Standard_Integer  nV1,
const Standard_Real  aT1,
const Standard_Integer  nV2,
const Standard_Real  aT2 
)
protected

Creates new edge from the edge nE with vertices nV1 and nV2 and returns the index of that new edge in the DS.

void BOPAlgo_PaveFiller::TreatNewVertices ( const BOPDS_IndexedDataMapOfShapeCoupleOfPaveBlocks theMVCPB,
BOPCol_IndexedDataMapOfShapeListOfShape theImages 
)
protected

Treatment of vertices that were created in EE intersections.

void BOPAlgo_PaveFiller::TreatVerticesEE ( )
protected
void BOPAlgo_PaveFiller::UpdateBlocksWithSharedVertices ( )
protected
void BOPAlgo_PaveFiller::UpdateCommonBlocksWithSDVertices ( )
protected
void BOPAlgo_PaveFiller::UpdateEdgeTolerance ( const Standard_Integer  nE,
const Standard_Real  aTolNew 
)
protected
void BOPAlgo_PaveFiller::UpdateExistingPaveBlocks ( const Handle< BOPDS_PaveBlock > &  thePB,
BOPDS_ListOfPaveBlock theLPB,
const Standard_Integer  nF1,
const Standard_Integer  nF2 
)
protected

Replaces existing pave block <thePB> with new pave blocks <theLPB>. The list <theLPB> contains images of <thePB> which were created in the post treatment of section edges.

void BOPAlgo_PaveFiller::UpdateFaceInfo ( BOPDS_DataMapOfPaveBlockListOfPaveBlock theDME,
const BOPCol_DataMapOfIntegerInteger theDMV 
)
protected

Updates the information about faces.

void BOPAlgo_PaveFiller::UpdatePaveBlocks ( const BOPCol_DataMapOfIntegerInteger aDMNewSD)
protected

Updates pave blocks which have the paves with indices contained in the map <aDMNewSD>.

void BOPAlgo_PaveFiller::UpdatePaveBlocksWithSDVertices ( )
protected
Standard_Integer BOPAlgo_PaveFiller::UpdateVertex ( const Standard_Integer  nV,
const Standard_Real  aTolNew 
)
protected

Updates tolerance vertex nV due to V/E interference. It always creates new vertex if nV is from arguments.

Returns
DS index of updated vertex.

Field Documentation

BOPCol_ListOfShape BOPAlgo_PaveFiller::myArguments
protected
Handle< IntTools_Context > BOPAlgo_PaveFiller::myContext
protected
BOPDS_PDS BOPAlgo_PaveFiller::myDS
protected
Standard_Boolean BOPAlgo_PaveFiller::myIsPrimary
protected
BOPDS_PIterator BOPAlgo_PaveFiller::myIterator
protected
Standard_Boolean BOPAlgo_PaveFiller::myNonDestructive
protected
BOPAlgo_SectionAttribute BOPAlgo_PaveFiller::mySectionAttribute
protected

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