From: aka Date: Tue, 13 Dec 2016 12:27:14 +0000 (+0300) Subject: 0024258: Classes in TKBO toolkit lack documentation X-Git-Url: http://git.dev.opencascade.org/gitweb/?a=commitdiff_plain;h=refs%2Fheads%2FCR24258;p=occt-copy.git 0024258: Classes in TKBO toolkit lack documentation First version of descriptions of methods --- diff --git a/src/BOPAlgo/BOPAlgo_BOP.hxx b/src/BOPAlgo/BOPAlgo_BOP.hxx index 176bfcaab8..55d611ecad 100644 --- a/src/BOPAlgo/BOPAlgo_BOP.hxx +++ b/src/BOPAlgo/BOPAlgo_BOP.hxx @@ -43,8 +43,12 @@ public: //! Empty constructor Standard_EXPORT BOPAlgo_BOP(); -Standard_EXPORT virtual ~BOPAlgo_BOP(); - + + //! Destructor + Standard_EXPORT virtual ~BOPAlgo_BOP(); + + //! Contructor + //! theAllocator - the allocator to manage the memory Standard_EXPORT BOPAlgo_BOP(const BOPCol_BaseAllocator& theAllocator); //! Clears internal fields and arguments diff --git a/src/BOPAlgo/BOPAlgo_Builder.hxx b/src/BOPAlgo/BOPAlgo_Builder.hxx index 0323b854a1..a3ceb3b02f 100644 --- a/src/BOPAlgo/BOPAlgo_Builder.hxx +++ b/src/BOPAlgo/BOPAlgo_Builder.hxx @@ -41,25 +41,31 @@ class TopoDS_Shape; class BOPAlgo_PaveFiller; - +//! class BOPAlgo_Builder : public BOPAlgo_BuilderShape { public: DEFINE_STANDARD_ALLOC - + //! Empty constructor Standard_EXPORT BOPAlgo_Builder(); -Standard_EXPORT virtual ~BOPAlgo_Builder(); - + + //! Destructor + Standard_EXPORT virtual ~BOPAlgo_Builder(); + + //! Contructor + //! theAllocator - the allocator to manage the memory Standard_EXPORT BOPAlgo_Builder(const BOPCol_BaseAllocator& theAllocator); - + + //! Clears the content Standard_EXPORT virtual void Clear(); Standard_EXPORT BOPAlgo_PPaveFiller PPaveFiller(); Standard_EXPORT BOPDS_PDS PDS(); - + + //! Standard_EXPORT virtual void AddArgument (const TopoDS_Shape& theShape); Standard_EXPORT virtual void SetArguments (const BOPCol_ListOfShape& theLS); diff --git a/src/BOPAlgo/BOPAlgo_PaveFiller.hxx b/src/BOPAlgo/BOPAlgo_PaveFiller.hxx index a4ad488d07..cdbd452bc2 100644 --- a/src/BOPAlgo/BOPAlgo_PaveFiller.hxx +++ b/src/BOPAlgo/BOPAlgo_PaveFiller.hxx @@ -60,32 +60,47 @@ class TopoDS_Vertex; class TopoDS_Edge; class TopoDS_Face; - +//! The class BOPAlgo_PaveFiller implements +//! intersection part of partition and +//! boolean operation algorithms.It is used to +//! initialize the data structure (DS); +//! compute interferences; +//! build split/section edges and p-curves; +//! store all obtained informaton in DS. class BOPAlgo_PaveFiller : public BOPAlgo_Algo { public: DEFINE_STANDARD_ALLOC - + //! Empty constructor Standard_EXPORT BOPAlgo_PaveFiller(); + //! Destructor Standard_EXPORT virtual ~BOPAlgo_PaveFiller(); - + + //! Contructor + //! theAllocator - the allocator to manage the memory Standard_EXPORT BOPAlgo_PaveFiller(const BOPCol_BaseAllocator& theAllocator); - + + //! Returns the data structure Standard_EXPORT const BOPDS_DS& DS(); - + + //! Returns the data structure Standard_EXPORT BOPDS_PDS PDS(); - - Standard_EXPORT const BOPDS_PIterator& Iterator(); - + + //Standard_EXPORT const BOPDS_PIterator& Iterator(); + + //! Sets the arguments (shapes) for the operation Standard_EXPORT void SetArguments (const BOPCol_ListOfShape& theLS); - + + //! Returns the arguments of an operation Standard_EXPORT const BOPCol_ListOfShape& Arguments() const; - + + //! Returns the intersection Context Standard_EXPORT const Handle(IntTools_Context)& Context(); - + + //! Sets auxiliary attributes to the container Standard_EXPORT void SetSectionAttribute (const BOPAlgo_SectionAttribute& theSecAttr); //! Sets the flag that defines the mode of treatment. @@ -98,6 +113,22 @@ public: //! a copy of a sub-shape is created in the result if it is needed to be updated. Standard_EXPORT Standard_Boolean NonDestructive() const; + //! The interferences between shapes are computed on the basis of increasing + //! of the dimension value of the shape in the following order: + //! Vertex / Vertex,------| + //! Vertex / Edge, | + //! Edge / Edge, |Brep Interferences, occurs in place of 3D space where + //! Vertex / Face, |the distance between the underlying geometry of shapes + //! Edge / Face, |is less or equal to the sum of tolerances of the shapes + //! Face / Face,----------| + //! + //! Vertex / Solid,-------| + //! Edge / Solid, |Non-Brep interferences, occurs if two shapes has no brep + //! Face / Solid, |interferences but one shape completely inside the other + //! Solid / Solid.--------| + //! This order allows avoiding the computation of redundant interferences between + //! upper - level shapes when there are interferences between lower sub - shapes. + //! The result of interferences will be stored in DS Standard_EXPORT virtual void Perform() Standard_OVERRIDE; @@ -121,67 +152,101 @@ protected: //! Sets non-destructive mode automatically if an argument //! contains a locked sub-shape (see TopoDS_Shape::Locked()). Standard_EXPORT void SetNonDestructive(); - + + //! Standard_EXPORT void SetIsPrimary(const Standard_Boolean theFlag); - + + //! Standard_EXPORT Standard_Boolean IsPrimary() const; Standard_EXPORT virtual void PerformInternal(); - + + //! Clears the contents Standard_EXPORT virtual void Clear(); - + + //! Initialize the contents: data structure, + //! iterator and intersection context Standard_EXPORT virtual void Init(); - + + //! Prepare the data (update edges if it is nessesary) Standard_EXPORT void Prepare(); - + + //! Compute Vertex/Vertex interferences Standard_EXPORT virtual void PerformVV(); - + + //! Compute Vertex/Edge interferences Standard_EXPORT virtual void PerformVE(); - + + //! Compute Vertex/Face interferences Standard_EXPORT virtual void PerformVF(); - + + //! Compute Edge/Edge interferences Standard_EXPORT virtual void PerformEE(); - + + //! Compute Edge/Face interferences Standard_EXPORT virtual void PerformEF(); - + + //! Compute Face/Face interferences Standard_EXPORT virtual void PerformFF(); - + + //! Compute Vertex/Solid interferences Standard_EXPORT virtual void PerformVZ(); - + + //! Compute Edge/Solid interferences Standard_EXPORT virtual void PerformEZ(); - + + //! Compute Face/Solid interferences Standard_EXPORT virtual void PerformFZ(); - + + //! Compute Solid/Solid interferences Standard_EXPORT virtual void PerformZZ(); + //! Compute Shape/Solid interferences + //! - type of shape Standard_EXPORT virtual void PerformSZ(const TopAbs_ShapeEnum aTS); - + + //! Compute VF interferences for each new vertex from EE interferences Standard_EXPORT void TreatVerticesEE(); Standard_EXPORT void MakeSDVerticesFF(const BOPCol_DataMapOfIntegerListOfInteger& aDMVLV, BOPCol_DataMapOfIntegerInteger& theDMNewSD); + //! For each pave block do the folowing: + //! get the real pave block, which is equal this pave block + //! if it is not a common block or first PB from the list of common block; + //! build split edge, append it to the current PB and store info about new edge in DS Standard_EXPORT void MakeSplitEdges(); - + + //! Standard_EXPORT void MakeBlocks(); Standard_EXPORT void MakePCurves(); + //! Build new vertices from the vertices located to each other + //! at a distance less the sum of their tolerances. + //! Store information about new vertices in Data Structure. Standard_EXPORT Standard_Integer MakeSDVertices(const BOPCol_ListOfInteger& theVertIndices, const Standard_Boolean theAddInterfs = 1); - + + //! Process Degenerated edges if it is needed Standard_EXPORT void ProcessDE(); - + + //! Set shrunk data for the current paveblock Standard_EXPORT void FillShrunkData (Handle(BOPDS_PaveBlock)& thePB); - - Standard_EXPORT void FillShrunkData (const TopAbs_ShapeEnum theType1, const TopAbs_ShapeEnum theType2); - + + //! Sets shrunk data of the edges that has interferences with other shapes + //! , denotes which interferences should be considered + Standard_EXPORT void FillShrunkData (const TopAbs_ShapeEnum theType1, + const TopAbs_ShapeEnum theType2); + + //! Standard_EXPORT Standard_Integer PerformVerticesEE (BOPDS_IndexedDataMapOfShapeCoupleOfPaveBlocks& theMVCPB, const BOPCol_BaseAllocator& theAllocator); Standard_EXPORT Standard_Integer PerformVerticesEF (BOPDS_IndexedDataMapOfShapeCoupleOfPaveBlocks& theMVCPB, const BOPCol_BaseAllocator& theAllocator); Standard_EXPORT Standard_Boolean CheckFacePaves (const TopoDS_Vertex& theVnew, const BOPCol_MapOfInteger& theMIF); - + + //! Standard_EXPORT static Standard_Boolean CheckFacePaves (const Standard_Integer theN, const BOPCol_MapOfInteger& theMIFOn, const BOPCol_MapOfInteger& theMIFIn); Standard_EXPORT Standard_Boolean IsExistingVertex (const gp_Pnt& theP, const Standard_Real theTol, const BOPCol_MapOfInteger& theMVOn) const; @@ -233,10 +298,14 @@ protected: Standard_EXPORT void FindPaveBlocks (const Standard_Integer theV, const Standard_Integer theF, BOPDS_ListOfPaveBlock& theLPB); Standard_EXPORT void FillPaves (const Standard_Integer theV, const Standard_Integer theE, const Standard_Integer theF, const BOPDS_ListOfPaveBlock& theLPB, const Handle(BOPDS_PaveBlock)& thePB); - + + //! Standard_EXPORT void MakeSplitEdge (const Standard_Integer theV, const Standard_Integer theF); - - Standard_EXPORT void GetEFPnts (const Standard_Integer nF1, const Standard_Integer nF2, IntSurf_ListOfPntOn2S& aListOfPnts); + + //! new pnt from interference EF + Standard_EXPORT void GetEFPnts (const Standard_Integer nF1, + const Standard_Integer nF2, + IntSurf_ListOfPntOn2S& aListOfPnts); //! Checks and puts paves created in EF intersections on the curve . @@ -261,18 +330,24 @@ protected: //! two faces ( and ) to the map . //! Also, it collects indices of EF vertices to the map //! and indices of all subshapes of these two faces to the map. - Standard_EXPORT void GetStickVertices (const Standard_Integer nF1, const Standard_Integer nF2, BOPCol_MapOfInteger& theMVStick, BOPCol_MapOfInteger& theMVEF, BOPCol_MapOfInteger& theMI); + Standard_EXPORT void GetStickVertices (const Standard_Integer nF1, + const Standard_Integer nF2, + BOPCol_MapOfInteger& theMVStick, + BOPCol_MapOfInteger& theMVEF, + BOPCol_MapOfInteger& theMI); //! Collects index nF and indices of all subshapes of the shape with index //! to the map . - Standard_EXPORT void GetFullShapeMap (const Standard_Integer nF, BOPCol_MapOfInteger& theMI); + Standard_EXPORT void GetFullShapeMap (const Standard_Integer nF, + BOPCol_MapOfInteger& theMI); //! Removes indices of vertices that are already on the //! curve from the map . //! It is used in PutEFPavesOnCurve and PutStickPavesOnCurve methods. - Standard_EXPORT void RemoveUsedVertices (BOPDS_Curve& theNC, BOPCol_MapOfInteger& theMV); + Standard_EXPORT void RemoveUsedVertices (BOPDS_Curve& theNC, + BOPCol_MapOfInteger& theMV); //! Puts the pave nV on the curve theNC. @@ -291,17 +366,26 @@ protected: //! Adds the existing edges from the map which interfere //! with the vertices from map to the post treatment of section edges. - Standard_EXPORT void ProcessExistingPaveBlocks (const Standard_Integer theInt, const BOPDS_IndexedMapOfPaveBlock& theMPBOnIn, const BOPCol_DataMapOfIntegerListOfInteger& theDMBV, BOPDS_IndexedDataMapOfShapeCoupleOfPaveBlocks& theMSCPB, BOPCol_DataMapOfShapeInteger& theMVI, BOPDS_MapOfPaveBlock& theMPB); + Standard_EXPORT void ProcessExistingPaveBlocks (const Standard_Integer theInt, + const BOPDS_IndexedMapOfPaveBlock& theMPBOnIn, + const BOPCol_DataMapOfIntegerListOfInteger& theDMBV, + BOPDS_IndexedDataMapOfShapeCoupleOfPaveBlocks& theMSCPB, + BOPCol_DataMapOfShapeInteger& theMVI, + BOPDS_MapOfPaveBlock& theMPB); //! Replaces existing pave block with new pave blocks . //! The list contains images of which were created in //! the post treatment of section edges. - Standard_EXPORT void UpdateExistingPaveBlocks (const Handle(BOPDS_PaveBlock)& thePB, BOPDS_ListOfPaveBlock& theLPB, const Standard_Integer nF1, const Standard_Integer nF2); + Standard_EXPORT void UpdateExistingPaveBlocks (const Handle(BOPDS_PaveBlock)& thePB, + BOPDS_ListOfPaveBlock& theLPB, + const Standard_Integer nF1, + const Standard_Integer nF2); //! Treatment of vertices that were created in EE intersections. - Standard_EXPORT void TreatNewVertices(const BOPDS_IndexedDataMapOfShapeCoupleOfPaveBlocks& theMVCPB, BOPCol_IndexedDataMapOfShapeListOfShape& theImages); + Standard_EXPORT void TreatNewVertices(const BOPDS_IndexedDataMapOfShapeCoupleOfPaveBlocks& theMVCPB, + BOPCol_IndexedDataMapOfShapeListOfShape& theImages); //! Put paves on the curve in case when @@ -310,7 +394,12 @@ protected: //! Keeps data for post treatment - Standard_EXPORT void PreparePostTreatFF (const Standard_Integer aInt, const Standard_Integer aCur, const Handle(BOPDS_PaveBlock)& aPB, BOPDS_IndexedDataMapOfShapeCoupleOfPaveBlocks& aMSCPB, BOPCol_DataMapOfShapeInteger& aMVI, BOPDS_ListOfPaveBlock& aLPB); + Standard_EXPORT void PreparePostTreatFF (const Standard_Integer aInt, + const Standard_Integer aCur, + const Handle(BOPDS_PaveBlock)& aPB, + BOPDS_IndexedDataMapOfShapeCoupleOfPaveBlocks& aMSCPB, + BOPCol_DataMapOfShapeInteger& aMVI, + BOPDS_ListOfPaveBlock& aLPB); //! Refines the state On for the all faces having @@ -319,27 +408,36 @@ protected: //! Updates the information about faces - Standard_EXPORT void UpdateFaceInfo (BOPDS_DataMapOfPaveBlockListOfPaveBlock& theDME, const BOPCol_DataMapOfIntegerInteger& theDMV); + Standard_EXPORT void UpdateFaceInfo (BOPDS_DataMapOfPaveBlockListOfPaveBlock& theDME, + const BOPCol_DataMapOfIntegerInteger& theDMV); //! Updates tolerance of vertex with index //! to make it interfere with edge - Standard_EXPORT void ForceInterfVE (const Standard_Integer nV, Handle(BOPDS_PaveBlock)& aPB, BOPDS_MapOfPaveBlock& aMPB); + Standard_EXPORT void ForceInterfVE (const Standard_Integer nV, + Handle(BOPDS_PaveBlock)& aPB, + BOPDS_MapOfPaveBlock& aMPB); //! Updates tolerance of vertex with index //! to make it interfere with face with index - Standard_EXPORT Standard_Boolean ForceInterfVF (const Standard_Integer nV, const Standard_Integer nF); + Standard_EXPORT Standard_Boolean ForceInterfVF (const Standard_Integer nV, + const Standard_Integer nF); //! Checks if there are any common or intersecting sub shapes //! between two planar faces. - Standard_EXPORT Standard_Boolean CheckPlanes (const Standard_Integer nF1, const Standard_Integer nF2) const; + Standard_EXPORT Standard_Boolean CheckPlanes (const Standard_Integer nF1, + const Standard_Integer nF2) const; //! Creates new edge from the edge nE with vertices nV1 and nV2 //! and returns the index of that new edge in the DS. - Standard_EXPORT Standard_Integer SplitEdge (const Standard_Integer nE, const Standard_Integer nV1, const Standard_Real aT1, const Standard_Integer nV2, const Standard_Real aT2); + Standard_EXPORT Standard_Integer SplitEdge (const Standard_Integer nE, + const Standard_Integer nV1, + const Standard_Real aT1, + const Standard_Integer nV2, + const Standard_Real aT2); //! Updates pave blocks which have the paves with indices contained @@ -351,11 +449,14 @@ protected: //! @return DS index of updated vertex. Standard_EXPORT Standard_Integer UpdateVertex(const Standard_Integer nV, const Standard_Real aTolNew); - + + //! Update the pave blocks for all shapes in data structure Standard_EXPORT void UpdatePaveBlocksWithSDVertices(); + //! Update the pave block of the common block for all shapes in data structure Standard_EXPORT void UpdateCommonBlocksWithSDVertices(); - + + //! Standard_EXPORT void UpdateBlocksWithSharedVertices(); Standard_EXPORT Standard_Boolean EstimatePaveOnCurve(const Standard_Integer nV, diff --git a/src/BOPAlgo/BOPAlgo_PaveFiller_1.cxx b/src/BOPAlgo/BOPAlgo_PaveFiller_1.cxx index 686d9073f5..0aed9afdad 100644 --- a/src/BOPAlgo/BOPAlgo_PaveFiller_1.cxx +++ b/src/BOPAlgo/BOPAlgo_PaveFiller_1.cxx @@ -108,7 +108,7 @@ void BOPAlgo_PaveFiller::PerformVV() } //======================================================================= -// function: PerformVV +// function: MakeSDVertices // purpose: //======================================================================= Standard_Integer BOPAlgo_PaveFiller::MakeSDVertices diff --git a/src/BOPAlgo/BOPAlgo_Tools.hxx b/src/BOPAlgo/BOPAlgo_Tools.hxx index 698dadc5a7..87ef134a60 100644 --- a/src/BOPAlgo/BOPAlgo_Tools.hxx +++ b/src/BOPAlgo/BOPAlgo_Tools.hxx @@ -32,27 +32,60 @@ class BOPDS_PaveBlock; class BOPDS_CommonBlock; class IntTools_Context; +//! Provides static methods to perform interferenses between VV, VE, EE etc. class BOPAlgo_Tools { public: DEFINE_STANDARD_ALLOC - - Standard_EXPORT static void MakeBlocksCnx (const BOPCol_IndexedDataMapOfIntegerListOfInteger& theMILI, BOPCol_DataMapOfIntegerListOfInteger& theMBlocks, const BOPCol_BaseAllocator& theAllocator); - - Standard_EXPORT static void MakeBlocks (const BOPDS_IndexedDataMapOfPaveBlockListOfPaveBlock& theMILI, BOPDS_DataMapOfIntegerListOfPaveBlock& theMBlocks, const BOPCol_BaseAllocator& theAllocator); - - Standard_EXPORT static void PerformCommonBlocks (BOPDS_IndexedDataMapOfPaveBlockListOfPaveBlock& theMBlocks, const BOPCol_BaseAllocator& theAllocator, BOPDS_PDS& pDS); - + //! Compute the connexity chains of interfered vertices + //! + Standard_EXPORT static void MakeBlocksCnx (const BOPCol_IndexedDataMapOfIntegerListOfInteger& theMILI, + BOPCol_DataMapOfIntegerListOfInteger& theMBlocks, + const BOPCol_BaseAllocator& theAllocator); + + //! Compute common blocks from map of interfered pave blocks . + //! The result list of common blocks will be stored in . + Standard_EXPORT static void MakeBlocks (const BOPDS_IndexedDataMapOfPaveBlockListOfPaveBlock& theMILI, + BOPDS_DataMapOfIntegerListOfPaveBlock& theMBlocks, + const BOPCol_BaseAllocator& theAllocator); + + //! For each common part of intersected edges : + //! Compute connexity chains of pave blocks; compute common blocks on them; + //! attach the common blocks to the pave blocks; + //! store information about new commmon blocks in DS + Standard_EXPORT static void PerformCommonBlocks (BOPDS_IndexedDataMapOfPaveBlockListOfPaveBlock& theMBlocks, + const BOPCol_BaseAllocator& theAllocator, + BOPDS_PDS& pDS); + + //! Standard_EXPORT static void FillMap (const Standard_Integer tneN1, const Standard_Integer tneN2, BOPCol_IndexedDataMapOfIntegerListOfInteger& theMILI, const BOPCol_BaseAllocator& theAllocator); - - Standard_EXPORT static void FillMap (const Handle(BOPDS_PaveBlock)& tnePB1, const Handle(BOPDS_PaveBlock)& tnePB2, BOPDS_IndexedDataMapOfPaveBlockListOfPaveBlock& theMILI, const BOPCol_BaseAllocator& theAllocator); - - Standard_EXPORT static void FillMap (const Handle(BOPDS_PaveBlock)& tnePB1, const Standard_Integer tneF, BOPDS_IndexedDataMapOfPaveBlockListOfInteger& theMILI, const BOPCol_BaseAllocator& theAllocator); - - Standard_EXPORT static void PerformCommonBlocks (const BOPDS_IndexedDataMapOfPaveBlockListOfInteger& theMBlocks, const BOPCol_BaseAllocator& theAllocator, BOPDS_PDS& pDS); + //! Add interfered pave blocks (, ) to the map . + //! The key of this map is a pave block, and the value + //! is a list of pave blocks intersected with the key + Standard_EXPORT static void FillMap (const Handle(BOPDS_PaveBlock)& tnePB1, + const Handle(BOPDS_PaveBlock)& tnePB2, + BOPDS_IndexedDataMapOfPaveBlockListOfPaveBlock& theMILI, + const BOPCol_BaseAllocator& theAllocator); + + //! Fil the map . + //! The key is - pave plock , + //! the value - list of faces which intersects with the pave block + Standard_EXPORT static void FillMap (const Handle(BOPDS_PaveBlock)& tnePB1, + const Standard_Integer tneF, + BOPDS_IndexedDataMapOfPaveBlockListOfInteger& theMILI, + const BOPCol_BaseAllocator& theAllocator); + + //! For each common part of edge: create common blocks + //! from pave blocks that lie on the faces + //! and attach them to the pave blocks in DS + Standard_EXPORT static void PerformCommonBlocks (const BOPDS_IndexedDataMapOfPaveBlockListOfInteger& theMBlocks, + const BOPCol_BaseAllocator& theAllocator, + BOPDS_PDS& pDS); + + //! Returns tolerance of common block Standard_EXPORT static Standard_Real ComputeToleranceOfCB (const Handle(BOPDS_CommonBlock)& theCB, const BOPDS_PDS theDS, diff --git a/src/BOPDS/BOPDS_DS.hxx b/src/BOPDS/BOPDS_DS.hxx index a8828960d2..2b94a7e18f 100644 --- a/src/BOPDS/BOPDS_DS.hxx +++ b/src/BOPDS/BOPDS_DS.hxx @@ -433,14 +433,26 @@ Standard_EXPORT virtual ~BOPDS_DS(); //! debug const BOPDS_MapOfPassKey& Interferences() const; + //! Prints the information about the shape Standard_EXPORT void Dump() const; + + //! Sort pave blocks in common block according their tolerance Standard_EXPORT void SortPaveBlocks (const Handle(BOPDS_CommonBlock)& theCB); + + //! Query + //! Returns true if pave block with index theI + //! in common block should be sorted Standard_EXPORT Standard_Boolean IsToSort (const Handle(BOPDS_CommonBlock)& theCB, Standard_Integer& theI); + + //! Query + //! Returns true if the shape with indice theI1 + //! is a sub-shape of the shape with indice theI2 Standard_EXPORT Standard_Boolean IsSubShape (const Standard_Integer theI1, const Standard_Integer theI2); + //! Fills theLP with sorted paves //! of the shape with index theIndex Standard_EXPORT void Paves (const Standard_Integer theIndex, BOPDS_ListOfPave& theLP); @@ -457,6 +469,8 @@ Standard_EXPORT virtual ~BOPDS_DS(); //! Update the pave block of the common block for all shapes in data structure Standard_EXPORT void UpdateCommonBlockWithSDVertices(const Handle(BOPDS_CommonBlock)& theCB); + //! Initializes the pave block for vertices,which was + //! used during computing V/V interferences Standard_EXPORT void InitPaveBlocksForVertex(const Standard_Integer theNV); protected: @@ -472,8 +486,10 @@ protected: //! Initializes the state of face with index theIndex Standard_EXPORT void InitFaceInfo (const Standard_Integer theIndex); + //! Standard_EXPORT void InitShape (const Standard_Integer theIndex, const TopoDS_Shape& theS, const BOPCol_BaseAllocator& theAllocator, BOPCol_DataMapOfShapeInteger& theMSI); + //! Standard_EXPORT Standard_Boolean CheckCoincidence (const Handle(BOPDS_PaveBlock)& thePB1, const Handle(BOPDS_PaveBlock)& thePB2, const Standard_Real theFuzz); diff --git a/src/BOPDS/BOPDS_ShapeInfo.hxx b/src/BOPDS/BOPDS_ShapeInfo.hxx index 08d03580e4..789d30d90d 100644 --- a/src/BOPDS/BOPDS_ShapeInfo.hxx +++ b/src/BOPDS/BOPDS_ShapeInfo.hxx @@ -101,6 +101,8 @@ virtual ~BOPDS_ShapeInfo(); //! index theI Standard_Boolean HasSubShape (const Standard_Integer theI) const; + //! Query + //! Returns true if the shape has reference information Standard_Boolean HasReference() const; diff --git a/src/BOPTools/BOPTools_AlgoTools.hxx b/src/BOPTools/BOPTools_AlgoTools.hxx index feaf2509f8..8a7fff93d6 100644 --- a/src/BOPTools/BOPTools_AlgoTools.hxx +++ b/src/BOPTools/BOPTools_AlgoTools.hxx @@ -52,13 +52,18 @@ public: DEFINE_STANDARD_ALLOC - Standard_EXPORT static Standard_Integer ComputeVV (const TopoDS_Vertex& aV1, const gp_Pnt& aP2, const Standard_Real aTolP2); - + Standard_EXPORT static Standard_Integer ComputeVV (const TopoDS_Vertex& aV1, + const gp_Pnt& aP2, + const Standard_Real aTolP2); + + //! Standard_EXPORT static Standard_Integer ComputeVV (const TopoDS_Vertex& aV1, const TopoDS_Vertex& aV2, const Standard_Real theFuzz = Precision::Confusion()); - - Standard_EXPORT static void MakeVertex (const BOPCol_ListOfShape& aLV, TopoDS_Vertex& aV); + + //! Make one new vertex(aV) from the input list of vertices + Standard_EXPORT static void MakeVertex (const BOPCol_ListOfShape& aLV, + TopoDS_Vertex& aV); Standard_EXPORT static void MakeEdge (const IntTools_Curve& theCurve, const TopoDS_Vertex& theV1, const Standard_Real theT1, const TopoDS_Vertex& theV2, const Standard_Real theT2, const Standard_Real theTolR3D, TopoDS_Edge& theE);