Open CASCADE Technology  7.4.0
Public Member Functions | Protected Member Functions | Protected Attributes
TopOpeBRepBuild_Builder1 Class Reference

extension of the class TopOpeBRepBuild_Builder dedicated to avoid bugs in "Rebuilding Result" algorithm for the case of SOLID/SOLID Boolean Operations More...

#include <TopOpeBRepBuild_Builder1.hxx>

Inheritance diagram for TopOpeBRepBuild_Builder1:
Inheritance graph
[legend]

Public Member Functions

 TopOpeBRepBuild_Builder1 (const TopOpeBRepDS_BuildTool &BT)
 
virtual ~TopOpeBRepBuild_Builder1 ()
 
virtual void Clear () override
 Removes all splits and merges already performed. Does NOT clear the handled DS (except ShapeWithStatesMaps). More...
 
virtual void Perform (const Handle< TopOpeBRepDS_HDataStructure > &HDS) override
 Stores the data structure <HDS>, Create shapes from the new geometries. More...
 
virtual void Perform (const Handle< TopOpeBRepDS_HDataStructure > &HDS, const TopoDS_Shape &S1, const TopoDS_Shape &S2) override
 Stores the data structure <HDS>, Create shapes from the new geometries, Evaluates if an operation performed on shapes S1,S2 is a particular case. More...
 
virtual void MergeKPart () override
 
virtual void MergeKPart (const TopAbs_State TB1, const TopAbs_State TB2) override
 
virtual void GFillSolidSFS (const TopoDS_Shape &SO1, const TopTools_ListOfShape &LSO2, const TopOpeBRepBuild_GTopo &G, TopOpeBRepBuild_ShellFaceSet &SFS) override
 
virtual void GFillShellSFS (const TopoDS_Shape &SH1, const TopTools_ListOfShape &LSO2, const TopOpeBRepBuild_GTopo &G, TopOpeBRepBuild_ShellFaceSet &SFS) override
 
virtual void GWESMakeFaces (const TopoDS_Shape &FF, TopOpeBRepBuild_WireEdgeSet &WES, TopTools_ListOfShape &LOF) override
 
void GFillSplitsPVS (const TopoDS_Shape &anEdge, const TopOpeBRepBuild_GTopo &G1, TopOpeBRepBuild_PaveSet &PVS)
 
void GFillFaceNotSameDomSFS (const TopoDS_Shape &F1, const TopTools_ListOfShape &LSO2, const TopOpeBRepBuild_GTopo &G, TopOpeBRepBuild_ShellFaceSet &SFS)
 
void GFillFaceNotSameDomWES (const TopoDS_Shape &F1, const TopTools_ListOfShape &LSO2, const TopOpeBRepBuild_GTopo &G, TopOpeBRepBuild_WireEdgeSet &WES)
 
void GFillWireNotSameDomWES (const TopoDS_Shape &W1, const TopTools_ListOfShape &LSO2, const TopOpeBRepBuild_GTopo &G, TopOpeBRepBuild_WireEdgeSet &WES)
 
void GFillEdgeNotSameDomWES (const TopoDS_Shape &E1, const TopTools_ListOfShape &LSO2, const TopOpeBRepBuild_GTopo &G, TopOpeBRepBuild_WireEdgeSet &WES)
 
void GFillFaceSameDomSFS (const TopoDS_Shape &F1, const TopTools_ListOfShape &LSO2, const TopOpeBRepBuild_GTopo &G, TopOpeBRepBuild_ShellFaceSet &SFS)
 
void GFillFaceSameDomWES (const TopoDS_Shape &F1, const TopTools_ListOfShape &LSO2, const TopOpeBRepBuild_GTopo &G, TopOpeBRepBuild_WireEdgeSet &WES)
 
void GFillWireSameDomWES (const TopoDS_Shape &W1, const TopTools_ListOfShape &LSO2, const TopOpeBRepBuild_GTopo &G, TopOpeBRepBuild_WireEdgeSet &WES)
 
void GFillEdgeSameDomWES (const TopoDS_Shape &E1, const TopTools_ListOfShape &LSO2, const TopOpeBRepBuild_GTopo &G, TopOpeBRepBuild_WireEdgeSet &WES)
 
void PerformONParts (const TopoDS_Shape &F, const TopTools_IndexedMapOfShape &SDfaces, const TopOpeBRepBuild_GTopo &G, TopOpeBRepBuild_WireEdgeSet &WES)
 
void PerformPieceIn2D (const TopoDS_Edge &aPieceToPerform, const TopoDS_Edge &aOriginalEdge, const TopoDS_Face &edgeFace, const TopoDS_Face &toFace, const TopOpeBRepBuild_GTopo &G, Standard_Boolean &keep)
 
Standard_Integer PerformPieceOn2D (const TopoDS_Shape &aPieceObj, const TopoDS_Shape &aFaceObj, const TopoDS_Shape &aEdgeObj, TopTools_ListOfShape &aListOfPieces, TopTools_ListOfShape &aListOfFaces, TopTools_ListOfShape &aListOfPiecesOut2d)
 
Standard_Integer TwoPiecesON (const TopTools_SequenceOfShape &aSeq, TopTools_ListOfShape &aListOfPieces, TopTools_ListOfShape &aListOfFaces, TopTools_ListOfShape &aListOfPiecesOut2d)
 
Standard_Integer CorrectResult2d (TopoDS_Shape &aResult)
 
- Public Member Functions inherited from TopOpeBRepBuild_Builder
 TopOpeBRepBuild_Builder (const TopOpeBRepDS_BuildTool &BT)
 
virtual ~TopOpeBRepBuild_Builder ()
 
TopOpeBRepDS_BuildToolChangeBuildTool ()
 
const TopOpeBRepDS_BuildToolBuildTool () const
 
Handle< TopOpeBRepDS_HDataStructureDataStructure () const
 returns the DS handled by this builder More...
 
