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 MakePanel(in GEOM_Shape shape,
105 in short directiontype,
106 in double delta) raises (SALOME::SALOME_Exception) ;
107 GEOM_Shape MakeGlueFaces(in GEOM_Shape shape,
108 in double tol3d) raises (SALOME::SALOME_Exception) ;
110 //-----------------------------------------------------------//
111 // Transformations Operations //
112 //-----------------------------------------------------------//
113 GEOM_Shape MakeCopy(in GEOM_Shape shape) raises (SALOME::SALOME_Exception) ;
115 GEOM_Shape MakeTranslation(in GEOM_Shape shape,
118 in double z) raises (SALOME::SALOME_Exception) ;
119 GEOM_Shape MakeRotation(in GEOM_Shape shape,
121 in double angle) raises (SALOME::SALOME_Exception) ;
122 GEOM_Shape MakeScaleTransform(in GEOM_Shape shape,
123 in PointStruct theCenterofScale,
124 in double factor) raises (SALOME::SALOME_Exception) ;
125 GEOM_Shape MakeMirrorByPlane(in GEOM_Shape shape,
126 in GEOM_Shape shapePlane) raises (SALOME::SALOME_Exception) ;
127 GEOM_Shape MakeRevolution(in GEOM_Shape shape,
129 in double angle) raises (SALOME::SALOME_Exception) ;
130 GEOM_Shape MakePrism(in GEOM_Shape baseShape,
132 in PointStruct P2) raises (SALOME::SALOME_Exception) ;
133 GEOM_Shape MakePipe(in GEOM_Shape pathShape,
134 in GEOM_Shape baseShape) raises (SALOME::SALOME_Exception) ;
136 //-----------------------------------------------------------//
137 // Patterns Construction //
138 //-----------------------------------------------------------//
139 GEOM_Shape MakeMultiTranslation1D(in GEOM_Shape shape,
142 in short nbtimes) raises (SALOME::SALOME_Exception) ;
143 GEOM_Shape MakeMultiTranslation2D(in GEOM_Shape shape,
149 in short nbtimes2) raises (SALOME::SALOME_Exception) ;
150 GEOM_Shape MakeMultiRotation1D(in GEOM_Shape shape,
153 in short nbtimes) raises (SALOME::SALOME_Exception) ;
154 GEOM_Shape MakeMultiRotation2D(in GEOM_Shape shape,
160 in short nbtimes2) raises (SALOME::SALOME_Exception) ;
162 //-----------------------------------------------------------//
163 // Mesures Construction //
164 //-----------------------------------------------------------//
165 GEOM_Shape MakeCDG(in GEOM_Shape shape) raises (SALOME::SALOME_Exception) ;
168 //-----------------------------------------------------------//
169 // Primitives Construction //
170 //-----------------------------------------------------------//
172 GEOM_Shape MakeVertex(in double x,
174 in double z) raises (SALOME::SALOME_Exception) ;
175 GEOM_Shape MakeVector (in PointStruct pstruct1,
176 in PointStruct pstruct2) raises (SALOME::SALOME_Exception) ;
177 GEOM_Shape MakeLine (in PointStruct pstruct,
178 in DirStruct dstruct) raises (SALOME::SALOME_Exception) ;
179 GEOM_Shape MakePlane (in PointStruct pstruct,
180 in DirStruct dstruct,
181 in double trimsize) raises (SALOME::SALOME_Exception) ;
182 GEOM_Shape MakeCircle(in PointStruct pstruct,
183 in DirStruct dstruct,
184 in double radius) raises (SALOME::SALOME_Exception) ;
185 GEOM_Shape MakeArc(in PointStruct pInit,
186 in PointStruct pCircle,
187 in PointStruct pEnd) raises (SALOME::SALOME_Exception) ;
189 //-----------------------------------------------------------//
190 // Primitives Construction //
191 //-----------------------------------------------------------//
192 GEOM_Shape MakeBox (in double x1,
197 in double z2) raises (SALOME::SALOME_Exception) ;
198 GEOM_Shape MakeCylinder(in PointStruct pstruct,
199 in DirStruct dstruct,
201 in double height) raises (SALOME::SALOME_Exception) ;
203 GEOM_Shape MakeSphere (in double x1,
206 in double radius) raises (SALOME::SALOME_Exception) ;
208 GEOM_Shape MakeTorus(in PointStruct pstruct,
209 in DirStruct dstruct,
210 in double major_radius,
211 in double minor_radius) raises (SALOME::SALOME_Exception) ;
213 GEOM_Shape MakeCone(in PointStruct pstruct,
214 in DirStruct dstruct,
217 in double height) raises (SALOME::SALOME_Exception) ;
219 //-----------------------------------------------------------//
221 //-----------------------------------------------------------//
222 GEOM_Shape Archimede(in GEOM_Shape shape,
224 in double WaterDensity,
225 in double MeshingDeflection) raises (SALOME::SALOME_Exception);
227 //-----------------------------------------------------------//
229 //-----------------------------------------------------------//
230 GEOM_Shape MakeEdge (in PointStruct pstruct1,
231 in PointStruct pstruct2) raises (SALOME::SALOME_Exception) ;
232 GEOM_Shape MakeWire (in ListOfIOR ListShape) raises (SALOME::SALOME_Exception) ;
233 GEOM_Shape MakeCompound (in ListOfIOR ListShape) raises (SALOME::SALOME_Exception) ;
234 GEOM_Shape MakeFace (in GEOM_Shape shapeWire,
235 in boolean wantplanarface ) raises (SALOME::SALOME_Exception) ;
238 //-----------------------------------------------------------//
239 // Subshapes Construction for GUI only //
240 //-----------------------------------------------------------//
241 GEOM_Shape SubShape(in GEOM_Shape shape,
243 in GEOM_Shape::ListOfSubShapeID ListOfID) raises (SALOME::SALOME_Exception) ;
245 //-----------------------------------------------------------//
246 // Subshapes Construction for TUI or GUI //
247 //-----------------------------------------------------------//
248 ListOfGeomShapes SubShapeAll(in GEOM_Shape shape,
249 in short ShapeType) raises (SALOME::SALOME_Exception) ;
251 //-----------------------------------------------------------//
252 // Subshapes Construction
253 // Use it to have the same order of subshapes if their
254 // order may change as a result of <shape> reconstruction using
255 // boolean operations, fillet etc.
256 //-----------------------------------------------------------//
257 GEOM_Shape SubShapeSorted(in GEOM_Shape shape,
259 in GEOM_Shape::ListOfSubShapeID ListOfID) raises (SALOME::SALOME_Exception) ;
261 ListOfGeomShapes SubShapeAllSorted(in GEOM_Shape shape,
262 in short ShapeType) raises (SALOME::SALOME_Exception) ;
264 //-----------------------------------------------------------//
265 // Fillet and Chamfer construction //
266 //-----------------------------------------------------------//
267 GEOM_Shape MakeFillet(in GEOM_Shape shape,
270 in GEOM_Shape::ListOfSubShapeID ListOfID) raises (SALOME::SALOME_Exception) ;
272 GEOM_Shape MakeChamfer(in GEOM_Shape shape,
276 in GEOM_Shape::ListOfSubShapeID ListOfID) raises (SALOME::SALOME_Exception) ;
278 //-----------------------------------------------------------//
279 // Suppress faces in a shape //
280 //-----------------------------------------------------------//
281 ListOfGeomShapes SuppressFaces(in GEOM_Shape shape,
282 in GEOM_Shape::ListOfSubShapeID ListOfID) raises (SALOME::SALOME_Exception) ;
284 //-----------------------------------------------------------//
285 // Suppress a single hole in topology (face) shell or solid //
286 // : ListOfIdEndFace may be an empty list //
287 // : used only when hole traverses the topology //
288 //-----------------------------------------------------------//
289 GEOM_Shape SuppressHole(in GEOM_Shape shape,
290 in GEOM_Shape::ListOfSubShapeID ListOfIdFace,
291 in GEOM_Shape::ListOfSubShapeID ListOfIdWire,
292 in GEOM_Shape::ListOfSubShapeID ListOfIdEndFace ) raises (SALOME::SALOME_Exception) ;
294 //-----------------------------------------------------------//
295 // Suppress one or more holes in a face or a shell //
296 //-----------------------------------------------------------//
297 GEOM_Shape SuppressHolesInFaceOrShell(in GEOM_Shape shapeFaceShell,
298 in GEOM_Shape::ListOfSubShapeID ListOfIdWires ) raises (SALOME::SALOME_Exception) ;
300 //-----------------------------------------------------------//
302 //-----------------------------------------------------------//
303 GEOM_Shape ImportIGES(in string filename) raises (SALOME::SALOME_Exception) ;
304 GEOM_Shape ImportBREP(in string filename) raises (SALOME::SALOME_Exception) ;
305 GEOM_Shape ImportSTEP(in string filename) raises (SALOME::SALOME_Exception) ;
307 void ExportIGES(in string filename,in GEOM_Shape theShape) raises (SALOME::SALOME_Exception) ;
308 void ExportBREP(in string filename,in GEOM_Shape theShape) raises (SALOME::SALOME_Exception) ;
309 void ExportSTEP(in string filename,in GEOM_Shape theShape) raises (SALOME::SALOME_Exception) ;
310 //-----------------------------------------------------------//
312 //-----------------------------------------------------------//
313 boolean CheckShape(in GEOM_Shape shape) raises (SALOME::SALOME_Exception) ;