Salome HOME
PAL12874: Object Vector. Provide a possibility to display a vector with arrow on...
[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.salome-platform.org/ or email : webmaster.salome@opencascade.com
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
76     GEOM_Object MakeTangentOnCurve (in GEOM_Object theRefCurve,
77                                      in double theParameter);
78
79     GEOM_Object MakeVectorDXDYDZ (in double theDX,
80                                   in double theDY,
81                                   in double theDZ) ;
82     GEOM_Object MakeVectorTwoPnt (in GEOM_Object thePnt1,
83                                   in GEOM_Object thePnt2) ;
84     GEOM_Object MakeLineTwoPnt (in GEOM_Object thePnt1,
85                                 in GEOM_Object thePnt2) ;
86     GEOM_Object MakePlaneThreePnt (in GEOM_Object thePnt1,
87                                    in GEOM_Object thePnt2,
88                                    in GEOM_Object thePnt3,
89                                    in double theTrimSize) ;
90     GEOM_Object MakePlanePntVec (in GEOM_Object thePnt,
91                                  in GEOM_Object theVec,
92                                  in double      theTrimSize) ;
93     GEOM_Object MakePlaneFace (in GEOM_Object theFace,
94                                in double      theTrimSize) ;
95     GEOM_Object MakeMarker (in double theOX , in double theOY , in double theOZ,
96                             in double theXDX, in double theXDY, in double theXDZ,
97                             in double theYDX, in double theYDY, in double theYDZ) ;
98
99     /*!
100      *  Create a tangent plane to specified face in the point with specified parameters.
101      *  Values of parameters should be between 0. and 1.0
102      *  \param theFace - face for which tangent plane shuold be built. 
103      *  \param theParameterU - value of parameter by U
104      *  \param theParameterV - value of parameter Vthe
105      *  \param theTrimSize - defines sizes of created face
106      *  \return New GEOM_Object, containing the face built on tangent plane.
107      */
108     GEOM_Object MakeTangentPlaneOnFace(in GEOM_Object theFace,
109                                        in double theParameterU,
110                                        in double theParameterV,
111                                        in double theTrimSize);
112
113     //-----------------------------------------------------------//
114     // Primitives Construction : 3DPrimOperations                //
115     //-----------------------------------------------------------//
116     GEOM_Object MakeBox (in double theX1,
117                          in double theY1,
118                          in double theZ1,
119                          in double theX2,
120                          in double theY2,
121                          in double theZ2) ; 
122     GEOM_Object MakeBoxDXDYDZ (in double theDX, 
123                                in double theDY, 
124                                in double theDZ) ;
125     GEOM_Object MakeBoxTwoPnt (in GEOM_Object thePnt1, 
126                                in GEOM_Object thePnt2) ;
127     GEOM_Object MakeCylinderPntVecRH (in GEOM_Object thePnt,
128                                       in GEOM_Object theAxis,
129                                       in double      theRadius,
130                                       in double      theHeight) ;
131     GEOM_Object MakeCylinderRH (in double theR, 
132                                 in double theH) ;
133     GEOM_Object MakeSphere (in double theX,
134                             in double theY,
135                             in double theZ,
136                             in double theRadius) ;
137     GEOM_Object MakeSphereR (in double theR) ;
138     GEOM_Object MakeSpherePntR (in GEOM_Object thePnt, 
139                                 in double      theR) ;
140     GEOM_Object MakeTorusPntVecRR (in GEOM_Object thePnt,
141                                    in GEOM_Object theVec,
142                                    in double      theRMajor,
143                                    in double      theRMinor) ;
144     GEOM_Object MakeTorusRR (in double theRMajor,
145                              in double theRMinor) ;
146     GEOM_Object MakeConePntVecR1R2H (in GEOM_Object thePnt,
147                                      in GEOM_Object theAxis,
148                                      in double      theR1,
149                                      in double      theR2,
150                                      in double      theHeight) ;
151     GEOM_Object MakeConeR1R2H (in double theR1, 
152                                in double theR2, 
153                                in double theHeight) ;
154     GEOM_Object MakePrismVecH (in GEOM_Object theBase,
155                                in GEOM_Object theVec,
156                                in double      theH) ;
157     GEOM_Object MakePrismTwoPnt (in GEOM_Object theBase,
158                                  in GEOM_Object thePoint1,
159                                  in GEOM_Object thePoint2) ;
160     GEOM_Object MakePipe (in GEOM_Object theBase, 
161                           in GEOM_Object thePath) ;
162     GEOM_Object MakeRevolutionAxisAngle (in GEOM_Object theBase,
163                                          in GEOM_Object theAxis,
164                                          in double      theAngle) ;
165     GEOM_Object MakeFilling (in GEOM_Object theShape,
166                              in long theMinDeg, in long theMaxDeg,
167                              in double theTol2D, in double theTol3D,
168                              in long theNbIter) ;
169     GEOM_Object MakeThruSections(in ListOfGO theSeqSections,
170                                  in boolean theModeSolid,
171                                  in double thePreci,
172                                  in boolean theRuled);
173
174     GEOM_Object MakePipeWithDifferentSections (in ListOfGO theSeqBases,
175                                                in ListOfGO theLocations,
176                                                in GEOM_Object thePath,
177                                                in boolean theWithContact ,
178                                                in boolean theWithCorrection );
179     
180     //-----------------------------------------------------------//
181     // BooleanOperations                                         //
182     //-----------------------------------------------------------//
183     GEOM_Object MakeBoolean (in GEOM_Object theShape1,
184                              in GEOM_Object theShape2,
185                              in long        theOperation) ;
186     GEOM_Object MakeFuse (in GEOM_Object theShape1,
187                           in GEOM_Object theShape2) ;
188     GEOM_Object MakePartition (in GEOM_List   theShapes,
189                                in GEOM_List   theTools,
190                                in GEOM_List   theKeepInside,
191                                in GEOM_List   theRemoveInside,
192                                in short       theLimit,
193                                in boolean     theRemoveWebs,
194                                in GEOM_List   theMaterials) ;
195     GEOM_Object MakeHalfPartition (in GEOM_Object theShape,
196                                    in GEOM_Object thePlane) ;
197
198     //-----------------------------------------------------------//
199     // InsertOperations                                          //
200     //-----------------------------------------------------------//
201     GEOM_Object MakeCopy (in GEOM_Object theOriginal) ;
202     void Export (in GEOM_Object theObject, in string theFileName, in string theFormatName) ;
203     GEOM_Object Import (in string theFileName, in string theFormatName) ;
204     void ImportTranslators (out string_array theFormats,
205                             out string_array thePatterns) ;
206     void ExportTranslators (out string_array theFormats,
207                             out string_array thePatterns) ;
208
209     //-----------------------------------------------------------//
210     // TransformOperations                                       //
211     //-----------------------------------------------------------//
212     GEOM_Object TranslateTwoPoints (in GEOM_Object theObject,
213                                     in GEOM_Object thePoint1,
214                                     in GEOM_Object thePoint2) ;
215     GEOM_Object TranslateTwoPointsCopy (in GEOM_Object theObject,
216                                         in GEOM_Object thePoint1,
217                                         in GEOM_Object thePoint2) ;
218     GEOM_Object TranslateDXDYDZ (in GEOM_Object theObject,
219                                  in double      theDX, 
220                                  in double      theDY, 
221                                  in double      theDZ) ;
222     GEOM_Object TranslateDXDYDZCopy (in GEOM_Object theObject,
223                                      in double      theDX, 
224                                      in double      theDY, 
225                                      in double      theDZ) ;
226     GEOM_Object TranslateVector (in GEOM_Object theObject,
227                                  in GEOM_Object theVector) ;
228     GEOM_Object TranslateVectorCopy (in GEOM_Object theObject,
229                                      in GEOM_Object theVector) ;
230     GEOM_Object MultiTranslate1D (in GEOM_Object theObject,
231                                   in GEOM_Object theVector,
232                                   in double      theStep,
233                                   in long        theNbTimes) ;
234     GEOM_Object MultiTranslate2D (in GEOM_Object theObject,
235                                   in GEOM_Object theVector1,
236                                   in double      theStep1,
237                                   in long        theNbTimes1,
238                                   in GEOM_Object theVector2,
239                                   in double      theStep2,
240                                   in long        theNbTimes2) ;
241     GEOM_Object Rotate (in GEOM_Object theObject,
242                         in GEOM_Object theAxis,
243                         in double      theAngle) ;
244     GEOM_Object RotateCopy (in GEOM_Object theObject,
245                             in GEOM_Object theAxis,
246                             in double      theAngle) ;
247     GEOM_Object RotateThreePoints (in GEOM_Object theObject,
248                                    in GEOM_Object theCentPoint,
249                                    in GEOM_Object thePoint1,
250                                    in GEOM_Object thePoint2);
251     GEOM_Object RotateThreePointsCopy (in GEOM_Object theObject,
252                                        in GEOM_Object theCentPoint,
253                                        in GEOM_Object thePoint1,
254                                        in GEOM_Object thePoint2);
255     GEOM_Object MultiRotate1D (in GEOM_Object theObject,
256                                in GEOM_Object theAxis,
257                                in long        theNbTimes) ;
258     GEOM_Object MultiRotate2D (in GEOM_Object theObject,
259                                in GEOM_Object theAxis,
260                                in double      theAngle,
261                                in long        theNbTimes1,
262                                in double      theStep,
263                                in long        theNbTimes2) ;
264     GEOM_Object MirrorPlane (in GEOM_Object theObject, 
265                              in GEOM_Object thePlane) ;
266     GEOM_Object MirrorPlaneCopy (in GEOM_Object theObject, 
267                                  in GEOM_Object thePlane) ;
268     GEOM_Object MirrorAxis (in GEOM_Object theObject, 
269                             in GEOM_Object theAxis) ;
270     GEOM_Object MirrorAxisCopy (in GEOM_Object theObject, 
271                                 in GEOM_Object theAxis) ;
272     GEOM_Object MirrorPoint (in GEOM_Object theObject, 
273                              in GEOM_Object thePoint) ;
274     GEOM_Object MirrorPointCopy (in GEOM_Object theObject, 
275                                  in GEOM_Object thePoint) ;
276     GEOM_Object OffsetShape (in GEOM_Object theObject, 
277                              in double      theOffset) ;
278     GEOM_Object OffsetShapeCopy (in GEOM_Object theObject, 
279                                  in double      theOffset) ;
280     GEOM_Object ScaleShape (in GEOM_Object theObject, 
281                             in GEOM_Object thePoint,
282                             in double      theFactor) ;
283     GEOM_Object ScaleShapeCopy (in GEOM_Object theObject, 
284                                 in GEOM_Object thePoint,
285                                 in double      theFactor) ;
286     GEOM_Object PositionShape (in GEOM_Object theObject,
287                                in GEOM_Object theStartLCS,
288                                in GEOM_Object theEndLCS) ;
289     GEOM_Object PositionShapeCopy (in GEOM_Object theObject,
290                                    in GEOM_Object theStartLCS,
291                                    in GEOM_Object theEndLCS) ;
292
293     //-----------------------------------------------------------//
294     // ShapesOperations                                          //
295     //-----------------------------------------------------------//
296     GEOM_Object MakeEdge (in GEOM_Object thePnt1, 
297                           in GEOM_Object thePnt2) ;
298     GEOM_Object MakeWire (in GEOM_List theEdgesAndWires) ;
299     GEOM_Object MakeFace (in GEOM_Object theWire, 
300                           in boolean     isPlanarWanted) ;
301     GEOM_Object MakeFaceWires (in GEOM_List theWires, 
302                                in boolean   isPlanarWanted) ;
303     GEOM_Object MakeShell (in GEOM_List theFacesAndShells) ;
304     GEOM_Object MakeSolidShell (in GEOM_Object theShell) ;
305     GEOM_Object MakeSolidShells (in GEOM_List theShells) ;
306     GEOM_Object MakeCompound (in GEOM_List theShapes) ;
307     GEOM_Object MakeGlueFaces (in GEOM_Object theShape, 
308                                in double      theTolerance) ;
309     GEOM_List MakeExplode (in GEOM_Object theShape,
310                            in long        theShapeType,
311                            in boolean     isSorted) ;
312     long NumberOfFaces (in GEOM_Object theShape) ;
313     long NumberOfEdges (in GEOM_Object theShape) ;
314     GEOM_Object ChangeOrientation (in GEOM_Object theShape) ;
315
316     //-----------------------------------------------------------//
317     // BlocksOperations                                          //
318     //-----------------------------------------------------------//
319     GEOM_Object MakeQuad4Vertices (in GEOM_Object thePnt1,
320                                    in GEOM_Object thePnt2,
321                                    in GEOM_Object thePnt3,
322                                    in GEOM_Object thePnt4) ;
323     GEOM_Object MakeQuad (in GEOM_Object theEdge1,
324                           in GEOM_Object theEdge2,
325                           in GEOM_Object theEdge3,
326                           in GEOM_Object theEdge4) ;
327     GEOM_Object MakeQuad2Edges (in GEOM_Object theEdge1,
328                                 in GEOM_Object theEdge2) ;
329     GEOM_Object MakeHexa (in GEOM_Object theFace1,
330                           in GEOM_Object theFace2,
331                           in GEOM_Object theFace3,
332                           in GEOM_Object theFace4,
333                           in GEOM_Object theFace5,
334                           in GEOM_Object theFace6) ;
335     GEOM_Object MakeHexa2Faces (in GEOM_Object theFace1,
336                                 in GEOM_Object theFace2) ;
337     GEOM_Object GetPoint (in GEOM_Object theShape,
338                           in double      theX,
339                           in double      theY,
340                           in double      theZ,
341                           in double      theEpsilon) ;
342     GEOM_Object GetEdge (in GEOM_Object theShape,
343                          in GEOM_Object thePoint1,
344                          in GEOM_Object thePoint2) ;
345     GEOM_Object GetEdgeNearPoint (in GEOM_Object theShape,
346                                   in GEOM_Object thePoint) ;
347     GEOM_Object GetFaceByPoints (in GEOM_Object theShape,
348                                  in GEOM_Object thePoint1,
349                                  in GEOM_Object thePoint2,
350                                  in GEOM_Object thePoint3,
351                                  in GEOM_Object thePoint4) ;
352     GEOM_Object GetFaceByEdges (in GEOM_Object theShape,
353                                 in GEOM_Object theEdge1,
354                                 in GEOM_Object theEdge2) ;
355     GEOM_Object GetOppositeFace (in GEOM_Object theBlock,
356                                  in GEOM_Object theFace) ;
357     GEOM_Object GetFaceNearPoint (in GEOM_Object theShape,
358                                   in GEOM_Object thePoint) ;
359     GEOM_Object GetFaceByNormale (in GEOM_Object theBlock,
360                                   in GEOM_Object theVector) ;
361     boolean IsCompoundOfBlocks (in GEOM_Object theCompound,
362                                 in long        theMinNbFaces,
363                                 in long        theMaxNbFaces,
364                                 out long       theNbBlocks) ;
365     boolean CheckCompoundOfBlocks (in GEOM_Object theCompound,
366                                    out GEOM_IBlocksOperations::BCErrors   theErrors) ;
367     string PrintBCErrors (in GEOM_Object theCompound,
368                           in GEOM_IBlocksOperations::BCErrors    theErrors) ;
369     GEOM_List ExplodeCompoundOfBlocks (in GEOM_Object theCompound,
370                                        in long        theMinNbFaces,
371                                        in long        theMaxNbFaces) ;
372     GEOM_Object GetBlockNearPoint (in GEOM_Object theCompound,
373                                    in GEOM_Object thePoint) ;
374     GEOM_Object GetBlockByParts (in GEOM_Object theCompound,
375                                  in GEOM_List   theParts) ;
376     GEOM_List GetBlocksByParts (in GEOM_Object theCompound,
377                                 in GEOM_List   theParts) ;
378     GEOM_Object MakeMultiTransformation1D (in GEOM_Object theBlock,
379                                            in long        theDirFace1,
380                                            in long        theDirFace2,
381                                            in long        theNbTimes) ;
382     GEOM_Object MakeMultiTransformation2D (in GEOM_Object theBlock,
383                                            in long        theDirFace1U,
384                                            in long        theDirFace2U,
385                                            in long        theNbTimesU,
386                                            in long        theDirFace1V,
387                                            in long        theDirFace2V,
388                                            in long        theNbTimesV) ;
389
390     //-----------------------------------------------------------//
391     // CurvesOperations                                          //
392     //-----------------------------------------------------------//
393     GEOM_Object MakeCirclePntVecR (in GEOM_Object thePnt,
394                                    in GEOM_Object theVec,
395                                    in double      theR) ;
396     GEOM_Object MakeCircleThreePnt (in GEOM_Object thePnt1,
397                                     in GEOM_Object thePnt2,
398                                     in GEOM_Object thePnt3) ;
399     GEOM_Object MakeEllipse (in GEOM_Object thePnt,
400                              in GEOM_Object theVec,
401                              in double      theRMajor,
402                              in double      theRMinor) ;
403     GEOM_Object MakeArc (in GEOM_Object thePnt1,
404                          in GEOM_Object thePnt2,
405                          in GEOM_Object thePnt3) ;
406     GEOM_Object MakePolyline (in GEOM_List thePoints) ;
407     GEOM_Object MakeSplineBezier (in GEOM_List thePoints) ;
408     GEOM_Object MakeSplineInterpolation (in GEOM_List thePoints) ;
409     GEOM_Object MakeSketcher (in string    theCommand, 
410                               in GEOM_List theWorkingPlane) ;
411     
412     //-----------------------------------------------------------//
413     // LocalOperations                                           //
414     //-----------------------------------------------------------//
415     GEOM_Object MakeFilletAll (in GEOM_Object theShape,
416                                in double      theR) ;
417     GEOM_Object MakeFilletEdges (in GEOM_Object theShape,
418                                  in double      theR,
419                                  in GEOM_List   theEdges) ;
420     GEOM_Object MakeFilletFaces (in GEOM_Object theShape,
421                                  in double      theR,
422                                  in GEOM_List   theFaces) ;
423     GEOM_Object MakeChamferAll (in GEOM_Object theShape,
424                                 in double      theD) ;
425     GEOM_Object MakeChamferEdge (in GEOM_Object theShape,
426                                  in double theD1, in double theD2,
427                                  in long theFace1, in long theFace2) ;
428     GEOM_Object MakeChamferFaces (in GEOM_Object theShape,
429                                   in double theD1, in double theD2,
430                                   in GEOM_List theFaces) ;
431     GEOM_Object MakeArchimede (in GEOM_Object theShape,
432                                in double      theWeight,
433                                in double      theWaterDensity,
434                                in double      theMeshDeflection) ;
435     long GetSubShapeIndex (in GEOM_Object theShape, 
436                            in GEOM_Object theSubShape) ;
437
438     //-----------------------------------------------------------//
439     // GroupOperations                                           //
440     //-----------------------------------------------------------//
441     GEOM_Object CreateGroup (in GEOM_Object theMainShape, 
442                              in long        theShapeType) ;
443     void AddObject (in GEOM_Object theGroup, 
444                     in long        theSubShapeId) ;
445     void RemoveObject (in GEOM_Object theGroup, 
446                        in long        theSubShapeId) ;
447     long GetType (in GEOM_Object theGroup) ;
448     GEOM_Object  GetMainShape(in GEOM_Object theGroup) ;
449     GEOM_List  GetObjects(in GEOM_Object theGroup) ;
450
451   };
452 };
453
454 #endif