void MergeEdges (const TopTools_ListOfShape &L1, const TopAbs_State TB1, const TopTools_ListOfShape &L2, const TopAbs_State TB2, const Standard_Boolean onA=Standard_False, const Standard_Boolean onB=Standard_False, const Standard_Boolean onAB=Standard_False)
 Merges the two edges <S1> and <S2> keeping the parts in each edge of states <TB1> and <TB2>. Booleans onA, onB, onAB indicate wheter parts of edges found as state ON respectively on first, second, and both shapes must be (or not) built. More...
 
void MergeFaces (const TopTools_ListOfShape &S1, const TopAbs_State TB1, const TopTools_ListOfShape &S2, const TopAbs_State TB2, const Standard_Boolean onA=Standard_False, const Standard_Boolean onB=Standard_False, const Standard_Boolean onAB=Standard_False)
 Merges the two faces <S1> and <S2> keeping the parts in each face of states <TB1> and <TB2>. More...
 
void MergeSolids (const TopoDS_Shape &S1, const TopAbs_State TB1, const TopoDS_Shape &S2, const TopAbs_State TB2)
 Merges the two solids <S1> and <S2> keeping the parts in each solid of states <TB1> and <TB2>. More...
 
void MergeShapes (const TopoDS_Shape &S1, const TopAbs_State TB1, const TopoDS_Shape &S2, const TopAbs_State TB2)
 Merges the two shapes <S1> and <S2> keeping the parts of states <TB1>,<TB2> in <S1>,<S2>. More...
 
void End ()
 
Standard_Boolean Classify () const
 
void ChangeClassify (const Standard_Boolean B)
 
void MergeSolid (const TopoDS_Shape &S, const TopAbs_State TB)
 Merges the solid <S> keeping the parts of state <TB>. More...
 
const TopoDS_ShapeNewVertex (const Standard_Integer I) const
 Returns the vertex created on point . More...
 
const TopTools_ListOfShapeNewEdges (const Standard_Integer I) const
 Returns the edges created on curve . More...
 
const TopTools_ListOfShapeNewFaces (const Standard_Integer I) const
 Returns the faces created on surface . More...
 
Standard_Boolean IsSplit (const TopoDS_Shape &S, const TopAbs_State TB) const
 Returns True if the shape <S> has been split. More...
 
const TopTools_ListOfShapeSplits (const TopoDS_Shape &S, const TopAbs_State TB) const
 Returns the split parts <TB> of shape <S>. More...
 
Standard_Boolean IsMerged (const TopoDS_Shape &S, const TopAbs_State TB) const
 Returns True if the shape <S> has been merged. More...
 
const TopTools_ListOfShapeMerged (const TopoDS_Shape &S, const TopAbs_State TB) const
 Returns the merged parts <TB> of shape <S>. More...
 
void InitSection ()
 
void SplitSectionEdges ()
 create parts ON solid of section edges More...
 
virtual void SplitSectionEdge (const TopoDS_Shape &E)
 create parts ON solid of section edges More...
 
void SectionCurves (TopTools_ListOfShape &L)
 return the section edges built on new curves. More...
 
void SectionEdges (TopTools_ListOfShape &L)
 return the parts of edges found ON the boundary of the two arguments S1,S2 of Perform() More...
 
void FillSecEdgeAncestorMap (const Standard_Integer aShapeRank, const TopTools_MapOfShape &aMapON, TopTools_DataMapOfShapeShape &anAncMap) const
 Fills anAncMap with pairs (edge,ancestor edge) for each split from the map aMapON for the shape object identified by ShapeRank. More...
 
void Section (TopTools_ListOfShape &L)
 return all section edges. More...
 
const TopTools_ListOfShapeSection ()
 
void BuildVertices (const Handle< TopOpeBRepDS_HDataStructure > &DS)
 update the DS by creating new geometries. create vertices on DS points. More...
 
void BuildEdges (const Handle< TopOpeBRepDS_HDataStructure > &DS)
 update the DS by creating new geometries. create shapes from the new geometries. More...
 
const TopOpeBRepDS_DataMapOfShapeListOfShapeOn1StateMSplit (const TopAbs_State s) const
 
TopOpeBRepDS_DataMapOfShapeListOfShapeOn1StateChangeMSplit (const TopAbs_State s)
 
void MakeEdges (const TopoDS_Shape &E, TopOpeBRepBuild_EdgeBuilder &B, TopTools_ListOfShape &L)
 
void MakeFaces (const TopoDS_Shape &F, TopOpeBRepBuild_FaceBuilder &B, TopTools_ListOfShape &L)
 
void MakeSolids (TopOpeBRepBuild_SolidBuilder &B, TopTools_ListOfShape &L)
 
void MakeShells (TopOpeBRepBuild_SolidBuilder &B, TopTools_ListOfShape &L)
 
TopTools_ListOfShapeChangeSplit (const TopoDS_Shape &S, const TopAbs_State TB)
 Returns a ref.on the list of shapes connected to <S> as <TB> split parts of <S>. Mark <S> as split in <TB> parts. More...
 
Standard_Boolean Opec12 () const
 
Standard_Boolean Opec21 () const
 
Standard_Boolean Opecom () const
 
Standard_Boolean Opefus () const
 
TopAbs_State ShapePosition (const TopoDS_Shape &S, const TopTools_ListOfShape &LS)
 
Standard_Boolean KeepShape (const TopoDS_Shape &S, const TopTools_ListOfShape &LS, const TopAbs_State T)
 
void FindSameDomain (TopTools_ListOfShape &L1, TopTools_ListOfShape &L2) const
 
void FindSameDomainSameOrientation (TopTools_ListOfShape &LSO, TopTools_ListOfShape &LDO) const
 
void MapShapes (const TopoDS_Shape &S1, const TopoDS_Shape &S2)
 
void ClearMaps ()
 
void FindSameRank (const TopTools_ListOfShape &L1, const Standard_Integer R, TopTools_ListOfShape &L2) const
 
Standard_Integer ShapeRank (const TopoDS_Shape &S) const
 
Standard_Boolean IsShapeOf (const TopoDS_Shape &S, const Standard_Integer I12) const
 
Standard_Integer FindIsKPart ()
 
Standard_Integer IsKPart () const
 
void MergeKPartiskole ()
 
