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