Salome HOME
sources v1.2
[modules/geom.git] / idl / GEOM_Gen.idl
1 //  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
2 //  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
3 // 
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. 
8 // 
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. 
13 // 
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 
17 // 
18 //  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
19 //
20 //
21 //
22 //  File   : GEOM_Gen.idl
23 //  Author : Lucien PIGNOLONI
24
25 #ifndef __GEOM_GEN__
26 #define __GEOM_GEN__
27
28 #include "SALOME_Exception.idl"
29 #include "SALOME_Component.idl"
30 #include "SALOMEDS.idl"
31 #include "GEOM_Shape.idl"
32
33 module GEOM
34 {
35   interface GEOM_Gen : Engines::Component,SALOMEDS::Driver
36   {
37     typedef sequence<string> ListOfIOR ;
38     typedef sequence<GEOM_Shape> ListOfGeomShapes ;
39
40     //--------------------------------------------------------------//
41     // Studies Management                                           //
42     //--------------------------------------------------------------//
43     void       GetCurrentStudy(in long StudyID) ; 
44
45     short      NbLabels();
46
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);
53
54     //--------------------------------------------------------------//
55     // Structures                                                   //
56     //--------------------------------------------------------------//
57     PointStruct MakePointStruct(in double x,
58                                 in double y,
59                                 in double z) ; 
60     DirStruct   MakeDirection (in PointStruct p) ; 
61     AxisStruct  MakeAxisStruct(in double x,
62                                in double y,
63                                in double z,
64                                in double vx,
65                                in double vy,
66                                in double vz) ; 
67
68     //------------------------------------------------------------//
69     // Boolean Operations                                         //
70     //------------------------------------------------------------//
71     GEOM_Shape MakeBoolean  (in GEOM_Shape shape1,
72                              in GEOM_Shape shape2,
73                              in long operation) raises (SALOME::SALOME_Exception) ;
74
75     GEOM_Shape MakeFuse( in GEOM_Shape shape1,
76                          in GEOM_Shape shape2) raises (SALOME::SALOME_Exception) ;
77     
78     //-----------------------------------------------------------//
79     // Advanced Operations                                       //
80     //-----------------------------------------------------------//
81     GEOM_Shape Partition  (in ListOfIOR ListShapes,
82                            in ListOfIOR ListTools,
83                            in ListOfIOR ListKeepInside,
84                            in ListOfIOR ListRemoveInside,
85                            in short Limit)
86       raises (SALOME::SALOME_Exception) ;
87
88
89     GEOM_Shape MakeFilling(in GEOM_Shape shape,
90                            in  short mindeg,
91                            in  short maxdeg,
92                            in  double tol3d,
93                            in  double tol2d,
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);
99
100     GEOM_Shape OrientationChange(in GEOM_Shape shape) raises (SALOME::SALOME_Exception) ;
101
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) ;
109     
110     //-----------------------------------------------------------//
111     // Transformations Operations                                //
112     //-----------------------------------------------------------//
113     GEOM_Shape MakeCopy(in GEOM_Shape shape) raises (SALOME::SALOME_Exception) ;
114
115     GEOM_Shape MakeTranslation(in GEOM_Shape shape,
116                                in double x,
117                                in double y,
118                                in double z) raises (SALOME::SALOME_Exception) ;
119     GEOM_Shape MakeRotation(in GEOM_Shape shape,
120                             in AxisStruct axis,
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,
128                               in AxisStruct axis,
129                               in double angle) raises (SALOME::SALOME_Exception) ;
130     GEOM_Shape MakePrism(in GEOM_Shape baseShape,
131                          in PointStruct P1,
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) ;
135
136     //-----------------------------------------------------------//
137     // Patterns Construction                                     //
138     //-----------------------------------------------------------//
139     GEOM_Shape MakeMultiTranslation1D(in GEOM_Shape shape,
140                                       in DirStruct dir,
141                                       in double step,
142                                       in short nbtimes) raises (SALOME::SALOME_Exception) ;
143     GEOM_Shape MakeMultiTranslation2D(in GEOM_Shape shape,
144                                       in DirStruct dir1,
145                                       in double step1,
146                                       in short nbtimes1,
147                                       in DirStruct dir2,
148                                       in double step2,
149                                       in short nbtimes2) raises (SALOME::SALOME_Exception) ;
150     GEOM_Shape MakeMultiRotation1D(in GEOM_Shape shape,
151                                    in DirStruct dir,
152                                    in PointStruct loc,
153                                    in short nbtimes) raises (SALOME::SALOME_Exception) ;
154     GEOM_Shape MakeMultiRotation2D(in GEOM_Shape shape,
155                                    in DirStruct dir,
156                                    in PointStruct loc,
157                                    in double ang,
158                                    in short nbtimes1,
159                                    in double step,
160                                    in short nbtimes2) raises (SALOME::SALOME_Exception) ;
161
162     //-----------------------------------------------------------//
163     // Mesures Construction                                      //
164     //-----------------------------------------------------------//
165     GEOM_Shape MakeCDG(in GEOM_Shape shape) raises (SALOME::SALOME_Exception) ;
166
167
168     //-----------------------------------------------------------//
169     // Primitives Construction                                   //
170     //-----------------------------------------------------------//
171
172     GEOM_Shape MakeVertex(in double x,
173                           in double y,
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) ;
188
189     //-----------------------------------------------------------//
190     // Primitives Construction                                   //
191     //-----------------------------------------------------------//
192     GEOM_Shape MakeBox     (in double x1,
193                             in double y1,
194                             in double z1,
195                             in double x2,
196                             in double y2,
197                             in double z2) raises (SALOME::SALOME_Exception) ; 
198     GEOM_Shape MakeCylinder(in PointStruct pstruct,
199                             in DirStruct dstruct,
200                             in double radius,
201                             in double height) raises (SALOME::SALOME_Exception) ;
202
203     GEOM_Shape MakeSphere  (in double x1,
204                             in double y1,
205                             in double z1,
206                             in double radius) raises (SALOME::SALOME_Exception) ;
207
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) ;
212
213     GEOM_Shape MakeCone(in PointStruct pstruct,
214                         in DirStruct dstruct,
215                         in double radius1,
216                         in double radius2,
217                         in double height) raises (SALOME::SALOME_Exception) ;
218     
219     //-----------------------------------------------------------//
220     // Archimede                                                 //
221     //-----------------------------------------------------------//  
222     GEOM_Shape Archimede(in GEOM_Shape shape,
223                          in double Weight,
224                          in double WaterDensity,
225                          in double MeshingDeflection) raises (SALOME::SALOME_Exception);
226
227     //-----------------------------------------------------------//
228     // Build                                                     //
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) ;
236
237   
238     //-----------------------------------------------------------//
239     // Subshapes Construction for GUI only                       //
240     //-----------------------------------------------------------//
241     GEOM_Shape SubShape(in GEOM_Shape shape,
242                         in short ShapeType,
243                         in GEOM_Shape::ListOfSubShapeID ListOfID) raises (SALOME::SALOME_Exception) ;
244     
245     //-----------------------------------------------------------//
246     // Subshapes Construction for TUI or GUI                     //
247     //-----------------------------------------------------------//
248     ListOfGeomShapes SubShapeAll(in GEOM_Shape shape,
249                                  in short ShapeType) raises (SALOME::SALOME_Exception) ;
250     
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,
258                               in short ShapeType,
259                               in GEOM_Shape::ListOfSubShapeID ListOfID) raises (SALOME::SALOME_Exception) ;
260     
261     ListOfGeomShapes SubShapeAllSorted(in GEOM_Shape shape,
262                                        in short ShapeType) raises (SALOME::SALOME_Exception) ;
263
264     //-----------------------------------------------------------//
265     // Fillet and Chamfer construction                           //
266     //-----------------------------------------------------------//
267     GEOM_Shape MakeFillet(in GEOM_Shape shape,
268                           in double radius,
269                           in short ShapeType,
270                           in GEOM_Shape::ListOfSubShapeID ListOfID) raises (SALOME::SALOME_Exception) ;
271  
272     GEOM_Shape MakeChamfer(in GEOM_Shape shape,
273                            in double d1,
274                            in double d2,
275                            in short ShapeType,
276                            in GEOM_Shape::ListOfSubShapeID ListOfID) raises (SALOME::SALOME_Exception) ;
277
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) ;
283     
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) ;
293
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) ;
299     
300     //-----------------------------------------------------------//
301     // Import/Export                                             //
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) ;
306   
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     //-----------------------------------------------------------//
311     // Check Shape                                               //
312     //-----------------------------------------------------------//
313     boolean CheckShape(in GEOM_Shape shape) raises (SALOME::SALOME_Exception) ;
314
315   };
316 };
317
318 #endif