void MergeKPartiskoletge ()
 
void MergeKPartisdisj ()
 
void MergeKPartisfafa ()
 
void MergeKPartissoso ()
 
Standard_Integer KPiskole ()
 
Standard_Integer KPiskoletge ()
 
Standard_Integer KPisdisj ()
 
Standard_Integer KPisfafa ()
 
Standard_Integer KPissoso ()
 
void KPClearMaps ()
 
Standard_Integer KPlhg (const TopoDS_Shape &S, const TopAbs_ShapeEnum T, TopTools_ListOfShape &L) const
 
Standard_Integer KPlhg (const TopoDS_Shape &S, const TopAbs_ShapeEnum T) const
 
Standard_Integer KPlhsd (const TopoDS_Shape &S, const TopAbs_ShapeEnum T, TopTools_ListOfShape &L) const
 
Standard_Integer KPlhsd (const TopoDS_Shape &S, const TopAbs_ShapeEnum T) const
 
TopAbs_State KPclasSS (const TopoDS_Shape &S1, const TopTools_ListOfShape &exceptLS1, const TopoDS_Shape &S2)
 
TopAbs_State KPclasSS (const TopoDS_Shape &S1, const TopoDS_Shape &exceptS1, const TopoDS_Shape &S2)
 
TopAbs_State KPclasSS (const TopoDS_Shape &S1, const TopoDS_Shape &S2)
 
Standard_Boolean KPiskolesh (const TopoDS_Shape &S, TopTools_ListOfShape &LS, TopTools_ListOfShape &LF) const
 
Standard_Boolean KPiskoletgesh (const TopoDS_Shape &S, TopTools_ListOfShape &LS, TopTools_ListOfShape &LF) const
 
void KPSameDomain (TopTools_ListOfShape &L1, TopTools_ListOfShape &L2) const
 
Standard_Integer KPisdisjsh (const TopoDS_Shape &S) const
 
Standard_Integer KPisfafash (const TopoDS_Shape &S) const
 
Standard_Integer KPissososh (const TopoDS_Shape &S) const
 
void KPiskoleanalyse (const TopAbs_State FT1, const TopAbs_State FT2, const TopAbs_State ST1, const TopAbs_State ST2, Standard_Integer &I, Standard_Integer &I1, Standard_Integer &I2) const
 
void KPiskoletgeanalyse (const TopOpeBRepDS_Config Conf, const TopAbs_State ST1, const TopAbs_State ST2, Standard_Integer &I) const
 
void KPisdisjanalyse (const TopAbs_State ST1, const TopAbs_State ST2, Standard_Integer &I, Standard_Integer &IC1, Standard_Integer &IC2) const
 
TopAbs_State KPclassF (const TopoDS_Shape &F1, const TopoDS_Shape &F2)
 
void KPclassFF (const TopoDS_Shape &F1, const TopoDS_Shape &F2, TopAbs_State &T1, TopAbs_State &T2)
 
Standard_Boolean KPiskoleFF (const TopoDS_Shape &F1, const TopoDS_Shape &F2, TopAbs_State &T1, TopAbs_State &T2)
 
TopoDS_Shape KPmakeface (const TopoDS_Shape &F1, const TopTools_ListOfShape &LF2, const TopAbs_State T1, const TopAbs_State T2, const Standard_Boolean R1, const Standard_Boolean R2)
 
void SplitEvisoONperiodicF ()
 
void GMergeSolids (const TopTools_ListOfShape &LSO1, const TopTools_ListOfShape &LSO2, const TopOpeBRepBuild_GTopo &G)
 
void GFillSolidsSFS (const TopTools_ListOfShape &LSO1, const TopTools_ListOfShape &LSO2, const TopOpeBRepBuild_GTopo &G, TopOpeBRepBuild_ShellFaceSet &SFS)
 
void GFillSurfaceTopologySFS (const TopoDS_Shape &SO1, const TopOpeBRepBuild_GTopo &G, TopOpeBRepBuild_ShellFaceSet &SFS)
 
void GFillSurfaceTopologySFS (const TopOpeBRepDS_SurfaceIterator &IT, const TopOpeBRepBuild_GTopo &G, TopOpeBRepBuild_ShellFaceSet &SFS) const
 
void GFillFaceSFS (const TopoDS_Shape &F1, const TopTools_ListOfShape &LSO2, const TopOpeBRepBuild_GTopo &G, TopOpeBRepBuild_ShellFaceSet &SFS)
 
void GSplitFaceSFS (const TopoDS_Shape &F1, const TopTools_ListOfShape &LSclass, const TopOpeBRepBuild_GTopo &G, TopOpeBRepBuild_ShellFaceSet &SFS)
 
void GMergeFaceSFS (const TopoDS_Shape &F, const TopOpeBRepBuild_GTopo &G, TopOpeBRepBuild_ShellFaceSet &SFS)
 
void GSplitFace (const TopoDS_Shape &F, const TopOpeBRepBuild_GTopo &G, const TopTools_ListOfShape &LSclass)
 
void AddONPatchesSFS (const TopOpeBRepBuild_GTopo &G, TopOpeBRepBuild_ShellFaceSet &SFS)
 
void FillOnPatches (const TopTools_ListOfShape &anEdgesON, const TopoDS_Shape &aBaseFace, const TopTools_IndexedMapOfOrientedShape &avoidMap)
 
void FindFacesTouchingEdge (const TopoDS_Shape &aFace, const TopoDS_Shape &anEdge, const Standard_Integer aShRank, TopTools_ListOfShape &aFaces) const
 
void GMergeFaces (const TopTools_ListOfShape &LF1, const TopTools_ListOfShape &LF2, const TopOpeBRepBuild_GTopo &G)
 
void GFillFacesWES (const TopTools_ListOfShape &LF1, const TopTools_ListOfShape &LF2, const TopOpeBRepBuild_GTopo &G, TopOpeBRepBuild_WireEdgeSet &WES)
 
void GFillFacesWESK (const TopTools_ListOfShape &LF1, const TopTools_ListOfShape &LF2, const TopOpeBRepBuild_GTopo &G, TopOpeBRepBuild_WireEdgeSet &WES, const Standard_Integer K)
 
