Salome HOME
3f0eec1b133444e68262311de11919dad31f7794
[modules/geom.git] / idl / GEOM_Superv.idl
1 // Copyright (C) 2007-2023  CEA/DEN, EDF R&D, OPEN CASCADE
2 //
3 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
5 //
6 // This library is free software; you can redistribute it and/or
7 // modify it under the terms of the GNU Lesser General Public
8 // License as published by the Free Software Foundation; either
9 // version 2.1 of the License, or (at your option) any later version.
10 //
11 // This library is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14 // Lesser General Public License for more details.
15 //
16 // You should have received a copy of the GNU Lesser General Public
17 // License along with this library; if not, write to the Free Software
18 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
19 //
20 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
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 #include "AdvancedGEOM.idl"
30
31 module GEOM
32 {
33   interface GEOM_List
34   { };
35
36   interface GEOM_Superv : Engines::EngineComponent,SALOMEDS::Driver
37   {
38     //-----------------------------------------------------------//
39     // Create ListOfGO and add items to it                       //
40     //-----------------------------------------------------------//
41     GEOM_List CreateListOfGO();
42     void AddItemToListOfGO( inout GEOM_List theList,
43                             in GEOM_Object theObject);
44
45     //-----------------------------------------------------------//
46     // Create ListOfLong and add items to it                     //
47     //-----------------------------------------------------------//
48     GEOM_List CreateListOfLong();
49     void AddItemToListOfLong( inout GEOM_List theList,
50                               in long theObject);
51
52     //-----------------------------------------------------------//
53     // Create ListOfDouble and add items to it                   //
54     //-----------------------------------------------------------//
55     GEOM_List CreateListOfDouble();
56     void AddItemToListOfDouble( inout GEOM_List theList,
57                                 in double theObject);
58
59     //-----------------------------------------------------------//
60     // Primitives Construction : BasicOperations                 //
61     //-----------------------------------------------------------//
62     GEOM_Object MakePointXYZ (in double theX,
63                               in double theY,
64                               in double theZ);
65     GEOM_Object MakePointWithReference (in GEOM_Object theReference,
66                                         in double theX,
67                                         in double theY,
68                                         in double theZ);
69     GEOM_Object MakePointOnCurve (in GEOM_Object theRefCurve,
70                                   in double theParameter);
71     GEOM_Object MakePointOnCurveByLength (in GEOM_Object theRefCurve,
72                                           in double theLength,
73                                           in GEOM_Object theStartPoint);
74
75     GEOM_Object MakeTangentOnCurve (in GEOM_Object theRefCurve,
76                                      in double theParameter);
77
78     GEOM_Object MakeVectorDXDYDZ (in double theDX,
79                                   in double theDY,
80                                   in double theDZ) ;
81     GEOM_Object MakeVectorTwoPnt (in GEOM_Object thePnt1,
82                                   in GEOM_Object thePnt2) ;
83     GEOM_Object MakeLineTwoPnt (in GEOM_Object thePnt1,
84                                 in GEOM_Object thePnt2) ;
85     GEOM_Object MakeLineTwoFaces (in GEOM_Object theFace1,
86                                   in GEOM_Object theFace2) ;
87     GEOM_Object MakePlaneThreePnt (in GEOM_Object thePnt1,
88                                    in GEOM_Object thePnt2,
89                                    in GEOM_Object thePnt3,
90                                    in double theTrimSize) ;
91     GEOM_Object MakePlanePntVec (in GEOM_Object thePnt,
92                                  in GEOM_Object theVec,
93                                  in double      theTrimSize) ;
94     GEOM_Object MakePlaneFace (in GEOM_Object theFace,
95                                in double      theTrimSize) ;
96     GEOM_Object MakePlane2Vec (in GEOM_Object theVec1,
97                                in GEOM_Object theVec2,
98                                in double      theTrimSize) ;
99     GEOM_Object MakePlaneLCS (in GEOM_Object theLCS,
100                               in double      theTrimSize,
101                               in double      theOrientation) ;
102     GEOM_Object MakeMarker (in double theOX , in double theOY , in double theOZ,
103                             in double theXDX, in double theXDY, in double theXDZ,
104                             in double theYDX, in double theYDY, in double theYDZ) ;
105
106     GEOM_Object MakeMarkerFromShape (in GEOM_Object theShape) ;
107
108     GEOM_Object MakeMarkerPntTwoVec (in GEOM_Object theOrigin,
109                                      in GEOM_Object theXVec,
110                                      in GEOM_Object theYVec) ;
111
112     /*!
113      *  Create a tangent plane to specified face in the point with specified parameters.
114      *  Values of parameters should be between 0. and 1.0
115      *  \param theFace - face for which tangent plane shuold be built.
116      *  \param theParameterU - value of parameter by U
117      *  \param theParameterV - value of parameter Vthe
118      *  \param theTrimSize - defines sizes of created face
119      *  \return New GEOM_Object, containing the face built on tangent plane.
120      */
121     GEOM_Object MakeTangentPlaneOnFace(in GEOM_Object theFace,
122                                        in double theParameterU,
123                                        in double theParameterV,
124                                        in double theTrimSize);
125
126     //-----------------------------------------------------------//
127     // Primitives Construction : 3DPrimOperations                //
128     //-----------------------------------------------------------//
129     GEOM_Object MakeBox (in double theX1,
130                          in double theY1,
131                          in double theZ1,
132                          in double theX2,
133                          in double theY2,
134                          in double theZ2) ;
135     GEOM_Object MakeBoxDXDYDZ (in double theDX,
136                                in double theDY,
137                                in double theDZ) ;
138     GEOM_Object MakeBoxTwoPnt (in GEOM_Object thePnt1,
139                                in GEOM_Object thePnt2) ;
140     GEOM_Object MakeFaceHW (in double theH,
141                             in double theW,
142                             in short  theOrientation) ;
143     GEOM_Object MakeFaceObjHW (in GEOM_Object theObj,
144                                in double      theH,
145                                in double      theW) ;
146     GEOM_Object MakeDiskPntVecR (in GEOM_Object thePnt,
147                                  in GEOM_Object theVec,
148                                  in double      theR) ;
149     GEOM_Object MakeDiskThreePnt (in GEOM_Object thePnt1,
150                                   in GEOM_Object thePnt2,
151                                   in GEOM_Object thePnt3) ;
152     GEOM_Object MakeDiskR (in double theR,
153                             in short  theOrientation) ;
154     GEOM_Object MakeCylinderPntVecRH (in GEOM_Object thePnt,
155                                       in GEOM_Object theAxis,
156                                       in double      theRadius,
157                                       in double      theHeight) ;
158     GEOM_Object MakeCylinderRH (in double theR,
159                                 in double theH) ;
160     GEOM_Object MakeCylinderPntVecRHA (in GEOM_Object thePnt,
161                                        in GEOM_Object theAxis,
162                                        in double      theRadius,
163                                        in double      theHeight,
164                                        in double      theAngle) ;
165     GEOM_Object MakeCylinderRHA (in double theR,
166                                  in double theH,
167                                  in double theA) ;
168     GEOM_Object MakeSphere (in double theX,
169                             in double theY,
170                             in double theZ,
171                             in double theRadius) ;
172     GEOM_Object MakeSphereR (in double theR) ;
173     GEOM_Object MakeSpherePntR (in GEOM_Object thePnt,
174                                 in double      theR) ;
175     GEOM_Object MakeTorusPntVecRR (in GEOM_Object thePnt,
176                                    in GEOM_Object theVec,
177                                    in double      theRMajor,
178                                    in double      theRMinor) ;
179     GEOM_Object MakeTorusRR (in double theRMajor,
180                              in double theRMinor) ;
181     GEOM_Object MakeConePntVecR1R2H (in GEOM_Object thePnt,
182                                      in GEOM_Object theAxis,
183                                      in double      theR1,
184                                      in double      theR2,
185                                      in double      theHeight) ;
186     GEOM_Object MakeConeR1R2H (in double theR1,
187                                in double theR2,
188                                in double theHeight) ;
189     GEOM_Object MakePrismVecH (in GEOM_Object theBase,
190                                in GEOM_Object theVec,
191                                in double      theH) ;
192     GEOM_Object MakePrismVecH2Ways (in GEOM_Object theBase,
193                                     in GEOM_Object theVec,
194                                     in double      theH) ;
195     GEOM_Object MakePrismTwoPnt (in GEOM_Object theBase,
196                                  in GEOM_Object thePoint1,
197                                  in GEOM_Object thePoint2) ;
198     GEOM_Object MakePrismTwoPnt2Ways (in GEOM_Object theBase,
199                                       in GEOM_Object thePoint1,
200                                       in GEOM_Object thePoint2) ;
201     GEOM_Object MakePipe (in GEOM_Object theBase,
202                           in GEOM_Object thePath) ;
203     GEOM_Object MakeRevolutionAxisAngle (in GEOM_Object theBase,
204                                          in GEOM_Object theAxis,
205                                          in double      theAngle) ;
206     GEOM_Object MakeRevolutionAxisAngle2Ways (in GEOM_Object theBase,
207                                               in GEOM_Object theAxis,
208                                               in double      theAngle) ;
209     GEOM_Object MakeFilling (in GEOM_Object theShape,
210                              in long theMinDeg, in long theMaxDeg,
211                              in double theTol2D, in double theTol3D,
212                              in long theNbIter,
213                              in filling_oper_method theMethod,
214                              in boolean theApprox) ;
215     GEOM_Object MakeThruSections(in ListOfGO theSeqSections,
216                                  in boolean theModeSolid,
217                                  in double thePreci,
218                                  in boolean theRuled);
219
220     GEOM_Object MakePipeWithDifferentSections (in ListOfGO theSeqBases,
221                                                in ListOfGO theLocations,
222                                                in GEOM_Object thePath,
223                                                in boolean theWithContact ,
224                                                in boolean theWithCorrection );
225
226     GEOM_Object MakePipeWithShellSections (in ListOfGO theSeqBases,
227                                            in ListOfGO theSeqSubBases,
228                                            in ListOfGO theLocations,
229                                            in GEOM_Object thePath,
230                                            in boolean theWithContact ,
231                                            in boolean theWithCorrection );
232
233     GEOM_Object MakePipeShellsWithoutPath (in ListOfGO theSeqBases,
234                                            in ListOfGO theLocations );
235
236     GEOM_Object MakePipeBiNormalAlongVector (in GEOM_Object theBase,
237                                              in GEOM_Object thePath,
238                                              in GEOM_Object theVec);
239
240     //-----------------------------------------------------------//
241     // BooleanOperations                                         //
242     //-----------------------------------------------------------//
243     GEOM_Object MakeBoolean (in GEOM_Object theShape1,
244                              in GEOM_Object theShape2,
245                              in long        theOperation) ;
246     GEOM_Object MakeFuse (in GEOM_Object theShape1,
247                           in GEOM_Object theShape2) ;
248     GEOM_Object MakeCommon (in GEOM_Object theShape1,
249                             in GEOM_Object theShape2) ;
250     GEOM_Object MakeCut (in GEOM_Object theShape1,
251                          in GEOM_Object theShape2) ;
252     GEOM_Object MakeSection (in GEOM_Object theShape1,
253                              in GEOM_Object theShape2) ;
254     GEOM_Object MakePartition (in GEOM_List   theShapes,
255                                in GEOM_List   theTools,
256                                in GEOM_List   theKeepInside,
257                                in GEOM_List   theRemoveInside,
258                                in short       theLimit,
259                                in boolean     theRemoveWebs,
260                                in GEOM_List   theMaterials,
261                                in short       theKeepNonlimitShapes);
262     GEOM_Object MakeHalfPartition (in GEOM_Object theShape,
263                                    in GEOM_Object thePlane) ;
264
265     //-----------------------------------------------------------//
266     // InsertOperations                                          //
267     //-----------------------------------------------------------//
268     GEOM_Object MakeCopy (in GEOM_Object theOriginal) ;
269     void Export (in GEOM_Object theObject, in string theFileName, in string theFormatName) ;
270     GEOM_Object ImportFile (in string theFileName, in string theFormatName) ;
271
272     //-----------------------------------------------------------//
273     // TransformOperations                                       //
274     //-----------------------------------------------------------//
275     GEOM_Object TranslateTwoPoints (in GEOM_Object theObject,
276                                     in GEOM_Object thePoint1,
277                                     in GEOM_Object thePoint2) ;
278     GEOM_Object TranslateTwoPointsCopy (in GEOM_Object theObject,
279                                         in GEOM_Object thePoint1,
280                                         in GEOM_Object thePoint2) ;
281     GEOM_Object TranslateDXDYDZ (in GEOM_Object theObject,
282                                  in double      theDX,
283                                  in double      theDY,
284                                  in double      theDZ) ;
285     GEOM_Object TranslateDXDYDZCopy (in GEOM_Object theObject,
286                                      in double      theDX,
287                                      in double      theDY,
288                                      in double      theDZ) ;
289     GEOM_Object TranslateVector (in GEOM_Object theObject,
290                                  in GEOM_Object theVector) ;
291     GEOM_Object TranslateVectorCopy (in GEOM_Object theObject,
292                                      in GEOM_Object theVector) ;
293     GEOM_Object TranslateVectorDistance (in GEOM_Object theObject,
294                                          in GEOM_Object theVector,
295                                          in double      theDistance,
296                                          in boolean     theCopy) ;
297     GEOM_Object MultiTranslate1D (in GEOM_Object theObject,
298                                   in GEOM_Object theVector,
299                                   in double      theStep,
300                                   in long        theNbTimes) ;
301     GEOM_Object MultiTranslate2D (in GEOM_Object theObject,
302                                   in GEOM_Object theVector1,
303                                   in double      theStep1,
304                                   in long        theNbTimes1,
305                                   in GEOM_Object theVector2,
306                                   in double      theStep2,
307                                   in long        theNbTimes2) ;
308     GEOM_Object Rotate (in GEOM_Object theObject,
309                         in GEOM_Object theAxis,
310                         in double      theAngle) ;
311     GEOM_Object RotateCopy (in GEOM_Object theObject,
312                             in GEOM_Object theAxis,
313                             in double      theAngle) ;
314     GEOM_Object RotateThreePoints (in GEOM_Object theObject,
315                                    in GEOM_Object theCentPoint,
316                                    in GEOM_Object thePoint1,
317                                    in GEOM_Object thePoint2);
318     GEOM_Object RotateThreePointsCopy (in GEOM_Object theObject,
319                                        in GEOM_Object theCentPoint,
320                                        in GEOM_Object thePoint1,
321                                        in GEOM_Object thePoint2);
322     GEOM_Object MultiRotate1D (in GEOM_Object theObject,
323                                in GEOM_Object theAxis,
324                                in long        theNbTimes) ;
325     GEOM_Object MultiRotate2D (in GEOM_Object theObject,
326                                in GEOM_Object theAxis,
327                                in double      theAngle,
328                                in long        theNbTimes1,
329                                in double      theStep,
330                                in long        theNbTimes2) ;
331     GEOM_Object MirrorPlane (in GEOM_Object theObject,
332                              in GEOM_Object thePlane) ;
333     GEOM_Object MirrorPlaneCopy (in GEOM_Object theObject,
334                                  in GEOM_Object thePlane) ;
335     GEOM_Object MirrorAxis (in GEOM_Object theObject,
336                             in GEOM_Object theAxis) ;
337     GEOM_Object MirrorAxisCopy (in GEOM_Object theObject,
338                                 in GEOM_Object theAxis) ;
339     GEOM_Object MirrorPoint (in GEOM_Object theObject,
340                              in GEOM_Object thePoint) ;
341     GEOM_Object MirrorPointCopy (in GEOM_Object theObject,
342                                  in GEOM_Object thePoint) ;
343     GEOM_Object OffsetShape (in GEOM_Object theObject,
344                              in double      theOffset) ;
345     GEOM_Object OffsetShapeCopy (in GEOM_Object theObject,
346                                  in double      theOffset) ;
347     GEOM_Object ScaleShape (in GEOM_Object theObject,
348                             in GEOM_Object thePoint,
349                             in double      theFactor) ;
350     GEOM_Object ScaleShapeCopy (in GEOM_Object theObject,
351                                 in GEOM_Object thePoint,
352                                 in double      theFactor) ;
353     GEOM_Object ScaleShapeAlongAxes (in GEOM_Object theObject,
354                                      in GEOM_Object thePoint,
355                                      in double theFactorX,
356                                      in double theFactorY,
357                                      in double theFactorZ);
358     GEOM_Object ScaleShapeAlongAxesCopy (in GEOM_Object theObject,
359                                          in GEOM_Object thePoint,
360                                          in double theFactorX,
361                                          in double theFactorY,
362                                          in double theFactorZ);
363     GEOM_Object PositionShape (in GEOM_Object theObject,
364                                in GEOM_Object theStartLCS,
365                                in GEOM_Object theEndLCS) ;
366     GEOM_Object PositionShapeCopy (in GEOM_Object theObject,
367                                    in GEOM_Object theStartLCS,
368                                    in GEOM_Object theEndLCS) ;
369     GEOM_Object PositionAlongPath (in GEOM_Object theObject,
370                                    in GEOM_Object thePath,
371                                    in double theDistance,
372                                    in boolean theCopy,
373                                    in boolean theReverse);
374
375     //-----------------------------------------------------------//
376     // ShapesOperations                                          //
377     //-----------------------------------------------------------//
378     GEOM_Object MakeEdge (in GEOM_Object thePnt1,
379                           in GEOM_Object thePnt2) ;
380     GEOM_Object MakeEdgeOnCurveByLength (in GEOM_Object theRefCurve,
381                                          in double theLength,
382                                          in GEOM_Object theStartPoint);
383     GEOM_Object MakeWire (in GEOM_List theEdgesAndWires,
384                           in double    theTolerance) ;
385     GEOM_Object MakeFace (in GEOM_Object theWire,
386                           in boolean     isPlanarWanted) ;
387     GEOM_Object MakeFaceWires (in GEOM_List theWires,
388                                in boolean   isPlanarWanted) ;
389     GEOM_Object MakeFaceWithConstraints(in GEOM_List theConstraints);
390     GEOM_Object MakeShell (in GEOM_List theFacesAndShells) ;
391     GEOM_Object MakeSolidShell (in GEOM_Object theShell) ;
392     GEOM_Object MakeSolidShells (in GEOM_List theShells) ;
393     GEOM_Object MakeCompound (in GEOM_List theShapes) ;
394     GEOM_Object MakeSolidFromConnectedFaces (in GEOM_List theFacesOrShells,
395                                              in boolean isIntersect);
396     GEOM_Object MakeGlueFaces (in GEOM_Object theShape,
397                                in double theTolerance,
398                                in boolean doKeepNonSolids);
399     GEOM_List GetGlueFaces (in GEOM_Object theShape,
400                             in double theTolerance);
401     GEOM_Object MakeGlueFacesByList (in GEOM_Object theShape,
402                                      in double theTolerance,
403                                      in ListOfGO theFaces,
404                                      in boolean doKeepNonSolids,
405                                      in boolean doGlueAllEdges);
406     GEOM_List MakeExplode (in GEOM_Object theShape,
407                            in long        theShapeType,
408                            in boolean     isSorted) ;
409     long NumberOfFaces (in GEOM_Object theShape) ;
410     long NumberOfEdges (in GEOM_Object theShape) ;
411     GEOM_Object ChangeOrientation (in GEOM_Object theShape) ;
412
413     GEOM_List GetShapesOnShape (in GEOM_Object theCheckShape,
414                                 in GEOM_Object theShape,
415                                 in short       theShapeType,
416                                 in shape_state theState);
417     GEOM_Object GetShapesOnShapeAsCompound (in GEOM_Object theCheckShape,
418                                             in GEOM_Object theShape,
419                                             in short       theShapeType,
420                                             in shape_state theState);
421
422     //-----------------------------------------------------------//
423     // BlocksOperations                                          //
424     //-----------------------------------------------------------//
425     GEOM_Object MakeQuad4Vertices (in GEOM_Object thePnt1,
426                                    in GEOM_Object thePnt2,
427                                    in GEOM_Object thePnt3,
428                                    in GEOM_Object thePnt4) ;
429     GEOM_Object MakeQuad (in GEOM_Object theEdge1,
430                           in GEOM_Object theEdge2,
431                           in GEOM_Object theEdge3,
432                           in GEOM_Object theEdge4) ;
433     GEOM_Object MakeQuad2Edges (in GEOM_Object theEdge1,
434                                 in GEOM_Object theEdge2) ;
435     GEOM_Object MakeHexa (in GEOM_Object theFace1,
436                           in GEOM_Object theFace2,
437                           in GEOM_Object theFace3,
438                           in GEOM_Object theFace4,
439                           in GEOM_Object theFace5,
440                           in GEOM_Object theFace6) ;
441     GEOM_Object MakeHexa2Faces (in GEOM_Object theFace1,
442                                 in GEOM_Object theFace2) ;
443     GEOM_Object GetPoint (in GEOM_Object theShape,
444                           in double      theX,
445                           in double      theY,
446                           in double      theZ,
447                           in double      theEpsilon) ;
448     GEOM_Object GetEdge (in GEOM_Object theShape,
449                          in GEOM_Object thePoint1,
450                          in GEOM_Object thePoint2) ;
451     GEOM_Object GetEdgeNearPoint (in GEOM_Object theShape,
452                                   in GEOM_Object thePoint) ;
453     GEOM_Object GetFaceByPoints (in GEOM_Object theShape,
454                                  in GEOM_Object thePoint1,
455                                  in GEOM_Object thePoint2,
456                                  in GEOM_Object thePoint3,
457                                  in GEOM_Object thePoint4) ;
458     GEOM_Object GetFaceByEdges (in GEOM_Object theShape,
459                                 in GEOM_Object theEdge1,
460                                 in GEOM_Object theEdge2) ;
461     GEOM_Object GetOppositeFace (in GEOM_Object theBlock,
462                                  in GEOM_Object theFace) ;
463     GEOM_Object GetFaceNearPoint (in GEOM_Object theShape,
464                                   in GEOM_Object thePoint) ;
465     GEOM_Object GetFaceByNormale (in GEOM_Object theBlock,
466                                   in GEOM_Object theVector) ;
467     boolean IsCompoundOfBlocks (in GEOM_Object theCompound,
468                                 in long        theMinNbFaces,
469                                 in long        theMaxNbFaces,
470                                 out long       theNbBlocks) ;
471     boolean CheckCompoundOfBlocks (in GEOM_Object theCompound,
472                                    out GEOM_IBlocksOperations::BCErrors   theErrors) ;
473     string PrintBCErrors (in GEOM_Object theCompound,
474                           in GEOM_IBlocksOperations::BCErrors    theErrors) ;
475     GEOM_List ExplodeCompoundOfBlocks (in GEOM_Object theCompound,
476                                        in long        theMinNbFaces,
477                                        in long        theMaxNbFaces) ;
478     GEOM_Object GetBlockNearPoint (in GEOM_Object theCompound,
479                                    in GEOM_Object thePoint) ;
480     GEOM_Object GetBlockByParts (in GEOM_Object theCompound,
481                                  in GEOM_List   theParts) ;
482     GEOM_List GetBlocksByParts (in GEOM_Object theCompound,
483                                 in GEOM_List   theParts) ;
484     GEOM_Object MakeMultiTransformation1D (in GEOM_Object theBlock,
485                                            in long        theDirFace1,
486                                            in long        theDirFace2,
487                                            in long        theNbTimes) ;
488     GEOM_Object MakeMultiTransformation2D (in GEOM_Object theBlock,
489                                            in long        theDirFace1U,
490                                            in long        theDirFace2U,
491                                            in long        theNbTimesU,
492                                            in long        theDirFace1V,
493                                            in long        theDirFace2V,
494                                            in long        theNbTimesV) ;
495
496     //-----------------------------------------------------------//
497     // CurvesOperations                                          //
498     //-----------------------------------------------------------//
499     GEOM_Object MakeCirclePntVecR (in GEOM_Object thePnt,
500                                    in GEOM_Object theVec,
501                                    in double      theR) ;
502     GEOM_Object MakeCircleThreePnt (in GEOM_Object thePnt1,
503                                     in GEOM_Object thePnt2,
504                                     in GEOM_Object thePnt3) ;
505     GEOM_Object MakeCircleCenter2Pnt (in GEOM_Object thePnt1,
506                                          in GEOM_Object thePnt2,
507                                       in GEOM_Object thePnt3) ;
508     GEOM_Object MakeEllipse (in GEOM_Object thePnt,
509                              in GEOM_Object theVec,
510                              in double      theRMajor,
511                              in double      theRMinor) ;
512     GEOM_Object MakeEllipseVec (in GEOM_Object thePnt,
513                                 in GEOM_Object theVec,
514                                 in double      theRMajor,
515                                 in double      theRMinor,
516                                 in GEOM_Object theVecMaj) ;
517     GEOM_Object MakeArc (in GEOM_Object thePnt1,
518                          in GEOM_Object thePnt2,
519                          in GEOM_Object thePnt3) ;
520     GEOM_Object MakeArcCenter (in GEOM_Object theCenter,
521                                in GEOM_Object thePnt1,
522                                in GEOM_Object thePnt2,
523                                in boolean theSense) ;
524     GEOM_Object MakeArcOfEllipse (in GEOM_Object theCenter,
525                                  in GEOM_Object thePnt1,
526                                  in GEOM_Object thePnt2) ;
527     GEOM_Object MakePolyline (in GEOM_List thePoints,
528                               in boolean   theIsClosed) ;
529     GEOM_Object MakeSplineBezier (in GEOM_List thePoints,
530                                   in boolean   theIsClosed) ;
531     GEOM_Object MakeSplineInterpolation (in GEOM_List thePoints,
532                                          in boolean   theIsClosed,
533                                          in boolean   theDoReordering) ;
534     GEOM_Object MakeSketcher (in string    theCommand,
535                               in GEOM_List theWorkingPlane) ;
536
537     //-----------------------------------------------------------//
538     // LocalOperations                                           //
539     //-----------------------------------------------------------//
540     GEOM_Object MakeFilletAll (in GEOM_Object theShape,
541                                in double      theR) ;
542     GEOM_Object MakeFilletEdges (in GEOM_Object theShape,
543                                  in double      theR,
544                                  in GEOM_List   theEdges) ;
545     GEOM_Object MakeFilletEdgesR1R2 (in GEOM_Object theShape,
546                                      in double      theR1,
547                                      in double      theR2,
548                                      in GEOM_List   theEdges) ;
549     GEOM_Object MakeFilletFaces (in GEOM_Object theShape,
550                                  in double      theR,
551                                  in GEOM_List   theFaces) ;
552     GEOM_Object MakeFilletFacesR1R2 (in GEOM_Object theShape,
553                                      in double      theR1,
554                                      in double      theR2,
555                                      in GEOM_List   theFaces) ;
556     GEOM_Object MakeFillet2D (in GEOM_Object theShape,
557                               in double      theR,
558                               in GEOM_List   theVertexes) ;
559     GEOM_Object MakeChamferAll (in GEOM_Object theShape,
560                                 in double      theD) ;
561     GEOM_Object MakeChamferEdge (in GEOM_Object theShape,
562                                  in double theD1, in double theD2,
563                                  in long theFace1, in long theFace2) ;
564     GEOM_Object MakeChamferEdgeAD (in GEOM_Object theShape,
565                                    in double theD, in double theAngle,
566                                    in long theFace1, in long theFace2) ;
567     GEOM_Object MakeChamferFaces (in GEOM_Object theShape,
568                                   in double theD1, in double theD2,
569                                   in GEOM_List theFaces) ;
570     GEOM_Object MakeChamferFacesAD (in GEOM_Object theShape,
571                                     in double theD, in double theAngle,
572                                     in GEOM_List theFaces) ;
573     GEOM_Object MakeChamferEdges (in GEOM_Object theShape,
574                                   in double theD1, in double theD2,
575                                   in GEOM_List theEdges) ;
576     GEOM_Object MakeChamferEdgesAD (in GEOM_Object theShape,
577                                     in double theD, in double theAngle,
578                                     in GEOM_List theEdges) ;
579     GEOM_Object MakeArchimede (in GEOM_Object theShape,
580                                in double      theWeight,
581                                in double      theWaterDensity,
582                                in double      theMeshDeflection) ;
583     long GetSubShapeIndex (in GEOM_Object theShape,
584                            in GEOM_Object theSubShape) ;
585
586     //-----------------------------------------------------------//
587     // GroupOperations                                           //
588     //-----------------------------------------------------------//
589     GEOM_Object CreateGroup (in GEOM_Object theMainShape,
590                              in long        theShapeType) ;
591     void AddObject (in GEOM_Object theGroup,
592                     in long        theSubShapeId) ;
593     void RemoveObject (in GEOM_Object theGroup,
594                        in long        theSubShapeId) ;
595     long GetType (in GEOM_Object theGroup) ;
596     GEOM_Object  GetMainShape(in GEOM_Object theGroup) ;
597     GEOM_List  GetObjects(in GEOM_Object theGroup) ;
598
599     //-----------------------------------------------------------//
600     // AdvancedOperations                                        //
601     //-----------------------------------------------------------//
602     GEOM_List MakePipeTShape (in double theR1, in double theW1, in double theL1,
603                 in double theR2, in double theW2, in double theL2,
604                 in boolean theHexMesh);
605
606     GEOM_List MakePipeTShapeWithPosition (in double theR1, in double theW1, in double theL1,
607                         in double theR2, in double theW2, in double theL2,
608                         in boolean theHexMesh,
609                         in GEOM_Object theP1, in GEOM_Object theP2, in GEOM_Object theP3);
610
611     GEOM_List MakePipeTShapeChamfer (in double theR1, in double theW1, in double theL1,
612                     in double theR2, in double theW2, in double theL2,
613                     in double theH, in double theW, in boolean theHexMesh);
614
615     GEOM_List MakePipeTShapeChamferWithPosition (in double theR1, in double theW1, in double theL1,
616                            in double theR2, in double theW2, in double theL2,
617                            in double theH, in double theW, in boolean theHexMesh,
618                            in GEOM_Object theP1, in GEOM_Object theP2, in GEOM_Object theP3);
619
620     GEOM_List MakePipeTShapeFillet (in double theR1, in double theW1, in double theL1,
621                       in double theR2, in double theW2, in double theL2,
622                       in double theRF, in boolean theHexMesh);
623
624     GEOM_List MakePipeTShapeFilletWithPosition (in double theR1, in double theW1, in double theL1,
625                           in double theR2, in double theW2, in double theL2,
626                           in double theRF, in boolean theHexMesh,
627                           in GEOM_Object theP1, in GEOM_Object theP2, in GEOM_Object theP3);
628
629     GEOM_Object MakeDividedDisk (in double theR, in double theRatio, in short theOrientation,
630                                  in pattern thePattern);
631
632     GEOM_Object MakeDividedCylinder (in double theR, in double theH,
633                                      in pattern thePattern);
634
635     GEOM_Object MakeSmoothingSurface (in GEOM_List thelPoints);
636     
637     //-----------------------------------------------------------//
638     // Import/Export Operations                                  //
639     //-----------------------------------------------------------//
640     void        ExportSTL( in GEOM::GEOM_Object theObject, 
641                            in string            theFileName,
642                            in boolean           theIsASCII,    
643                            in double            theDeflection,
644                            in boolean           theIsRelative );
645     GEOM_Object ImportSTL( in string theFileName );
646     
647     void        ExportBREP( in GEOM::GEOM_Object theObject, 
648                             in string            theFileName );
649     GEOM_Object ImportBREP( in string theFileName );
650     
651     void        ExportSTEP( in GEOM::GEOM_Object theObject, 
652                             in string            theFileName );
653     GEOM_Object ImportSTEP( in string  theFileName,
654                             in boolean theIsIgnoreUnits );
655                             
656     void        ExportIGES( in GEOM::GEOM_Object theObject, 
657                             in string            theFileName,
658                             in string            theVersion );
659     GEOM_Object ImportIGES( in string  theFileName,
660                             in boolean theIsIgnoreUnits );
661                             
662     boolean     ExportXAO( in GEOM_Object shape,
663                            in ListOfGO groups, 
664                            in ListOfFields fields,
665                            in string author, 
666                            in string fileName,
667                            in string shapeFileName );
668     boolean     ImportXAO( in string fileName, 
669                            out GEOM_Object shape,
670                            out ListOfGO subShapes, 
671                            out ListOfGO groups, 
672                            out ListOfFields fields );
673
674     void        ExportVTK( in GEOM::GEOM_Object theObject, 
675                            in string            theFileName,
676                            in double            theDeflection );
677
678     //-----------------------------------------------------------//
679     // Measure Operations                                        //
680     //-----------------------------------------------------------//
681     GEOM_List PatchFace(in GEOM_Object theShape);
682
683     /*@@ insert new functions before this line @@ do not remove this line @@*/
684  };
685 };
686
687 #endif