Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef _GEOMAlgo_Builder_HeaderFile
00024 #define _GEOMAlgo_Builder_HeaderFile
00025
00026 #ifndef _NMTTools_PPaveFiller_HeaderFile
00027 #include <NMTTools_PPaveFiller.hxx>
00028 #endif
00029 #ifndef _TopTools_ListOfShape_HeaderFile
00030 #include <TopTools_ListOfShape.hxx>
00031 #endif
00032 #ifndef _Standard_Integer_HeaderFile
00033 #include <Standard_Integer.hxx>
00034 #endif
00035 #ifndef _TopTools_MapOfShape_HeaderFile
00036 #include <TopTools_MapOfShape.hxx>
00037 #endif
00038 #ifndef _BRepAlgo_Image_HeaderFile
00039 #include <BRepAlgo_Image.hxx>
00040 #endif
00041 #ifndef _TopTools_IndexedDataMapOfShapeListOfShape_HeaderFile
00042 #include <TopTools_IndexedDataMapOfShapeListOfShape.hxx>
00043 #endif
00044 #ifndef _TopTools_IndexedDataMapOfShapeShape_HeaderFile
00045 #include <TopTools_IndexedDataMapOfShapeShape.hxx>
00046 #endif
00047 #ifndef _GEOMAlgo_BuilderShape_HeaderFile
00048 #include <GEOMAlgo_BuilderShape.hxx>
00049 #endif
00050 #ifndef _Standard_Boolean_HeaderFile
00051 #include <Standard_Boolean.hxx>
00052 #endif
00053 #ifndef _TopAbs_ShapeEnum_HeaderFile
00054 #include <TopAbs_ShapeEnum.hxx>
00055 #endif
00056 class NMTTools_PaveFiller;
00057 class TopoDS_Shape;
00058 class TopTools_ListOfShape;
00059 class BRepAlgo_Image;
00060
00061
00062 #ifndef _Standard_HeaderFile
00063 #include <Standard.hxx>
00064 #endif
00065 #ifndef _Standard_Macro_HeaderFile
00066 #include <Standard_Macro.hxx>
00067 #endif
00068
00069
00070 class GEOMAlgo_Builder : public GEOMAlgo_BuilderShape {
00071
00072 public:
00073
00074 void* operator new(size_t,void* anAddress)
00075 {
00076 return anAddress;
00077 }
00078 void* operator new(size_t size)
00079 {
00080 return Standard::Allocate(size);
00081 }
00082 void operator delete(void *anAddress)
00083 {
00084 if (anAddress) Standard::Free((Standard_Address&)anAddress);
00085 }
00086
00087
00088
00090 Standard_EXPORT GEOMAlgo_Builder();
00091 Standard_EXPORT virtual ~GEOMAlgo_Builder();
00092
00094 Standard_EXPORT virtual void Perform() ;
00095
00098 Standard_EXPORT virtual void PerformWithFiller(const NMTTools_PaveFiller& theDSF) ;
00099
00101 Standard_EXPORT virtual void AddShape(const TopoDS_Shape& theShape) ;
00102
00104 Standard_EXPORT virtual void Clear() ;
00105
00107 Standard_EXPORT const TopTools_ListOfShape& Shapes() const;
00108
00111 Standard_EXPORT virtual const TopTools_ListOfShape& Generated(const TopoDS_Shape& theS) ;
00112
00115 Standard_EXPORT virtual const TopTools_ListOfShape& Modified(const TopoDS_Shape& theS) ;
00116
00118 Standard_EXPORT virtual Standard_Boolean IsDeleted(const TopoDS_Shape& theS) ;
00119
00122 Standard_EXPORT void AddCompound(const TopoDS_Shape& theShape) ;
00123
00125 Standard_EXPORT const TopTools_ListOfShape& Shapes1(const Standard_Integer theType) const;
00126
00128 Standard_EXPORT const BRepAlgo_Image& Images() const;
00129
00132 Standard_EXPORT const TopTools_ListOfShape& InParts(const TopoDS_Shape& theShape) const;
00133
00134
00135
00136
00137
00138 protected:
00139
00140
00141
00142
00145 Standard_EXPORT virtual void PerformInternal(const NMTTools_PaveFiller& theDSF) ;
00146
00148 Standard_EXPORT virtual void PrepareHistory() ;
00149
00151 Standard_EXPORT virtual void ClearInternals() ;
00152
00154 Standard_EXPORT virtual void Prepare() ;
00155
00157 Standard_EXPORT virtual void PostTreat() ;
00158
00161 Standard_EXPORT void AddShape1(const TopoDS_Shape& theShape) ;
00162
00164 Standard_EXPORT virtual void BuildResult(const TopAbs_ShapeEnum theType) ;
00165
00167 Standard_EXPORT void FillImagesVertices() ;
00168
00170 Standard_EXPORT void FillImagesEdges() ;
00171
00173 Standard_EXPORT void FillImagesFaces() ;
00174
00177 Standard_EXPORT void FillIn2DParts() ;
00178
00180 Standard_EXPORT void BuildSplitFaces() ;
00181
00183 Standard_EXPORT void FillSameDomainFaces() ;
00184
00187 Standard_EXPORT void FillImagesFaces1() ;
00188
00191 Standard_EXPORT void FillInternalVertices() ;
00192
00194 Standard_EXPORT void FillImagesContainers(const TopAbs_ShapeEnum theType) ;
00195
00197 Standard_EXPORT void FillImagesSolids() ;
00198
00201 Standard_EXPORT void FillIn3DParts() ;
00202
00204 Standard_EXPORT void BuildSplitSolids() ;
00205
00208 Standard_EXPORT void FillInternalShapes() ;
00209
00215 Standard_EXPORT void BuildDraftSolid(const TopoDS_Shape& theSolid,TopoDS_Shape& theDraftSolid,TopTools_ListOfShape& theInternalFaces) ;
00216
00217
00218
00219
00220 NMTTools_PPaveFiller myPaveFiller;
00221 TopTools_ListOfShape myShapes;
00222 Standard_Integer myNbTypes;
00223 TopTools_MapOfShape myMapFence;
00224 TopTools_ListOfShape myShapes1[9];
00225 BRepAlgo_Image myImages;
00226 TopTools_IndexedDataMapOfShapeListOfShape myInParts;
00227 BRepAlgo_Image mySplitFaces;
00228 TopTools_IndexedDataMapOfShapeShape mySameDomainShapes;
00229 TopTools_IndexedDataMapOfShapeShape myDraftSolids;
00230 Standard_Integer myEntryPoint;
00231
00232
00233 private:
00234
00235
00236
00237
00238
00239
00240
00241
00242
00243 };
00244
00245
00246
00247
00248
00249
00250
00251
00252
00253 #endif