void GFillFacesWESMakeFaces (const TopTools_ListOfShape &LF1, const TopTools_ListOfShape &LF2, const TopTools_ListOfShape &LSO, const TopOpeBRepBuild_GTopo &G)
 
void GFillFaceWES (const TopoDS_Shape &F, const TopTools_ListOfShape &LF2, const TopOpeBRepBuild_GTopo &G, TopOpeBRepBuild_WireEdgeSet &WES)
 
void GFillCurveTopologyWES (const TopoDS_Shape &F, const TopOpeBRepBuild_GTopo &G, TopOpeBRepBuild_WireEdgeSet &WES)
 
void GFillCurveTopologyWES (const TopOpeBRepDS_CurveIterator &IT, const TopOpeBRepBuild_GTopo &G, TopOpeBRepBuild_WireEdgeSet &WES) const
 
void GFillONPartsWES (const TopoDS_Shape &F, const TopOpeBRepBuild_GTopo &G, const TopTools_ListOfShape &LSclass, TopOpeBRepBuild_WireEdgeSet &WES)
 
void GFillWireWES (const TopoDS_Shape &W, const TopTools_ListOfShape &LF2, const TopOpeBRepBuild_GTopo &G, TopOpeBRepBuild_WireEdgeSet &WES)
 
void GFillEdgeWES (const TopoDS_Shape &E, const TopTools_ListOfShape &LF2, const TopOpeBRepBuild_GTopo &G, TopOpeBRepBuild_WireEdgeSet &WES)
 
void GSplitEdgeWES (const TopoDS_Shape &E, const TopTools_ListOfShape &LF2, const TopOpeBRepBuild_GTopo &G, TopOpeBRepBuild_WireEdgeSet &WES)
 
void GMergeEdgeWES (const TopoDS_Shape &E, const TopOpeBRepBuild_GTopo &G, TopOpeBRepBuild_WireEdgeSet &WES)
 
void GSplitEdge (const TopoDS_Shape &E, const TopOpeBRepBuild_GTopo &G, const TopTools_ListOfShape &LSclass)
 
void GMergeEdges (const TopTools_ListOfShape &LE1, const TopTools_ListOfShape &LE2, const TopOpeBRepBuild_GTopo &G)
 
void GFillEdgesPVS (const TopTools_ListOfShape &LE1, const TopTools_ListOfShape &LE2, const TopOpeBRepBuild_GTopo &G, TopOpeBRepBuild_PaveSet &PVS)
 
void GFillEdgePVS (const TopoDS_Shape &E, const TopTools_ListOfShape &LE2, const TopOpeBRepBuild_GTopo &G, TopOpeBRepBuild_PaveSet &PVS)
 
void GFillPointTopologyPVS (const TopoDS_Shape &E, const TopOpeBRepBuild_GTopo &G, TopOpeBRepBuild_PaveSet &PVS)
 
void GFillPointTopologyPVS (const TopoDS_Shape &E, const TopOpeBRepDS_PointIterator &IT, const TopOpeBRepBuild_GTopo &G, TopOpeBRepBuild_PaveSet &PVS) const
 
Standard_Boolean GParamOnReference (const TopoDS_Vertex &V, const TopoDS_Edge &E, Standard_Real &P) const
 
Standard_Boolean GKeepShape (const TopoDS_Shape &S, const TopTools_ListOfShape &Lref, const TopAbs_State T)
 
Standard_Boolean GKeepShape1 (const TopoDS_Shape &S, const TopTools_ListOfShape &Lref, const TopAbs_State T, TopAbs_State &pos)
 return True if S is classified <T> / Lref shapes More...
 
void GKeepShapes (const TopoDS_Shape &S, const TopTools_ListOfShape &Lref, const TopAbs_State T, const TopTools_ListOfShape &Lin, TopTools_ListOfShape &Lou)
 add to Lou the shapes of Lin classified <T> / Lref shapes. Lou is not cleared. (S is a dummy trace argument) More...
 
void GSFSMakeSolids (const TopoDS_Shape &SOF, TopOpeBRepBuild_ShellFaceSet &SFS, TopTools_ListOfShape &LOSO)
 
void GSOBUMakeSolids (const TopoDS_Shape &SOF, TopOpeBRepBuild_SolidBuilder &SOBU, TopTools_ListOfShape &LOSO)
 
void GFABUMakeFaces (const TopoDS_Shape &FF, TopOpeBRepBuild_FaceBuilder &FABU, TopTools_ListOfShape &LOF, TopTools_DataMapOfShapeInteger &MWisOld)
 
void RegularizeFaces (const TopoDS_Shape &FF, const TopTools_ListOfShape &lnewFace, TopTools_ListOfShape &LOF)
 
void RegularizeFace (const TopoDS_Shape &FF, const TopoDS_Shape &newFace, TopTools_ListOfShape &LOF)
 
void RegularizeSolids (const TopoDS_Shape &SS, const TopTools_ListOfShape &lnewSolid, TopTools_ListOfShape &LOS)
 
void RegularizeSolid (const TopoDS_Shape &SS, const TopoDS_Shape &newSolid, TopTools_ListOfShape &LOS)
 
void GPVSMakeEdges (const TopoDS_Shape &EF, TopOpeBRepBuild_PaveSet &PVS, TopTools_ListOfShape &LOE) const
 
void GEDBUMakeEdges (const TopoDS_Shape &EF, TopOpeBRepBuild_EdgeBuilder &EDBU, TopTools_ListOfShape &LOE) const
 
Standard_Boolean GToSplit (const TopoDS_Shape &S, const TopAbs_State TB) const
 
Standard_Boolean GToMerge (const TopoDS_Shape &S) const
 
void GFindSamDom (const TopoDS_Shape &S, TopTools_ListOfShape &L1, TopTools_ListOfShape &L2) const
 
void GFindSamDom (TopTools_ListOfShape &L1, TopTools_ListOfShape &L2) const
 
void GFindSamDomSODO (const TopoDS_Shape &S, TopTools_ListOfShape &LSO, TopTools_ListOfShape &LDO) const
 
