Branch data Line data Source code
1 : : // File: OCCShapeAttributeSet.hxx
2 : : // Created: Thur Jul 10 2008
3 : : // Author: Jane Hu
4 : :
5 : : #ifndef _OCCShapeAttributeSet_HeaderFile
6 : : #define _OCCShapeAttributeSet_HeaderFile
7 : :
8 : : class TopoDS_Shape;
9 : : class TDF_Label;
10 : : class TopTools_DataMapOfShapeInteger;
11 : : #include <map>
12 : :
13 : : #ifndef _TopTools_LocationSet_HeaderFile
14 : : #include <TopTools_LocationSet.hxx>
15 : : #endif
16 : : #ifndef _BRep_Builder_HeaderFile
17 : : #include <BRep_Builder.hxx>
18 : : #endif
19 : : #ifndef _TopTools_IndexedMapOfShape_HeaderFile
20 : : #include <TopTools_IndexedMapOfShape.hxx>
21 : : #endif
22 : : #ifndef _GeomTools_SurfaceSet_HeaderFile
23 : : #include <GeomTools_SurfaceSet.hxx>
24 : : #endif
25 : : #ifndef _GeomTools_CurveSet_HeaderFile
26 : : #include <GeomTools_CurveSet.hxx>
27 : : #endif
28 : : #ifndef _GeomTools_Curve2dSet_HeaderFile
29 : : #include <GeomTools_Curve2dSet.hxx>
30 : : #endif
31 : : #ifndef _TColStd_IndexedMapOfTransient_HeaderFile
32 : : #include <TColStd_IndexedMapOfTransient.hxx>
33 : : #endif
34 : : #ifndef _TopAbs_ShapeEnum_HeaderFile
35 : : #include <TopAbs_ShapeEnum.hxx>
36 : : #endif
37 : : #ifndef _Standard_HeaderFile
38 : : #include <Standard.hxx>
39 : : #endif
40 : : #ifndef _Standard_Macro_HeaderFile
41 : : #include <Standard_Macro.hxx>
42 : : #endif
43 : :
44 : : //! Contains a Shape and all its subshapes, locations <br>
45 : : //! and geometries, and attributes. <br>
46 : : //! <br>
47 : : // It's re-write version of BRepTools_ShapeSet
48 : : class OCCShapeAttributeSet {
49 : :
50 : : public:
51 : :
52 : : void* operator new(size_t,void* anAddress)
53 : : {
54 : : return anAddress;
55 : : }
56 : : void* operator new(size_t size)
57 : : {
58 : : return Standard::Allocate(size);
59 : : }
60 : : void operator delete(void *anAddress)
61 : : {
62 : : if (anAddress) Standard::Free((Standard_Address&)anAddress);
63 : : }
64 : : // Methods PUBLIC
65 : : //
66 : :
67 : : //! Builds an empty ShapeAttributeSet. <br>
68 : : OCCShapeAttributeSet();
69 : :
70 : : OCCShapeAttributeSet(const BRep_Builder& B);
71 : :
72 [ + - ][ + - ]: 427 : ~OCCShapeAttributeSet(){Clear();} ;
[ + - ][ + - ]
[ + - ][ + - ]
[ + - ][ + - ]
[ + - ][ + - ]
73 : :
74 : : //! Stores the goemetry of <S>. <br>
75 : : void AddGeometry(const TopoDS_Shape& S) ;
76 : :
77 : : //! Writes the attributs of <S> on the stream <OS> in a <br>
78 : : //! format that can be read back by Read. <br>
79 : : void WriteAttribute(const TopoDS_Shape& S,
80 : : Standard_OStream& OS,
81 : : TDF_Label& l_attr);
82 : :
83 : : void ReadAttribute(TopoDS_Shape& S,
84 : : Standard_IStream& IS,
85 : : TDF_Label& l_attr);
86 : :
87 : : //! Stores <S> and its sub-shape. Returns the index of <S>. <br>
88 : : //! The method AddGeometry is called on each sub-shape. <br>
89 : : Standard_Integer Add(const TopoDS_Shape& S) ;
90 : :
91 : : void Write(Standard_OStream& OS);
92 : :
93 : : void Read(Standard_IStream& IS, bool print);
94 : :
95 : : void Read(TopoDS_Shape& S,Standard_IStream& IS, const int nbshapes,
96 : : TDF_Label* l_attr = NULL) ;
97 : :
98 : : //! Writes the geometry of me on the stream <OS> in a <br>
99 : : //! format that can be read back by Read. <br>
100 : : void WriteGeometry(Standard_OStream& OS) ;
101 : :
102 : : void ReadGeometry(Standard_IStream& IS);
103 : :
104 : : //! Writes the geometry of <S> on the stream <OS> in a <br>
105 : : //! format that can be read back by Read. <br>
106 : : void WriteGeometry(const TopoDS_Shape& S,Standard_OStream& OS);
107 : :
108 : : void ReadGeometry(const TopAbs_ShapeEnum T,
109 : : Standard_IStream& IS,
110 : : TopoDS_Shape& S);
111 : :
112 : : //! Writes on <OS> the shape <S>. Writes the <br>
113 : : //! orientation, the index of the TShape and the index <br>
114 : : //! of the Location. <br>
115 : : void Write(const TopoDS_Shape& S,
116 : : Standard_OStream& OS,
117 : : TDF_Label* l_attr = NULL) ;
118 : :
119 : : //! Writes the 3d polygons <br>
120 : : //! on the stream <OS> in a format that can <br>
121 : : //! be read back by Read. <br>
122 : : Standard_EXPORT void WritePolygon3D(Standard_OStream& OS,const Standard_Boolean Compact = Standard_True) ;
123 : :
124 : : void ReadPolygon3D(Standard_IStream& IS);
125 : :
126 : : //! Writes the polygons on triangulation <br>
127 : : //! on the stream <OS> in a format that can <br>
128 : : //! be read back by Read. <br>
129 : : Standard_EXPORT void WritePolygonOnTriangulation(Standard_OStream& OS,const Standard_Boolean Compact = Standard_True) ;
130 : :
131 : : void ReadPolygonOnTriangulation(Standard_IStream& IS);
132 : :
133 : : //! Writes the triangulation <br>
134 : : //! on the stream <OS> in a format that can <br>
135 : : //! be read back by Read. <br>
136 : : Standard_EXPORT void WriteTriangulation(Standard_OStream& OS,const Standard_Boolean Compact = Standard_True) ;
137 : :
138 : : void ReadTriangulation(Standard_IStream& IS);
139 : :
140 : : //! Clears the content of the set.
141 : : void Clear();
142 : :
143 : : void Check(const TopAbs_ShapeEnum T,TopoDS_Shape& S);
144 : :
145 : : int NbShapes() ;
146 : :
147 : : protected:
148 : : // Methods PROTECTED
149 : : //
150 : :
151 : :
152 : : // Fields PROTECTED
153 : : //
154 : :
155 : :
156 : : private:
157 : :
158 : : // Methods PRIVATE
159 : : //
160 : :
161 : :
162 : : // Fields PRIVATE
163 : : //
164 : : BRep_Builder myBuilder;
165 : : TopTools_IndexedMapOfShape myShapes;
166 : : std::map<int,int> my_ShapeNum_Location;
167 : : TopTools_LocationSet myLocations;
168 : : Standard_Integer myFormatNb;
169 : : GeomTools_SurfaceSet mySurfaces;
170 : : GeomTools_CurveSet myCurves;
171 : : GeomTools_Curve2dSet myCurves2d;
172 : : TColStd_IndexedMapOfTransient myPolygons2D;
173 : : TColStd_IndexedMapOfTransient myPolygons3D;
174 : : TColStd_IndexedMapOfTransient myTriangulations;
175 : : TColStd_IndexedMapOfTransient myNodes;
176 : : };
177 : :
178 : :
179 : :
180 : :
181 : :
182 : : // other Inline functions and methods (like "C++: function call" methods)
183 : : //
184 : :
185 : :
186 : : #endif
|