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