void GFindSamDomSODO (TopTools_ListOfShape &LSO, TopTools_ListOfShape &LDO) const
 
void GMapShapes (const TopoDS_Shape &S1, const TopoDS_Shape &S2)
 
void GClearMaps ()
 
void GFindSameRank (const TopTools_ListOfShape &L1, const Standard_Integer R, TopTools_ListOfShape &L2) const
 
Standard_Integer GShapeRank (const TopoDS_Shape &S) const
 
Standard_Boolean GIsShapeOf (const TopoDS_Shape &S, const Standard_Integer I12) const
 
void GdumpLS (const TopTools_ListOfShape &L) const
 
void GdumpSHA (const TopoDS_Shape &S, const Standard_Address str=NULL) const
 
void GdumpSHAORI (const TopoDS_Shape &S, const Standard_Address str=NULL) const
 
void GdumpSHAORIGEO (const TopoDS_Shape &S, const Standard_Address str=NULL) const
 
void GdumpSHASTA (const Standard_Integer iS, const TopAbs_State T, const TCollection_AsciiString &a="", const TCollection_AsciiString &b="") const
 
void GdumpSHASTA (const TopoDS_Shape &S, const TopAbs_State T, const TCollection_AsciiString &a="", const TCollection_AsciiString &b="") const
 
