File indexing completed on 2025-01-18 10:05:25
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 #ifndef _TopOpeBRepBuild_Builder_HeaderFile
0018 #define _TopOpeBRepBuild_Builder_HeaderFile
0019
0020 #include <Standard.hxx>
0021 #include <Standard_DefineAlloc.hxx>
0022 #include <Standard_Handle.hxx>
0023
0024 #include <TopAbs_State.hxx>
0025 #include <TopoDS_Shape.hxx>
0026 #include <TopOpeBRepDS_BuildTool.hxx>
0027 #include <TopTools_HArray1OfShape.hxx>
0028 #include <TopTools_DataMapOfIntegerListOfShape.hxx>
0029 #include <TopTools_HArray1OfListOfShape.hxx>
0030 #include <TopOpeBRepDS_DataMapOfShapeListOfShapeOn1State.hxx>
0031 #include <TopTools_ListOfShape.hxx>
0032 #include <TopTools_DataMapOfShapeListOfShape.hxx>
0033 #include <TopoDS_Solid.hxx>
0034 #include <TopoDS_Face.hxx>
0035 #include <TopoDS_Edge.hxx>
0036 #include <TopTools_IndexedMapOfShape.hxx>
0037 #include <Standard_Integer.hxx>
0038 #include <TopOpeBRepTool_ShapeClassifier.hxx>
0039 #include <TopTools_MapOfShape.hxx>
0040 #include <TCollection_AsciiString.hxx>
0041 #include <TopTools_IndexedDataMapOfShapeShape.hxx>
0042 #include <TopTools_IndexedMapOfOrientedShape.hxx>
0043 #include <TopTools_DataMapOfShapeShape.hxx>
0044 #include <TopAbs_ShapeEnum.hxx>
0045 #include <TopAbs_Orientation.hxx>
0046 #include <TopTools_DataMapOfIntegerShape.hxx>
0047 #include <TopOpeBRepDS_Config.hxx>
0048 #include <TopTools_DataMapOfShapeInteger.hxx>
0049 class TopOpeBRepDS_HDataStructure;
0050 class TopOpeBRepTool_ShapeExplorer;
0051 class TopOpeBRepBuild_ShapeSet;
0052 class TopOpeBRepBuild_EdgeBuilder;
0053 class TopOpeBRepBuild_FaceBuilder;
0054 class TopOpeBRepBuild_SolidBuilder;
0055 class TopOpeBRepBuild_WireEdgeSet;
0056 class TopOpeBRepDS_PointIterator;
0057 class TopOpeBRepBuild_PaveSet;
0058 class TopOpeBRepBuild_GTopo;
0059 class TopOpeBRepBuild_ShellFaceSet;
0060 class TopOpeBRepDS_SurfaceIterator;
0061 class TopOpeBRepDS_CurveIterator;
0062 class TopoDS_Vertex;
0063 class gp_Pnt;
0064
0065
0066 #ifdef FillSolid
0067 #undef FillSolid
0068 #endif
0069
0070
0071
0072
0073
0074
0075
0076
0077 class TopOpeBRepBuild_Builder
0078 {
0079 public:
0080
0081 DEFINE_STANDARD_ALLOC
0082
0083
0084 Standard_EXPORT TopOpeBRepBuild_Builder(const TopOpeBRepDS_BuildTool& BT);
0085
0086 Standard_EXPORT virtual ~TopOpeBRepBuild_Builder();
0087
0088 Standard_EXPORT TopOpeBRepDS_BuildTool& ChangeBuildTool();
0089
0090 Standard_EXPORT const TopOpeBRepDS_BuildTool& BuildTool() const;
0091
0092
0093
0094 Standard_EXPORT virtual void Perform (const Handle(TopOpeBRepDS_HDataStructure)& HDS);
0095
0096
0097
0098
0099
0100 Standard_EXPORT virtual void Perform (const Handle(TopOpeBRepDS_HDataStructure)& HDS, const TopoDS_Shape& S1, const TopoDS_Shape& S2);
0101
0102
0103 Standard_EXPORT Handle(TopOpeBRepDS_HDataStructure) DataStructure() const;
0104
0105
0106
0107 Standard_EXPORT virtual void Clear();
0108
0109
0110
0111
0112
0113
0114 Standard_EXPORT 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);
0115
0116
0117
0118 Standard_EXPORT 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);
0119
0120
0121
0122 Standard_EXPORT void MergeSolids (const TopoDS_Shape& S1, const TopAbs_State TB1, const TopoDS_Shape& S2, const TopAbs_State TB2);
0123
0124
0125
0126 Standard_EXPORT void MergeShapes (const TopoDS_Shape& S1, const TopAbs_State TB1, const TopoDS_Shape& S2, const TopAbs_State TB2);
0127
0128 Standard_EXPORT void End();
0129
0130 Standard_EXPORT Standard_Boolean Classify() const;
0131
0132 Standard_EXPORT void ChangeClassify (const Standard_Boolean B);
0133
0134
0135
0136 Standard_EXPORT void MergeSolid (const TopoDS_Shape& S, const TopAbs_State TB);
0137
0138
0139 Standard_EXPORT const TopoDS_Shape& NewVertex (const Standard_Integer I) const;
0140
0141
0142 Standard_EXPORT const TopTools_ListOfShape& NewEdges (const Standard_Integer I) const;
0143
0144
0145 Standard_EXPORT const TopTools_ListOfShape& NewFaces (const Standard_Integer I) const;
0146
0147
0148 Standard_EXPORT Standard_Boolean IsSplit (const TopoDS_Shape& S, const TopAbs_State TB) const;
0149
0150
0151 Standard_EXPORT const TopTools_ListOfShape& Splits (const TopoDS_Shape& S, const TopAbs_State TB) const;
0152
0153
0154 Standard_EXPORT Standard_Boolean IsMerged (const TopoDS_Shape& S, const TopAbs_State TB) const;
0155
0156
0157 Standard_EXPORT const TopTools_ListOfShape& Merged (const TopoDS_Shape& S, const TopAbs_State TB) const;
0158
0159 Standard_EXPORT void InitSection();
0160
0161
0162 Standard_EXPORT void SplitSectionEdges();
0163
0164
0165 Standard_EXPORT virtual void SplitSectionEdge (const TopoDS_Shape& E);
0166
0167
0168 Standard_EXPORT void SectionCurves (TopTools_ListOfShape& L);
0169
0170
0171
0172 Standard_EXPORT void SectionEdges (TopTools_ListOfShape& L);
0173
0174
0175
0176
0177 Standard_EXPORT void FillSecEdgeAncestorMap (const Standard_Integer aShapeRank, const TopTools_MapOfShape& aMapON, TopTools_DataMapOfShapeShape& anAncMap) const;
0178
0179
0180 Standard_EXPORT void Section (TopTools_ListOfShape& L);
0181
0182 Standard_EXPORT const TopTools_ListOfShape& Section();
0183
0184
0185
0186 Standard_EXPORT void BuildVertices (const Handle(TopOpeBRepDS_HDataStructure)& DS);
0187
0188
0189
0190 Standard_EXPORT void BuildEdges (const Handle(TopOpeBRepDS_HDataStructure)& DS);
0191
0192 Standard_EXPORT const TopOpeBRepDS_DataMapOfShapeListOfShapeOn1State& MSplit (const TopAbs_State s) const;
0193
0194 Standard_EXPORT TopOpeBRepDS_DataMapOfShapeListOfShapeOn1State& ChangeMSplit (const TopAbs_State s);
0195
0196 Standard_EXPORT void MakeEdges (const TopoDS_Shape& E, TopOpeBRepBuild_EdgeBuilder& B, TopTools_ListOfShape& L);
0197
0198 Standard_EXPORT void MakeFaces (const TopoDS_Shape& F, TopOpeBRepBuild_FaceBuilder& B, TopTools_ListOfShape& L);
0199
0200 Standard_EXPORT void MakeSolids (TopOpeBRepBuild_SolidBuilder& B, TopTools_ListOfShape& L);
0201
0202 Standard_EXPORT void MakeShells (TopOpeBRepBuild_SolidBuilder& B, TopTools_ListOfShape& L);
0203
0204
0205
0206
0207 Standard_EXPORT TopTools_ListOfShape& ChangeSplit (const TopoDS_Shape& S, const TopAbs_State TB);
0208
0209 Standard_EXPORT Standard_Boolean Opec12() const;
0210
0211 Standard_EXPORT Standard_Boolean Opec21() const;
0212
0213 Standard_EXPORT Standard_Boolean Opecom() const;
0214
0215 Standard_EXPORT Standard_Boolean Opefus() const;
0216
0217 Standard_EXPORT TopAbs_State ShapePosition (const TopoDS_Shape& S, const TopTools_ListOfShape& LS);
0218
0219 Standard_EXPORT Standard_Boolean KeepShape (const TopoDS_Shape& S, const TopTools_ListOfShape& LS, const TopAbs_State T);
0220
0221 Standard_EXPORT static TopAbs_ShapeEnum TopType (const TopoDS_Shape& S);
0222
0223 Standard_EXPORT static Standard_Boolean Reverse (const TopAbs_State T1, const TopAbs_State T2);
0224
0225 Standard_EXPORT static TopAbs_Orientation Orient (const TopAbs_Orientation O, const Standard_Boolean R);
0226
0227 Standard_EXPORT void FindSameDomain (TopTools_ListOfShape& L1, TopTools_ListOfShape& L2) const;
0228
0229 Standard_EXPORT void FindSameDomainSameOrientation (TopTools_ListOfShape& LSO, TopTools_ListOfShape& LDO) const;
0230
0231 Standard_EXPORT void MapShapes (const TopoDS_Shape& S1, const TopoDS_Shape& S2);
0232
0233 Standard_EXPORT void ClearMaps();
0234
0235 Standard_EXPORT void FindSameRank (const TopTools_ListOfShape& L1, const Standard_Integer R, TopTools_ListOfShape& L2) const;
0236
0237 Standard_EXPORT Standard_Integer ShapeRank (const TopoDS_Shape& S) const;
0238
0239 Standard_EXPORT Standard_Boolean IsShapeOf (const TopoDS_Shape& S, const Standard_Integer I12) const;
0240
0241 Standard_EXPORT static Standard_Boolean Contains (const TopoDS_Shape& S, const TopTools_ListOfShape& L);
0242
0243 Standard_EXPORT Standard_Integer FindIsKPart();
0244
0245 Standard_EXPORT Standard_Integer IsKPart() const;
0246
0247 Standard_EXPORT virtual void MergeKPart();
0248
0249 Standard_EXPORT virtual void MergeKPart (const TopAbs_State TB1, const TopAbs_State TB2);
0250
0251 Standard_EXPORT void MergeKPartiskole();
0252
0253 Standard_EXPORT void MergeKPartiskoletge();
0254
0255 Standard_EXPORT void MergeKPartisdisj();
0256
0257 Standard_EXPORT void MergeKPartisfafa();
0258
0259 Standard_EXPORT void MergeKPartissoso();
0260
0261 Standard_EXPORT Standard_Integer KPiskole();
0262
0263 Standard_EXPORT Standard_Integer KPiskoletge();
0264
0265 Standard_EXPORT Standard_Integer KPisdisj();
0266
0267 Standard_EXPORT Standard_Integer KPisfafa();
0268
0269 Standard_EXPORT Standard_Integer KPissoso();
0270
0271 Standard_EXPORT void KPClearMaps();
0272
0273 Standard_EXPORT Standard_Integer KPlhg (const TopoDS_Shape& S, const TopAbs_ShapeEnum T, TopTools_ListOfShape& L) const;
0274
0275 Standard_EXPORT Standard_Integer KPlhg (const TopoDS_Shape& S, const TopAbs_ShapeEnum T) const;
0276
0277 Standard_EXPORT Standard_Integer KPlhsd (const TopoDS_Shape& S, const TopAbs_ShapeEnum T, TopTools_ListOfShape& L) const;
0278
0279 Standard_EXPORT Standard_Integer KPlhsd (const TopoDS_Shape& S, const TopAbs_ShapeEnum T) const;
0280
0281 Standard_EXPORT TopAbs_State KPclasSS (const TopoDS_Shape& S1, const TopTools_ListOfShape& exceptLS1, const TopoDS_Shape& S2);
0282
0283 Standard_EXPORT TopAbs_State KPclasSS (const TopoDS_Shape& S1, const TopoDS_Shape& exceptS1, const TopoDS_Shape& S2);
0284
0285 Standard_EXPORT TopAbs_State KPclasSS (const TopoDS_Shape& S1, const TopoDS_Shape& S2);
0286
0287 Standard_EXPORT Standard_Boolean KPiskolesh (const TopoDS_Shape& S, TopTools_ListOfShape& LS, TopTools_ListOfShape& LF) const;
0288
0289 Standard_EXPORT Standard_Boolean KPiskoletgesh (const TopoDS_Shape& S, TopTools_ListOfShape& LS, TopTools_ListOfShape& LF) const;
0290
0291 Standard_EXPORT void KPSameDomain (TopTools_ListOfShape& L1, TopTools_ListOfShape& L2) const;
0292
0293 Standard_EXPORT Standard_Integer KPisdisjsh (const TopoDS_Shape& S) const;
0294
0295 Standard_EXPORT Standard_Integer KPisfafash (const TopoDS_Shape& S) const;
0296
0297 Standard_EXPORT Standard_Integer KPissososh (const TopoDS_Shape& S) const;
0298
0299 Standard_EXPORT 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;
0300
0301 Standard_EXPORT void KPiskoletgeanalyse (const TopOpeBRepDS_Config Conf, const TopAbs_State ST1, const TopAbs_State ST2, Standard_Integer& I) const;
0302
0303 Standard_EXPORT void KPisdisjanalyse (const TopAbs_State ST1, const TopAbs_State ST2, Standard_Integer& I, Standard_Integer& IC1, Standard_Integer& IC2) const;
0304
0305 Standard_EXPORT static Standard_Integer KPls (const TopoDS_Shape& S, const TopAbs_ShapeEnum T, TopTools_ListOfShape& L);
0306
0307 Standard_EXPORT static Standard_Integer KPls (const TopoDS_Shape& S, const TopAbs_ShapeEnum T);
0308
0309 Standard_EXPORT TopAbs_State KPclassF (const TopoDS_Shape& F1, const TopoDS_Shape& F2);
0310
0311 Standard_EXPORT void KPclassFF (const TopoDS_Shape& F1, const TopoDS_Shape& F2, TopAbs_State& T1, TopAbs_State& T2);
0312
0313 Standard_EXPORT Standard_Boolean KPiskoleFF (const TopoDS_Shape& F1, const TopoDS_Shape& F2, TopAbs_State& T1, TopAbs_State& T2);
0314
0315 Standard_EXPORT static Standard_Boolean KPContains (const TopoDS_Shape& S, const TopTools_ListOfShape& L);
0316
0317 Standard_EXPORT 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);
0318
0319 Standard_EXPORT static Standard_Integer KPreturn (const Standard_Integer KP);
0320
0321 Standard_EXPORT void SplitEvisoONperiodicF();
0322
0323 Standard_EXPORT void GMergeSolids (const TopTools_ListOfShape& LSO1, const TopTools_ListOfShape& LSO2, const TopOpeBRepBuild_GTopo& G);
0324
0325 Standard_EXPORT void GFillSolidsSFS (const TopTools_ListOfShape& LSO1, const TopTools_ListOfShape& LSO2, const TopOpeBRepBuild_GTopo& G, TopOpeBRepBuild_ShellFaceSet& SFS);
0326
0327 Standard_EXPORT virtual void GFillSolidSFS (const TopoDS_Shape& SO1, const TopTools_ListOfShape& LSO2, const TopOpeBRepBuild_GTopo& G, TopOpeBRepBuild_ShellFaceSet& SFS);
0328
0329 Standard_EXPORT void GFillSurfaceTopologySFS (const TopoDS_Shape& SO1, const TopOpeBRepBuild_GTopo& G, TopOpeBRepBuild_ShellFaceSet& SFS);
0330
0331 Standard_EXPORT void GFillSurfaceTopologySFS (const TopOpeBRepDS_SurfaceIterator& IT, const TopOpeBRepBuild_GTopo& G, TopOpeBRepBuild_ShellFaceSet& SFS) const;
0332
0333 Standard_EXPORT virtual void GFillShellSFS (const TopoDS_Shape& SH1, const TopTools_ListOfShape& LSO2, const TopOpeBRepBuild_GTopo& G, TopOpeBRepBuild_ShellFaceSet& SFS);
0334
0335 Standard_EXPORT void GFillFaceSFS (const TopoDS_Shape& F1, const TopTools_ListOfShape& LSO2, const TopOpeBRepBuild_GTopo& G, TopOpeBRepBuild_ShellFaceSet& SFS);
0336
0337 Standard_EXPORT void GSplitFaceSFS (const TopoDS_Shape& F1, const TopTools_ListOfShape& LSclass, const TopOpeBRepBuild_GTopo& G, TopOpeBRepBuild_ShellFaceSet& SFS);
0338
0339 Standard_EXPORT void GMergeFaceSFS (const TopoDS_Shape& F, const TopOpeBRepBuild_GTopo& G, TopOpeBRepBuild_ShellFaceSet& SFS);
0340
0341 Standard_EXPORT void GSplitFace (const TopoDS_Shape& F, const TopOpeBRepBuild_GTopo& G, const TopTools_ListOfShape& LSclass);
0342
0343 Standard_EXPORT void AddONPatchesSFS (const TopOpeBRepBuild_GTopo& G, TopOpeBRepBuild_ShellFaceSet& SFS);
0344
0345 Standard_EXPORT void FillOnPatches (const TopTools_ListOfShape& anEdgesON, const TopoDS_Shape& aBaseFace, const TopTools_IndexedMapOfOrientedShape& avoidMap);
0346
0347 Standard_EXPORT void FindFacesTouchingEdge (const TopoDS_Shape& aFace, const TopoDS_Shape& anEdge, const Standard_Integer aShRank, TopTools_ListOfShape& aFaces) const;
0348
0349 Standard_EXPORT void GMergeFaces (const TopTools_ListOfShape& LF1, const TopTools_ListOfShape& LF2, const TopOpeBRepBuild_GTopo& G);
0350
0351 Standard_EXPORT void GFillFacesWES (const TopTools_ListOfShape& LF1, const TopTools_ListOfShape& LF2, const TopOpeBRepBuild_GTopo& G, TopOpeBRepBuild_WireEdgeSet& WES);
0352
0353 Standard_EXPORT void GFillFacesWESK (const TopTools_ListOfShape& LF1, const TopTools_ListOfShape& LF2, const TopOpeBRepBuild_GTopo& G, TopOpeBRepBuild_WireEdgeSet& WES, const Standard_Integer K);
0354
0355 Standard_EXPORT void GFillFacesWESMakeFaces (const TopTools_ListOfShape& LF1, const TopTools_ListOfShape& LF2, const TopTools_ListOfShape& LSO, const TopOpeBRepBuild_GTopo& G);
0356
0357 Standard_EXPORT void GFillFaceWES (const TopoDS_Shape& F, const TopTools_ListOfShape& LF2, const TopOpeBRepBuild_GTopo& G, TopOpeBRepBuild_WireEdgeSet& WES);
0358
0359 Standard_EXPORT void GFillCurveTopologyWES (const TopoDS_Shape& F, const TopOpeBRepBuild_GTopo& G, TopOpeBRepBuild_WireEdgeSet& WES);
0360
0361 Standard_EXPORT void GFillCurveTopologyWES (const TopOpeBRepDS_CurveIterator& IT, const TopOpeBRepBuild_GTopo& G, TopOpeBRepBuild_WireEdgeSet& WES) const;
0362
0363 Standard_EXPORT void GFillONPartsWES (const TopoDS_Shape& F, const TopOpeBRepBuild_GTopo& G, const TopTools_ListOfShape& LSclass, TopOpeBRepBuild_WireEdgeSet& WES);
0364
0365 Standard_EXPORT void GFillWireWES (const TopoDS_Shape& W, const TopTools_ListOfShape& LF2, const TopOpeBRepBuild_GTopo& G, TopOpeBRepBuild_WireEdgeSet& WES);
0366
0367 Standard_EXPORT void GFillEdgeWES (const TopoDS_Shape& E, const TopTools_ListOfShape& LF2, const TopOpeBRepBuild_GTopo& G, TopOpeBRepBuild_WireEdgeSet& WES);
0368
0369 Standard_EXPORT void GSplitEdgeWES (const TopoDS_Shape& E, const TopTools_ListOfShape& LF2, const TopOpeBRepBuild_GTopo& G, TopOpeBRepBuild_WireEdgeSet& WES);
0370
0371 Standard_EXPORT void GMergeEdgeWES (const TopoDS_Shape& E, const TopOpeBRepBuild_GTopo& G, TopOpeBRepBuild_WireEdgeSet& WES);
0372
0373 Standard_EXPORT void GSplitEdge (const TopoDS_Shape& E, const TopOpeBRepBuild_GTopo& G, const TopTools_ListOfShape& LSclass);
0374
0375 Standard_EXPORT void GMergeEdges (const TopTools_ListOfShape& LE1, const TopTools_ListOfShape& LE2, const TopOpeBRepBuild_GTopo& G);
0376
0377 Standard_EXPORT void GFillEdgesPVS (const TopTools_ListOfShape& LE1, const TopTools_ListOfShape& LE2, const TopOpeBRepBuild_GTopo& G, TopOpeBRepBuild_PaveSet& PVS);
0378
0379 Standard_EXPORT void GFillEdgePVS (const TopoDS_Shape& E, const TopTools_ListOfShape& LE2, const TopOpeBRepBuild_GTopo& G, TopOpeBRepBuild_PaveSet& PVS);
0380
0381 Standard_EXPORT void GFillPointTopologyPVS (const TopoDS_Shape& E, const TopOpeBRepBuild_GTopo& G, TopOpeBRepBuild_PaveSet& PVS);
0382
0383 Standard_EXPORT void GFillPointTopologyPVS (const TopoDS_Shape& E, const TopOpeBRepDS_PointIterator& IT, const TopOpeBRepBuild_GTopo& G, TopOpeBRepBuild_PaveSet& PVS) const;
0384
0385 Standard_EXPORT Standard_Boolean GParamOnReference (const TopoDS_Vertex& V, const TopoDS_Edge& E, Standard_Real& P) const;
0386
0387 Standard_EXPORT Standard_Boolean GKeepShape (const TopoDS_Shape& S, const TopTools_ListOfShape& Lref, const TopAbs_State T);
0388
0389
0390 Standard_EXPORT Standard_Boolean GKeepShape1 (const TopoDS_Shape& S, const TopTools_ListOfShape& Lref, const TopAbs_State T, TopAbs_State& pos);
0391
0392
0393
0394 Standard_EXPORT void GKeepShapes (const TopoDS_Shape& S, const TopTools_ListOfShape& Lref, const TopAbs_State T, const TopTools_ListOfShape& Lin, TopTools_ListOfShape& Lou);
0395
0396 Standard_EXPORT void GSFSMakeSolids (const TopoDS_Shape& SOF, TopOpeBRepBuild_ShellFaceSet& SFS, TopTools_ListOfShape& LOSO);
0397
0398 Standard_EXPORT void GSOBUMakeSolids (const TopoDS_Shape& SOF, TopOpeBRepBuild_SolidBuilder& SOBU, TopTools_ListOfShape& LOSO);
0399
0400 Standard_EXPORT virtual void GWESMakeFaces (const TopoDS_Shape& FF, TopOpeBRepBuild_WireEdgeSet& WES, TopTools_ListOfShape& LOF);
0401
0402 Standard_EXPORT void GFABUMakeFaces (const TopoDS_Shape& FF, TopOpeBRepBuild_FaceBuilder& FABU, TopTools_ListOfShape& LOF, TopTools_DataMapOfShapeInteger& MWisOld);
0403
0404 Standard_EXPORT void RegularizeFaces (const TopoDS_Shape& FF, const TopTools_ListOfShape& lnewFace, TopTools_ListOfShape& LOF);
0405
0406 Standard_EXPORT void RegularizeFace (const TopoDS_Shape& FF, const TopoDS_Shape& newFace, TopTools_ListOfShape& LOF);
0407
0408 Standard_EXPORT void RegularizeSolids (const TopoDS_Shape& SS, const TopTools_ListOfShape& lnewSolid, TopTools_ListOfShape& LOS);
0409
0410 Standard_EXPORT void RegularizeSolid (const TopoDS_Shape& SS, const TopoDS_Shape& newSolid, TopTools_ListOfShape& LOS);
0411
0412 Standard_EXPORT void GPVSMakeEdges (const TopoDS_Shape& EF, TopOpeBRepBuild_PaveSet& PVS, TopTools_ListOfShape& LOE) const;
0413
0414 Standard_EXPORT void GEDBUMakeEdges (const TopoDS_Shape& EF, TopOpeBRepBuild_EdgeBuilder& EDBU, TopTools_ListOfShape& LOE) const;
0415
0416 Standard_EXPORT Standard_Boolean GToSplit (const TopoDS_Shape& S, const TopAbs_State TB) const;
0417
0418 Standard_EXPORT Standard_Boolean GToMerge (const TopoDS_Shape& S) const;
0419
0420 Standard_EXPORT static Standard_Boolean GTakeCommonOfSame (const TopOpeBRepBuild_GTopo& G);
0421
0422 Standard_EXPORT static Standard_Boolean GTakeCommonOfDiff (const TopOpeBRepBuild_GTopo& G);
0423
0424 Standard_EXPORT void GFindSamDom (const TopoDS_Shape& S, TopTools_ListOfShape& L1, TopTools_ListOfShape& L2) const;
0425
0426 Standard_EXPORT void GFindSamDom (TopTools_ListOfShape& L1, TopTools_ListOfShape& L2) const;
0427
0428 Standard_EXPORT void GFindSamDomSODO (const TopoDS_Shape& S, TopTools_ListOfShape& LSO, TopTools_ListOfShape& LDO) const;
0429
0430 Standard_EXPORT void GFindSamDomSODO (TopTools_ListOfShape& LSO, TopTools_ListOfShape& LDO) const;
0431
0432 Standard_EXPORT void GMapShapes (const TopoDS_Shape& S1, const TopoDS_Shape& S2);
0433
0434 Standard_EXPORT void GClearMaps();
0435
0436 Standard_EXPORT void GFindSameRank (const TopTools_ListOfShape& L1, const Standard_Integer R, TopTools_ListOfShape& L2) const;
0437
0438 Standard_EXPORT Standard_Integer GShapeRank (const TopoDS_Shape& S) const;
0439
0440 Standard_EXPORT Standard_Boolean GIsShapeOf (const TopoDS_Shape& S, const Standard_Integer I12) const;
0441
0442 Standard_EXPORT static Standard_Boolean GContains (const TopoDS_Shape& S, const TopTools_ListOfShape& L);
0443
0444 Standard_EXPORT static void GCopyList (const TopTools_ListOfShape& Lin, const Standard_Integer i1, const Standard_Integer i2, TopTools_ListOfShape& Lou);
0445
0446 Standard_EXPORT static void GCopyList (const TopTools_ListOfShape& Lin, TopTools_ListOfShape& Lou);
0447
0448 Standard_EXPORT void GdumpLS (const TopTools_ListOfShape& L) const;
0449
0450 Standard_EXPORT static void GdumpPNT (const gp_Pnt& P);
0451
0452 Standard_EXPORT static void GdumpORIPARPNT (const TopAbs_Orientation o, const Standard_Real p, const gp_Pnt& Pnt);
0453
0454 Standard_EXPORT void GdumpSHA (const TopoDS_Shape& S, const Standard_Address str = NULL) const;
0455
0456 Standard_EXPORT void GdumpSHAORI (const TopoDS_Shape& S, const Standard_Address str = NULL) const;
0457
0458 Standard_EXPORT void GdumpSHAORIGEO (const TopoDS_Shape& S, const Standard_Address str = NULL) const;
0459
0460 Standard_EXPORT void GdumpSHASTA (const Standard_Integer iS, const TopAbs_State T, const TCollection_AsciiString& a = "", const TCollection_AsciiString& b = "") const;
0461
0462 Standard_EXPORT void GdumpSHASTA (const TopoDS_Shape& S, const TopAbs_State T, const TCollection_AsciiString& a = "", const TCollection_AsciiString& b = "") const;
0463
0464 Standard_EXPORT 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;
0465
0466 Standard_EXPORT void GdumpEDG (const TopoDS_Shape& S, const Standard_Address str = NULL) const;
0467
0468 Standard_EXPORT void GdumpEDGVER (const TopoDS_Shape& E, const TopoDS_Shape& V, const Standard_Address str = NULL) const;
0469
0470 Standard_EXPORT void GdumpSAMDOM (const TopTools_ListOfShape& L, const Standard_Address str = NULL) const;
0471
0472 Standard_EXPORT void GdumpEXP (const TopOpeBRepTool_ShapeExplorer& E) const;
0473
0474 Standard_EXPORT void GdumpSOBU (TopOpeBRepBuild_SolidBuilder& SB) const;
0475
0476 Standard_EXPORT void GdumpFABU (TopOpeBRepBuild_FaceBuilder& FB) const;
0477
0478 Standard_EXPORT void GdumpEDBU (TopOpeBRepBuild_EdgeBuilder& EB) const;
0479
0480 Standard_EXPORT Standard_Boolean GtraceSPS (const Standard_Integer iS) const;
0481
0482 Standard_EXPORT Standard_Boolean GtraceSPS (const Standard_Integer iS, const Standard_Integer jS) const;
0483
0484 Standard_EXPORT Standard_Boolean GtraceSPS (const TopoDS_Shape& S) const;
0485
0486 Standard_EXPORT Standard_Boolean GtraceSPS (const TopoDS_Shape& S, Standard_Integer& IS) const;
0487
0488 Standard_EXPORT void GdumpSHASETreset();
0489
0490 Standard_EXPORT Standard_Integer GdumpSHASETindex();
0491
0492 Standard_EXPORT static void PrintGeo (const TopoDS_Shape& S);
0493
0494 Standard_EXPORT static void PrintSur (const TopoDS_Face& F);
0495
0496 Standard_EXPORT static void PrintCur (const TopoDS_Edge& E);
0497
0498 Standard_EXPORT static void PrintPnt (const TopoDS_Vertex& V);
0499
0500 Standard_EXPORT static void PrintOri (const TopoDS_Shape& S);
0501
0502 Standard_EXPORT static TCollection_AsciiString StringState (const TopAbs_State S);
0503
0504 Standard_EXPORT static Standard_Boolean GcheckNBOUNDS (const TopoDS_Shape& E);
0505
0506
0507 friend class TopOpeBRepBuild_HBuilder;
0508
0509
0510 protected:
0511
0512
0513
0514
0515 Standard_EXPORT void BuildEdges (const Standard_Integer iC, const Handle(TopOpeBRepDS_HDataStructure)& DS);
0516
0517
0518
0519 Standard_EXPORT void BuildFaces (const Standard_Integer iS, const Handle(TopOpeBRepDS_HDataStructure)& DS);
0520
0521
0522
0523 Standard_EXPORT void BuildFaces (const Handle(TopOpeBRepDS_HDataStructure)& DS);
0524
0525
0526 Standard_EXPORT void SplitEdge (const TopoDS_Shape& E1, const TopAbs_State TB1, const TopAbs_State TB2);
0527
0528
0529 Standard_EXPORT void SplitEdge1 (const TopoDS_Shape& E1, const TopAbs_State TB1, const TopAbs_State TB2);
0530
0531
0532 Standard_EXPORT void SplitEdge2 (const TopoDS_Shape& E1, const TopAbs_State TB1, const TopAbs_State TB2);
0533
0534
0535
0536
0537 Standard_EXPORT void SplitFace (const TopoDS_Shape& F1, const TopAbs_State TB1, const TopAbs_State TB2);
0538
0539 Standard_EXPORT void SplitFace1 (const TopoDS_Shape& F1, const TopAbs_State TB1, const TopAbs_State TB2);
0540
0541 Standard_EXPORT void SplitFace2 (const TopoDS_Shape& F1, const TopAbs_State TB1, const TopAbs_State TB2);
0542
0543
0544 Standard_EXPORT void SplitSolid (const TopoDS_Shape& S1, const TopAbs_State TB1, const TopAbs_State TB2);
0545
0546
0547
0548
0549 Standard_EXPORT void SplitShapes (TopOpeBRepTool_ShapeExplorer& Ex, const TopAbs_State TB1, const TopAbs_State TB2, TopOpeBRepBuild_ShapeSet& SS, const Standard_Boolean RevOri);
0550
0551
0552
0553 Standard_EXPORT 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);
0554
0555
0556
0557 Standard_EXPORT 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);
0558
0559
0560
0561 Standard_EXPORT 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);
0562
0563
0564
0565
0566
0567 Standard_EXPORT void FillVertexSet (TopOpeBRepDS_PointIterator& IT, const TopAbs_State TB, TopOpeBRepBuild_PaveSet& PVS) const;
0568
0569
0570
0571
0572 Standard_EXPORT void FillVertexSetOnValue (const TopOpeBRepDS_PointIterator& IT, const TopAbs_State TB, TopOpeBRepBuild_PaveSet& PVS) const;
0573
0574
0575 Standard_EXPORT Standard_Boolean ToSplit (const TopoDS_Shape& S, const TopAbs_State TB) const;
0576
0577
0578
0579 Standard_EXPORT void MarkSplit (const TopoDS_Shape& S, const TopAbs_State TB, const Standard_Boolean B = Standard_True);
0580
0581
0582
0583 Standard_EXPORT TopTools_ListOfShape& ChangeMerged (const TopoDS_Shape& S, const TopAbs_State TB);
0584
0585
0586 Standard_EXPORT TopoDS_Shape& ChangeNewVertex (const Standard_Integer I);
0587
0588
0589 Standard_EXPORT TopTools_ListOfShape& ChangeNewEdges (const Standard_Integer I);
0590
0591
0592 Standard_EXPORT TopTools_ListOfShape& ChangeNewFaces (const Standard_Integer I);
0593
0594 Standard_EXPORT void AddIntersectionEdges (TopoDS_Shape& F, const TopAbs_State TB, const Standard_Boolean RevOri, TopOpeBRepBuild_ShapeSet& ES) const;
0595
0596 Standard_EXPORT void UpdateSplitAndMerged (const TopTools_DataMapOfIntegerListOfShape& mle, const TopTools_DataMapOfIntegerShape& mre, const TopTools_DataMapOfShapeShape& mlf, const TopAbs_State state);
0597
0598
0599 TopAbs_State myState1;
0600 TopAbs_State myState2;
0601 TopoDS_Shape myShape1;
0602 TopoDS_Shape myShape2;
0603 Handle(TopOpeBRepDS_HDataStructure) myDataStructure;
0604 TopOpeBRepDS_BuildTool myBuildTool;
0605 Handle(TopTools_HArray1OfShape) myNewVertices;
0606 TopTools_DataMapOfIntegerListOfShape myNewEdges;
0607 Handle(TopTools_HArray1OfListOfShape) myNewFaces;
0608 TopOpeBRepDS_DataMapOfShapeListOfShapeOn1State mySplitIN;
0609 TopOpeBRepDS_DataMapOfShapeListOfShapeOn1State mySplitON;
0610 TopOpeBRepDS_DataMapOfShapeListOfShapeOn1State mySplitOUT;
0611 TopOpeBRepDS_DataMapOfShapeListOfShapeOn1State myMergedIN;
0612 TopOpeBRepDS_DataMapOfShapeListOfShapeOn1State myMergedON;
0613 TopOpeBRepDS_DataMapOfShapeListOfShapeOn1State myMergedOUT;
0614 TopTools_ListOfShape myEmptyShapeList;
0615 TopTools_ListOfShape myListOfSolid;
0616 TopTools_ListOfShape myListOfFace;
0617 TopTools_ListOfShape myListOfEdge;
0618 TopTools_DataMapOfShapeListOfShape myFSplits;
0619 TopTools_DataMapOfShapeListOfShape myESplits;
0620 Standard_Boolean mySectionDone;
0621 Standard_Boolean mySplitSectionEdgesDone;
0622 TopTools_ListOfShape mySection;
0623 TopoDS_Solid mySolidReference;
0624 TopoDS_Solid mySolidToFill;
0625 TopTools_ListOfShape myFaceAvoid;
0626 TopoDS_Face myFaceReference;
0627 TopoDS_Face myFaceToFill;
0628 TopTools_ListOfShape myEdgeAvoid;
0629 TopoDS_Edge myEdgeReference;
0630 TopoDS_Edge myEdgeToFill;
0631 TopTools_ListOfShape myVertexAvoid;
0632 TopTools_IndexedMapOfShape myMAP1;
0633 TopTools_IndexedMapOfShape myMAP2;
0634 Standard_Integer myIsKPart;
0635 TopTools_DataMapOfShapeListOfShape myKPMAPf1f2;
0636 Standard_Integer mySHASETindex;
0637 Standard_Boolean myClassifyDef;
0638 Standard_Boolean myClassifyVal;
0639 TopOpeBRepTool_ShapeClassifier myShapeClassifier;
0640 TopTools_MapOfShape myMemoSplit;
0641 TCollection_AsciiString myEmptyAS;
0642 Standard_Boolean myProcessON;
0643 TopTools_IndexedDataMapOfShapeShape myONFacesMap;
0644 TopTools_IndexedMapOfOrientedShape myONElemMap;
0645
0646
0647 private:
0648
0649
0650
0651
0652
0653 };
0654
0655
0656
0657
0658
0659
0660
0661 #endif