2 #ifndef _NMTDS_ShapesDataStructure_HeaderFile
\r
3 #define _NMTDS_ShapesDataStructure_HeaderFile
\r
5 #include <Standard.hxx>
\r
6 #include <Standard_Macro.hxx>
\r
7 #include <TopoDS_Shape.hxx>
\r
8 #include <NMTDS_CArray1OfIndexRange.hxx>
\r
9 #include <TopTools_DataMapOfShapeInteger.hxx>
\r
10 #include <BooleanOperations_ShapesDataStructure.hxx>
\r
11 #include <Standard_Integer.hxx>
\r
12 #include <TopoDS_Shape.hxx>
\r
13 #include <NMTDS_CArray1OfIndexRange.hxx>
\r
14 #include <BooleanOperations_IndexedDataMapOfShapeAncestorsSuccessors.hxx>
\r
15 #include <TColStd_IndexedMapOfInteger.hxx>
\r
16 #include <Bnd_Box.hxx>
\r
18 //=======================================================================
\r
19 //class : NMTDS_ShapesDataStructure
\r
21 //=======================================================================
\r
22 class NMTDS_ShapesDataStructure : public BooleanOperations_ShapesDataStructure
\r
26 NMTDS_ShapesDataStructure();
\r
29 void SetCompositeShape(const TopoDS_Shape& aS) ;
\r
35 const NMTDS_CArray1OfIndexRange& Ranges() const;
\r
38 const TopoDS_Shape& CompositeShape() const;
\r
41 Standard_Integer ShapeRangeIndex(const Standard_Integer aId) const;
\r
44 virtual Standard_Integer Rank(const Standard_Integer anIndex) const;
\r
47 virtual Standard_Integer ShapeIndex(const TopoDS_Shape& aS,
\r
48 const Standard_Integer iRank) const;
\r
51 void FillMap(const TopoDS_Shape& aS,
\r
52 BooleanOperations_IndexedDataMapOfShapeAncestorsSuccessors& aMSA,
\r
53 BooleanOperations_IndexedDataMapOfShapeAncestorsSuccessors& aMS) const;
\r
56 void FillSubshapes(const TopoDS_Shape& aS,
\r
57 BooleanOperations_IndexedDataMapOfShapeAncestorsSuccessors& aMSA,
\r
58 BooleanOperations_IndexedDataMapOfShapeAncestorsSuccessors& aMS) const;
\r
61 void GetAllSuccessors(const Standard_Integer anIndex,
\r
62 TColStd_IndexedMapOfInteger& aScrs) const;
\r
65 void ComputeBoxEx(const Standard_Integer anIndex,
\r
66 Bnd_Box& aBox) const;
\r
70 TopoDS_Shape myCompositeShape;
\r
71 NMTDS_CArray1OfIndexRange myRanges;
\r
72 TopTools_DataMapOfShapeInteger myShapeIndexMap;
\r