Salome HOME
RNC: EDF 1619, Added a constructor with end point for the arcs in the sketcher 2D.
[modules/geom.git] / idl / GEOM_Superv.idl
1 //  Copyright (C) 2007-2010  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.
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
23 //  File   : GEOM_Superv.idl
24 //  Author : Lucien PIGNOLONI
25 //
26 #ifndef __GEOM_SUPERV__
27 #define __GEOM_SUPERV__
28
29 #include "GEOM_Gen.idl"
30
31 module GEOM
32 {
33   interface GEOM_List
34   { };
35
36   interface GEOM_Superv : Engines::Component,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
77     GEOM_Object MakeTangentOnCurve (in GEOM_Object theRefCurve,
78                                      in double theParameter);
79
80     GEOM_Object MakeVectorDXDYDZ (in double theDX,
81                                   in double theDY,
82                                   in double theDZ) ;
83     GEOM_Object MakeVectorTwoPnt (in GEOM_Object thePnt1,
84                                   in GEOM_Object thePnt2) ;
85     GEOM_Object MakeLineTwoPnt (in GEOM_Object thePnt1,
86                                 in GEOM_Object thePnt2) ;
87     GEOM_Object MakeLineTwoFaces (in GEOM_Object theFace1,
88                                   in GEOM_Object theFace2) ;
89     GEOM_Object MakePlaneThreePnt (in GEOM_Object thePnt1,
90                                    in GEOM_Object thePnt2,
91                                    in GEOM_Object thePnt3,
92                                    in double theTrimSize) ;
93     GEOM_Object MakePlanePntVec (in GEOM_Object thePnt,
94                                  in GEOM_Object theVec,
95                                  in double      theTrimSize) ;
96     GEOM_Object MakePlaneFace (in GEOM_Object theFace,
97                                in double      theTrimSize) ;
98     GEOM_Object MakePlane2Vec (in GEOM_Object theVec1,
99                                in GEOM_Object theVec2,
100                                in double      theTrimSize) ;
101     GEOM_Object MakePlaneLCS (in GEOM_Object theLCS,
102                               in double      theTrimSize,
103                               in double      theOrientation) ;
104     GEOM_Object MakeMarker (in double theOX , in double theOY , in double theOZ,
105                             in double theXDX, in double theXDY, in double theXDZ,
106                             in double theYDX, in double theYDY, in double theYDZ) ;
107                             
108     GEOM_Object MakeMarkerFromShape (in GEOM_Object theShape) ;
109     
110     GEOM_Object MakeMarkerPntTwoVec (in GEOM_Object theOrigin, in GEOM_Object theXVec, 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 MakeSphere (in double theX,
161                             in double theY,
162                             in double theZ,
163                             in double theRadius) ;
164     GEOM_Object MakeSphereR (in double theR) ;
165     GEOM_Object MakeSpherePntR (in GEOM_Object thePnt, 
166                                 in double      theR) ;
167     GEOM_Object MakeTorusPntVecRR (in GEOM_Object thePnt,
168                                    in GEOM_Object theVec,
169                                    in double      theRMajor,
170                                    in double      theRMinor) ;
171     GEOM_Object MakeTorusRR (in double theRMajor,
172                              in double theRMinor) ;
173     GEOM_Object MakeConePntVecR1R2H (in GEOM_Object thePnt,
174                                      in GEOM_Object theAxis,
175                                      in double      theR1,
176                                      in double      theR2,
177                                      in double      theHeight) ;
178     GEOM_Object MakeConeR1R2H (in double theR1, 
179                                in double theR2, 
180                                in double theHeight) ;
181     GEOM_Object MakePrismVecH (in GEOM_Object theBase,
182                                in GEOM_Object theVec,
183                                in double      theH) ;
184     GEOM_Object MakePrismVecH2Ways (in GEOM_Object theBase,
185                                     in GEOM_Object theVec,
186                                     in double      theH) ;
187     GEOM_Object MakePrismTwoPnt (in GEOM_Object theBase,
188                                  in GEOM_Object thePoint1,
189                                  in GEOM_Object thePoint2) ;
190     GEOM_Object MakePrismTwoPnt2Ways (in GEOM_Object theBase,
191                                       in GEOM_Object thePoint1,
192                                       in GEOM_Object thePoint2) ;
193     GEOM_Object MakePipe (in GEOM_Object theBase, 
194                           in GEOM_Object thePath) ;
195     GEOM_Object MakeRevolutionAxisAngle (in GEOM_Object theBase,
196                                          in GEOM_Object theAxis,
197                                          in double      theAngle) ;
198     GEOM_Object MakeRevolutionAxisAngle2Ways (in GEOM_Object theBase,
199                                               in GEOM_Object theAxis,
200                                               in double      theAngle) ;
201     GEOM_Object MakeFilling (in GEOM_Object theShape,
202                              in long theMinDeg, in long theMaxDeg,
203                              in double theTol2D, in double theTol3D,
204                              in long theNbIter,
205                              in filling_oper_method theMethod,
206                              in boolean theApprox) ;
207     GEOM_Object MakeThruSections(in ListOfGO theSeqSections,
208                                  in boolean theModeSolid,
209                                  in double thePreci,
210                                  in boolean theRuled);
211
212     GEOM_Object MakePipeWithDifferentSections (in ListOfGO theSeqBases,
213                                                in ListOfGO theLocations,
214                                                in GEOM_Object thePath,
215                                                in boolean theWithContact ,
216                                                in boolean theWithCorrection );
217     
218     GEOM_Object MakePipeWithShellSections (in ListOfGO theSeqBases,
219                                            in ListOfGO theSeqSubBases,
220                                            in ListOfGO theLocations,
221                                            in GEOM_Object thePath,
222                                            in boolean theWithContact ,
223                                            in boolean theWithCorrection );
224     
225     GEOM_Object MakePipeShellsWithoutPath (in ListOfGO theSeqBases,
226                                            in ListOfGO theLocations );
227
228     GEOM_Object MakePipeBiNormalAlongVector (in GEOM_Object theBase, 
229                                              in GEOM_Object thePath, 
230                                              in GEOM_Object theVec);
231
232     //-----------------------------------------------------------//
233     // BooleanOperations                                         //
234     //-----------------------------------------------------------//
235     GEOM_Object MakeBoolean (in GEOM_Object theShape1,
236                              in GEOM_Object theShape2,
237                              in long        theOperation) ;
238     GEOM_Object MakeFuse (in GEOM_Object theShape1,
239                           in GEOM_Object theShape2) ;
240     GEOM_Object MakePartition (in GEOM_List   theShapes,
241                                in GEOM_List   theTools,
242                                in GEOM_List   theKeepInside,
243                                in GEOM_List   theRemoveInside,
244                                in short       theLimit,
245                                in boolean     theRemoveWebs,
246                                in GEOM_List   theMaterials,
247                                in short       theKeepNonlimitShapes);
248     GEOM_Object MakeHalfPartition (in GEOM_Object theShape,
249                                    in GEOM_Object thePlane) ;
250
251     //-----------------------------------------------------------//
252     // InsertOperations                                          //
253     //-----------------------------------------------------------//
254     GEOM_Object MakeCopy (in GEOM_Object theOriginal) ;
255     void Export (in GEOM_Object theObject, in string theFileName, in string theFormatName) ;
256     GEOM_Object Import (in string theFileName, in string theFormatName) ;
257     void ImportTranslators (out string_array theFormats,
258                             out string_array thePatterns) ;
259     void ExportTranslators (out string_array theFormats,
260                             out string_array thePatterns) ;
261
262     //-----------------------------------------------------------//
263     // TransformOperations                                       //
264     //-----------------------------------------------------------//
265     GEOM_Object TranslateTwoPoints (in GEOM_Object theObject,
266                                     in GEOM_Object thePoint1,
267                                     in GEOM_Object thePoint2) ;
268     GEOM_Object TranslateTwoPointsCopy (in GEOM_Object theObject,
269                                         in GEOM_Object thePoint1,
270                                         in GEOM_Object thePoint2) ;
271     GEOM_Object TranslateDXDYDZ (in GEOM_Object theObject,
272                                  in double      theDX, 
273                                  in double      theDY, 
274                                  in double      theDZ) ;
275     GEOM_Object TranslateDXDYDZCopy (in GEOM_Object theObject,
276                                      in double      theDX, 
277                                      in double      theDY, 
278                                      in double      theDZ) ;
279     GEOM_Object TranslateVector (in GEOM_Object theObject,
280                                  in GEOM_Object theVector) ;
281     GEOM_Object TranslateVectorCopy (in GEOM_Object theObject,
282                                      in GEOM_Object theVector) ;
283     GEOM_Object TranslateVectorDistance (in GEOM_Object theObject,
284                                          in GEOM_Object theVector,
285                                          in double      theDistance,
286                                          in boolean     theCopy) ;
287     GEOM_Object MultiTranslate1D (in GEOM_Object theObject,
288                                   in GEOM_Object theVector,
289                                   in double      theStep,
290                                   in long        theNbTimes) ;
291     GEOM_Object MultiTranslate2D (in GEOM_Object theObject,
292                                   in GEOM_Object theVector1,
293                                   in double      theStep1,
294                                   in long        theNbTimes1,
295                                   in GEOM_Object theVector2,
296                                   in double      theStep2,
297                                   in long        theNbTimes2) ;
298     GEOM_Object Rotate (in GEOM_Object theObject,
299                         in GEOM_Object theAxis,
300                         in double      theAngle) ;
301     GEOM_Object RotateCopy (in GEOM_Object theObject,
302                             in GEOM_Object theAxis,
303                             in double      theAngle) ;
304     GEOM_Object RotateThreePoints (in GEOM_Object theObject,
305                                    in GEOM_Object theCentPoint,
306                                    in GEOM_Object thePoint1,
307                                    in GEOM_Object thePoint2);
308     GEOM_Object RotateThreePointsCopy (in GEOM_Object theObject,
309                                        in GEOM_Object theCentPoint,
310                                        in GEOM_Object thePoint1,
311                                        in GEOM_Object thePoint2);
312     GEOM_Object MultiRotate1D (in GEOM_Object theObject,
313                                in GEOM_Object theAxis,
314                                in long        theNbTimes) ;
315     GEOM_Object MultiRotate2D (in GEOM_Object theObject,
316                                in GEOM_Object theAxis,
317                                in double      theAngle,
318                                in long        theNbTimes1,
319                                in double      theStep,
320                                in long        theNbTimes2) ;
321     GEOM_Object MirrorPlane (in GEOM_Object theObject, 
322                              in GEOM_Object thePlane) ;
323     GEOM_Object MirrorPlaneCopy (in GEOM_Object theObject, 
324                                  in GEOM_Object thePlane) ;
325     GEOM_Object MirrorAxis (in GEOM_Object theObject, 
326                             in GEOM_Object theAxis) ;
327     GEOM_Object MirrorAxisCopy (in GEOM_Object theObject, 
328                                 in GEOM_Object theAxis) ;
329     GEOM_Object MirrorPoint (in GEOM_Object theObject, 
330                              in GEOM_Object thePoint) ;
331     GEOM_Object MirrorPointCopy (in GEOM_Object theObject, 
332                                  in GEOM_Object thePoint) ;
333     GEOM_Object OffsetShape (in GEOM_Object theObject, 
334                              in double      theOffset) ;
335     GEOM_Object OffsetShapeCopy (in GEOM_Object theObject, 
336                                  in double      theOffset) ;
337     GEOM_Object ScaleShape (in GEOM_Object theObject, 
338                             in GEOM_Object thePoint,
339                             in double      theFactor) ;
340     GEOM_Object ScaleShapeCopy (in GEOM_Object theObject, 
341                                 in GEOM_Object thePoint,
342                                 in double      theFactor) ;
343     GEOM_Object ScaleShapeAlongAxes (in GEOM_Object theObject,
344                                      in GEOM_Object thePoint,
345                                      in double theFactorX,
346                                      in double theFactorY,
347                                      in double theFactorZ);
348     GEOM_Object ScaleShapeAlongAxesCopy (in GEOM_Object theObject,
349                                          in GEOM_Object thePoint,
350                                          in double theFactorX,
351                                          in double theFactorY,
352                                          in double theFactorZ);
353     GEOM_Object PositionShape (in GEOM_Object theObject,
354                                in GEOM_Object theStartLCS,
355                                in GEOM_Object theEndLCS) ;
356     GEOM_Object PositionShapeCopy (in GEOM_Object theObject,
357                                    in GEOM_Object theStartLCS,
358                                    in GEOM_Object theEndLCS) ;
359     GEOM_Object PositionAlongPath (in GEOM_Object theObject,
360                                    in GEOM_Object thePath,
361                                    in double theDistance,
362                                    in boolean theCopy,
363                                    in boolean theReverse);
364
365     //-----------------------------------------------------------//
366     // ShapesOperations                                          //
367     //-----------------------------------------------------------//
368     GEOM_Object MakeEdge (in GEOM_Object thePnt1, 
369                           in GEOM_Object thePnt2) ;
370     GEOM_Object MakeWire (in GEOM_List theEdgesAndWires,
371                           in double    theTolerance) ;
372     GEOM_Object MakeFace (in GEOM_Object theWire, 
373                           in boolean     isPlanarWanted) ;
374     GEOM_Object MakeFaceWires (in GEOM_List theWires, 
375                                in boolean   isPlanarWanted) ;
376     GEOM_Object MakeShell (in GEOM_List theFacesAndShells) ;
377     GEOM_Object MakeSolidShell (in GEOM_Object theShell) ;
378     GEOM_Object MakeSolidShells (in GEOM_List theShells) ;
379     GEOM_Object MakeCompound (in GEOM_List theShapes) ;
380     GEOM_Object MakeGlueFaces (in GEOM_Object theShape, 
381                                in double theTolerance,
382                                in boolean doKeepNonSolids);
383     GEOM_List GetGlueFaces (in GEOM_Object theShape, 
384                             in double theTolerance);
385     GEOM_Object MakeGlueFacesByList (in GEOM_Object theShape, 
386                                      in double theTolerance,
387                                      in ListOfGO theFaces,
388                                      in boolean doKeepNonSolids);
389     GEOM_List MakeExplode (in GEOM_Object theShape,
390                            in long        theShapeType,
391                            in boolean     isSorted) ;
392     long NumberOfFaces (in GEOM_Object theShape) ;
393     long NumberOfEdges (in GEOM_Object theShape) ;
394     GEOM_Object ChangeOrientation (in GEOM_Object theShape) ;
395
396     GEOM_List GetShapesOnShape (in GEOM_Object theCheckShape,
397                                 in GEOM_Object theShape, 
398                                 in short       theShapeType,
399                                 in shape_state theState);
400     GEOM_Object GetShapesOnShapeAsCompound (in GEOM_Object theCheckShape,
401                                             in GEOM_Object theShape, 
402                                             in short       theShapeType,
403                                             in shape_state theState);
404
405     //-----------------------------------------------------------//
406     // BlocksOperations                                          //
407     //-----------------------------------------------------------//
408     GEOM_Object MakeQuad4Vertices (in GEOM_Object thePnt1,
409                                    in GEOM_Object thePnt2,
410                                    in GEOM_Object thePnt3,
411                                    in GEOM_Object thePnt4) ;
412     GEOM_Object MakeQuad (in GEOM_Object theEdge1,
413                           in GEOM_Object theEdge2,
414                           in GEOM_Object theEdge3,
415                           in GEOM_Object theEdge4) ;
416     GEOM_Object MakeQuad2Edges (in GEOM_Object theEdge1,
417                                 in GEOM_Object theEdge2) ;
418     GEOM_Object MakeHexa (in GEOM_Object theFace1,
419                           in GEOM_Object theFace2,
420                           in GEOM_Object theFace3,
421                           in GEOM_Object theFace4,
422                           in GEOM_Object theFace5,
423                           in GEOM_Object theFace6) ;
424     GEOM_Object MakeHexa2Faces (in GEOM_Object theFace1,
425                                 in GEOM_Object theFace2) ;
426     GEOM_Object GetPoint (in GEOM_Object theShape,
427                           in double      theX,
428                           in double      theY,
429                           in double      theZ,
430                           in double      theEpsilon) ;
431     GEOM_Object GetEdge (in GEOM_Object theShape,
432                          in GEOM_Object thePoint1,
433                          in GEOM_Object thePoint2) ;
434     GEOM_Object GetEdgeNearPoint (in GEOM_Object theShape,
435                                   in GEOM_Object thePoint) ;
436     GEOM_Object GetFaceByPoints (in GEOM_Object theShape,
437                                  in GEOM_Object thePoint1,
438                                  in GEOM_Object thePoint2,
439                                  in GEOM_Object thePoint3,
440                                  in GEOM_Object thePoint4) ;
441     GEOM_Object GetFaceByEdges (in GEOM_Object theShape,
442                                 in GEOM_Object theEdge1,
443                                 in GEOM_Object theEdge2) ;
444     GEOM_Object GetOppositeFace (in GEOM_Object theBlock,
445                                  in GEOM_Object theFace) ;
446     GEOM_Object GetFaceNearPoint (in GEOM_Object theShape,
447                                   in GEOM_Object thePoint) ;
448     GEOM_Object GetFaceByNormale (in GEOM_Object theBlock,
449                                   in GEOM_Object theVector) ;
450     boolean IsCompoundOfBlocks (in GEOM_Object theCompound,
451                                 in long        theMinNbFaces,
452                                 in long        theMaxNbFaces,
453                                 out long       theNbBlocks) ;
454     boolean CheckCompoundOfBlocks (in GEOM_Object theCompound,
455                                    out GEOM_IBlocksOperations::BCErrors   theErrors) ;
456     string PrintBCErrors (in GEOM_Object theCompound,
457                           in GEOM_IBlocksOperations::BCErrors    theErrors) ;
458     GEOM_List ExplodeCompoundOfBlocks (in GEOM_Object theCompound,
459                                        in long        theMinNbFaces,
460                                        in long        theMaxNbFaces) ;
461     GEOM_Object GetBlockNearPoint (in GEOM_Object theCompound,
462                                    in GEOM_Object thePoint) ;
463     GEOM_Object GetBlockByParts (in GEOM_Object theCompound,
464                                  in GEOM_List   theParts) ;
465     GEOM_List GetBlocksByParts (in GEOM_Object theCompound,
466                                 in GEOM_List   theParts) ;
467     GEOM_Object MakeMultiTransformation1D (in GEOM_Object theBlock,
468                                            in long        theDirFace1,
469                                            in long        theDirFace2,
470                                            in long        theNbTimes) ;
471     GEOM_Object MakeMultiTransformation2D (in GEOM_Object theBlock,
472                                            in long        theDirFace1U,
473                                            in long        theDirFace2U,
474                                            in long        theNbTimesU,
475                                            in long        theDirFace1V,
476                                            in long        theDirFace2V,
477                                            in long        theNbTimesV) ;
478
479     //-----------------------------------------------------------//
480     // CurvesOperations                                          //
481     //-----------------------------------------------------------//
482     GEOM_Object MakeCirclePntVecR (in GEOM_Object thePnt,
483                                    in GEOM_Object theVec,
484                                    in double      theR) ;
485     GEOM_Object MakeCircleThreePnt (in GEOM_Object thePnt1,
486                                     in GEOM_Object thePnt2,
487                                     in GEOM_Object thePnt3) ;
488     GEOM_Object MakeCircleCenter2Pnt (in GEOM_Object thePnt1,
489                                       in GEOM_Object thePnt2,
490                                       in GEOM_Object thePnt3) ;
491     GEOM_Object MakeEllipse (in GEOM_Object thePnt,
492                              in GEOM_Object theVec,
493                              in double      theRMajor,
494                              in double      theRMinor) ;
495     GEOM_Object MakeEllipseVec (in GEOM_Object thePnt,
496                                 in GEOM_Object theVec,
497                                 in double      theRMajor,
498                                 in double      theRMinor,
499                                 in GEOM_Object theVecMaj) ;
500     GEOM_Object MakeArc (in GEOM_Object thePnt1,
501                          in GEOM_Object thePnt2,
502                          in GEOM_Object thePnt3) ;
503     GEOM_Object MakeArcCenter (in GEOM_Object theCenter,
504                                in GEOM_Object thePnt1,
505                                in GEOM_Object thePnt2,
506                                in boolean theSense) ;
507     GEOM_Object MakeArcOfEllipse (in GEOM_Object theCenter,
508                                  in GEOM_Object thePnt1,
509                                  in GEOM_Object thePnt2) ;
510     GEOM_Object MakePolyline (in GEOM_List thePoints) ;
511     GEOM_Object MakeSplineBezier (in GEOM_List thePoints) ;
512     GEOM_Object MakeSplineInterpolation (in GEOM_List thePoints,
513                                          in boolean   theIsClosed) ;
514     GEOM_Object MakeSketcher (in string    theCommand, 
515                               in GEOM_List theWorkingPlane) ;
516     
517     //-----------------------------------------------------------//
518     // LocalOperations                                           //
519     //-----------------------------------------------------------//
520     GEOM_Object MakeFilletAll (in GEOM_Object theShape,
521                                in double      theR) ;
522     GEOM_Object MakeFilletEdges (in GEOM_Object theShape,
523                                  in double      theR,
524                                  in GEOM_List   theEdges) ;
525     GEOM_Object MakeFilletEdgesR1R2 (in GEOM_Object theShape,
526                                      in double      theR1,
527                                      in double      theR2,
528                                      in GEOM_List   theEdges) ;
529     GEOM_Object MakeFilletFaces (in GEOM_Object theShape,
530                                  in double      theR,
531                                  in GEOM_List   theFaces) ;
532     GEOM_Object MakeFilletFacesR1R2 (in GEOM_Object theShape,
533                                      in double      theR1,
534                                      in double      theR2,
535                                      in GEOM_List   theFaces) ;
536     GEOM_Object MakeFillet2D (in GEOM_Object theShape,
537                               in double      theR,
538                               in GEOM_List   theVertexes) ;
539     GEOM_Object MakeChamferAll (in GEOM_Object theShape,
540                                 in double      theD) ;
541     GEOM_Object MakeChamferEdge (in GEOM_Object theShape,
542                                  in double theD1, in double theD2,
543                                  in long theFace1, in long theFace2) ;
544     GEOM_Object MakeChamferEdgeAD (in GEOM_Object theShape,
545                                    in double theD, in double theAngle,
546                                    in long theFace1, in long theFace2) ;
547     GEOM_Object MakeChamferFaces (in GEOM_Object theShape,
548                                   in double theD1, in double theD2,
549                                   in GEOM_List theFaces) ;
550     GEOM_Object MakeChamferFacesAD (in GEOM_Object theShape,
551                                     in double theD, in double theAngle,
552                                     in GEOM_List theFaces) ;
553     GEOM_Object MakeChamferEdges (in GEOM_Object theShape,
554                                   in double theD1, in double theD2,
555                                   in GEOM_List theEdges) ;
556     GEOM_Object MakeChamferEdgesAD (in GEOM_Object theShape,
557                                     in double theD, in double theAngle,
558                                     in GEOM_List theEdges) ;
559     GEOM_Object MakeArchimede (in GEOM_Object theShape,
560                                in double      theWeight,
561                                in double      theWaterDensity,
562                                in double      theMeshDeflection) ;
563     long GetSubShapeIndex (in GEOM_Object theShape, 
564                            in GEOM_Object theSubShape) ;
565
566     //-----------------------------------------------------------//
567     // GroupOperations                                           //
568     //-----------------------------------------------------------//
569     GEOM_Object CreateGroup (in GEOM_Object theMainShape, 
570                              in long        theShapeType) ;
571     void AddObject (in GEOM_Object theGroup, 
572                     in long        theSubShapeId) ;
573     void RemoveObject (in GEOM_Object theGroup, 
574                        in long        theSubShapeId) ;
575     long GetType (in GEOM_Object theGroup) ;
576     GEOM_Object  GetMainShape(in GEOM_Object theGroup) ;
577     GEOM_List  GetObjects(in GEOM_Object theGroup) ;
578
579     //-----------------------------------------------------------//
580     // AdvancedOperations                                        //
581     //-----------------------------------------------------------//
582     GEOM_List MakePipeTShape (in double theR1, in double theW1, in double theL1, 
583                 in double theR2, in double theW2, in double theL2,
584                 in boolean theHexMesh);
585               
586     GEOM_List MakePipeTShapeWithPosition (in double theR1, in double theW1, in double theL1, 
587                         in double theR2, in double theW2, in double theL2,
588                         in boolean theHexMesh,
589                         in GEOM_Object theP1, in GEOM_Object theP2, in GEOM_Object theP3);
590                         
591     GEOM_List MakePipeTShapeChamfer (in double theR1, in double theW1, in double theL1,
592                     in double theR2, in double theW2, in double theL2,
593                     in double theH, in double theW, in boolean theHexMesh);
594                     
595     GEOM_List MakePipeTShapeChamferWithPosition (in double theR1, in double theW1, in double theL1, 
596                            in double theR2, in double theW2, in double theL2, 
597                            in double theH, in double theW, in boolean theHexMesh,
598                            in GEOM_Object theP1, in GEOM_Object theP2, in GEOM_Object theP3);
599                            
600     GEOM_List MakePipeTShapeFillet (in double theR1, in double theW1, in double theL1, 
601                       in double theR2, in double theW2, in double theL2, 
602                       in double theRF, in boolean theHexMesh);
603                       
604     GEOM_List MakePipeTShapeFilletWithPosition (in double theR1, in double theW1, in double theL1, 
605                           in double theR2, in double theW2, in double theL2, 
606                           in double theRF, in boolean theHexMesh,
607                           in GEOM_Object theP1, in GEOM_Object theP2, in GEOM_Object theP3);
608
609     /*@@ insert new functions before this line @@ do not remove this line @@*/
610  };
611 };
612
613 #endif