Open CASCADE Technology 7.7.2
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).
 
virtual void Perform (const Handle< TopOpeBRepDS_HDataStructure > &HDS) override
 Stores the data structure <HDS>, Create shapes from the new geometries.
 
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.
 
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
 
virtual void Perform (const Handle< TopOpeBRepDS_HDataStructure > &HDS)
 Stores the data structure <HDS>, Create shapes from the new geometries.
 
virtual void Perform (const Handle< TopOpeBRepDS_HDataStructure > &HDS, const TopoDS_Shape &S1, const TopoDS_Shape &S2)
 Stores the data structure <HDS>, Create shapes from the new geometries, Evaluates if an operation performed on shapes S1,S2 is a particular case.
 
Handle< TopOpeBRepDS_HDataStructureDataStructure () const
 returns the DS handled by this builder
 
virtual void Clear ()
 Removes all splits and merges already performed. Does NOT clear the handled DS.
 
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 whether parts of edges found as state ON respectively on first, second, and both shapes must be (or not) built.
 
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>.
 
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>.
 
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>.
 
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 keeping the parts of state <TB>.
 
const TopoDS_ShapeNewVertex (const Standard_Integer I) const
 Returns the vertex created on point .
 
const TopTools_ListOfShapeNewEdges (const Standard_Integer I) const
 Returns the edges created on curve .
 
const TopTools_ListOfShapeNewFaces (const Standard_Integer I) const
 Returns the faces created on surface .
 
Standard_Boolean IsSplit (const TopoDS_Shape &S, const TopAbs_State TB) const
 Returns True if the shape has been split.
 
const TopTools_ListOfShapeSplits (const TopoDS_Shape &S, const TopAbs_State TB) const
 Returns the split parts <TB> of shape .
 
Standard_Boolean IsMerged (const TopoDS_Shape &S, const TopAbs_State TB) const
 Returns True if the shape has been merged.
 
const TopTools_ListOfShapeMerged (const TopoDS_Shape &S, const TopAbs_State TB) const
 Returns the merged parts <TB> of shape .
 
void InitSection ()
 
void SplitSectionEdges ()
 create parts ON solid of section edges
 
virtual void SplitSectionEdge (const TopoDS_Shape &E)
 create parts ON solid of section edges
 
void SectionCurves (TopTools_ListOfShape &L)
 return the section edges built on new curves.
 
void SectionEdges (TopTools_ListOfShape &L)
 return the parts of edges found ON the boundary of the two arguments S1,S2 of Perform()
 
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.
 
void Section (TopTools_ListOfShape &L)
 return all section edges.
 
const TopTools_ListOfShapeSection ()
 
void BuildVertices (const Handle< TopOpeBRepDS_HDataStructure > &DS)
 update the DS by creating new geometries. create vertices on DS points.
 
void BuildEdges (const Handle< TopOpeBRepDS_HDataStructure > &DS)
 update the DS by creating new geometries. create shapes from the new geometries.
 
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 as <TB> split parts of . Mark as split in <TB> parts.
 
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
 
virtual void MergeKPart ()
 
virtual void MergeKPart (const TopAbs_State TB1, const TopAbs_State TB2)
 
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)
 
virtual void GFillSolidSFS (const TopoDS_Shape &SO1, 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
 
virtual void GFillShellSFS (const TopoDS_Shape &SH1, const TopTools_ListOfShape &LSO2, const TopOpeBRepBuild_GTopo &G, TopOpeBRepBuild_ShellFaceSet &SFS)
 
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
 
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)
 
void GSFSMakeSolids (const TopoDS_Shape &SOF, TopOpeBRepBuild_ShellFaceSet &SFS, TopTools_ListOfShape &LOSO)
 
void GSOBUMakeSolids (const TopoDS_Shape &SOF, TopOpeBRepBuild_SolidBuilder &SOBU, TopTools_ListOfShape &LOSO)
 
virtual void GWESMakeFaces (const TopoDS_Shape &FF, TopOpeBRepBuild_WireEdgeSet &WES, TopTools_ListOfShape &LOF)
 
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="\n") 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>.
 
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>.
 
void BuildFaces (const Handle< TopOpeBRepDS_HDataStructure > &DS)
 update the DS by creating new geometries. create shapes from the new geometries.
 
void SplitEdge (const TopoDS_Shape &E1, const TopAbs_State TB1, const TopAbs_State TB2)
 Split <E1> keeping the parts of state <TB1>.
 
void SplitEdge1 (const TopoDS_Shape &E1, const TopAbs_State TB1, const TopAbs_State TB2)
 Split <E1> keeping the parts of state <TB1>.
 
void SplitEdge2 (const TopoDS_Shape &E1, const TopAbs_State TB1, const TopAbs_State TB2)
 Split <E1> keeping the parts of state <TB1>.
 
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>.
 
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>.
 
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.
 
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.
 
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.
 
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.
 
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.
 
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
 
Standard_Boolean ToSplit (const TopoDS_Shape &S, const TopAbs_State TB) const
 Returns True if the shape has not already been split.
 
void MarkSplit (const TopoDS_Shape &S, const TopAbs_State TB, const Standard_Boolean B=Standard_True)
 add the shape to the map of split shapes. mark as split/not split on <state>, according to B value.
 
TopTools_ListOfShapeChangeMerged (const TopoDS_Shape &S, const TopAbs_State TB)
 Returns a ref. on the list of shapes connected to as <TB> merged parts of .
 
TopoDS_ShapeChangeNewVertex (const Standard_Integer I)
 Returns a ref. on the vertex created on point .
 
TopTools_ListOfShapeChangeNewEdges (const Standard_Integer I)
 Returns a ref. on the list of edges created on curve .
 
TopTools_ListOfShapeChangeNewFaces (const Standard_Integer I)
 Returns a ref. on the list of faces created on surface .
 
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: