2 * Project Info: http://jcae.sourceforge.net
\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
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
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
18 * (C) Copyright 2005, by EADS CRC
\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
36 #include <BRepAlgo_Sewing.hxx>
\r
37 #define BRepBuilderAPI_Sewing BRepAlgo_Sewing
\r
41 class BRepBuilderAPI_MakeShape
\r
43 //Hide the constructor to make this class abstract
\r
44 BRepBuilderAPI_MakeShape()=0;
\r
46 %rename(shape) Shape;
\r
47 const TopoDS_Shape& Shape() const;
\r
50 class BRepBuilderAPI_ModifyShape: public BRepBuilderAPI_MakeShape
\r
52 %rename(modifiedShape) ModifiedShape;
\r
53 BRepBuilderAPI_ModifyShape()=0;
\r
55 virtual const TopoDS_Shape& ModifiedShape(const TopoDS_Shape& S) const;
\r
58 class BRepBuilderAPI_Transform : public BRepBuilderAPI_ModifyShape
\r
60 %rename(perform) Perform;
\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
69 class BRepBuilderAPI_MakeVertex: public BRepBuilderAPI_MakeShape
\r
71 %rename(vertex) Vertex;
\r
73 BRepBuilderAPI_MakeVertex(const gp_Pnt& P);
\r
74 //const TopoDS_Vertex& Vertex() const;
\r
77 class BRepBuilderAPI_MakeWire : public BRepBuilderAPI_MakeShape
\r
81 %rename(isDone) IsDone;
\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
99 class BRepBuilderAPI_MakeEdge : public BRepBuilderAPI_MakeShape
\r
101 %rename(edge) Edge;
\r
102 %rename(isDone) IsDone;
\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
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
148 class BRepBuilderAPI_MakeFace : public BRepBuilderAPI_MakeShape
\r
150 %rename(face) Face;
\r
151 %rename(isDone) IsDone;
\r
152 %rename(error) Error;
\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
159 Standard_Boolean IsDone() const;
\r
160 BRepBuilderAPI_FaceError Error() const;
\r
163 class BRepBuilderAPI_MakeSolid: public BRepBuilderAPI_MakeShape
\r
166 %rename(isDone) IsDone;
\r
167 %rename(isDeleted) IsDeleted;
\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
181 class BRepBuilderAPI_Sewing
\r
185 %rename(init) Init;
\r
187 %rename(perform) Perform;
\r
188 %rename(sewedShape) SewedShape;
\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
204 %rename(isModifiedSubShape) IsModifiedSubShape;
\r
205 %rename(modifiedSubShape) ModifiedSubShape;
\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
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
232 Standard_Boolean IsModifiedSubShape(const TopoDS_Shape& shape) const;
\r
233 TopoDS_Shape ModifiedSubShape(const TopoDS_Shape& shape) const;
\r
236 class BRepBuilderAPI_NurbsConvert : public BRepBuilderAPI_ModifyShape
\r
238 %rename(perform) Perform;
\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
251 class BRepBuilderAPI_MakeShell : public BRepBuilderAPI_MakeShape {
\r
252 %rename(init) Init;
\r
253 %rename(isDone) IsDone;
\r
254 %rename(error) Error;
\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