Salome HOME
Merge remote branch 'origin/hydro/imps_2015'
[modules/geom.git] / src / GEOM_I_Superv / GEOM_Superv_i.hh
1 // Copyright (C) 2007-2016  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
23 #ifndef __GEOM_SUPERV_I_H__
24 #define __GEOM_SUPERV_I_H__
25
26 #include "GEOM_I_Superv.hxx"
27
28 // IDL headers
29 #include <SALOMEconfig.h>
30 #include CORBA_CLIENT_HEADER(GEOM_Gen)
31 #include CORBA_CLIENT_HEADER(AdvancedGEOM)
32 #include CORBA_CLIENT_HEADER(STLPlugin)
33 #include CORBA_CLIENT_HEADER(BREPPlugin)
34 #include CORBA_CLIENT_HEADER(STEPPlugin)
35 #include CORBA_CLIENT_HEADER(IGESPlugin)
36 #include CORBA_CLIENT_HEADER(XAOPlugin)
37 #ifdef WITH_VTK
38 #include CORBA_CLIENT_HEADER(VTKPlugin)
39 #endif
40 #include CORBA_SERVER_HEADER(GEOM_Superv)
41
42 #include "SALOME_Component_i.hxx"
43 #include "SALOME_NamingService.hxx"
44
45 #include "GEOM_List_i.hh"
46
47 class GEOM_I_SUPERV_EXPORT GEOM_Superv_i : public virtual POA_GEOM::GEOM_Superv,
48                                            public Engines_Component_i
49 {
50 public:
51   GEOM_Superv_i(CORBA::ORB_ptr orb,
52                 PortableServer::POA_ptr poa,
53                 PortableServer::ObjectId * contId,
54                 const char *instanceName,
55                 const char *interfaceName);
56   ~GEOM_Superv_i();
57
58   // generic method to be put in a super class
59   void register_name(char * name);
60   void setGeomEngine();
61
62   void getBasicOp();
63   void get3DPrimOp();
64   void getBoolOp();
65   void getInsOp();
66   void getTransfOp();
67   void getShapesOp();
68   void getBlocksOp();
69   void getCurvesOp();
70   void getLocalOp();
71   void getGroupOp();
72   void getAdvancedOp();
73   void getSTLPluginOp();
74   void getBREPPluginOp();
75   void getSTEPPluginOp();
76   void getIGESPluginOp();
77   void getXAOPluginOp();
78 #ifdef WITH_VTK
79   void getVTKPluginOp();
80 #endif
81   PortableServer::ServantBase_var GetServant(CORBA::Object_ptr       theObject,
82                                              PortableServer::POA_ptr thePOA);
83
84   //-----------------------------------------------------------------------//
85   // Set current stydy ID                                                  //
86   //-----------------------------------------------------------------------//
87   void SetStudyID( CORBA::Long theId );
88
89   //-----------------------------------------------------------//
90   // Create ListOfGO and add items to it                       //
91   //-----------------------------------------------------------//
92   GEOM::GEOM_List_ptr CreateListOfGO();
93   void AddItemToListOfGO(GEOM::GEOM_List_ptr& theList,
94                          GEOM::GEOM_Object_ptr theObject);
95
96   //-----------------------------------------------------------//
97   // Create ListOfLong and add items to it                     //
98   //-----------------------------------------------------------//
99   GEOM::GEOM_List_ptr CreateListOfLong();
100   void AddItemToListOfLong(GEOM::GEOM_List_ptr& theList,
101                            CORBA::Long theObject);
102
103   //-----------------------------------------------------------//
104   // Create ListOfDouble and add items to it                   //
105   //-----------------------------------------------------------//
106   GEOM::GEOM_List_ptr CreateListOfDouble();
107   void AddItemToListOfDouble(GEOM::GEOM_List_ptr& theList,
108                              CORBA::Double theObject);
109
110   //-----------------------------------------------------------------------//
111   // Inherited methods from SALOMEDS::Driver                               //
112   //-----------------------------------------------------------------------//
113
114   SALOMEDS::TMPFile* Save(SALOMEDS::SComponent_ptr theComponent,
115                           const char* theURL,
116                           CORBA::Boolean isMultiFile);
117
118   SALOMEDS::TMPFile* SaveASCII(SALOMEDS::SComponent_ptr theComponent,
119                                const char* theURL,
120                                CORBA::Boolean isMultiFile);
121
122   CORBA::Boolean Load(SALOMEDS::SComponent_ptr theComponent,
123                       const SALOMEDS::TMPFile& theStream,
124                       const char* theURL,
125                       CORBA::Boolean isMultiFile);
126
127   CORBA::Boolean LoadASCII(SALOMEDS::SComponent_ptr theComponent,
128                            const SALOMEDS::TMPFile& theStream,
129                            const char* theURL,
130                            CORBA::Boolean isMultiFile);
131
132   void Close(SALOMEDS::SComponent_ptr theComponent);
133   char* ComponentDataType();
134
135
136   char* IORToLocalPersistentID(SALOMEDS::SObject_ptr theSObject,
137                                const char* IORString,
138                                CORBA::Boolean isMultiFile,
139                                CORBA::Boolean isASCII);
140   char* LocalPersistentIDToIOR(SALOMEDS::SObject_ptr theSObject,
141                                const char* aLocalPersistentID,
142                                CORBA::Boolean isMultiFile,
143                                CORBA::Boolean isASCII);
144
145   CORBA::Boolean CanPublishInStudy(CORBA::Object_ptr theIOR);
146   SALOMEDS::SObject_ptr PublishInStudy(SALOMEDS::Study_ptr theStudy,
147                                        SALOMEDS::SObject_ptr theSObject,
148                                        CORBA::Object_ptr theObject,
149                                        const char* theName) throw (SALOME::SALOME_Exception) ;
150
151   GEOM::ListOfGO* PublishNamedShapesInStudy(SALOMEDS::Study_ptr theStudy,
152                                             //SALOMEDS::SObject_ptr theSObject,
153                                             CORBA::Object_ptr theObject);
154
155   CORBA::Boolean CanCopy(SALOMEDS::SObject_ptr theObject);
156   SALOMEDS::TMPFile* CopyFrom(SALOMEDS::SObject_ptr theObject, CORBA::Long& theObjectID);
157   CORBA::Boolean CanPaste(const char* theComponentName, CORBA::Long theObjectID);
158   SALOMEDS::SObject_ptr PasteInto(const SALOMEDS::TMPFile& theStream,
159                                   CORBA::Long theObjectID,
160                                   SALOMEDS::SObject_ptr theObject);
161
162   //-----------------------------------------------------------//
163   // Primitives Construction : BasicOperations                 //
164   //-----------------------------------------------------------//
165   GEOM::GEOM_Object_ptr MakePointXYZ (CORBA::Double theX,
166                                       CORBA::Double theY,
167                                       CORBA::Double theZ);
168   GEOM::GEOM_Object_ptr MakePointWithReference (GEOM::GEOM_Object_ptr theReference,
169                                                 CORBA::Double theX,
170                                                 CORBA::Double theY,
171                                                 CORBA::Double theZ);
172   GEOM::GEOM_Object_ptr MakePointOnCurve (GEOM::GEOM_Object_ptr theRefCurve,
173                                           CORBA::Double theParameter);
174   GEOM::GEOM_Object_ptr MakePointOnCurveByLength (GEOM::GEOM_Object_ptr theRefCurve,
175                                                   CORBA::Double theLength,
176                                                   GEOM::GEOM_Object_ptr theStartPoint);
177   GEOM::GEOM_Object_ptr MakePointOnCurveByCoord (GEOM::GEOM_Object_ptr theRefCurve,
178                                                  CORBA::Double theXParameter,
179                                                  CORBA::Double theYParameter,
180                                                  CORBA::Double theZParameter);
181   GEOM::GEOM_Object_ptr MakePointOnSurface (GEOM::GEOM_Object_ptr theRefSurface,
182                                             CORBA::Double theUParameter,
183                                             CORBA::Double theVParameter);
184   GEOM::GEOM_Object_ptr MakePointOnSurfaceByCoord (GEOM::GEOM_Object_ptr theRefSurface,
185                                                    CORBA::Double theXParameter,
186                                                    CORBA::Double theYParameter,
187                                                    CORBA::Double theZParameter);
188   GEOM::GEOM_Object_ptr MakePointOnLinesIntersection (GEOM::GEOM_Object_ptr theRefLine1,
189                                                       GEOM::GEOM_Object_ptr theRefLine2);
190   GEOM::GEOM_Object_ptr MakeTangentOnCurve (GEOM::GEOM_Object_ptr theRefCurve,
191                                              CORBA::Double theParameter);
192   GEOM::GEOM_Object_ptr MakeVectorDXDYDZ (CORBA::Double theDX,
193                                           CORBA::Double theDY,
194                                           CORBA::Double theDZ);
195   GEOM::GEOM_Object_ptr MakeVectorTwoPnt (GEOM::GEOM_Object_ptr thePnt1,
196                                           GEOM::GEOM_Object_ptr thePnt2);
197   GEOM::GEOM_Object_ptr MakeLineTwoPnt (GEOM::GEOM_Object_ptr thePnt1,
198                                         GEOM::GEOM_Object_ptr thePnt2);
199   GEOM::GEOM_Object_ptr MakeLineTwoFaces (GEOM::GEOM_Object_ptr theFace1,
200                                           GEOM::GEOM_Object_ptr theFace2);
201   GEOM::GEOM_Object_ptr MakePlaneThreePnt (GEOM::GEOM_Object_ptr thePnt1,
202                                            GEOM::GEOM_Object_ptr thePnt2,
203                                            GEOM::GEOM_Object_ptr thePnt3,
204                                            CORBA::Double theTrimSize);
205   GEOM::GEOM_Object_ptr MakePlanePntVec (GEOM::GEOM_Object_ptr thePnt,
206                                          GEOM::GEOM_Object_ptr theVec,
207                                          CORBA::Double theTrimSize);
208   GEOM::GEOM_Object_ptr MakePlaneFace (GEOM::GEOM_Object_ptr theFace,
209                                        CORBA::Double theTrimSize);
210   GEOM::GEOM_Object_ptr MakePlane2Vec (GEOM::GEOM_Object_ptr theVec1,
211                                        GEOM::GEOM_Object_ptr theVec2,
212                                        CORBA::Double theTrimSize);
213   GEOM::GEOM_Object_ptr MakePlaneLCS (GEOM::GEOM_Object_ptr theLCS,
214                                       CORBA::Double theTrimSize,
215                                       CORBA::Double theOrientation);
216   GEOM::GEOM_Object_ptr MakeMarker (CORBA::Double theOX , CORBA::Double theOY , CORBA::Double theOZ,
217                                     CORBA::Double theXDX, CORBA::Double theXDY, CORBA::Double theXDZ,
218                                     CORBA::Double theYDX, CORBA::Double theYDY, CORBA::Double theYDZ);
219
220   GEOM::GEOM_Object_ptr MakeMarkerFromShape (GEOM::GEOM_Object_ptr theShape);
221
222   GEOM::GEOM_Object_ptr MakeMarkerPntTwoVec (GEOM::GEOM_Object_ptr theOrigin,
223                                              GEOM::GEOM_Object_ptr theXVec,
224                                              GEOM::GEOM_Object_ptr theYVec);
225
226   GEOM::GEOM_Object_ptr MakeTangentPlaneOnFace (GEOM::GEOM_Object_ptr theFace,
227                                                  CORBA::Double theParameterU,
228                                                  CORBA::Double theParameterV,
229                                                  CORBA::Double theTrimSize);
230
231   //-----------------------------------------------------------//
232   // Primitives Construction : 3DPrimOperations                //
233   //-----------------------------------------------------------//
234   GEOM::GEOM_Object_ptr MakeBox (CORBA::Double theX1,
235                                  CORBA::Double theY1,
236                                  CORBA::Double theZ1,
237                                  CORBA::Double theX2,
238                                  CORBA::Double theY2,
239                                  CORBA::Double theZ2);
240   GEOM::GEOM_Object_ptr MakeBoxDXDYDZ (CORBA::Double theDX,
241                                        CORBA::Double theDY,
242                                        CORBA::Double theDZ);
243   GEOM::GEOM_Object_ptr MakeBoxTwoPnt (GEOM::GEOM_Object_ptr thePnt1,
244                                        GEOM::GEOM_Object_ptr thePnt2);
245   GEOM::GEOM_Object_ptr MakeFaceHW (CORBA::Double theH,
246                                     CORBA::Double theW,
247                                     CORBA::Short  theOrientation);
248   GEOM::GEOM_Object_ptr MakeFaceObjHW (GEOM::GEOM_Object_ptr theObj,
249                                        CORBA::Double theH,
250                                        CORBA::Double theW);
251   GEOM::GEOM_Object_ptr MakeDiskPntVecR (GEOM::GEOM_Object_ptr theCenter,
252                                          GEOM::GEOM_Object_ptr theVector,
253                                          CORBA::Double theR);
254   GEOM::GEOM_Object_ptr MakeDiskThreePnt (GEOM::GEOM_Object_ptr thePnt1,
255                                           GEOM::GEOM_Object_ptr thePnt2,
256                                           GEOM::GEOM_Object_ptr thePnt3);
257   GEOM::GEOM_Object_ptr MakeDiskR (CORBA::Double theR,
258                                    CORBA::Short  theOrientation);
259   GEOM::GEOM_Object_ptr MakeCylinderPntVecRH (GEOM::GEOM_Object_ptr thePnt,
260                                               GEOM::GEOM_Object_ptr theAxis,
261                                               CORBA::Double theRadius,
262                                               CORBA::Double theHeight);
263   GEOM::GEOM_Object_ptr MakeCylinderRH (CORBA::Double theR,
264                                         CORBA::Double theH);
265   GEOM::GEOM_Object_ptr MakeCylinderPntVecRHA (GEOM::GEOM_Object_ptr thePnt,
266                                                GEOM::GEOM_Object_ptr theAxis,
267                                                CORBA::Double theRadius,
268                                                CORBA::Double theHeight,
269                                                CORBA::Double theAngle);
270   GEOM::GEOM_Object_ptr MakeCylinderRHA (CORBA::Double theR,
271                                          CORBA::Double theH,
272                                          CORBA::Double theA);                                   
273   GEOM::GEOM_Object_ptr MakeSphere (CORBA::Double theX,
274                                     CORBA::Double theY,
275                                     CORBA::Double theZ,
276                                     CORBA::Double theRadius);
277   GEOM::GEOM_Object_ptr MakeSphereR (CORBA::Double theR);
278   GEOM::GEOM_Object_ptr MakeSpherePntR (GEOM::GEOM_Object_ptr thePnt,
279                                         CORBA::Double theR);
280   GEOM::GEOM_Object_ptr MakeTorusPntVecRR (GEOM::GEOM_Object_ptr thePnt,
281                                            GEOM::GEOM_Object_ptr theVec,
282                                            CORBA::Double theRMajor,
283                                            CORBA::Double theRMinor);
284   GEOM::GEOM_Object_ptr MakeTorusRR (CORBA::Double theRMajor,
285                                      CORBA::Double theRMinor);
286   GEOM::GEOM_Object_ptr MakeConePntVecR1R2H (GEOM::GEOM_Object_ptr thePnt,
287                                              GEOM::GEOM_Object_ptr theAxis,
288                                              CORBA::Double theR1,
289                                              CORBA::Double theR2,
290                                              CORBA::Double theHeight);
291   GEOM::GEOM_Object_ptr MakeConeR1R2H (CORBA::Double theR1,
292                                        CORBA::Double theR2,
293                                        CORBA::Double theHeight);
294   GEOM::GEOM_Object_ptr MakePrismVecH (GEOM::GEOM_Object_ptr theBase,
295                                        GEOM::GEOM_Object_ptr theVec,
296                                        CORBA::Double         theH);
297   GEOM::GEOM_Object_ptr MakePrismVecH2Ways (GEOM::GEOM_Object_ptr theBase,
298                                             GEOM::GEOM_Object_ptr theVec,
299                                             CORBA::Double         theH);
300   GEOM::GEOM_Object_ptr MakePrismTwoPnt (GEOM::GEOM_Object_ptr theBase,
301                                          GEOM::GEOM_Object_ptr thePoint1,
302                                          GEOM::GEOM_Object_ptr thePoint2);
303   GEOM::GEOM_Object_ptr MakePrismTwoPnt2Ways (GEOM::GEOM_Object_ptr theBase,
304                                               GEOM::GEOM_Object_ptr thePoint1,
305                                               GEOM::GEOM_Object_ptr thePoint2);
306   GEOM::GEOM_Object_ptr MakePrismDXDYDZ (GEOM::GEOM_Object_ptr theBase,
307                                          CORBA::Double         theDX,
308                                          CORBA::Double         theDY,
309                                          CORBA::Double         theDZ);
310   GEOM::GEOM_Object_ptr MakePrismDXDYDZ2Ways (GEOM::GEOM_Object_ptr theBase,
311                                               CORBA::Double         theDX,
312                                               CORBA::Double         theDY,
313                                               CORBA::Double         theDZ);
314   GEOM::GEOM_Object_ptr MakePipe (GEOM::GEOM_Object_ptr theBase,
315                                   GEOM::GEOM_Object_ptr thePath);
316   GEOM::GEOM_Object_ptr MakeRevolutionAxisAngle (GEOM::GEOM_Object_ptr theBase,
317                                                  GEOM::GEOM_Object_ptr theAxis,
318                                                  CORBA::Double theAngle);
319   GEOM::GEOM_Object_ptr MakeRevolutionAxisAngle2Ways (GEOM::GEOM_Object_ptr theBase,
320                                                       GEOM::GEOM_Object_ptr theAxis,
321                                                       CORBA::Double theAngle);
322   GEOM::GEOM_Object_ptr MakeFilling (GEOM::GEOM_Object_ptr theShape,
323                                      CORBA::Long theMinDeg, CORBA::Long theMaxDeg,
324                                      CORBA::Double theTol2D, CORBA::Double theTol3D,
325                                      CORBA::Long theNbIter,
326                                      GEOM::filling_oper_method theMethod,
327                                      CORBA::Boolean theApprox);
328
329   GEOM::GEOM_Object_ptr MakeThruSections(const GEOM::ListOfGO& theSeqSections,
330                                          CORBA::Boolean theModeSolid,
331                                          CORBA::Double thePreci,
332                                          CORBA::Boolean theRuled);
333
334   GEOM::GEOM_Object_ptr MakePipeWithDifferentSections(const GEOM::ListOfGO& theBases,
335                                                       const GEOM::ListOfGO& theLocations,
336                                                       GEOM::GEOM_Object_ptr thePath,
337                                                       CORBA::Boolean theWithContact,
338                                                       CORBA::Boolean theWithCorrections);
339
340   GEOM::GEOM_Object_ptr MakePipeWithShellSections(const GEOM::ListOfGO& theBases,
341                                                   const GEOM::ListOfGO& theSubBases,
342                                                   const GEOM::ListOfGO& theLocations,
343                                                   GEOM::GEOM_Object_ptr thePath,
344                                                   CORBA::Boolean theWithContact,
345                                                   CORBA::Boolean theWithCorrections);
346
347   GEOM::GEOM_Object_ptr MakePipeShellsWithoutPath(const GEOM::ListOfGO& theBases,
348                                                   const GEOM::ListOfGO& theLocations);
349
350   GEOM::GEOM_Object_ptr MakePipeBiNormalAlongVector (GEOM::GEOM_Object_ptr theBase,
351                                                      GEOM::GEOM_Object_ptr thePath,
352                                                      GEOM::GEOM_Object_ptr theVec);
353
354   //-----------------------------------------------------------//
355   // BooleanOperations                                         //
356   //-----------------------------------------------------------//
357   GEOM::GEOM_Object_ptr MakeBoolean (GEOM::GEOM_Object_ptr theShape1,
358                                      GEOM::GEOM_Object_ptr theShape2,
359                                      CORBA::Long           theOperation);
360   GEOM::GEOM_Object_ptr MakeFuse (GEOM::GEOM_Object_ptr theShape1,
361                                   GEOM::GEOM_Object_ptr theShape2);
362   GEOM::GEOM_Object_ptr MakeCommon (GEOM::GEOM_Object_ptr theShape1,
363                                     GEOM::GEOM_Object_ptr theShape2);
364   GEOM::GEOM_Object_ptr MakeCut (GEOM::GEOM_Object_ptr theShape1,
365                                  GEOM::GEOM_Object_ptr theShape2);
366   GEOM::GEOM_Object_ptr MakeSection (GEOM::GEOM_Object_ptr theShape1,
367                                      GEOM::GEOM_Object_ptr theShape2);
368   GEOM::GEOM_Object_ptr MakePartition (GEOM::GEOM_List_ptr   theShapes,
369                                        GEOM::GEOM_List_ptr   theTools,
370                                        GEOM::GEOM_List_ptr   theKeepInside,
371                                        GEOM::GEOM_List_ptr   theRemoveInside,
372                                        CORBA::Short      theLimit,
373                                        CORBA::Boolean    theRemoveWebs,
374                                        GEOM::GEOM_List_ptr theMaterials,
375                                        CORBA::Short theKeepNonlimitShapes);
376   GEOM::GEOM_Object_ptr MakeHalfPartition (GEOM::GEOM_Object_ptr theShape,
377                                            GEOM::GEOM_Object_ptr thePlane);
378
379   //-----------------------------------------------------------//
380   // InsertOperations                                          //
381   //-----------------------------------------------------------//
382   GEOM::GEOM_Object_ptr MakeCopy (GEOM::GEOM_Object_ptr theOriginal);
383   void Export (GEOM::GEOM_Object_ptr theObject,
384                const char*           theFileName,
385                const char*           theFormatName);
386   GEOM::GEOM_Object_ptr ImportFile (const char* theFileName,
387                                     const char* theFormatName);
388
389   //-----------------------------------------------------------//
390   // TransformOperations                                       //
391   //-----------------------------------------------------------//
392   GEOM::GEOM_Object_ptr TranslateTwoPoints (GEOM::GEOM_Object_ptr theObject,
393                                             GEOM::GEOM_Object_ptr thePoint1,
394                                             GEOM::GEOM_Object_ptr thePoint2);
395   GEOM::GEOM_Object_ptr TranslateTwoPointsCopy (GEOM::GEOM_Object_ptr theObject,
396                                                 GEOM::GEOM_Object_ptr thePoint1,
397                                                 GEOM::GEOM_Object_ptr thePoint2);
398   GEOM::GEOM_Object_ptr TranslateDXDYDZ (GEOM::GEOM_Object_ptr theObject,
399                                          CORBA::Double theDX,
400                                          CORBA::Double theDY,
401                                          CORBA::Double theDZ);
402   GEOM::GEOM_Object_ptr TranslateDXDYDZCopy (GEOM::GEOM_Object_ptr theObject,
403                                              CORBA::Double theDX,
404                                              CORBA::Double theDY,
405                                              CORBA::Double theDZ);
406   GEOM::GEOM_Object_ptr TranslateVector (GEOM::GEOM_Object_ptr theObject,
407                                          GEOM::GEOM_Object_ptr theVector);
408   GEOM::GEOM_Object_ptr TranslateVectorCopy (GEOM::GEOM_Object_ptr theObject,
409                                              GEOM::GEOM_Object_ptr theVector);
410   GEOM::GEOM_Object_ptr TranslateVectorDistance (GEOM::GEOM_Object_ptr theObject,
411                                                  GEOM::GEOM_Object_ptr theVector,
412                                                  CORBA::Double theDistance,
413                                                  CORBA::Boolean theCopy);
414   GEOM::GEOM_Object_ptr MultiTranslate1D (GEOM::GEOM_Object_ptr theObject,
415                                           GEOM::GEOM_Object_ptr theVector,
416                                           CORBA::Double theStep,
417                                           CORBA::Long theNbTimes);
418   GEOM::GEOM_Object_ptr MultiTranslate2D (GEOM::GEOM_Object_ptr theObject,
419                                           GEOM::GEOM_Object_ptr theVector1,
420                                           CORBA::Double theStep1,
421                                           CORBA::Long theNbTimes1,
422                                           GEOM::GEOM_Object_ptr theVector2,
423                                           CORBA::Double theStep2,
424                                           CORBA::Long theNbTimes2);
425   GEOM::GEOM_Object_ptr Rotate (GEOM::GEOM_Object_ptr theObject,
426                                 GEOM::GEOM_Object_ptr theAxis,
427                                 CORBA::Double theAngle);
428   GEOM::GEOM_Object_ptr RotateCopy (GEOM::GEOM_Object_ptr theObject,
429                                     GEOM::GEOM_Object_ptr theAxis,
430                                     CORBA::Double theAngle);
431
432   GEOM::GEOM_Object_ptr RotateThreePoints (GEOM::GEOM_Object_ptr theObject,
433                                            GEOM::GEOM_Object_ptr theCentPoint,
434                                            GEOM::GEOM_Object_ptr thePoint1,
435                                            GEOM::GEOM_Object_ptr thePoint2);
436
437   GEOM::GEOM_Object_ptr RotateThreePointsCopy (GEOM::GEOM_Object_ptr theObject,
438                                                GEOM::GEOM_Object_ptr theCentPoint,
439                                                GEOM::GEOM_Object_ptr thePoint1,
440                                                GEOM::GEOM_Object_ptr thePoint2);
441
442   GEOM::GEOM_Object_ptr MultiRotate1D (GEOM::GEOM_Object_ptr theObject,
443                                        GEOM::GEOM_Object_ptr theAxis,
444                                        CORBA::Long theNbTimes);
445   GEOM::GEOM_Object_ptr MultiRotate2D (GEOM::GEOM_Object_ptr theObject,
446                                        GEOM::GEOM_Object_ptr theAxis,
447                                        CORBA::Double theAngle,
448                                        CORBA::Long theNbTimes1,
449                                        CORBA::Double theStep,
450                                        CORBA::Long theNbTimes2);
451   GEOM::GEOM_Object_ptr MirrorPlane (GEOM::GEOM_Object_ptr theObject,
452                                      GEOM::GEOM_Object_ptr thePlane);
453   GEOM::GEOM_Object_ptr MirrorPlaneCopy (GEOM::GEOM_Object_ptr theObject,
454                                          GEOM::GEOM_Object_ptr thePlane);
455   GEOM::GEOM_Object_ptr MirrorAxis (GEOM::GEOM_Object_ptr theObject,
456                                     GEOM::GEOM_Object_ptr theAxis);
457   GEOM::GEOM_Object_ptr MirrorAxisCopy (GEOM::GEOM_Object_ptr theObject,
458                                         GEOM::GEOM_Object_ptr theAxis);
459   GEOM::GEOM_Object_ptr MirrorPoint (GEOM::GEOM_Object_ptr theObject,
460                                      GEOM::GEOM_Object_ptr thePoint);
461   GEOM::GEOM_Object_ptr MirrorPointCopy (GEOM::GEOM_Object_ptr theObject,
462                                          GEOM::GEOM_Object_ptr thePoint);
463   GEOM::GEOM_Object_ptr OffsetShape (GEOM::GEOM_Object_ptr theObject,
464                                      CORBA::Double theOffset);
465   GEOM::GEOM_Object_ptr OffsetShapeCopy (GEOM::GEOM_Object_ptr theObject,
466                                          CORBA::Double theOffset);
467   GEOM::GEOM_Object_ptr ScaleShape (GEOM::GEOM_Object_ptr theObject,
468                                     GEOM::GEOM_Object_ptr thePoint,
469                                     CORBA::Double theFactor);
470   GEOM::GEOM_Object_ptr ScaleShapeCopy (GEOM::GEOM_Object_ptr theObject,
471                                         GEOM::GEOM_Object_ptr thePoint,
472                                         CORBA::Double theFactor);
473   GEOM::GEOM_Object_ptr ScaleShapeAlongAxes (GEOM::GEOM_Object_ptr theObject,
474                                              GEOM::GEOM_Object_ptr thePoint,
475                                              CORBA::Double theFactorX,
476                                              CORBA::Double theFactorY,
477                                              CORBA::Double theFactorZ);
478   GEOM::GEOM_Object_ptr ScaleShapeAlongAxesCopy (GEOM::GEOM_Object_ptr theObject,
479                                                  GEOM::GEOM_Object_ptr thePoint,
480                                                  CORBA::Double theFactorX,
481                                                  CORBA::Double theFactorY,
482                                                  CORBA::Double theFactorZ);
483   GEOM::GEOM_Object_ptr PositionShape (GEOM::GEOM_Object_ptr theObject,
484                                        GEOM::GEOM_Object_ptr theStartLCS,
485                                        GEOM::GEOM_Object_ptr theEndLCS);
486   GEOM::GEOM_Object_ptr PositionShapeCopy (GEOM::GEOM_Object_ptr theObject,
487                                            GEOM::GEOM_Object_ptr theStartLCS,
488                                            GEOM::GEOM_Object_ptr theEndLCS);
489   GEOM::GEOM_Object_ptr PositionAlongPath (GEOM::GEOM_Object_ptr theObject,
490                                            GEOM::GEOM_Object_ptr thePath,
491                                            CORBA::Double         theDistance,
492                                            CORBA::Boolean        theCopy,
493                                            CORBA::Boolean        theReverse);
494
495   //-----------------------------------------------------------//
496   // ShapesOperations                                          //
497   //-----------------------------------------------------------//
498   GEOM::GEOM_Object_ptr MakeEdge (GEOM::GEOM_Object_ptr thePnt1,
499                                   GEOM::GEOM_Object_ptr thePnt2);
500   GEOM::GEOM_Object_ptr MakeEdgeOnCurveByLength (GEOM::GEOM_Object_ptr theRefCurve,
501                                                  CORBA::Double theLength,
502                                                  GEOM::GEOM_Object_ptr theStartPoint);
503   GEOM::GEOM_Object_ptr MakeWire (GEOM::GEOM_List_ptr theEdgesAndWires,
504                                   CORBA::Double       theTolerance);
505   GEOM::GEOM_Object_ptr MakeFace (GEOM::GEOM_Object_ptr theWire,
506                                   CORBA::Boolean isPlanarWanted);
507   GEOM::GEOM_Object_ptr MakeFaceWires (GEOM::GEOM_List_ptr theWires,
508                                        CORBA::Boolean isPlanarWanted);
509   GEOM::GEOM_Object_ptr MakeFaceWithConstraints (GEOM::GEOM_List_ptr theConstraints);
510   GEOM::GEOM_Object_ptr MakeShell (GEOM::GEOM_List_ptr theFacesAndShells);
511   GEOM::GEOM_Object_ptr MakeSolidShell (GEOM::GEOM_Object_ptr theShell);
512   GEOM::GEOM_Object_ptr MakeSolidShells (GEOM::GEOM_List_ptr theShells);
513   GEOM::GEOM_Object_ptr MakeCompound (GEOM::GEOM_List_ptr theShapes);
514   GEOM::GEOM_Object_ptr MakeSolidFromConnectedFaces (GEOM::GEOM_List_ptr theFacesOrShells,
515                                                      CORBA::Boolean isIntersect);
516   GEOM::GEOM_Object_ptr MakeGlueFaces (GEOM::GEOM_Object_ptr theShape,
517                                        CORBA::Double theTolerance,
518                                        CORBA::Boolean doKeepNonSolids);
519   GEOM::GEOM_List_ptr GetGlueFaces (GEOM::GEOM_Object_ptr theShape,
520                                     CORBA::Double theTolerance);
521   GEOM::GEOM_Object_ptr MakeGlueFacesByList (GEOM::GEOM_Object_ptr theShape,
522                                              CORBA::Double theTolerance,
523                                              const GEOM::ListOfGO& theFaces,
524                                              CORBA::Boolean doKeepNonSolids,
525                                              CORBA::Boolean doGlueAllEdges);
526   GEOM::GEOM_List_ptr MakeExplode (GEOM::GEOM_Object_ptr theShape,
527                                        CORBA::Long theShapeType,
528                                        CORBA::Boolean isSorted);
529   CORBA::Long NumberOfFaces (GEOM::GEOM_Object_ptr theShape);
530   CORBA::Long NumberOfEdges (GEOM::GEOM_Object_ptr theShape);
531   GEOM::GEOM_Object_ptr ChangeOrientation (GEOM::GEOM_Object_ptr theShape);
532
533   GEOM::GEOM_List_ptr GetShapesOnShape (GEOM::GEOM_Object_ptr theCheckShape,
534                                           GEOM::GEOM_Object_ptr theShape,
535                                           CORBA::Short theShapeType,
536                                           GEOM::shape_state theState);
537   GEOM::GEOM_Object_ptr GetShapesOnShapeAsCompound
538                                        (GEOM::GEOM_Object_ptr theCheckShape,
539                                           GEOM::GEOM_Object_ptr theShape,
540                                           CORBA::Short theShapeType,
541                                           GEOM::shape_state theState);
542
543   //-----------------------------------------------------------//
544   // BlocksOperations                                          //
545   //-----------------------------------------------------------//
546   GEOM::GEOM_Object_ptr MakeQuad4Vertices (GEOM::GEOM_Object_ptr thePnt1,
547                                            GEOM::GEOM_Object_ptr thePnt2,
548                                            GEOM::GEOM_Object_ptr thePnt3,
549                                            GEOM::GEOM_Object_ptr thePnt4);
550   GEOM::GEOM_Object_ptr MakeQuad (GEOM::GEOM_Object_ptr theEdge1,
551                                   GEOM::GEOM_Object_ptr theEdge2,
552                                   GEOM::GEOM_Object_ptr theEdge3,
553                                   GEOM::GEOM_Object_ptr theEdge4);
554   GEOM::GEOM_Object_ptr MakeQuad2Edges (GEOM::GEOM_Object_ptr theEdge1,
555                                         GEOM::GEOM_Object_ptr theEdge2);
556   GEOM::GEOM_Object_ptr MakeHexa (GEOM::GEOM_Object_ptr theFace1,
557                                   GEOM::GEOM_Object_ptr theFace2,
558                                   GEOM::GEOM_Object_ptr theFace3,
559                                   GEOM::GEOM_Object_ptr theFace4,
560                                   GEOM::GEOM_Object_ptr theFace5,
561                                   GEOM::GEOM_Object_ptr theFace6);
562   GEOM::GEOM_Object_ptr MakeHexa2Faces (GEOM::GEOM_Object_ptr theFace1,
563                                         GEOM::GEOM_Object_ptr theFace2);
564   GEOM::GEOM_Object_ptr GetPoint (GEOM::GEOM_Object_ptr theShape,
565                                   CORBA::Double   theX,
566                                   CORBA::Double   theY,
567                                   CORBA::Double   theZ,
568                                   CORBA::Double   theEpsilon);
569   GEOM::GEOM_Object_ptr GetEdge (GEOM::GEOM_Object_ptr theShape,
570                                  GEOM::GEOM_Object_ptr thePoint1,
571                                  GEOM::GEOM_Object_ptr thePoint2);
572   GEOM::GEOM_Object_ptr GetEdgeNearPoint (GEOM::GEOM_Object_ptr theShape,
573                                           GEOM::GEOM_Object_ptr thePoint);
574   GEOM::GEOM_Object_ptr GetFaceByPoints (GEOM::GEOM_Object_ptr theShape,
575                                          GEOM::GEOM_Object_ptr thePoint1,
576                                          GEOM::GEOM_Object_ptr thePoint2,
577                                          GEOM::GEOM_Object_ptr thePoint3,
578                                          GEOM::GEOM_Object_ptr thePoint4);
579   GEOM::GEOM_Object_ptr GetFaceByEdges (GEOM::GEOM_Object_ptr theShape,
580                                         GEOM::GEOM_Object_ptr theEdge1,
581                                         GEOM::GEOM_Object_ptr theEdge2);
582   GEOM::GEOM_Object_ptr GetOppositeFace (GEOM::GEOM_Object_ptr theBlock,
583                                          GEOM::GEOM_Object_ptr theFace);
584   GEOM::GEOM_Object_ptr GetFaceNearPoint (GEOM::GEOM_Object_ptr theShape,
585                                           GEOM::GEOM_Object_ptr thePoint);
586   GEOM::GEOM_Object_ptr GetFaceByNormale (GEOM::GEOM_Object_ptr theBlock,
587                                           GEOM::GEOM_Object_ptr theVector);
588   CORBA::Boolean IsCompoundOfBlocks (GEOM::GEOM_Object_ptr theCompound,
589                                      CORBA::Long     theMinNbFaces,
590                                      CORBA::Long     theMaxNbFaces,
591                                      CORBA::Long&          theNbBlocks);
592   CORBA::Boolean CheckCompoundOfBlocks (GEOM::GEOM_Object_ptr theCompound,
593                                         GEOM::GEOM_IBlocksOperations::BCErrors_out theErrors);
594   char* PrintBCErrors (GEOM::GEOM_Object_ptr theCompound,
595                        const GEOM::GEOM_IBlocksOperations::BCErrors& theErrors);
596   GEOM::GEOM_List_ptr ExplodeCompoundOfBlocks (GEOM::GEOM_Object_ptr theCompound,
597                                                    CORBA::Long     theMinNbFaces,
598                                                    CORBA::Long     theMaxNbFaces);
599   GEOM::GEOM_Object_ptr GetBlockNearPoint (GEOM::GEOM_Object_ptr theCompound,
600                                            GEOM::GEOM_Object_ptr thePoint);
601   GEOM::GEOM_Object_ptr GetBlockByParts (GEOM::GEOM_Object_ptr theCompound,
602                                          GEOM::GEOM_List_ptr theParts);
603   GEOM::GEOM_List_ptr GetBlocksByParts (GEOM::GEOM_Object_ptr theCompound,
604                                             GEOM::GEOM_List_ptr theParts);
605   GEOM::GEOM_Object_ptr MakeMultiTransformation1D (GEOM::GEOM_Object_ptr theBlock,
606                                                    CORBA::Long     theDirFace1,
607                                                    CORBA::Long     theDirFace2,
608                                                    CORBA::Long     theNbTimes);
609   GEOM::GEOM_Object_ptr MakeMultiTransformation2D (GEOM::GEOM_Object_ptr theBlock,
610                                                    CORBA::Long     theDirFace1U,
611                                                    CORBA::Long     theDirFace2U,
612                                                    CORBA::Long     theNbTimesU,
613                                                    CORBA::Long     theDirFace1V,
614                                                    CORBA::Long     theDirFace2V,
615                                                    CORBA::Long     theNbTimesV);
616
617   //-----------------------------------------------------------//
618   // CurvesOperations                                          //
619   //-----------------------------------------------------------//
620   GEOM::GEOM_Object_ptr MakeCirclePntVecR (GEOM::GEOM_Object_ptr theCenter,
621                                            GEOM::GEOM_Object_ptr theVector,
622                                            CORBA::Double theR);
623   GEOM::GEOM_Object_ptr MakeCircleThreePnt (GEOM::GEOM_Object_ptr thePnt1,
624                                             GEOM::GEOM_Object_ptr thePnt2,
625                                             GEOM::GEOM_Object_ptr thePnt3);
626   GEOM::GEOM_Object_ptr MakeCircleCenter2Pnt (GEOM::GEOM_Object_ptr thePnt1,
627                                               GEOM::GEOM_Object_ptr thePnt2,
628                                               GEOM::GEOM_Object_ptr thePnt3);
629   GEOM::GEOM_Object_ptr MakeEllipse (GEOM::GEOM_Object_ptr theCenter,
630                                      GEOM::GEOM_Object_ptr theVector,
631                                      CORBA::Double theRMajor, CORBA::Double theRMinor);
632   GEOM::GEOM_Object_ptr MakeEllipseVec (GEOM::GEOM_Object_ptr theCenter,
633                                         GEOM::GEOM_Object_ptr theVector,
634                                         CORBA::Double theRMajor, CORBA::Double theRMinor,
635                                         GEOM::GEOM_Object_ptr theVectorMajor);
636   GEOM::GEOM_Object_ptr MakeArc (GEOM::GEOM_Object_ptr thePnt1,
637                                  GEOM::GEOM_Object_ptr thePnt2,
638                                  GEOM::GEOM_Object_ptr thePnt3);
639   GEOM::GEOM_Object_ptr MakeArcCenter (GEOM::GEOM_Object_ptr theCenter,
640                                        GEOM::GEOM_Object_ptr thePnt1,
641                                        GEOM::GEOM_Object_ptr thePnt2,
642                                        CORBA::Boolean theSense);
643   GEOM::GEOM_Object_ptr MakeArcOfEllipse (GEOM::GEOM_Object_ptr thePnt1,
644                                           GEOM::GEOM_Object_ptr thePnt2,
645                                           GEOM::GEOM_Object_ptr thePnt3);
646   GEOM::GEOM_Object_ptr MakePolyline (GEOM::GEOM_List_ptr thePoints,
647                                       CORBA::Boolean      theIsClosed);
648   GEOM::GEOM_Object_ptr MakeSplineBezier (GEOM::GEOM_List_ptr thePoints,
649                                           CORBA::Boolean      theIsClosed);
650   GEOM::GEOM_Object_ptr MakeSplineInterpolation (GEOM::GEOM_List_ptr thePoints,
651                                                  CORBA::Boolean      theIsClosed,
652                                                  CORBA::Boolean      theDoReordering);
653   GEOM::GEOM_Object_ptr MakeSketcher (const char* theCommand,
654                                                 GEOM::GEOM_List_ptr theWorkingPlane);
655   GEOM::GEOM_Object_ptr Make3DSketcher (GEOM::GEOM_List_ptr theCoordinates);
656
657   //-----------------------------------------------------------//
658   // LocalOperations                                           //
659   //-----------------------------------------------------------//
660   GEOM::GEOM_Object_ptr MakeFilletAll (GEOM::GEOM_Object_ptr theShape,
661                                        CORBA::Double theR);
662   GEOM::GEOM_Object_ptr MakeFilletEdges (GEOM::GEOM_Object_ptr theShape, CORBA::Double theR,
663                                          GEOM::GEOM_List_ptr theEdges);
664   GEOM::GEOM_Object_ptr MakeFilletEdgesR1R2 (GEOM::GEOM_Object_ptr theShape, CORBA::Double theR1,
665                                              CORBA::Double theR2, GEOM::GEOM_List_ptr theEdges);
666   GEOM::GEOM_Object_ptr MakeFilletFaces (GEOM::GEOM_Object_ptr theShape, CORBA::Double theR,
667                                          GEOM::GEOM_List_ptr theFaces);
668   GEOM::GEOM_Object_ptr MakeFilletFacesR1R2 (GEOM::GEOM_Object_ptr theShape, CORBA::Double theR1,
669                                              CORBA::Double theR2, GEOM::GEOM_List_ptr theFaces);
670   GEOM::GEOM_Object_ptr MakeFillet2D (GEOM::GEOM_Object_ptr theShape, CORBA::Double theR,
671                                       GEOM::GEOM_List_ptr theVertexes);
672   GEOM::GEOM_Object_ptr MakeFillet1D (GEOM::GEOM_Object_ptr theShape, CORBA::Double theR,
673                                       GEOM::GEOM_List_ptr theVertexes, CORBA::Boolean doIgnoreSecantVertices);
674   GEOM::GEOM_Object_ptr MakeChamferAll (GEOM::GEOM_Object_ptr theShape, CORBA::Double theD);
675   GEOM::GEOM_Object_ptr MakeChamferEdge (GEOM::GEOM_Object_ptr theShape,
676                                          CORBA::Double theD1, CORBA::Double theD2,
677                                          CORBA::Long theFace1, CORBA::Long theFace2);
678   GEOM::GEOM_Object_ptr MakeChamferEdgeAD (GEOM::GEOM_Object_ptr theShape,
679                                             CORBA::Double theD, CORBA::Double theAngle,
680                                            CORBA::Long theFace1, CORBA::Long theFace2);
681   GEOM::GEOM_Object_ptr MakeChamferFaces (GEOM::GEOM_Object_ptr theShape,
682                                           CORBA::Double theD1, CORBA::Double theD2,
683                                           GEOM::GEOM_List_ptr theFaces);
684   GEOM::GEOM_Object_ptr MakeChamferFacesAD (GEOM::GEOM_Object_ptr theShape,
685                                             CORBA::Double theD, CORBA::Double theAngle,
686                                             GEOM::GEOM_List_ptr theFaces);
687   GEOM::GEOM_Object_ptr MakeChamferEdges (GEOM::GEOM_Object_ptr theShape,
688                                           CORBA::Double theD1, CORBA::Double theD2,
689                                           GEOM::GEOM_List_ptr theEdges);
690   GEOM::GEOM_Object_ptr MakeChamferEdgesAD (GEOM::GEOM_Object_ptr theShape,
691                                             CORBA::Double theD, CORBA::Double theAngle,
692                                                GEOM::GEOM_List_ptr theEdges);
693   GEOM::GEOM_Object_ptr MakeArchimede (GEOM::GEOM_Object_ptr theShape,
694                                        CORBA::Double theWeight,
695                                        CORBA::Double theWaterDensity,
696                                        CORBA::Double theMeshingDeflection);
697   CORBA::Long GetSubShapeIndex (GEOM::GEOM_Object_ptr theShape,
698                                 GEOM::GEOM_Object_ptr theSubShape);
699
700   //-----------------------------------------------------------//
701   // GroupOperations                                           //
702   //-----------------------------------------------------------//
703   GEOM::GEOM_Object_ptr CreateGroup (GEOM::GEOM_Object_ptr theMainShape,
704                                      CORBA::Long theShapeType);
705   void AddObject (GEOM::GEOM_Object_ptr theGroup,
706                   CORBA::Long theSubShapeId);
707   void RemoveObject (GEOM::GEOM_Object_ptr theGroup,
708                      CORBA::Long theSubShapeId);
709   CORBA::Long GetType (GEOM::GEOM_Object_ptr theGroup);
710   GEOM::GEOM_Object_ptr GetMainShape (GEOM::GEOM_Object_ptr theGroup);
711   GEOM::GEOM_List_ptr GetObjects (GEOM::GEOM_Object_ptr theGroup);
712
713   //-----------------------------------------------------------//
714   // ImportExport Operations                                   //
715   //-----------------------------------------------------------//
716
717   void ExportSTL( GEOM::GEOM_Object_ptr theObject,
718                   const char*           theFileName,
719                   const bool            theIsASCII,
720                   CORBA::Double         theDeflection,
721                   const bool            theIsRelative );
722
723   GEOM::GEOM_Object_ptr ImportSTL( const char* theFileName );
724
725   void ExportBREP( GEOM::GEOM_Object_ptr theObject,
726                    const char*           theFileName );
727
728   GEOM::GEOM_Object_ptr ImportBREP( const char* theFileName );
729
730   void ExportSTEP( GEOM::GEOM_Object_ptr theObject,
731                    const char*           theFileName );
732
733   GEOM::GEOM_Object_ptr ImportSTEP( const char* theFileName,
734                                     const bool  theIsIgnoreUnits );
735
736   void ExportIGES( GEOM::GEOM_Object_ptr theObject,
737                    const char*           theFileName,
738                    const char*           theVersion );
739
740   GEOM::GEOM_Object_ptr ImportIGES( const char* theFileName,
741                                     const bool  theIsIgnoreUnits );
742
743   CORBA::Boolean ExportXAO( GEOM::GEOM_Object_ptr shape,
744                             const GEOM::ListOfGO& groups,
745                             const GEOM::ListOfFields& fields,
746                             const char* author,
747                             const char* fileName);
748   CORBA::Boolean ImportXAO( const char* fileName,
749                             GEOM::GEOM_Object_out shape,
750                             GEOM::ListOfGO_out subShapes,
751                             GEOM::ListOfGO_out groups,
752                             GEOM::ListOfFields_out fields );
753
754   void ExportVTK( GEOM::GEOM_Object_ptr theObject,
755                   const char*           theFileName,
756                   CORBA::Double         theDeflection );
757
758   //-----------------------------------------------------------//
759   // Advanced Operations                                       //
760   //-----------------------------------------------------------//
761   GEOM::GEOM_List_ptr MakePipeTShape (CORBA::Double theR1, CORBA::Double theW1, CORBA::Double theL1,
762                                       CORBA::Double theR2, CORBA::Double theW2, CORBA::Double theL2,
763                                       CORBA::Boolean theHexMesh);
764   GEOM::GEOM_List_ptr MakePipeTShapeWithPosition (CORBA::Double theR1, CORBA::Double theW1, CORBA::Double theL1,
765                                                   CORBA::Double theR2, CORBA::Double theW2, CORBA::Double theL2,
766                                                   CORBA::Boolean theHexMesh,
767                                                   GEOM::GEOM_Object_ptr theP1, GEOM::GEOM_Object_ptr theP2, GEOM::GEOM_Object_ptr theP3);
768   GEOM::GEOM_List_ptr MakePipeTShapeChamfer (CORBA::Double theR1, CORBA::Double theW1, CORBA::Double theL1,
769                                              CORBA::Double theR2, CORBA::Double theW2, CORBA::Double theL2,
770                                              CORBA::Double theH, CORBA::Double theW, CORBA::Boolean theHexMesh);
771   GEOM::GEOM_List_ptr MakePipeTShapeChamferWithPosition (CORBA::Double theR1, CORBA::Double theW1, CORBA::Double theL1,
772                                                          CORBA::Double theR2, CORBA::Double theW2, CORBA::Double theL2,
773                                                          CORBA::Double theH, CORBA::Double theW, CORBA::Boolean theHexMesh,
774                                                          GEOM::GEOM_Object_ptr theP1, GEOM::GEOM_Object_ptr theP2, GEOM::GEOM_Object_ptr theP3);
775   GEOM::GEOM_List_ptr MakePipeTShapeFillet (CORBA::Double theR1, CORBA::Double theW1, CORBA::Double theL1,
776                                             CORBA::Double theR2, CORBA::Double theW2, CORBA::Double theL2,
777                                             CORBA::Double theRF, CORBA::Boolean theHexMesh);
778   GEOM::GEOM_List_ptr MakePipeTShapeFilletWithPosition (CORBA::Double theR1, CORBA::Double theW1, CORBA::Double theL1,
779                                                         CORBA::Double theR2, CORBA::Double theW2, CORBA::Double theL2,
780                                                         CORBA::Double theRF, CORBA::Boolean theHexMesh,
781                                                         GEOM::GEOM_Object_ptr theP1, GEOM::GEOM_Object_ptr theP2, GEOM::GEOM_Object_ptr theP3);
782   GEOM::GEOM_Object_ptr MakeDividedDisk (CORBA::Double theR, CORBA::Double theRatio,
783                                          CORBA::Short theOrientation, GEOM::pattern thePattern);
784   GEOM::GEOM_Object_ptr MakeDividedCylinder (CORBA::Double theR, 
785                                              CORBA::Double theH,
786                                              GEOM::pattern thePattern);
787   GEOM::GEOM_Object_ptr MakeSmoothingSurface (GEOM::GEOM_List_ptr thelPoints);
788   /*@@ insert new functions before this line @@ do not remove this line @@*/
789
790 private:
791   SALOME_NamingService *  name_service;
792   GEOM::GEOM_Gen_var      myGeomEngine;
793   CORBA::Long             myStudyID;
794   CORBA::Long             myLastStudyID; // mkr : PAL10770
795   PortableServer::POA_var myPOA;
796
797   GEOM::GEOM_IBasicOperations_var     myBasicOp;
798   GEOM::GEOM_I3DPrimOperations_var    my3DPrimOp;
799   GEOM::GEOM_IBooleanOperations_var   myBoolOp;
800   GEOM::GEOM_IInsertOperations_var    myInsOp;
801   GEOM::GEOM_ITransformOperations_var myTransfOp;
802   GEOM::GEOM_IShapesOperations_var    myShapesOp;
803   GEOM::GEOM_IBlocksOperations_var    myBlocksOp;
804   GEOM::GEOM_ICurvesOperations_var    myCurvesOp;
805   GEOM::GEOM_ILocalOperations_var     myLocalOp;
806   GEOM::GEOM_IGroupOperations_var     myGroupOp;
807   GEOM::IAdvancedOperations_var       myAdvancedOp;
808   GEOM::ISTLOperations_var            mySTLOp;
809   GEOM::IBREPOperations_var           myBREPOp;
810   GEOM::ISTEPOperations_var           mySTEPOp;
811   GEOM::IIGESOperations_var           myIGESOp;
812   GEOM::IXAOOperations_var            myXAOOp;
813 #ifdef WITH_VTK
814   GEOM::IVTKOperations_var            myVTKOp;
815 #endif
816 };
817
818 #endif