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