void GdumpSHASTA (const Standard_Integer iS, const TopAbs_State T, const TopOpeBRepBuild_ShapeSet &SS, const TCollection_AsciiString &a="", const TCollection_AsciiString &b="", const TCollection_AsciiString &c="\) const
 
void GdumpEDG (const TopoDS_Shape &S, const Standard_Address str=NULL) const
 
void GdumpEDGVER (const TopoDS_Shape &E, const TopoDS_Shape &V, const Standard_Address str=NULL) const
 
void GdumpSAMDOM (const TopTools_ListOfShape &L, const Standard_Address str=NULL) const
 
void GdumpEXP (const TopOpeBRepTool_ShapeExplorer &E) const
 
void GdumpSOBU (TopOpeBRepBuild_SolidBuilder &SB) const
 
void GdumpFABU (TopOpeBRepBuild_FaceBuilder &FB) const
 
void GdumpEDBU (TopOpeBRepBuild_EdgeBuilder &EB) const
 
Standard_Boolean GtraceSPS (const Standard_Integer iS) const
 
Standard_Boolean GtraceSPS (const Standard_Integer iS, const Standard_Integer jS) const
 
Standard_Boolean GtraceSPS (const TopoDS_Shape &S) const
 
Standard_Boolean GtraceSPS (const TopoDS_Shape &S, Standard_Integer &IS) const
 
void GdumpSHASETreset ()
 
Standard_Integer GdumpSHASETindex ()
 

Protected Member Functions

void PerformShapeWithStates ()
 
void PerformShapeWithStates (const TopoDS_Shape &anObj, const TopoDS_Shape &aTool)
 
void StatusEdgesToSplit (const TopoDS_Shape &anObj, const TopTools_IndexedMapOfShape &anEdgesToSplitMap, const TopTools_IndexedMapOfShape &anEdgesToRestMap)
 
void SplitEdge (const TopoDS_Shape &anEdge, TopTools_ListOfShape &aLNew, TopOpeBRepDS_DataMapOfShapeState &aDataMapOfShapeState)
 
void PerformFacesWithStates (const TopoDS_Shape &anObj, const TopTools_IndexedMapOfShape &aFaces, TopOpeBRepDS_DataMapOfShapeState &aSplF)
 
Standard_Integer IsSame2d (const TopTools_SequenceOfShape &aSeq, TopTools_ListOfShape &aListOfPiecesOut2d)
 
void OrientateEdgeOnFace (TopoDS_Edge &EdgeToPerform, const TopoDS_Face &baseFace, const TopoDS_Face &edgeFace, const TopOpeBRepBuild_GTopo &G1, Standard_Boolean &stateOfFaceOri) const
 
- Protected Member Functions inherited from TopOpeBRepBuild_Builder
void BuildEdges (const Standard_Integer iC, const Handle< TopOpeBRepDS_HDataStructure > &DS)
 update the DS by creating new geometries. create edges on the new curve <Icurv>. More...
 
void BuildFaces (const Standard_Integer iS, const Handle< TopOpeBRepDS_HDataStructure > &DS)
 update the DS by creating new geometries. create faces on the new surface <ISurf>. More...
 
void BuildFaces (const Handle< TopOpeBRepDS_HDataStructure > &DS)
 update the DS by creating new geometries. create shapes from the new geometries. More...
 
void SplitEdge (const TopoDS_Shape &E1, const TopAbs_State TB1, const TopAbs_State TB2)
 Split <E1> keeping the parts of state <TB1>. More...
 
void SplitEdge1 (const TopoDS_Shape &E1, const TopAbs_State TB1, const TopAbs_State TB2)
 Split <E1> keeping the parts of state <TB1>. More...
 
void SplitEdge2 (const TopoDS_Shape &E1, const TopAbs_State TB1, const TopAbs_State TB2)
 Split <E1> keeping the parts of state <TB1>. More...
 
void SplitFace (const TopoDS_Shape &F1, const TopAbs_State TB1, const TopAbs_State TB2)
 Split <F1> keeping the parts of state <TB1>. Merge faces with same domain, keeping parts of state <TB2>. More...
 
void SplitFace1 (const TopoDS_Shape &F1, const TopAbs_State TB1, const TopAbs_State TB2)
 
void SplitFace2 (const TopoDS_Shape &F1, const TopAbs_State TB1, const TopAbs_State TB2)
 
void SplitSolid (const TopoDS_Shape &S1, const TopAbs_State TB1, const TopAbs_State TB2)
 Split <S1> keeping the parts of state <TB1>. More...
 
void SplitShapes (TopOpeBRepTool_ShapeExplorer &Ex, const TopAbs_State TB1, const TopAbs_State TB2, TopOpeBRepBuild_ShapeSet &SS, const Standard_Boolean RevOri)
 Explore shapes of given by explorer <Ex> to split them. Store new shapes in the set <SS>. According to RevOri, reverse or not their orientation. More...
 
void FillFace (const TopoDS_Shape &F1, const TopAbs_State TB1, const TopTools_ListOfShape &LF2, const TopAbs_State TB2, TopOpeBRepBuild_WireEdgeSet &WES, const Standard_Boolean RevOri)
 Split edges of <F1> and store wires and edges in the set <WES>. According to RevOri, reverse (or not) orientation. More...
 
void FillSolid (const TopoDS_Shape &S1, const TopAbs_State TB1, const TopTools_ListOfShape &LS2, const TopAbs_State TB2, TopOpeBRepBuild_ShapeSet &SS, const Standard_Boolean RevOri)
 Split faces of <S1> and store shells and faces in the set <SS>. According to RevOri, reverse (or not) orientation. More...
 
void FillShape (const TopoDS_Shape &S1, const TopAbs_State TB1, const TopTools_ListOfShape &LS2, const TopAbs_State TB2, TopOpeBRepBuild_ShapeSet &SS, const Standard_Boolean RevOri)
 Split subshapes of <S1> and store subshapes in the set <SS>. According to RevOri, reverse (or not) orientation. More...
 
void FillVertexSet (TopOpeBRepDS_PointIterator &IT, const TopAbs_State TB, TopOpeBRepBuild_PaveSet &PVS) const
 fills the vertex set PVS with the point iterator IT. IT accesses a list of interferences which geometry is a point or a vertex. TB indicates the orientation to give to the geometries found in interference list accessed by IT. More...
 
void FillVertexSetOnValue (const TopOpeBRepDS_PointIterator &IT, const TopAbs_State TB, TopOpeBRepBuild_PaveSet &PVS) const
 fills vertex set PVS with the current value of IT. I geometry is a point or a vertex. TB indicates the orientation to give to geometries found I More...
 
Standard_Boolean ToSplit (const TopoDS_Shape &S, const TopAbs_State TB) const
 Returns True if the shape <S> has not already been split. More...
 
void MarkSplit (const TopoDS_Shape &S, const TopAbs_State TB, const Standard_Boolean B=Standard_True)
 add the shape <S> to the map of split shapes. mark <S> as split/not split on <state>, according to B value. More...
 
TopTools_ListOfShapeChangeMerged (const TopoDS_Shape &S, const TopAbs_State TB)
 Returns a ref. on the list of shapes connected to <S> as <TB> merged parts of <S>. More...
 
TopoDS_ShapeChangeNewVertex (const Standard_Integer I)
 Returns a ref. on the vertex created on point . More...
 
TopTools_ListOfShapeChangeNewEdges (const Standard_Integer I)
 Returns a ref. on the list of edges created on curve . More...
 
TopTools_ListOfShapeChangeNewFaces (const Standard_Integer I)
 Returns a ref. on the list of faces created on surface . More...
 
void AddIntersectionEdges (TopoDS_Shape &F, const TopAbs_State TB, const Standard_Boolean RevOri, TopOpeBRepBuild_ShapeSet &ES) const
 
void UpdateSplitAndMerged (const TopTools_DataMapOfIntegerListOfShape &mle, const TopTools_DataMapOfIntegerShape &mre, const TopTools_DataMapOfShapeShape &mlf, const TopAbs_State state)
 

Protected Attributes

TopTools_DataMapOfShapeListOfShape myFSplits
 
TopTools_DataMapOfShapeListOfShape myESplits
 
- Protected Attributes inherited from TopOpeBRepBuild_Builder
TopAbs_State myState1
 
TopAbs_State myState2
 
TopoDS_Shape myShape1
 
TopoDS_Shape myShape2
 
Handle< TopOpeBRepDS_HDataStructuremyDataStructure
 
TopOpeBRepDS_BuildTool myBuildTool
 
Handle< TopTools_HArray1OfShape > myNewVertices
 
TopTools_DataMapOfIntegerListOfShape myNewEdges
 
Handle< TopTools_HArray1OfListOfShape > myNewFaces
 
TopOpeBRepDS_DataMapOfShapeListOfShapeOn1State mySplitIN
 
TopOpeBRepDS_DataMapOfShapeListOfShapeOn1State mySplitON
 
TopOpeBRepDS_DataMapOfShapeListOfShapeOn1State mySplitOUT
 
TopOpeBRepDS_DataMapOfShapeListOfShapeOn1State myMergedIN
 
TopOpeBRepDS_DataMapOfShapeListOfShapeOn1State myMergedON
 
TopOpeBRepDS_DataMapOfShapeListOfShapeOn1State myMergedOUT
 
TopTools_ListOfShape myEmptyShapeList
 
TopTools_ListOfShape myListOfSolid
 
TopTools_ListOfShape myListOfFace
 
TopTools_ListOfShape myListOfEdge
 
TopTools_DataMapOfShapeListOfShape myFSplits
 
TopTools_DataMapOfShapeListOfShape myESplits
 
Standard_Boolean mySectionDone
 
Standard_Boolean mySplitSectionEdgesDone
 
TopTools_ListOfShape mySection
 
TopoDS_Solid mySolidReference
 
TopoDS_Solid mySolidToFill
 
TopTools_ListOfShape myFaceAvoid
 
TopoDS_Face myFaceReference
 
TopoDS_Face myFaceToFill
 
TopTools_ListOfShape myEdgeAvoid
 
TopoDS_Edge myEdgeReference
 
TopoDS_Edge myEdgeToFill
 
TopTools_ListOfShape myVertexAvoid
 
TopTools_IndexedMapOfShape myMAP1
 
TopTools_IndexedMapOfShape myMAP2
 
Standard_Integer myIsKPart
 
TopTools_DataMapOfShapeListOfShape myKPMAPf1f2
 
Standard_Integer mySHASETindex
 
Standard_Boolean myClassifyDef
 
Standard_Boolean myClassifyVal
 
TopOpeBRepTool_ShapeClassifier myShapeClassifier
 
TopTools_MapOfShape myMemoSplit
 
TCollection_AsciiString myEmptyAS
 
Standard_Boolean myProcessON
 
TopTools_IndexedDataMapOfShapeShape myONFacesMap
 
TopTools_IndexedMapOfOrientedShape myONElemMap
 

Additional Inherited Members

- Static Public Member Functions inherited from TopOpeBRepBuild_Builder
static TopAbs_ShapeEnum TopType (const TopoDS_Shape &S)
 
static Standard_Boolean Reverse (const TopAbs_State T1, const TopAbs_State T2)
 
static TopAbs_Orientation Orient (const TopAbs_Orientation O, const Standard_Boolean R)
 
static Standard_Boolean Contains (const TopoDS_Shape &S, const TopTools_ListOfShape &L)
 
static Standard_Integer KPls (const TopoDS_Shape &S, const TopAbs_ShapeEnum T, TopTools_ListOfShape &L)
 
static Standard_Integer KPls (const TopoDS_Shape &S, const TopAbs_ShapeEnum T)
 
static Standard_Boolean KPContains (const TopoDS_Shape &S, const TopTools_ListOfShape &L)
 
static Standard_Integer KPreturn (const Standard_Integer KP)
 
static Standard_Boolean GTakeCommonOfSame (const TopOpeBRepBuild_GTopo &G)
 
static Standard_Boolean GTakeCommonOfDiff (const TopOpeBRepBuild_GTopo &G)
 
static Standard_Boolean GContains (const TopoDS_Shape &S, const TopTools_ListOfShape &L)
 
static void GCopyList (const TopTools_ListOfShape &Lin, const Standard_Integer i1, const Standard_Integer i2, TopTools_ListOfShape &Lou)
 
static void GCopyList (const TopTools_ListOfShape &Lin, TopTools_ListOfShape &Lou)
 
static void GdumpPNT (const gp_Pnt &P)
 
static void GdumpORIPARPNT (const TopAbs_Orientation o, const Standard_Real p, const gp_Pnt &Pnt)
 
static void PrintGeo (const TopoDS_Shape &S)
 
static void PrintSur (const TopoDS_Face &F)
 
static void PrintCur (const TopoDS_Edge &E)
 
static void PrintPnt (const TopoDS_Vertex &V)
 
static void PrintOri (const TopoDS_Shape &S)
 
static TCollection_AsciiString StringState (const TopAbs_State S)
 
static Standard_Boolean GcheckNBOUNDS (const TopoDS_Shape &E)
 

Detailed Description

extension of the class TopOpeBRepBuild_Builder dedicated to avoid bugs in "Rebuilding Result" algorithm for the case of SOLID/SOLID Boolean Operations

Constructor & Destructor Documentation

◆ TopOpeBRepBuild_Builder1()

TopOpeBRepBuild_Builder1::TopOpeBRepBuild_Builder1 ( const TopOpeBRepDS_BuildTool BT)

◆ ~TopOpeBRepBuild_Builder1()

virtual TopOpeBRepBuild_Builder1::~TopOpeBRepBuild_Builder1 ( )
virtual

Member Function Documentation

◆ Clear()

virtual void TopOpeBRepBuild_Builder1::Clear ( )
overridevirtual

Removes all splits and merges already performed. Does NOT clear the handled DS (except ShapeWithStatesMaps).

Reimplemented from TopOpeBRepBuild_Builder.

◆ CorrectResult2d()

Standard_Integer TopOpeBRepBuild_Builder1::CorrectResult2d ( TopoDS_Shape aResult)

◆ GFillEdgeNotSameDomWES()

void TopOpeBRepBuild_Builder1::GFillEdgeNotSameDomWES ( const TopoDS_Shape E1,
const TopTools_ListOfShape LSO2,
const TopOpeBRepBuild_GTopo G,
TopOpeBRepBuild_WireEdgeSet WES 
)

◆ GFillEdgeSameDomWES()

void TopOpeBRepBuild_Builder1::GFillEdgeSameDomWES ( const TopoDS_Shape E1,
const TopTools_ListOfShape LSO2,
const TopOpeBRepBuild_GTopo G,
TopOpeBRepBuild_WireEdgeSet WES 
)

◆ GFillFaceNotSameDomSFS()

void TopOpeBRepBuild_Builder1::GFillFaceNotSameDomSFS ( const TopoDS_Shape F1,
const TopTools_ListOfShape LSO2,
const TopOpeBRepBuild_GTopo G,
TopOpeBRepBuild_ShellFaceSet SFS 
)

◆ GFillFaceNotSameDomWES()

void TopOpeBRepBuild_Builder1::GFillFaceNotSameDomWES ( const TopoDS_Shape F1,
const TopTools_ListOfShape LSO2,
const TopOpeBRepBuild_GTopo G,
TopOpeBRepBuild_WireEdgeSet WES 
)

◆ GFillFaceSameDomSFS()

void TopOpeBRepBuild_Builder1::GFillFaceSameDomSFS ( const TopoDS_Shape F1,
const TopTools_ListOfShape LSO2,
const TopOpeBRepBuild_GTopo G,
TopOpeBRepBuild_ShellFaceSet SFS 
)

◆ GFillFaceSameDomWES()

void TopOpeBRepBuild_Builder1::GFillFaceSameDomWES ( const TopoDS_Shape F1,
const TopTools_ListOfShape LSO2,
const TopOpeBRepBuild_GTopo G,
TopOpeBRepBuild_WireEdgeSet WES 
)

◆ GFillShellSFS()

virtual void TopOpeBRepBuild_Builder1::GFillShellSFS ( const TopoDS_Shape SH1,
const TopTools_ListOfShape LSO2,
const TopOpeBRepBuild_GTopo G,
TopOpeBRepBuild_ShellFaceSet SFS 
)
overridevirtual

Reimplemented from TopOpeBRepBuild_Builder.

◆ GFillSolidSFS()

virtual void TopOpeBRepBuild_Builder1::GFillSolidSFS ( const TopoDS_Shape SO1,
const TopTools_ListOfShape LSO2,
const TopOpeBRepBuild_GTopo G,
TopOpeBRepBuild_ShellFaceSet SFS 
)
overridevirtual

Reimplemented from TopOpeBRepBuild_Builder.

◆ GFillSplitsPVS()

void TopOpeBRepBuild_Builder1::GFillSplitsPVS ( const TopoDS_Shape anEdge,
const TopOpeBRepBuild_GTopo G1,
TopOpeBRepBuild_PaveSet PVS 
)

◆ GFillWireNotSameDomWES()

void TopOpeBRepBuild_Builder1::GFillWireNotSameDomWES ( const TopoDS_Shape W1,
const TopTools_ListOfShape LSO2,
const TopOpeBRepBuild_GTopo G,
TopOpeBRepBuild_WireEdgeSet WES 
)

◆ GFillWireSameDomWES()

void TopOpeBRepBuild_Builder1::GFillWireSameDomWES ( const TopoDS_Shape W1,
const TopTools_ListOfShape LSO2,
const TopOpeBRepBuild_GTopo G,
TopOpeBRepBuild_WireEdgeSet WES 
)

◆ GWESMakeFaces()

virtual void TopOpeBRepBuild_Builder1::GWESMakeFaces ( const TopoDS_Shape FF,
TopOpeBRepBuild_WireEdgeSet WES,
TopTools_ListOfShape LOF 
)
overridevirtual

Reimplemented from TopOpeBRepBuild_Builder.

◆ IsSame2d()

Standard_Integer TopOpeBRepBuild_Builder1::IsSame2d ( const TopTools_SequenceOfShape aSeq,
TopTools_ListOfShape aListOfPiecesOut2d 
)
protected

◆ MergeKPart() [1/2]

virtual void TopOpeBRepBuild_Builder1::MergeKPart ( )
overridevirtual

Reimplemented from TopOpeBRepBuild_Builder.

◆ MergeKPart() [2/2]

virtual void TopOpeBRepBuild_Builder1::MergeKPart ( const TopAbs_State  TB1,
const TopAbs_State  TB2 
)
overridevirtual

Reimplemented from TopOpeBRepBuild_Builder.

◆ OrientateEdgeOnFace()

void TopOpeBRepBuild_Builder1::OrientateEdgeOnFace ( TopoDS_Edge EdgeToPerform,
const TopoDS_Face baseFace,
const TopoDS_Face edgeFace,
const TopOpeBRepBuild_GTopo G1,
Standard_Boolean stateOfFaceOri 
) const
protected

◆ Perform() [1/2]

virtual void TopOpeBRepBuild_Builder1::Perform ( const Handle< TopOpeBRepDS_HDataStructure > &  HDS)
overridevirtual

Stores the data structure <HDS>, Create shapes from the new geometries.

Reimplemented from TopOpeBRepBuild_Builder.

◆ Perform() [2/2]

virtual void TopOpeBRepBuild_Builder1::Perform ( const Handle< TopOpeBRepDS_HDataStructure > &  HDS,
const TopoDS_Shape S1,
const TopoDS_Shape S2 
)
overridevirtual

Stores the data structure <HDS>, Create shapes from the new geometries, Evaluates if an operation performed on shapes S1,S2 is a particular case.

Reimplemented from TopOpeBRepBuild_Builder.

◆ PerformFacesWithStates()

void TopOpeBRepBuild_Builder1::PerformFacesWithStates ( const TopoDS_Shape anObj,
const TopTools_IndexedMapOfShape aFaces,
TopOpeBRepDS_DataMapOfShapeState aSplF 
)
protected

◆ PerformONParts()

void TopOpeBRepBuild_Builder1::PerformONParts ( const TopoDS_Shape F,
const TopTools_IndexedMapOfShape SDfaces,
const TopOpeBRepBuild_GTopo G,
TopOpeBRepBuild_WireEdgeSet WES 
)

◆ PerformPieceIn2D()

void TopOpeBRepBuild_Builder1::PerformPieceIn2D ( const TopoDS_Edge aPieceToPerform,
const TopoDS_Edge aOriginalEdge,
const TopoDS_Face edgeFace,
const TopoDS_Face toFace,
const TopOpeBRepBuild_GTopo G,
Standard_Boolean keep 
)

◆ PerformPieceOn2D()

Standard_Integer TopOpeBRepBuild_Builder1::PerformPieceOn2D ( const TopoDS_Shape aPieceObj,
const TopoDS_Shape aFaceObj,
const TopoDS_Shape aEdgeObj,
TopTools_ListOfShape aListOfPieces,
TopTools_ListOfShape aListOfFaces,
TopTools_ListOfShape aListOfPiecesOut2d 
)

◆ PerformShapeWithStates() [1/2]

void TopOpeBRepBuild_Builder1::PerformShapeWithStates ( )
protected

◆ PerformShapeWithStates() [2/2]

void TopOpeBRepBuild_Builder1::PerformShapeWithStates ( const TopoDS_Shape anObj,
const TopoDS_Shape aTool 
)
protected

◆ SplitEdge()

void TopOpeBRepBuild_Builder1::SplitEdge ( const TopoDS_Shape anEdge,
TopTools_ListOfShape aLNew,
TopOpeBRepDS_DataMapOfShapeState aDataMapOfShapeState 
)
protected

◆ StatusEdgesToSplit()

void TopOpeBRepBuild_Builder1::StatusEdgesToSplit ( const TopoDS_Shape anObj,
const TopTools_IndexedMapOfShape anEdgesToSplitMap,
const TopTools_IndexedMapOfShape anEdgesToRestMap 
)
protected

◆ TwoPiecesON()

Standard_Integer TopOpeBRepBuild_Builder1::TwoPiecesON ( const TopTools_SequenceOfShape aSeq,
TopTools_ListOfShape aListOfPieces,
TopTools_ListOfShape aListOfFaces,
TopTools_ListOfShape aListOfPiecesOut2d 
)

Field Documentation

◆ myESplits

TopTools_DataMapOfShapeListOfShape TopOpeBRepBuild_Builder1::myESplits
protected

◆ myFSplits

TopTools_DataMapOfShapeListOfShape TopOpeBRepBuild_Builder1::myFSplits
protected

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