]> gerrit.simantics Code Review - simantics/3d.git/blob - org.jcae.opencascade/src/BRepBuilderAPI.i
30fc02859a6e3d2729c3174a6a1c195f8da8b1aa
[simantics/3d.git] / org.jcae.opencascade / src / BRepBuilderAPI.i
1 /*\r
2  * Project Info:  http://jcae.sourceforge.net\r
3  * \r
4  * This program is free software; you can redistribute it and/or modify it under\r
5  * the terms of the GNU Lesser General Public License as published by the Free\r
6  * Software Foundation; either version 2.1 of the License, or (at your option)\r
7  * any later version.\r
8  *\r
9  * This program is distributed in the hope that it will be useful, but WITHOUT\r
10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS\r
11  * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more\r
12  * details.\r
13  *\r
14  * You should have received a copy of the GNU Lesser General Public License\r
15  * along with this program; if not, write to the Free Software Foundation, Inc.,\r
16  * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.\r
17  *\r
18  * (C) Copyright 2005, by EADS CRC\r
19  */\r
20 \r
21 %{\r
22 #include <BRepBuilderAPI_Transform.hxx>\r
23 #include <BRepBuilderAPI_ModifyShape.hxx>\r
24 #include <BRepBuilderAPI_MakeShape.hxx>\r
25 #include <BRepBuilderAPI_MakeWire.hxx>\r
26 #include <BRepBuilderAPI_MakeVertex.hxx>\r
27 #include <BRepBuilderAPI_MakeEdge.hxx>\r
28 #include <BRepBuilderAPI_MakeFace.hxx>\r
29 #include <BRepBuilderAPI_MakeShell.hxx>\r
30 #include <BRepBuilderAPI_MakeSolid.hxx>\r
31 #include <BRepBuilderAPI_NurbsConvert.hxx>\r
32 #include <Standard_Version.hxx>\r
33 #if OCC_VERSION_MAJOR >= 6\r
34 #include <BRepBuilderAPI_Sewing.hxx>\r
35 #else\r
36 #include <BRepAlgo_Sewing.hxx>\r
37 #define BRepBuilderAPI_Sewing BRepAlgo_Sewing\r
38 #endif\r
39 %}\r
40 \r
41 class BRepBuilderAPI_MakeShape\r
42 {\r
43         //Hide the constructor to make this class abstract\r
44         BRepBuilderAPI_MakeShape()=0;\r
45         public:\r
46         %rename(shape) Shape;\r
47         const TopoDS_Shape& Shape() const;\r
48 };\r
49 \r
50 class BRepBuilderAPI_ModifyShape: public BRepBuilderAPI_MakeShape\r
51 {\r
52         %rename(modifiedShape) ModifiedShape;\r
53         BRepBuilderAPI_ModifyShape()=0;\r
54         public:\r
55         virtual const TopoDS_Shape& ModifiedShape(const TopoDS_Shape& S) const;\r
56 };\r
57 \r
58 class BRepBuilderAPI_Transform : public BRepBuilderAPI_ModifyShape\r
59 {\r
60         %rename(perform) Perform;\r
61         public:\r
62         BRepBuilderAPI_Transform(const gp_Trsf& T);\r
63         BRepBuilderAPI_Transform(const TopoDS_Shape& S, const gp_Trsf& T,\r
64                 const Standard_Boolean Copy = Standard_False);\r
65         void Perform(const TopoDS_Shape& S,\r
66                 const Standard_Boolean Copy = Standard_False) ;\r
67 };\r
68 \r
69 class BRepBuilderAPI_MakeVertex: public BRepBuilderAPI_MakeShape\r
70 {\r
71         %rename(vertex) Vertex;\r
72         public:\r
73         BRepBuilderAPI_MakeVertex(const gp_Pnt& P);\r
74         //const TopoDS_Vertex& Vertex() const;\r
75 };\r
76 \r
77 class BRepBuilderAPI_MakeWire : public BRepBuilderAPI_MakeShape\r
78 {\r
79         %rename(wire) Wire;\r
80         %rename(add) Add;\r
81         %rename(isDone) IsDone;\r
82         public:\r
83         BRepBuilderAPI_MakeWire();\r
84         BRepBuilderAPI_MakeWire(const TopoDS_Edge& E);\r
85         BRepBuilderAPI_MakeWire(const TopoDS_Edge& E1,const TopoDS_Edge& E2);\r
86         BRepBuilderAPI_MakeWire(const TopoDS_Edge& E1,const TopoDS_Edge& E2,\r
87                 const TopoDS_Edge& E3);\r
88         BRepBuilderAPI_MakeWire(const TopoDS_Edge& E1,const TopoDS_Edge& E2,\r
89                 const TopoDS_Edge& E3,const TopoDS_Edge& E4);\r
90         BRepBuilderAPI_MakeWire(const TopoDS_Wire& W);\r
91         BRepBuilderAPI_MakeWire(const TopoDS_Wire& W,const TopoDS_Edge& E);\r
92         void Add(const TopoDS_Edge& E) ;\r
93         void Add(const TopoDS_Wire& W) ;\r
94         void Add(const TopTools_ListOfShape & shapes);\r
95         Standard_Boolean IsDone() const;\r
96         //const TopoDS_Wire& Wire() const;\r
97 };\r
98 \r
99 class BRepBuilderAPI_MakeEdge : public BRepBuilderAPI_MakeShape\r
100 {\r
101         %rename(edge) Edge;\r
102         %rename(isDone) IsDone;\r
103         public:\r
104         BRepBuilderAPI_MakeEdge();\r
105         BRepBuilderAPI_MakeEdge(const Handle_Geom_Curve& L);\r
106         BRepBuilderAPI_MakeEdge(const TopoDS_Vertex& V1,const TopoDS_Vertex& V2);\r
107         BRepBuilderAPI_MakeEdge(const gp_Pnt& P1,const gp_Pnt& P2);\r
108         BRepBuilderAPI_MakeEdge(const gp_Circ& L);\r
109         BRepBuilderAPI_MakeEdge(const gp_Circ& L,const Standard_Real p1,const Standard_Real p2);\r
110         BRepBuilderAPI_MakeEdge(const gp_Circ& L,const gp_Pnt& P1,const gp_Pnt& P2);\r
111         BRepBuilderAPI_MakeEdge(const gp_Circ& L,const TopoDS_Vertex& V1,const TopoDS_Vertex& V2);\r
112         BRepBuilderAPI_MakeEdge(const gp_Parab& L);\r
113         BRepBuilderAPI_MakeEdge(const gp_Parab& L,const Standard_Real p1,const Standard_Real p2);\r
114         BRepBuilderAPI_MakeEdge(const gp_Parab& L,const gp_Pnt& P1,const gp_Pnt& P2);\r
115         BRepBuilderAPI_MakeEdge(const gp_Parab& L,const TopoDS_Vertex& V1,const TopoDS_Vertex& V2);\r
116         Standard_Boolean IsDone() const;\r
117         //const TopoDS_Edge& Edge() const;\r
118 \r
119 \r
120 \r
121 \r
122         BRepBuilderAPI_MakeEdge(const gp_Lin& L);\r
123         BRepBuilderAPI_MakeEdge(const gp_Lin& L,const Standard_Real p1,const Standard_Real p2);\r
124     BRepBuilderAPI_MakeEdge(const gp_Lin& L,const gp_Pnt& P1,const gp_Pnt& P2);\r
125     BRepBuilderAPI_MakeEdge(const gp_Lin& L,const TopoDS_Vertex& V1,const TopoDS_Vertex& V2);\r
126     BRepBuilderAPI_MakeEdge(const gp_Elips& L);\r
127         BRepBuilderAPI_MakeEdge(const gp_Elips& L,const Standard_Real p1,const Standard_Real p2);\r
128         BRepBuilderAPI_MakeEdge(const gp_Elips& L,const gp_Pnt& P1,const gp_Pnt& P2);\r
129         BRepBuilderAPI_MakeEdge(const gp_Elips& L,const TopoDS_Vertex& V1,const TopoDS_Vertex& V2);\r
130         BRepBuilderAPI_MakeEdge(const gp_Hypr& L);\r
131         BRepBuilderAPI_MakeEdge(const gp_Hypr& L,const Standard_Real p1,const Standard_Real p2);\r
132         BRepBuilderAPI_MakeEdge(const gp_Hypr& L,const gp_Pnt& P1,const gp_Pnt& P2);\r
133         BRepBuilderAPI_MakeEdge(const gp_Hypr& L,const TopoDS_Vertex& V1,const TopoDS_Vertex& V2);\r
134         BRepBuilderAPI_MakeEdge(const Handle_Geom_Curve& L,const Standard_Real p1,const Standard_Real p2);\r
135         BRepBuilderAPI_MakeEdge(const Handle_Geom_Curve& L,const gp_Pnt& P1,const gp_Pnt& P2);\r
136         BRepBuilderAPI_MakeEdge(const Handle_Geom_Curve& L,const TopoDS_Vertex& V1,const TopoDS_Vertex& V2);\r
137         BRepBuilderAPI_MakeEdge(const Handle_Geom_Curve& L,const gp_Pnt& P1,const gp_Pnt& P2,const Standard_Real p1,const Standard_Real p2);\r
138         BRepBuilderAPI_MakeEdge(const Handle_Geom_Curve& L,const TopoDS_Vertex& V1,const TopoDS_Vertex& V2,const Standard_Real p1,const Standard_Real p2);\r
139         BRepBuilderAPI_MakeEdge(const Handle_Geom2d_Curve& L,const Handle_Geom_Surface& S);\r
140         BRepBuilderAPI_MakeEdge(const Handle_Geom2d_Curve& L,const Handle_Geom_Surface& S,const Standard_Real p1,const Standard_Real p2);\r
141         BRepBuilderAPI_MakeEdge(const Handle_Geom2d_Curve& L,const Handle_Geom_Surface& S,const gp_Pnt& P1,const gp_Pnt& P2);\r
142         BRepBuilderAPI_MakeEdge(const Handle_Geom2d_Curve& L,const Handle_Geom_Surface& S,const TopoDS_Vertex& V1,const TopoDS_Vertex& V2);\r
143         BRepBuilderAPI_MakeEdge(const Handle_Geom2d_Curve& L,const Handle_Geom_Surface& S,const gp_Pnt& P1,const gp_Pnt& P2,const Standard_Real p1,const Standard_Real p2);\r
144 \r
145 \r
146 };\r
147 \r
148 class BRepBuilderAPI_MakeFace  : public BRepBuilderAPI_MakeShape\r
149 {\r
150         %rename(face) Face;\r
151         %rename(isDone) IsDone;\r
152         %rename(error) Error;\r
153         public:\r
154         BRepBuilderAPI_MakeFace(const TopoDS_Wire& W,\r
155                 const Standard_Boolean OnlyPlane = Standard_False);\r
156     BRepBuilderAPI_MakeFace(const TopoDS_Face& F,const TopoDS_Wire& W);\r
157         //const TopoDS_Face& Face() const;\r
158 \r
159         Standard_Boolean IsDone() const;\r
160     BRepBuilderAPI_FaceError Error() const;\r
161 };\r
162 \r
163 class BRepBuilderAPI_MakeSolid: public BRepBuilderAPI_MakeShape\r
164 {\r
165         %rename(add) Add;\r
166         %rename(isDone) IsDone;\r
167         %rename(isDeleted) IsDeleted;\r
168         public:\r
169         BRepBuilderAPI_MakeSolid();\r
170         BRepBuilderAPI_MakeSolid(const TopoDS_CompSolid& S);\r
171         BRepBuilderAPI_MakeSolid(const TopoDS_Shell& S);\r
172         BRepBuilderAPI_MakeSolid(const TopoDS_Shell& S1,const TopoDS_Shell& S2);\r
173         BRepBuilderAPI_MakeSolid(const TopoDS_Shell& S1,const TopoDS_Shell& S2,const TopoDS_Shell& S3);\r
174         BRepBuilderAPI_MakeSolid(const TopoDS_Solid& So);\r
175         BRepBuilderAPI_MakeSolid(const TopoDS_Solid& So,const TopoDS_Shell& S);\r
176         void Add(const TopoDS_Shell& S) ;\r
177         Standard_Boolean IsDone() const;\r
178         Standard_Boolean IsDeleted(const TopoDS_Shape& S) ;\r
179 };\r
180 \r
181 class BRepBuilderAPI_Sewing\r
182 {\r
183         public:\r
184         \r
185         %rename(init) Init;\r
186         %rename(add) Add;\r
187         %rename(perform) Perform;\r
188         %rename(sewedShape) SewedShape;\r
189 \r
190         %rename(load) Load;\r
191         %rename(nbFreeEdges) NbFreeEdges;\r
192         %rename(freeEdge) FreeEdge;\r
193         %rename(nbMultipleEdges) NbMultipleEdges;\r
194         %rename(multipleEdge) MultipleEdge;\r
195         %rename(nbDegeneratedShapes) NbDegeneratedShapes;\r
196         %rename(degeneratedShape) DegeneratedShape;\r
197         %rename(nbDeletedFaces) NbDeletedFaces;\r
198         %rename(deletedFace) DeletedFace;\r
199         %rename(isDegenerated) IsDegenerated;\r
200         %rename(isModified) IsModified;\r
201         %rename(modified) Modified;\r
202         %rename(dump) Dump;\r
203 \r
204         %rename(isModifiedSubShape) IsModifiedSubShape;\r
205         %rename(modifiedSubShape) ModifiedSubShape;\r
206 \r
207         BRepBuilderAPI_Sewing(const Standard_Real tolerance = 1.0e-06,\r
208                 const Standard_Boolean option = Standard_True,\r
209                 const Standard_Boolean cutting = Standard_True,\r
210                 const Standard_Boolean nonmanifold = Standard_False);\r
211         void Init(const Standard_Real tolerance,\r
212                 const Standard_Boolean option = Standard_True,\r
213                 const Standard_Boolean cutting = Standard_True,\r
214                 const Standard_Boolean nonmanifold = Standard_False) ;\r
215         void Load(const TopoDS_Shape& shape) ;\r
216         void Add(const TopoDS_Shape& shape) ;\r
217         void Perform() ;\r
218         const TopoDS_Shape& SewedShape() const;\r
219         Standard_Integer NbFreeEdges() const;\r
220         const TopoDS_Edge& FreeEdge(const Standard_Integer index) const;\r
221         Standard_Integer NbMultipleEdges() const;\r
222         const TopoDS_Edge& MultipleEdge(const Standard_Integer index) const;\r
223         Standard_Integer NbDegeneratedShapes() const;\r
224         const TopoDS_Shape& DegeneratedShape(const Standard_Integer index) const;\r
225         Standard_Integer NbDeletedFaces() const;\r
226         const TopoDS_Face& DeletedFace(const Standard_Integer index) const;\r
227         Standard_Boolean IsDegenerated(const TopoDS_Shape& shape) const;\r
228         Standard_Boolean IsModified(const TopoDS_Shape& shape) const;\r
229         const TopoDS_Shape& Modified(const TopoDS_Shape& shape) const;\r
230         void Dump() const;\r
231 \r
232         Standard_Boolean IsModifiedSubShape(const TopoDS_Shape& shape) const;\r
233         TopoDS_Shape ModifiedSubShape(const TopoDS_Shape& shape) const;\r
234 };\r
235 \r
236 class BRepBuilderAPI_NurbsConvert : public BRepBuilderAPI_ModifyShape\r
237 {\r
238         %rename(perform) Perform;\r
239         public:\r
240         BRepBuilderAPI_NurbsConvert();\r
241         BRepBuilderAPI_NurbsConvert(const TopoDS_Shape& S,\r
242                 const Standard_Boolean Copy = Standard_False);\r
243         void Perform(const TopoDS_Shape& S,\r
244                 const Standard_Boolean Copy = Standard_False) ;\r
245 };\r
246 \r
247 /**\r
248   * VTT\r
249 */\r
250 \r
251 class BRepBuilderAPI_MakeShell  : public BRepBuilderAPI_MakeShape {\r
252   %rename(init) Init;\r
253   %rename(isDone) IsDone;\r
254   %rename(error) Error;\r
255   public:\r
256   BRepBuilderAPI_MakeShell();\r
257   BRepBuilderAPI_MakeShell(const Handle_Geom_Surface& S,const Standard_Boolean Segment = Standard_False);\r
258   BRepBuilderAPI_MakeShell(const Handle_Geom_Surface& S,const Standard_Real UMin,const Standard_Real UMax,const Standard_Real VMin,const Standard_Real VMax,const Standard_Boolean Segment = Standard_False);\r
259   void Init(const Handle_Geom_Surface& S,const Standard_Real UMin,const Standard_Real UMax,const Standard_Real VMin,const Standard_Real VMax,const Standard_Boolean Segment = Standard_False) ;\r
260   Standard_Boolean IsDone() const;\r
261   BRepBuilderAPI_ShellError Error();\r
262   const TopoDS_Shell& Shell();\r
263 };