Salome HOME
Add a more comfort way to specify path to user ImportExport file
[modules/geom.git] / idl / GEOM_Superv.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_Superv.idl
23 //  Author : Lucien PIGNOLONI
24
25 #ifndef __GEOM_SUPERV__
26 #define __GEOM_SUPERV__
27
28 #include "GEOM_Gen.idl"
29
30 module GEOM
31 {
32   interface GEOM_List
33   { };
34
35   interface GEOM_Superv : Engines::Component,SALOMEDS::Driver
36   {
37     //-----------------------------------------------------------//
38     // Set current study ID                                      // 
39     //-----------------------------------------------------------//
40     void SetStudyID (in long theStudyID) ;
41     
42     //-----------------------------------------------------------//
43     // Create ListOfGO and add items to it                       // 
44     //-----------------------------------------------------------//
45     GEOM_List CreateListOfGO();
46     void AddItemToListOfGO( inout GEOM_List theList, 
47                             in GEOM_Object theObject);
48
49     //-----------------------------------------------------------//
50     // Create ListOfLong and add items to it                     // 
51     //-----------------------------------------------------------//
52     GEOM_List CreateListOfLong();
53     void AddItemToListOfLong( inout GEOM_List theList, 
54                               in long theObject);
55
56     //-----------------------------------------------------------//
57     // Create ListOfDouble and add items to it                   // 
58     //-----------------------------------------------------------//
59     GEOM_List CreateListOfDouble();
60     void AddItemToListOfDouble( inout GEOM_List theList, 
61                                 in double theObject);
62
63     //-----------------------------------------------------------//
64     // Primitives Construction : BasicOperations                 // 
65     //-----------------------------------------------------------//
66     GEOM_Object MakePointXYZ (in double theX,
67                               in double theY,
68                               in double theZ) ;
69     GEOM_Object MakePointWithReference (in GEOM_Object theReference,
70                                         in double theX, 
71                                         in double theY, 
72                                         in double theZ) ;
73     GEOM_Object MakePointOnCurve (in GEOM_Object theRefCurve,
74                                   in double theParameter) ;
75     GEOM_Object MakeVectorDXDYDZ (in double theDX,
76                                   in double theDY,
77                                   in double theDZ) ;
78     GEOM_Object MakeVectorTwoPnt (in GEOM_Object thePnt1,
79                                   in GEOM_Object thePnt2) ;
80     GEOM_Object MakeLineTwoPnt (in GEOM_Object thePnt1,
81                                 in GEOM_Object thePnt2) ;
82     GEOM_Object MakePlaneThreePnt (in GEOM_Object thePnt1,
83                                    in GEOM_Object thePnt2,
84                                    in GEOM_Object thePnt3,
85                                    in double theTrimSize) ;
86     GEOM_Object MakePlanePntVec (in GEOM_Object thePnt,
87                                  in GEOM_Object theVec,
88                                  in double      theTrimSize) ;
89     GEOM_Object MakePlaneFace (in GEOM_Object theFace,
90                                in double      theTrimSize) ;
91     GEOM_Object MakeMarker (in double theOX , in double theOY , in double theOZ,
92                             in double theXDX, in double theXDY, in double theXDZ,
93                             in double theYDX, in double theYDY, in double theYDZ) ;
94
95     //-----------------------------------------------------------//
96     // Primitives Construction : 3DPrimOperations                //
97     //-----------------------------------------------------------//
98     GEOM_Object MakeBox (in double theX1,
99                          in double theY1,
100                          in double theZ1,
101                          in double theX2,
102                          in double theY2,
103                          in double theZ2) ; 
104     GEOM_Object MakeBoxDXDYDZ (in double theDX, 
105                                in double theDY, 
106                                in double theDZ) ;
107     GEOM_Object MakeBoxTwoPnt (in GEOM_Object thePnt1, 
108                                in GEOM_Object thePnt2) ;
109     GEOM_Object MakeCylinderPntVecRH (in GEOM_Object thePnt,
110                                       in GEOM_Object theAxis,
111                                       in double      theRadius,
112                                       in double      theHeight) ;
113     GEOM_Object MakeCylinderRH (in double theR, 
114                                 in double theH) ;
115     GEOM_Object MakeSphere (in double theX,
116                             in double theY,
117                             in double theZ,
118                             in double theRadius) ;
119     GEOM_Object MakeSphereR (in double theR) ;
120     GEOM_Object MakeSpherePntR (in GEOM_Object thePnt, 
121                                 in double      theR) ;
122     GEOM_Object MakeTorusPntVecRR (in GEOM_Object thePnt,
123                                    in GEOM_Object theVec,
124                                    in double      theRMajor,
125                                    in double      theRMinor) ;
126     GEOM_Object MakeTorusRR (in double theRMajor,
127                              in double theRMinor) ;
128     GEOM_Object MakeConePntVecR1R2H (in GEOM_Object thePnt,
129                                      in GEOM_Object theAxis,
130                                      in double      theR1,
131                                      in double      theR2,
132                                      in double      theHeight) ;
133     GEOM_Object MakeConeR1R2H (in double theR1, 
134                                in double theR2, 
135                                in double theHeight) ;
136     GEOM_Object MakePrismVecH (in GEOM_Object theBase,
137                                in GEOM_Object theVec,
138                                in double      theH) ;
139     GEOM_Object MakePrismTwoPnt (in GEOM_Object theBase,
140                                  in GEOM_Object thePoint1,
141                                  in GEOM_Object thePoint2) ;
142     GEOM_Object MakePipe (in GEOM_Object theBase, 
143                           in GEOM_Object thePath) ;
144     GEOM_Object MakeRevolutionAxisAngle (in GEOM_Object theBase,
145                                          in GEOM_Object theAxis,
146                                          in double      theAngle) ;
147     GEOM_Object MakeFilling (in GEOM_Object theShape,
148                              in long theMinDeg, in long theMaxDeg,
149                              in double theTol2D, in double theTol3D,
150                              in long theNbIter) ;
151
152     //-----------------------------------------------------------//
153     // BooleanOperations                                         //
154     //-----------------------------------------------------------//
155     GEOM_Object MakeBoolean (in GEOM_Object theShape1,
156                              in GEOM_Object theShape2,
157                              in long        theOperation) ;
158     GEOM_Object MakeFuse (in GEOM_Object theShape1,
159                           in GEOM_Object theShape2) ;
160     GEOM_Object MakePartition (in GEOM_List   theShapes,
161                                in GEOM_List   theTools,
162                                in GEOM_List   theKeepInside,
163                                in GEOM_List   theRemoveInside,
164                                in short       theLimit,
165                                in boolean     theRemoveWebs,
166                                in GEOM_List   theMaterials) ;
167     GEOM_Object MakeHalfPartition (in GEOM_Object theShape,
168                                    in GEOM_Object thePlane) ;
169
170     //-----------------------------------------------------------//
171     // InsertOperations                                          //
172     //-----------------------------------------------------------//
173     GEOM_Object MakeCopy (in GEOM_Object theOriginal) ;
174     void Export (in GEOM_Object theObject, in string theFileName, in string theFormatName) ;
175     GEOM_Object Import (in string theFileName, in string theFormatName) ;
176     void ImportTranslators (out string_array theFormats,
177                             out string_array thePatterns) ;
178     void ExportTranslators (out string_array theFormats,
179                             out string_array thePatterns) ;
180
181     //-----------------------------------------------------------//
182     // TransformOperations                                       //
183     //-----------------------------------------------------------//
184     GEOM_Object TranslateTwoPoints (in GEOM_Object theObject,
185                                     in GEOM_Object thePoint1,
186                                     in GEOM_Object thePoint2) ;
187     GEOM_Object TranslateTwoPointsCopy (in GEOM_Object theObject,
188                                         in GEOM_Object thePoint1,
189                                         in GEOM_Object thePoint2) ;
190     GEOM_Object TranslateDXDYDZ (in GEOM_Object theObject,
191                                  in double      theDX, 
192                                  in double      theDY, 
193                                  in double      theDZ) ;
194     GEOM_Object TranslateDXDYDZCopy (in GEOM_Object theObject,
195                                      in double      theDX, 
196                                      in double      theDY, 
197                                      in double      theDZ) ;
198     GEOM_Object TranslateVector (in GEOM_Object theObject,
199                                  in GEOM_Object theVector) ;
200     GEOM_Object TranslateVectorCopy (in GEOM_Object theObject,
201                                      in GEOM_Object theVector) ;
202     GEOM_Object MultiTranslate1D (in GEOM_Object theObject,
203                                   in GEOM_Object theVector,
204                                   in double      theStep,
205                                   in long        theNbTimes) ;
206     GEOM_Object MultiTranslate2D (in GEOM_Object theObject,
207                                   in GEOM_Object theVector1,
208                                   in double      theStep1,
209                                   in long        theNbTimes1,
210                                   in GEOM_Object theVector2,
211                                   in double      theStep2,
212                                   in long        theNbTimes2) ;
213     GEOM_Object Rotate (in GEOM_Object theObject,
214                         in GEOM_Object theAxis,
215                         in double      theAngle) ;
216     GEOM_Object RotateCopy (in GEOM_Object theObject,
217                             in GEOM_Object theAxis,
218                             in double      theAngle) ;
219     GEOM_Object MultiRotate1D (in GEOM_Object theObject,
220                                in GEOM_Object theAxis,
221                                in long        theNbTimes) ;
222     GEOM_Object MultiRotate2D (in GEOM_Object theObject,
223                                in GEOM_Object theAxis,
224                                in double      theAngle,
225                                in long        theNbTimes1,
226                                in double      theStep,
227                                in long        theNbTimes2) ;
228     GEOM_Object MirrorPlane (in GEOM_Object theObject, 
229                              in GEOM_Object thePlane) ;
230     GEOM_Object MirrorPlaneCopy (in GEOM_Object theObject, 
231                                  in GEOM_Object thePlane) ;
232     GEOM_Object MirrorAxis (in GEOM_Object theObject, 
233                             in GEOM_Object theAxis) ;
234     GEOM_Object MirrorAxisCopy (in GEOM_Object theObject, 
235                                 in GEOM_Object theAxis) ;
236     GEOM_Object MirrorPoint (in GEOM_Object theObject, 
237                              in GEOM_Object thePoint) ;
238     GEOM_Object MirrorPointCopy (in GEOM_Object theObject, 
239                                  in GEOM_Object thePoint) ;
240     GEOM_Object OffsetShape (in GEOM_Object theObject, 
241                              in double      theOffset) ;
242     GEOM_Object OffsetShapeCopy (in GEOM_Object theObject, 
243                                  in double      theOffset) ;
244     GEOM_Object ScaleShape (in GEOM_Object theObject, 
245                             in GEOM_Object thePoint,
246                             in double      theFactor) ;
247     GEOM_Object ScaleShapeCopy (in GEOM_Object theObject, 
248                                 in GEOM_Object thePoint,
249                                 in double      theFactor) ;
250     GEOM_Object PositionShape (in GEOM_Object theObject,
251                                in GEOM_Object theStartLCS,
252                                in GEOM_Object theEndLCS) ;
253     GEOM_Object PositionShapeCopy (in GEOM_Object theObject,
254                                    in GEOM_Object theStartLCS,
255                                    in GEOM_Object theEndLCS) ;
256
257     //-----------------------------------------------------------//
258     // ShapesOperations                                          //
259     //-----------------------------------------------------------//
260     GEOM_Object MakeEdge (in GEOM_Object thePnt1, 
261                           in GEOM_Object thePnt2) ;
262     GEOM_Object MakeWire (in GEOM_List theEdgesAndWires) ;
263     GEOM_Object MakeFace (in GEOM_Object theWire, 
264                           in boolean     isPlanarWanted) ;
265     GEOM_Object MakeFaceWires (in GEOM_List theWires, 
266                                in boolean   isPlanarWanted) ;
267     GEOM_Object MakeShell (in GEOM_List theFacesAndShells) ;
268     GEOM_Object MakeSolidShell (in GEOM_Object theShell) ;
269     GEOM_Object MakeSolidShells (in GEOM_List theShells) ;
270     GEOM_Object MakeCompound (in GEOM_List theShapes) ;
271     GEOM_Object MakeGlueFaces (in GEOM_Object theShape, 
272                                in double      theTolerance) ;
273     GEOM_List MakeExplode (in GEOM_Object theShape,
274                            in long        theShapeType,
275                            in boolean     isSorted) ;
276     long NumberOfFaces (in GEOM_Object theShape) ;
277     long NumberOfEdges (in GEOM_Object theShape) ;
278     GEOM_Object ChangeOrientation (in GEOM_Object theShape) ;
279
280     //-----------------------------------------------------------//
281     // BlocksOperations                                          //
282     //-----------------------------------------------------------//
283     GEOM_Object MakeQuad4Vertices (in GEOM_Object thePnt1,
284                                    in GEOM_Object thePnt2,
285                                    in GEOM_Object thePnt3,
286                                    in GEOM_Object thePnt4) ;
287     GEOM_Object MakeQuad (in GEOM_Object theEdge1,
288                           in GEOM_Object theEdge2,
289                           in GEOM_Object theEdge3,
290                           in GEOM_Object theEdge4) ;
291     GEOM_Object MakeQuad2Edges (in GEOM_Object theEdge1,
292                                 in GEOM_Object theEdge2) ;
293     GEOM_Object MakeHexa (in GEOM_Object theFace1,
294                           in GEOM_Object theFace2,
295                           in GEOM_Object theFace3,
296                           in GEOM_Object theFace4,
297                           in GEOM_Object theFace5,
298                           in GEOM_Object theFace6) ;
299     GEOM_Object MakeHexa2Faces (in GEOM_Object theFace1,
300                                 in GEOM_Object theFace2) ;
301     GEOM_Object GetPoint (in GEOM_Object theShape,
302                           in double      theX,
303                           in double      theY,
304                           in double      theZ,
305                           in double      theEpsilon) ;
306     GEOM_Object GetEdge (in GEOM_Object theShape,
307                          in GEOM_Object thePoint1,
308                          in GEOM_Object thePoint2) ;
309     GEOM_Object GetEdgeNearPoint (in GEOM_Object theShape,
310                                   in GEOM_Object thePoint) ;
311     GEOM_Object GetFaceByPoints (in GEOM_Object theShape,
312                                  in GEOM_Object thePoint1,
313                                  in GEOM_Object thePoint2,
314                                  in GEOM_Object thePoint3,
315                                  in GEOM_Object thePoint4) ;
316     GEOM_Object GetFaceByEdges (in GEOM_Object theShape,
317                                 in GEOM_Object theEdge1,
318                                 in GEOM_Object theEdge2) ;
319     GEOM_Object GetOppositeFace (in GEOM_Object theBlock,
320                                  in GEOM_Object theFace) ;
321     GEOM_Object GetFaceNearPoint (in GEOM_Object theShape,
322                                   in GEOM_Object thePoint) ;
323     GEOM_Object GetFaceByNormale (in GEOM_Object theBlock,
324                                   in GEOM_Object theVector) ;
325     boolean IsCompoundOfBlocks (in GEOM_Object theCompound,
326                                 in long        theMinNbFaces,
327                                 in long        theMaxNbFaces,
328                                 out long       theNbBlocks) ;
329     boolean CheckCompoundOfBlocks (in GEOM_Object theCompound,
330                                    out GEOM_IBlocksOperations::BCErrors   theErrors) ;
331     string PrintBCErrors (in GEOM_Object theCompound,
332                           in GEOM_IBlocksOperations::BCErrors    theErrors) ;
333     GEOM_List ExplodeCompoundOfBlocks (in GEOM_Object theCompound,
334                                        in long        theMinNbFaces,
335                                        in long        theMaxNbFaces) ;
336     GEOM_Object GetBlockNearPoint (in GEOM_Object theCompound,
337                                    in GEOM_Object thePoint) ;
338     GEOM_Object GetBlockByParts (in GEOM_Object theCompound,
339                                  in GEOM_List   theParts) ;
340     GEOM_List GetBlocksByParts (in GEOM_Object theCompound,
341                                 in GEOM_List   theParts) ;
342     GEOM_Object MakeMultiTransformation1D (in GEOM_Object theBlock,
343                                            in long        theDirFace1,
344                                            in long        theDirFace2,
345                                            in long        theNbTimes) ;
346     GEOM_Object MakeMultiTransformation2D (in GEOM_Object theBlock,
347                                            in long        theDirFace1U,
348                                            in long        theDirFace2U,
349                                            in long        theNbTimesU,
350                                            in long        theDirFace1V,
351                                            in long        theDirFace2V,
352                                            in long        theNbTimesV) ;
353
354     //-----------------------------------------------------------//
355     // CurvesOperations                                          //
356     //-----------------------------------------------------------//
357     GEOM_Object MakeCirclePntVecR (in GEOM_Object thePnt,
358                                    in GEOM_Object theVec,
359                                    in double      theR) ;
360     GEOM_Object MakeCircleThreePnt (in GEOM_Object thePnt1,
361                                     in GEOM_Object thePnt2,
362                                     in GEOM_Object thePnt3) ;
363     GEOM_Object MakeEllipse (in GEOM_Object thePnt,
364                              in GEOM_Object theVec,
365                              in double      theRMajor,
366                              in double      theRMinor) ;
367     GEOM_Object MakeArc (in GEOM_Object thePnt1,
368                          in GEOM_Object thePnt2,
369                          in GEOM_Object thePnt3) ;
370     GEOM_Object MakePolyline (in GEOM_List thePoints) ;
371     GEOM_Object MakeSplineBezier (in GEOM_List thePoints) ;
372     GEOM_Object MakeSplineInterpolation (in GEOM_List thePoints) ;
373     GEOM_Object MakeSketcher (in string    theCommand, 
374                               in GEOM_List theWorkingPlane) ;
375     
376     //-----------------------------------------------------------//
377     // LocalOperations                                           //
378     //-----------------------------------------------------------//
379     GEOM_Object MakeFilletAll (in GEOM_Object theShape,
380                                in double      theR) ;
381     GEOM_Object MakeFilletEdges (in GEOM_Object theShape,
382                                  in double      theR,
383                                  in GEOM_List   theEdges) ;
384     GEOM_Object MakeFilletFaces (in GEOM_Object theShape,
385                                  in double      theR,
386                                  in GEOM_List   theFaces) ;
387     GEOM_Object MakeChamferAll (in GEOM_Object theShape,
388                                 in double      theD) ;
389     GEOM_Object MakeChamferEdge (in GEOM_Object theShape,
390                                  in double theD1, in double theD2,
391                                  in long theFace1, in long theFace2) ;
392     GEOM_Object MakeChamferFaces (in GEOM_Object theShape,
393                                   in double theD1, in double theD2,
394                                   in GEOM_List theFaces) ;
395     GEOM_Object MakeArchimede (in GEOM_Object theShape,
396                                in double      theWeight,
397                                in double      theWaterDensity,
398                                in double      theMeshDeflection) ;
399     long GetSubShapeIndex (in GEOM_Object theShape, 
400                            in GEOM_Object theSubShape) ;
401
402     //-----------------------------------------------------------//
403     // GroupOperations                                           //
404     //-----------------------------------------------------------//
405     GEOM_Object CreateGroup (in GEOM_Object theMainShape, 
406                              in long        theShapeType) ;
407     void AddObject (in GEOM_Object theGroup, 
408                     in long        theSubShapeId) ;
409     void RemoveObject (in GEOM_Object theGroup, 
410                        in long        theSubShapeId) ;
411     long GetType (in GEOM_Object theGroup) ;
412     GEOM_Object  GetMainShape(in GEOM_Object theGroup) ;
413     GEOM_List  GetObjects(in GEOM_Object theGroup) ;
414
415   };
416 };
417
418 #endif