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