]> SALOME platform Git repositories - modules/geom.git/blob - src/GEOMAlgo_NEW/GEOMAlgo_ShapeInfo.hxx
Salome HOME
Internal issue 0022865: Restructurization of Partition packages.
[modules/geom.git] / src / GEOMAlgo_NEW / GEOMAlgo_ShapeInfo.hxx
1 // Copyright (C) 2007-2011  CEA/DEN, EDF R&D, OPEN CASCADE\r
2 //\r
3 // This library is free software; you can redistribute it and/or\r
4 // modify it under the terms of the GNU Lesser General Public\r
5 // License as published by the Free Software Foundation; either\r
6 // version 2.1 of the License.\r
7 //\r
8 // This library is distributed in the hope that it will be useful,\r
9 // but WITHOUT ANY WARRANTY; without even the implied warranty of\r
10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\r
11 // Lesser General Public License for more details.\r
12 //\r
13 // You should have received a copy of the GNU Lesser General Public\r
14 // License along with this library; if not, write to the Free Software\r
15 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA\r
16 //\r
17 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com\r
18 //\r
19 \r
20 \r
21 #ifndef _GEOMAlgo_ShapeInfo_HeaderFile\r
22 #define _GEOMAlgo_ShapeInfo_HeaderFile\r
23 \r
24 #include <Standard.hxx>\r
25 #include <Standard_Macro.hxx>\r
26 #include <TopAbs_ShapeEnum.hxx>\r
27 #include <Standard_Integer.hxx>\r
28 #include <GEOMAlgo_KindOfShape.hxx>\r
29 #include <GEOMAlgo_KindOfName.hxx>\r
30 #include <GEOMAlgo_KindOfBounds.hxx>\r
31 #include <GEOMAlgo_KindOfClosed.hxx>\r
32 #include <gp_Pnt.hxx>\r
33 #include <gp_Dir.hxx>\r
34 #include <gp_Ax3.hxx>\r
35 #include <Standard_Real.hxx>\r
36 #include <gp_Ax2.hxx>\r
37 \r
38 \r
39 \r
40 //=======================================================================\r
41 //class : GEOMAlgo_ShapeInfo\r
42 //purpose  : \r
43 //=======================================================================\r
44 class GEOMAlgo_ShapeInfo  \r
45 {\r
46  public:\r
47   Standard_EXPORT\r
48     GEOMAlgo_ShapeInfo();\r
49 \r
50   Standard_EXPORT\r
51     virtual ~GEOMAlgo_ShapeInfo();\r
52   \r
53   Standard_EXPORT\r
54     void Reset() ;\r
55   \r
56   Standard_EXPORT\r
57     void SetType(const TopAbs_ShapeEnum aType) ;\r
58   \r
59   Standard_EXPORT\r
60     TopAbs_ShapeEnum Type() const;\r
61   \r
62   Standard_EXPORT\r
63     void SetNbSubShapes(const TopAbs_ShapeEnum aType,const Standard_Integer aNb) ;\r
64   \r
65   Standard_EXPORT\r
66     Standard_Integer NbSubShapes(const TopAbs_ShapeEnum aType) const;\r
67   \r
68   Standard_EXPORT\r
69     void SetKindOfShape(const GEOMAlgo_KindOfShape aT) ;\r
70   \r
71   Standard_EXPORT\r
72     GEOMAlgo_KindOfShape KindOfShape() const;\r
73   \r
74   Standard_EXPORT\r
75     void SetKindOfName(const GEOMAlgo_KindOfName aT) ;\r
76   \r
77   Standard_EXPORT\r
78     GEOMAlgo_KindOfName KindOfName() const;\r
79   \r
80   Standard_EXPORT\r
81     void SetKindOfBounds(const GEOMAlgo_KindOfBounds aT) ;\r
82   \r
83   Standard_EXPORT\r
84     GEOMAlgo_KindOfBounds KindOfBounds() const;\r
85   \r
86   Standard_EXPORT\r
87     void SetKindOfClosed(const GEOMAlgo_KindOfClosed aT) ;\r
88   \r
89   Standard_EXPORT\r
90     GEOMAlgo_KindOfClosed KindOfClosed() const;\r
91   \r
92   Standard_EXPORT\r
93     void SetLocation(const gp_Pnt& aP) ;\r
94   \r
95   Standard_EXPORT\r
96     const gp_Pnt& Location() const;\r
97   \r
98   Standard_EXPORT\r
99     void SetDirection(const gp_Dir& aD) ;\r
100   \r
101   Standard_EXPORT\r
102     const gp_Dir& Direction() const;\r
103   \r
104   Standard_EXPORT\r
105     void SetPosition(const gp_Ax2& aAx2) ;\r
106   \r
107   Standard_EXPORT\r
108     void SetPosition(const gp_Ax3& aAx3) ;\r
109   \r
110   Standard_EXPORT\r
111     const gp_Ax3& Position() const;\r
112   \r
113   Standard_EXPORT\r
114     void SetPnt1(const gp_Pnt& aP) ;\r
115   \r
116   Standard_EXPORT\r
117     const gp_Pnt& Pnt1() const;\r
118   \r
119   Standard_EXPORT\r
120     void SetPnt2(const gp_Pnt& aP) ;\r
121   \r
122   Standard_EXPORT\r
123     const gp_Pnt& Pnt2() const;\r
124   \r
125   Standard_EXPORT\r
126     void SetRadius1(const Standard_Real aR) ;\r
127   \r
128   Standard_EXPORT\r
129     Standard_Real Radius1() const;\r
130   \r
131   Standard_EXPORT\r
132     void SetRadius2(const Standard_Real aR) ;\r
133   \r
134   Standard_EXPORT\r
135     Standard_Real Radius2() const;\r
136   \r
137   Standard_EXPORT\r
138     void SetLength(const Standard_Real aL) ;\r
139   \r
140   Standard_EXPORT\r
141     Standard_Real Length() const;\r
142   \r
143   Standard_EXPORT\r
144     void SetWidth(const Standard_Real aW) ;\r
145   \r
146   Standard_EXPORT\r
147     Standard_Real Width() const;\r
148   \r
149   Standard_EXPORT\r
150     void SetHeight(const Standard_Real aH) ;\r
151   \r
152   Standard_EXPORT\r
153     Standard_Real Height() const;\r
154   \r
155   Standard_EXPORT\r
156     void Dump() const;\r
157 \r
158  protected:\r
159   Standard_EXPORT\r
160     void DumpVertex() const;\r
161   \r
162   Standard_EXPORT\r
163     void DumpEdge() const;\r
164   \r
165   Standard_EXPORT\r
166     void DumpWire() const;\r
167   \r
168   Standard_EXPORT\r
169     void DumpFace() const;\r
170   \r
171   Standard_EXPORT\r
172     void DumpShell() const;\r
173   \r
174   Standard_EXPORT\r
175     void DumpSolid() const;\r
176   \r
177   Standard_EXPORT\r
178     void DumpCompSolid() const;\r
179   \r
180   Standard_EXPORT\r
181     void DumpCompound() const;\r
182 \r
183 \r
184   TopAbs_ShapeEnum myType;\r
185   Standard_Integer myNbSubShapes[9];\r
186   GEOMAlgo_KindOfShape myKindOfShape;\r
187   GEOMAlgo_KindOfName myKindOfName;\r
188   GEOMAlgo_KindOfBounds myKindOfBounds;\r
189   GEOMAlgo_KindOfClosed myKindOfClosed;\r
190   gp_Pnt myLocation;\r
191   gp_Dir myDirection;\r
192   gp_Ax3 myPosition;\r
193   Standard_Real myRadius1;\r
194   Standard_Real myRadius2;\r
195   Standard_Real myLength;\r
196   Standard_Real myWidth;\r
197   Standard_Real myHeight;\r
198   gp_Pnt myPnt1;\r
199   gp_Pnt myPnt2;\r
200   Standard_Integer myNbTypes;\r
201 };\r
202 #endif\r