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 _NMTTools_DEProcessor_HeaderFile
00024 #define _NMTTools_DEProcessor_HeaderFile
00025
00026 #ifndef _NMTTools_PPaveFiller_HeaderFile
00027 #include <NMTTools_PPaveFiller.hxx>
00028 #endif
00029 #ifndef _NMTDS_PShapesDataStructure_HeaderFile
00030 #include <NMTDS_PShapesDataStructure.hxx>
00031 #endif
00032 #ifndef _Standard_Boolean_HeaderFile
00033 #include <Standard_Boolean.hxx>
00034 #endif
00035 #ifndef _BOPTools_IndexedDataMapOfIntegerDEInfo_HeaderFile
00036 #include <BOPTools_IndexedDataMapOfIntegerDEInfo.hxx>
00037 #endif
00038 #ifndef _Standard_Integer_HeaderFile
00039 #include <Standard_Integer.hxx>
00040 #endif
00041 #ifndef _Standard_Real_HeaderFile
00042 #include <Standard_Real.hxx>
00043 #endif
00044 class NMTTools_PaveFiller;
00045 class BOPTools_ListOfPaveBlock;
00046 class TopoDS_Edge;
00047 class TopoDS_Face;
00048 class TopoDS_Vertex;
00049
00050
00051 #ifndef _Standard_HeaderFile
00052 #include <Standard.hxx>
00053 #endif
00054 #ifndef _Standard_Macro_HeaderFile
00055 #include <Standard_Macro.hxx>
00056 #endif
00057
00058
00067 class NMTTools_DEProcessor {
00068
00069 public:
00070
00071 void* operator new(size_t,void* anAddress)
00072 {
00073 return anAddress;
00074 }
00075 void* operator new(size_t size)
00076 {
00077 return Standard::Allocate(size);
00078 }
00079 void operator delete(void *anAddress)
00080 {
00081 if (anAddress) Standard::Free((Standard_Address&)anAddress);
00082 }
00083
00084
00085
00086
00091 Standard_EXPORT NMTTools_DEProcessor(NMTTools_PaveFiller& aFiller);
00092
00093
00095 Standard_EXPORT void Do() ;
00096
00097
00099 Standard_EXPORT Standard_Boolean IsDone() const;
00100
00101
00102
00103
00104
00105 protected:
00106
00107
00108
00109
00110
00111 Standard_EXPORT void FindDegeneratedEdges() ;
00112
00113
00114 Standard_EXPORT void DoPaves() ;
00115
00116
00117 Standard_EXPORT void FindPaveBlocks(const Standard_Integer nED,const Standard_Integer nVD,const Standard_Integer nFD,BOPTools_ListOfPaveBlock& aLPB) ;
00118
00119
00120 Standard_EXPORT void FillPaveSet(const Standard_Integer nED,const Standard_Integer nVD,const Standard_Integer nFD,const BOPTools_ListOfPaveBlock& aLPB) ;
00121
00122
00123 Standard_EXPORT void FillSplitEdgesPool(const Standard_Integer nED) ;
00124
00125
00126 Standard_EXPORT void MakeSplitEdges(const Standard_Integer nED,const Standard_Integer nFD) ;
00127
00128
00129 Standard_EXPORT void MakeSplitEdge(const TopoDS_Edge& aS1,const TopoDS_Face& aF,const TopoDS_Vertex& aV1,const Standard_Real aP1,const TopoDS_Vertex& aV2,const Standard_Real aP2,TopoDS_Edge& aNewEdge) ;
00130
00131
00132
00133
00134 NMTTools_PPaveFiller myFiller;
00135 NMTDS_PShapesDataStructure myDS;
00136 Standard_Boolean myIsDone;
00137 BOPTools_IndexedDataMapOfIntegerDEInfo myDEMap;
00138
00139
00140 private:
00141
00142
00143
00144
00145
00146
00147
00148
00149
00150 };
00151
00152
00153
00154
00155
00156
00157
00158
00159
00160 #endif