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