1 // Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
2 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
4 // This library is free software; you can redistribute it and/or
5 // modify it under the terms of the GNU Lesser General Public
6 // License as published by the Free Software Foundation; either
7 // version 2.1 of the License.
9 // This library is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 // Lesser General Public License for more details.
14 // You should have received a copy of the GNU Lesser General Public
15 // License along with this library; if not, write to the Free Software
16 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 // See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
22 // File : GEOM_Gen.idl
23 // Author : Lucien PIGNOLONI
28 #include "SALOME_Exception.idl"
29 #include "SALOME_Component.idl"
30 #include "SALOMEDS.idl"
31 #include "GEOM_Shape.idl"
35 interface GEOM_Gen : Engines::Component,SALOMEDS::Driver
37 typedef sequence<string> ListOfIOR ;
38 typedef sequence<GEOM_Shape> ListOfGeomShapes ;
40 //--------------------------------------------------------------//
41 // Studies Management //
42 //--------------------------------------------------------------//
43 void GetCurrentStudy(in long StudyID) ;
47 //--------------------------------------------------------------//
48 // Shapes Management //
49 //--------------------------------------------------------------//
50 GEOM_Shape GetIORFromString (in string ior);
51 ListOfIOR GetReferencedObjects(in GEOM_Shape shape);
52 ListOfIOR GetObjects (in GEOM_Shape shape);
54 //--------------------------------------------------------------//
56 //--------------------------------------------------------------//
57 PointStruct MakePointStruct(in double x,
60 DirStruct MakeDirection (in PointStruct p) ;
61 AxisStruct MakeAxisStruct(in double x,
68 //------------------------------------------------------------//
69 // Boolean Operations //
70 //------------------------------------------------------------//
71 GEOM_Shape MakeBoolean (in GEOM_Shape shape1,
73 in long operation) raises (SALOME::SALOME_Exception) ;
75 GEOM_Shape MakeFuse( in GEOM_Shape shape1,
76 in GEOM_Shape shape2) raises (SALOME::SALOME_Exception) ;
78 //-----------------------------------------------------------//
79 // Advanced Operations //
80 //-----------------------------------------------------------//
81 GEOM_Shape Partition (in ListOfIOR ListShapes,
82 in ListOfIOR ListTools,
83 in ListOfIOR ListKeepInside,
84 in ListOfIOR ListRemoveInside,
86 raises (SALOME::SALOME_Exception) ;
89 GEOM_Shape MakeFilling(in GEOM_Shape shape,
94 in short nbiter) raises (SALOME::SALOME_Exception) ;
95 GEOM_Shape MakeSewing (in ListOfIOR ListShape,
96 in double precision) raises (SALOME::SALOME_Exception) ;
97 GEOM_Shape MakeSewingShape( in GEOM_Shape aShape,
98 in double precision ) raises (SALOME::SALOME_Exception);
100 GEOM_Shape OrientationChange(in GEOM_Shape shape) raises (SALOME::SALOME_Exception) ;
102 GEOM_Shape MakePlacedBox(in double x1, in double y1, in double z1,
103 in double delta1, in double delta2, in double delta3) raises (SALOME::SALOME_Exception) ;
104 GEOM_Shape MakeGlueFaces(in GEOM_Shape shape,
105 in double tol3d) raises (SALOME::SALOME_Exception) ;
107 //-----------------------------------------------------------//
108 // Transformations Operations //
109 //-----------------------------------------------------------//
110 GEOM_Shape MakeCopy(in GEOM_Shape shape) raises (SALOME::SALOME_Exception) ;
112 GEOM_Shape MakeTranslation(in GEOM_Shape shape,
115 in double z) raises (SALOME::SALOME_Exception) ;
116 GEOM_Shape MakeRotation(in GEOM_Shape shape,
118 in double angle) raises (SALOME::SALOME_Exception) ;
119 GEOM_Shape MakeScaleTransform(in GEOM_Shape shape,
120 in PointStruct theCenterofScale,
121 in double factor) raises (SALOME::SALOME_Exception) ;
122 GEOM_Shape MakeMirrorByPlane(in GEOM_Shape shape,
123 in GEOM_Shape shapePlane) raises (SALOME::SALOME_Exception) ;
124 GEOM_Shape MakeRevolution(in GEOM_Shape shape,
126 in double angle) raises (SALOME::SALOME_Exception) ;
127 GEOM_Shape MakePrism(in GEOM_Shape baseShape,
129 in PointStruct P2) raises (SALOME::SALOME_Exception) ;
130 GEOM_Shape MakePipe(in GEOM_Shape pathShape,
131 in GEOM_Shape baseShape) raises (SALOME::SALOME_Exception) ;
133 //-----------------------------------------------------------//
134 // Patterns Construction //
135 //-----------------------------------------------------------//
136 GEOM_Shape MakeMultiTranslation1D(in GEOM_Shape shape,
139 in short nbtimes) raises (SALOME::SALOME_Exception) ;
140 GEOM_Shape MakeMultiTranslation2D(in GEOM_Shape shape,
146 in short nbtimes2) raises (SALOME::SALOME_Exception) ;
147 GEOM_Shape MakeMultiRotation1D(in GEOM_Shape shape,
150 in short nbtimes) raises (SALOME::SALOME_Exception) ;
151 GEOM_Shape MakeMultiRotation2D(in GEOM_Shape shape,
157 in short nbtimes2) raises (SALOME::SALOME_Exception) ;
159 //-----------------------------------------------------------//
160 // Mesures Construction //
161 //-----------------------------------------------------------//
162 GEOM_Shape MakeCDG(in GEOM_Shape shape) raises (SALOME::SALOME_Exception) ;
165 //-----------------------------------------------------------//
166 // Primitives Construction //
167 //-----------------------------------------------------------//
169 GEOM_Shape MakeVertex(in double x,
171 in double z) raises (SALOME::SALOME_Exception) ;
172 GEOM_Shape MakeVector (in PointStruct pstruct1,
173 in PointStruct pstruct2) raises (SALOME::SALOME_Exception) ;
174 GEOM_Shape MakeLine (in PointStruct pstruct,
175 in DirStruct dstruct) raises (SALOME::SALOME_Exception) ;
176 GEOM_Shape MakePlane (in PointStruct pstruct,
177 in DirStruct dstruct,
178 in double trimsize) raises (SALOME::SALOME_Exception) ;
179 GEOM_Shape MakeCircle(in PointStruct pstruct,
180 in DirStruct dstruct,
181 in double radius) raises (SALOME::SALOME_Exception) ;
182 GEOM_Shape MakeArc(in PointStruct pInit,
183 in PointStruct pCircle,
184 in PointStruct pEnd) raises (SALOME::SALOME_Exception) ;
186 GEOM_Shape MakeEllipse(in PointStruct pstruct,
187 in DirStruct dstruct,
188 in double major_radius,
189 in double minor_radius) raises (SALOME::SALOME_Exception) ;
191 //-----------------------------------------------------------//
192 // Primitives Construction //
193 //-----------------------------------------------------------//
194 GEOM_Shape MakeBox (in double x1,
199 in double z2) raises (SALOME::SALOME_Exception) ;
200 GEOM_Shape MakeCylinder(in PointStruct pstruct,
201 in DirStruct dstruct,
203 in double height) raises (SALOME::SALOME_Exception) ;
205 GEOM_Shape MakeSphere (in double x1,
208 in double radius) raises (SALOME::SALOME_Exception) ;
210 GEOM_Shape MakeTorus(in PointStruct pstruct,
211 in DirStruct dstruct,
212 in double major_radius,
213 in double minor_radius) raises (SALOME::SALOME_Exception) ;
215 GEOM_Shape MakeCone(in PointStruct pstruct,
216 in DirStruct dstruct,
219 in double height) raises (SALOME::SALOME_Exception) ;
221 //-----------------------------------------------------------//
223 //-----------------------------------------------------------//
224 GEOM_Shape Archimede(in GEOM_Shape shape,
226 in double WaterDensity,
227 in double MeshingDeflection) raises (SALOME::SALOME_Exception);
230 //-----------------------------------------------------------//
232 //-----------------------------------------------------------//
233 GEOM_Shape MakeEdge (in PointStruct pstruct1,
234 in PointStruct pstruct2) raises (SALOME::SALOME_Exception) ;
235 GEOM_Shape MakeWire (in ListOfIOR ListShape) raises (SALOME::SALOME_Exception) ;
236 GEOM_Shape MakeCompound (in ListOfIOR ListShape) raises (SALOME::SALOME_Exception) ;
237 GEOM_Shape MakeFace (in ListOfIOR ListShape,
238 in boolean wantplanarface ) raises (SALOME::SALOME_Exception) ;
239 GEOM_Shape MakeShell (in ListOfIOR ListShape) raises (SALOME::SALOME_Exception) ;
240 GEOM_Shape MakeSolid (in ListOfIOR ListShape) raises (SALOME::SALOME_Exception) ;
243 //-----------------------------------------------------------//
244 // Subshapes Construction for GUI only //
245 //-----------------------------------------------------------//
246 GEOM_Shape SubShape(in GEOM_Shape shape,
248 in GEOM_Shape::ListOfSubShapeID ListOfID) raises (SALOME::SALOME_Exception) ;
250 //-----------------------------------------------------------//
251 // Subshapes Construction for TUI or GUI //
252 //-----------------------------------------------------------//
253 ListOfGeomShapes SubShapeAll(in GEOM_Shape shape,
254 in short ShapeType) raises (SALOME::SALOME_Exception) ;
256 //-----------------------------------------------------------//
257 // Subshapes Construction
258 // Use it to have the same order of subshapes if their
259 // order may change as a result of <shape> reconstruction using
260 // boolean operations, fillet etc.
261 //-----------------------------------------------------------//
262 GEOM_Shape SubShapeSorted(in GEOM_Shape shape,
264 in GEOM_Shape::ListOfSubShapeID ListOfID) raises (SALOME::SALOME_Exception) ;
266 ListOfGeomShapes SubShapeAllSorted(in GEOM_Shape shape,
267 in short ShapeType) raises (SALOME::SALOME_Exception) ;
269 //-----------------------------------------------------------//
270 // Fillet and Chamfer construction //
271 //-----------------------------------------------------------//
272 GEOM_Shape MakeFillet(in GEOM_Shape shape,
275 in GEOM_Shape::ListOfSubShapeID ListOfID) raises (SALOME::SALOME_Exception) ;
277 GEOM_Shape MakeChamfer(in GEOM_Shape shape,
281 in GEOM_Shape::ListOfSubShapeID ListOfID) raises (SALOME::SALOME_Exception) ;
283 //-----------------------------------------------------------//
284 // Suppress faces in a shape //
285 //-----------------------------------------------------------//
286 ListOfGeomShapes SuppressFaces(in GEOM_Shape shape,
287 in GEOM_Shape::ListOfSubShapeID ListOfID) raises (SALOME::SALOME_Exception) ;
289 //-----------------------------------------------------------//
290 // Suppress a single hole in topology (face) shell or solid //
291 // : ListOfIdEndFace may be an empty list //
292 // : used only when hole traverses the topology //
293 //-----------------------------------------------------------//
294 GEOM_Shape SuppressHole(in GEOM_Shape shape,
295 in GEOM_Shape::ListOfSubShapeID ListOfIdFace,
296 in GEOM_Shape::ListOfSubShapeID ListOfIdWire,
297 in GEOM_Shape::ListOfSubShapeID ListOfIdEndFace ) raises (SALOME::SALOME_Exception) ;
299 //-----------------------------------------------------------//
300 // Suppress one or more holes in a face or a shell //
301 //-----------------------------------------------------------//
302 GEOM_Shape SuppressHolesInFaceOrShell(in GEOM_Shape shapeFaceShell,
303 in GEOM_Shape::ListOfSubShapeID ListOfIdWires ) raises (SALOME::SALOME_Exception) ;
305 //-----------------------------------------------------------//
307 //-----------------------------------------------------------//
308 GEOM_Shape ImportIGES(in string filename) raises (SALOME::SALOME_Exception) ;
309 GEOM_Shape ImportBREP(in string filename) raises (SALOME::SALOME_Exception) ;
310 GEOM_Shape ImportSTEP(in string filename) raises (SALOME::SALOME_Exception) ;
312 void ExportIGES(in string filename,in GEOM_Shape theShape) raises (SALOME::SALOME_Exception) ;
313 void ExportBREP(in string filename,in GEOM_Shape theShape) raises (SALOME::SALOME_Exception) ;
314 void ExportSTEP(in string filename,in GEOM_Shape theShape) raises (SALOME::SALOME_Exception) ;
315 //-----------------------------------------------------------//
317 //-----------------------------------------------------------//
318 boolean CheckShape(in GEOM_Shape shape) raises (SALOME::SALOME_Exception) ;