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