2 * Project Info: http://jcae.sourceforge.net
4 * This program is free software; you can redistribute it and/or modify it under
5 * the terms of the GNU Lesser General Public License as published by the Free
6 * Software Foundation; either version 2.1 of the License, or (at your option)
9 * This program is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11 * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
14 * You should have received a copy of the GNU Lesser General Public License
15 * along with this program; if not, write to the Free Software Foundation, Inc.,
16 * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
18 * (C) Copyright 2005, by EADS CRC
22 #include <BRepBuilderAPI_Transform.hxx>
23 #include <BRepBuilderAPI_ModifyShape.hxx>
24 #include <BRepBuilderAPI_MakeShape.hxx>
25 #include <BRepBuilderAPI_MakeWire.hxx>
26 #include <BRepBuilderAPI_MakeVertex.hxx>
27 #include <BRepBuilderAPI_MakeEdge.hxx>
28 #include <BRepBuilderAPI_MakeFace.hxx>
29 #include <BRepBuilderAPI_MakeShell.hxx>
30 #include <BRepBuilderAPI_MakeSolid.hxx>
31 #include <BRepBuilderAPI_NurbsConvert.hxx>
32 #include <BRepOffsetAPI_ThruSections.hxx>
33 #include <Standard_Version.hxx>
34 #if OCC_VERSION_MAJOR >= 6
35 #include <BRepBuilderAPI_Sewing.hxx>
37 #include <BRepAlgo_Sewing.hxx>
38 #define BRepBuilderAPI_Sewing BRepAlgo_Sewing
42 class BRepBuilderAPI_Command
44 %rename(isDone) IsDone;
45 BRepBuilderAPI_Command()=0;
47 virtual Standard_Boolean IsDone() const;
50 class BRepBuilderAPI_MakeShape: public BRepBuilderAPI_Command
52 //Hide the constructor to make this class abstract
53 BRepBuilderAPI_MakeShape()=0;
59 //const TopoDS_Shape& Shape() const;
60 const TopoDS_Shape& Shape();
63 class BRepBuilderAPI_ModifyShape: public BRepBuilderAPI_MakeShape
65 BRepBuilderAPI_ModifyShape()=0;
69 %extend BRepBuilderAPI_ModifyShape {
70 // Use %extend to be compatible with OCE < 0.18 and OCE >= 0.18
71 TopoDS_Shape modifiedShape(const TopoDS_Shape& S) const {
72 return self->ModifiedShape(S);
76 class BRepBuilderAPI_Transform : public BRepBuilderAPI_ModifyShape
78 %rename(perform) Perform;
80 BRepBuilderAPI_Transform(const gp_Trsf& T);
81 BRepBuilderAPI_Transform(const TopoDS_Shape& S, const gp_Trsf& T,
82 const Standard_Boolean Copy = Standard_False);
83 void Perform(const TopoDS_Shape& S,
84 const Standard_Boolean Copy = Standard_False) ;
87 class BRepBuilderAPI_MakeVertex: public BRepBuilderAPI_MakeShape
89 %rename(vertex) Vertex;
91 BRepBuilderAPI_MakeVertex(const gp_Pnt& P);
92 //const TopoDS_Vertex& Vertex() const;
95 class BRepBuilderAPI_MakeWire : public BRepBuilderAPI_MakeShape
99 %rename(isDone) IsDone;
101 BRepBuilderAPI_MakeWire();
102 BRepBuilderAPI_MakeWire(const TopoDS_Edge& E);
103 BRepBuilderAPI_MakeWire(const TopoDS_Edge& E1,const TopoDS_Edge& E2);
104 BRepBuilderAPI_MakeWire(const TopoDS_Edge& E1,const TopoDS_Edge& E2,
105 const TopoDS_Edge& E3);
106 BRepBuilderAPI_MakeWire(const TopoDS_Edge& E1,const TopoDS_Edge& E2,
107 const TopoDS_Edge& E3,const TopoDS_Edge& E4);
108 BRepBuilderAPI_MakeWire(const TopoDS_Wire& W);
109 BRepBuilderAPI_MakeWire(const TopoDS_Wire& W,const TopoDS_Edge& E);
110 void Add(const TopoDS_Edge& E) ;
111 void Add(const TopoDS_Wire& W) ;
112 void Add(const TopTools_ListOfShape & shapes);
113 Standard_Boolean IsDone() const;
114 const TopoDS_Wire& Wire();
117 class BRepBuilderAPI_MakeEdge : public BRepBuilderAPI_MakeShape
120 %rename(isDone) IsDone;
122 BRepBuilderAPI_MakeEdge();
123 BRepBuilderAPI_MakeEdge(const Handle_Geom_Curve& L);
124 BRepBuilderAPI_MakeEdge(const TopoDS_Vertex& V1,const TopoDS_Vertex& V2);
125 BRepBuilderAPI_MakeEdge(const gp_Pnt& P1,const gp_Pnt& P2);
126 BRepBuilderAPI_MakeEdge(const gp_Circ& L);
127 BRepBuilderAPI_MakeEdge(const gp_Circ& L,const Standard_Real p1,const Standard_Real p2);
128 BRepBuilderAPI_MakeEdge(const gp_Circ& L,const gp_Pnt& P1,const gp_Pnt& P2);
129 BRepBuilderAPI_MakeEdge(const gp_Circ& L,const TopoDS_Vertex& V1,const TopoDS_Vertex& V2);
130 BRepBuilderAPI_MakeEdge(const gp_Parab& L);
131 BRepBuilderAPI_MakeEdge(const gp_Parab& L,const Standard_Real p1,const Standard_Real p2);
132 BRepBuilderAPI_MakeEdge(const gp_Parab& L,const gp_Pnt& P1,const gp_Pnt& P2);
133 BRepBuilderAPI_MakeEdge(const gp_Parab& L,const TopoDS_Vertex& V1,const TopoDS_Vertex& V2);
134 BRepBuilderAPI_MakeEdge(const Handle_Geom2d_Curve& L, const Handle_Geom_Surface& S);
135 BRepBuilderAPI_MakeEdge(const Handle_Geom_TrimmedCurve& L);
136 Standard_Boolean IsDone() const;
138 //const TopoDS_Edge& Edge() const;
139 const TopoDS_Edge& Edge();
141 BRepBuilderAPI_MakeEdge(const gp_Lin& L);
142 BRepBuilderAPI_MakeEdge(const gp_Lin& L,const Standard_Real p1,const Standard_Real p2);
143 BRepBuilderAPI_MakeEdge(const gp_Lin& L,const gp_Pnt& P1,const gp_Pnt& P2);
144 BRepBuilderAPI_MakeEdge(const gp_Lin& L,const TopoDS_Vertex& V1,const TopoDS_Vertex& V2);
145 BRepBuilderAPI_MakeEdge(const gp_Elips& L);
146 BRepBuilderAPI_MakeEdge(const gp_Elips& L,const Standard_Real p1,const Standard_Real p2);
147 BRepBuilderAPI_MakeEdge(const gp_Elips& L,const gp_Pnt& P1,const gp_Pnt& P2);
148 BRepBuilderAPI_MakeEdge(const gp_Elips& L,const TopoDS_Vertex& V1,const TopoDS_Vertex& V2);
149 BRepBuilderAPI_MakeEdge(const gp_Hypr& L);
150 BRepBuilderAPI_MakeEdge(const gp_Hypr& L,const Standard_Real p1,const Standard_Real p2);
151 BRepBuilderAPI_MakeEdge(const gp_Hypr& L,const gp_Pnt& P1,const gp_Pnt& P2);
152 BRepBuilderAPI_MakeEdge(const gp_Hypr& L,const TopoDS_Vertex& V1,const TopoDS_Vertex& V2);
153 BRepBuilderAPI_MakeEdge(const Handle_Geom_Curve& L,const Standard_Real p1,const Standard_Real p2);
154 BRepBuilderAPI_MakeEdge(const Handle_Geom_Curve& L,const gp_Pnt& P1,const gp_Pnt& P2);
155 BRepBuilderAPI_MakeEdge(const Handle_Geom_Curve& L,const TopoDS_Vertex& V1,const TopoDS_Vertex& V2);
156 BRepBuilderAPI_MakeEdge(const Handle_Geom_Curve& L,const gp_Pnt& P1,const gp_Pnt& P2,const Standard_Real p1,const Standard_Real p2);
157 BRepBuilderAPI_MakeEdge(const Handle_Geom_Curve& L,const TopoDS_Vertex& V1,const TopoDS_Vertex& V2,const Standard_Real p1,const Standard_Real p2);
158 BRepBuilderAPI_MakeEdge(const Handle_Geom2d_Curve& L,const Handle_Geom_Surface& S);
159 BRepBuilderAPI_MakeEdge(const Handle_Geom2d_Curve& L,const Handle_Geom_Surface& S,const Standard_Real p1,const Standard_Real p2);
160 BRepBuilderAPI_MakeEdge(const Handle_Geom2d_Curve& L,const Handle_Geom_Surface& S,const gp_Pnt& P1,const gp_Pnt& P2);
161 BRepBuilderAPI_MakeEdge(const Handle_Geom2d_Curve& L,const Handle_Geom_Surface& S,const TopoDS_Vertex& V1,const TopoDS_Vertex& V2);
162 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);
166 class BRepBuilderAPI_MakeFace : public BRepBuilderAPI_MakeShape
170 BRepBuilderAPI_MakeFace(const TopoDS_Wire& W,
171 const Standard_Boolean OnlyPlane = Standard_False);
172 BRepBuilderAPI_MakeFace(const TopoDS_Face& F,const TopoDS_Wire& W);
173 //const TopoDS_Face& Face() const;
176 class BRepBuilderAPI_MakeSolid: public BRepBuilderAPI_MakeShape
179 %rename(isDone) IsDone;
180 %rename(isDeleted) IsDeleted;
182 BRepBuilderAPI_MakeSolid();
183 BRepBuilderAPI_MakeSolid(const TopoDS_CompSolid& S);
184 BRepBuilderAPI_MakeSolid(const TopoDS_Shell& S);
185 BRepBuilderAPI_MakeSolid(const TopoDS_Shell& S1,const TopoDS_Shell& S2);
186 BRepBuilderAPI_MakeSolid(const TopoDS_Shell& S1,const TopoDS_Shell& S2,const TopoDS_Shell& S3);
187 BRepBuilderAPI_MakeSolid(const TopoDS_Solid& So);
188 BRepBuilderAPI_MakeSolid(const TopoDS_Solid& So,const TopoDS_Shell& S);
189 void Add(const TopoDS_Shell& S) ;
190 Standard_Boolean IsDone() const;
191 Standard_Boolean IsDeleted(const TopoDS_Shape& S) ;
194 class BRepBuilderAPI_Sewing
200 %rename(perform) Perform;
201 %rename(sewedShape) SewedShape;
204 %rename(nbFreeEdges) NbFreeEdges;
205 %rename(freeEdge) FreeEdge;
206 %rename(nbMultipleEdges) NbMultipleEdges;
207 %rename(multipleEdge) MultipleEdge;
208 %rename(nbDegeneratedShapes) NbDegeneratedShapes;
209 %rename(degeneratedShape) DegeneratedShape;
210 %rename(nbDeletedFaces) NbDeletedFaces;
211 %rename(deletedFace) DeletedFace;
212 %rename(isDegenerated) IsDegenerated;
213 %rename(isModified) IsModified;
214 %rename(modified) Modified;
217 %rename(isModifiedSubShape) IsModifiedSubShape;
218 %rename(modifiedSubShape) ModifiedSubShape;
220 BRepBuilderAPI_Sewing(const Standard_Real tolerance = 1.0e-06,
221 const Standard_Boolean option = Standard_True,
222 const Standard_Boolean cutting = Standard_True,
223 const Standard_Boolean nonmanifold = Standard_False);
224 void Init(const Standard_Real tolerance,
225 const Standard_Boolean option = Standard_True,
226 const Standard_Boolean cutting = Standard_True,
227 const Standard_Boolean nonmanifold = Standard_False) ;
228 void Load(const TopoDS_Shape& shape) ;
229 void Add(const TopoDS_Shape& shape) ;
231 const TopoDS_Shape& SewedShape() const;
232 Standard_Integer NbFreeEdges() const;
233 const TopoDS_Edge& FreeEdge(const Standard_Integer index) const;
234 Standard_Integer NbMultipleEdges() const;
235 const TopoDS_Edge& MultipleEdge(const Standard_Integer index) const;
236 Standard_Integer NbDegeneratedShapes() const;
237 const TopoDS_Shape& DegeneratedShape(const Standard_Integer index) const;
238 Standard_Integer NbDeletedFaces() const;
239 const TopoDS_Face& DeletedFace(const Standard_Integer index) const;
240 Standard_Boolean IsDegenerated(const TopoDS_Shape& shape) const;
241 Standard_Boolean IsModified(const TopoDS_Shape& shape) const;
242 const TopoDS_Shape& Modified(const TopoDS_Shape& shape) const;
245 Standard_Boolean IsModifiedSubShape(const TopoDS_Shape& shape) const;
246 TopoDS_Shape ModifiedSubShape(const TopoDS_Shape& shape) const;
249 class BRepBuilderAPI_NurbsConvert : public BRepBuilderAPI_ModifyShape
251 %rename(perform) Perform;
253 BRepBuilderAPI_NurbsConvert();
254 BRepBuilderAPI_NurbsConvert(const TopoDS_Shape& S,
255 const Standard_Boolean Copy = Standard_False);
256 void Perform(const TopoDS_Shape& S,
257 const Standard_Boolean Copy = Standard_False) ;
260 class BRepOffsetAPI_ThruSections : public BRepBuilderAPI_MakeShape
263 %rename(addWire) AddWire;
264 %rename(checkCompatibility) CheckCompatibility;
267 %rename(addVertex) AddVertex;
268 %rename(build) Build;
270 BRepOffsetAPI_ThruSections(const Standard_Boolean isSolid = Standard_False, const Standard_Boolean ruled = Standard_False, const Standard_Real pres3d = 1.0e-06);
271 void AddWire (const TopoDS_Wire& wire) ;
272 void CheckCompatibility (const Standard_Boolean check = Standard_True) ;
273 const TopoDS_Shape& Shape();
275 void Init(const Standard_Boolean isSolid = Standard_False,const Standard_Boolean ruled = Standard_False,const Standard_Real pres3d = 1.0e-06) ;
276 void AddVertex(const TopoDS_Vertex& aVertex) ;
284 class BRepBuilderAPI_MakeShell : public BRepBuilderAPI_MakeShape {
286 %rename(isDone) IsDone;
287 %rename(error) Error;
289 BRepBuilderAPI_MakeShell();
290 BRepBuilderAPI_MakeShell(const Handle_Geom_Surface& S,const Standard_Boolean Segment = Standard_False);
291 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);
292 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) ;
293 Standard_Boolean IsDone() const;
294 BRepBuilderAPI_ShellError Error();
295 const TopoDS_Shell& Shell();