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 _NMTDS_ShapesDataStructure_HeaderFile
00024 #define _NMTDS_ShapesDataStructure_HeaderFile
00025
00026 #ifndef _TopoDS_Shape_HeaderFile
00027 #include <TopoDS_Shape.hxx>
00028 #endif
00029 #ifndef _NMTDS_CArray1OfIndexRange_HeaderFile
00030 #include <NMTDS_CArray1OfIndexRange.hxx>
00031 #endif
00032 #ifndef _NMTDS_IndexedDataMapOfIntegerIndexedDataMapOfShapeInteger_HeaderFile
00033 #include <NMTDS_IndexedDataMapOfIntegerIndexedDataMapOfShapeInteger.hxx>
00034 #endif
00035 #ifndef _BooleanOperations_ShapesDataStructure_HeaderFile
00036 #include <BooleanOperations_ShapesDataStructure.hxx>
00037 #endif
00038 #ifndef _Standard_Integer_HeaderFile
00039 #include <Standard_Integer.hxx>
00040 #endif
00041 class TopoDS_Shape;
00042 class NMTDS_CArray1OfIndexRange;
00043 class BooleanOperations_IndexedDataMapOfShapeAncestorsSuccessors;
00044 class TColStd_IndexedMapOfInteger;
00045 class Bnd_Box;
00046
00047
00048 #ifndef _Standard_HeaderFile
00049 #include <Standard.hxx>
00050 #endif
00051 #ifndef _Standard_Macro_HeaderFile
00052 #include <Standard_Macro.hxx>
00053 #endif
00054
00055
00056 class NMTDS_ShapesDataStructure : public BooleanOperations_ShapesDataStructure {
00057
00058 public:
00059
00060 void* operator new(size_t,void* anAddress)
00061 {
00062 return anAddress;
00063 }
00064 void* operator new(size_t size)
00065 {
00066 return Standard::Allocate(size);
00067 }
00068 void operator delete(void *anAddress)
00069 {
00070 if (anAddress) Standard::Free((Standard_Address&)anAddress);
00071 }
00072
00073
00074
00075
00076 Standard_EXPORT NMTDS_ShapesDataStructure();
00077
00078
00079 Standard_EXPORT void SetCompositeShape(const TopoDS_Shape& aS) ;
00080
00081
00082 Standard_EXPORT void Init() ;
00083
00084
00085 Standard_EXPORT const NMTDS_CArray1OfIndexRange& Ranges() const;
00086
00087
00088 Standard_EXPORT const TopoDS_Shape& CompositeShape() const;
00089
00090
00091 Standard_EXPORT Standard_Integer ShapeRangeIndex(const Standard_Integer aId) const;
00092
00093
00094 Standard_EXPORT virtual Standard_Integer Rank(const Standard_Integer anIndex) const;
00095
00096
00097 Standard_EXPORT virtual Standard_Integer ShapeIndex(const TopoDS_Shape& aS,const Standard_Integer iRank) const;
00098
00099
00100 Standard_EXPORT void FillMap(const TopoDS_Shape& aS,BooleanOperations_IndexedDataMapOfShapeAncestorsSuccessors& aMSA,BooleanOperations_IndexedDataMapOfShapeAncestorsSuccessors& aMS) const;
00101
00102
00103 Standard_EXPORT void FillSubshapes(const TopoDS_Shape& aS,BooleanOperations_IndexedDataMapOfShapeAncestorsSuccessors& aMSA,BooleanOperations_IndexedDataMapOfShapeAncestorsSuccessors& aMS) const;
00104
00105
00106 Standard_EXPORT void GetAllSuccessors(const Standard_Integer anIndex,TColStd_IndexedMapOfInteger& aScrs) const;
00107
00108
00109 Standard_EXPORT void ComputeBoxEx(const Standard_Integer anIndex,Bnd_Box& aBox) const;
00110
00111
00112
00113
00114
00115 protected:
00116
00117
00118
00119
00120
00121
00122
00123 TopoDS_Shape myCompositeShape;
00124 NMTDS_CArray1OfIndexRange myRanges;
00125 NMTDS_IndexedDataMapOfIntegerIndexedDataMapOfShapeInteger myShapeIndexMap;
00126
00127
00128 private:
00129
00130
00131
00132
00133
00134
00135
00136
00137
00138 };
00139
00140
00141
00142
00143
00144
00145
00146
00147
00148 #endif