// This file is generated by omniidl (C++ backend)- omniORB_4_1. Do not edit.
#ifndef __GEOM__Superv_hh__
#define __GEOM__Superv_hh__

#ifndef __CORBA_H_EXTERNAL_GUARD__
#include <omniORB4/CORBA.h>
#endif

#ifndef  USE_stub_in_nt_dll
# define USE_stub_in_nt_dll_NOT_DEFINED_GEOM__Superv
#endif
#ifndef  USE_core_stub_in_nt_dll
# define USE_core_stub_in_nt_dll_NOT_DEFINED_GEOM__Superv
#endif
#ifndef  USE_dyn_stub_in_nt_dll
# define USE_dyn_stub_in_nt_dll_NOT_DEFINED_GEOM__Superv
#endif



#ifndef __SALOME__Exception_hh_EXTERNAL_GUARD__
#define __SALOME__Exception_hh_EXTERNAL_GUARD__
#include <SALOME_Exception.hh>
#endif
#ifndef __SALOME__GenericObj_hh_EXTERNAL_GUARD__
#define __SALOME__GenericObj_hh_EXTERNAL_GUARD__
#include <SALOME_GenericObj.hh>
#endif
#ifndef __SALOMEDS_hh_EXTERNAL_GUARD__
#define __SALOMEDS_hh_EXTERNAL_GUARD__
#include <SALOMEDS.hh>
#endif
#ifndef __SALOME__PyNode_hh_EXTERNAL_GUARD__
#define __SALOME__PyNode_hh_EXTERNAL_GUARD__
#include <SALOME_PyNode.hh>
#endif
#ifndef __SALOME__Component_hh_EXTERNAL_GUARD__
#define __SALOME__Component_hh_EXTERNAL_GUARD__
#include <SALOME_Component.hh>
#endif
#ifndef __SALOMEDS__Attributes_hh_EXTERNAL_GUARD__
#define __SALOMEDS__Attributes_hh_EXTERNAL_GUARD__
#include <SALOMEDS_Attributes.hh>
#endif
#ifndef __GEOM__Gen_hh_EXTERNAL_GUARD__
#define __GEOM__Gen_hh_EXTERNAL_GUARD__
#include <GEOM_Gen.hh>
#endif



#ifdef USE_stub_in_nt_dll
# ifndef USE_core_stub_in_nt_dll
#  define USE_core_stub_in_nt_dll
# endif
# ifndef USE_dyn_stub_in_nt_dll
#  define USE_dyn_stub_in_nt_dll
# endif
#endif

#ifdef _core_attr
# error "A local CPP macro _core_attr has already been defined."
#else
# ifdef  USE_core_stub_in_nt_dll
#  define _core_attr _OMNIORB_NTDLL_IMPORT
# else
#  define _core_attr
# endif
#endif

#ifdef _dyn_attr
# error "A local CPP macro _dyn_attr has already been defined."
#else
# ifdef  USE_dyn_stub_in_nt_dll
#  define _dyn_attr _OMNIORB_NTDLL_IMPORT
# else
#  define _dyn_attr
# endif
#endif





_CORBA_MODULE GEOM

_CORBA_MODULE_BEG

#ifndef __GEOM_mGEOM__List__
#define __GEOM_mGEOM__List__

  class GEOM_List;
  class _objref_GEOM_List;
  class _impl_GEOM_List;
  
  typedef _objref_GEOM_List* GEOM_List_ptr;
  typedef GEOM_List_ptr GEOM_ListRef;

  class GEOM_List_Helper {
  public:
    typedef GEOM_List_ptr _ptr_type;

    static _ptr_type _nil();
    static _CORBA_Boolean is_nil(_ptr_type);
    static void release(_ptr_type);
    static void duplicate(_ptr_type);
    static void marshalObjRef(_ptr_type, cdrStream&);
    static _ptr_type unmarshalObjRef(cdrStream&);
  };

  typedef _CORBA_ObjRef_Var<_objref_GEOM_List, GEOM_List_Helper> GEOM_List_var;
  typedef _CORBA_ObjRef_OUT_arg<_objref_GEOM_List,GEOM_List_Helper > GEOM_List_out;

#endif

  // interface GEOM_List
  class GEOM_List {
  public:
    // Declarations for this interface type.
    typedef GEOM_List_ptr _ptr_type;
    typedef GEOM_List_var _var_type;

    static _ptr_type _duplicate(_ptr_type);
    static _ptr_type _narrow(::CORBA::Object_ptr);
    static _ptr_type _unchecked_narrow(::CORBA::Object_ptr);
    
    static _ptr_type _nil();

    static inline void _marshalObjRef(_ptr_type, cdrStream&);

    static inline _ptr_type _unmarshalObjRef(cdrStream& s) {
      omniObjRef* o = omniObjRef::_unMarshal(_PD_repoId,s);
      if (o)
        return (_ptr_type) o->_ptrToObjRef(_PD_repoId);
      else
        return _nil();
    }

    static _core_attr const char* _PD_repoId;

    // Other IDL defined within this scope.
    
  };

  class _objref_GEOM_List :
    public virtual ::CORBA::Object,
    public virtual omniObjRef
  {
  public:
    

    inline _objref_GEOM_List()  { _PR_setobj(0); }  // nil
    _objref_GEOM_List(omniIOR*, omniIdentity*);

  protected:
    virtual ~_objref_GEOM_List();

    
  private:
    virtual void* _ptrToObjRef(const char*);

    _objref_GEOM_List(const _objref_GEOM_List&);
    _objref_GEOM_List& operator = (const _objref_GEOM_List&);
    // not implemented

    friend class GEOM_List;
  };

  class _pof_GEOM_List : public _OMNI_NS(proxyObjectFactory) {
  public:
    inline _pof_GEOM_List() : _OMNI_NS(proxyObjectFactory)(GEOM_List::_PD_repoId) {}
    virtual ~_pof_GEOM_List();

    virtual omniObjRef* newObjRef(omniIOR*,omniIdentity*);
    virtual _CORBA_Boolean is_a(const char*) const;
  };

  class _impl_GEOM_List :
    public virtual omniServant
  {
  public:
    virtual ~_impl_GEOM_List();

    
    
  public:  // Really protected, workaround for xlC
    virtual _CORBA_Boolean _dispatch(omniCallHandle&);

  private:
    virtual void* _ptrToInterface(const char*);
    virtual const char* _mostDerivedRepoId();
    
  };


  _CORBA_MODULE_VAR _dyn_attr const ::CORBA::TypeCode_ptr _tc_GEOM_List;

#ifndef __GEOM_mGEOM__Superv__
#define __GEOM_mGEOM__Superv__

  class GEOM_Superv;
  class _objref_GEOM_Superv;
  class _impl_GEOM_Superv;
  
  typedef _objref_GEOM_Superv* GEOM_Superv_ptr;
  typedef GEOM_Superv_ptr GEOM_SupervRef;

  class GEOM_Superv_Helper {
  public:
    typedef GEOM_Superv_ptr _ptr_type;

    static _ptr_type _nil();
    static _CORBA_Boolean is_nil(_ptr_type);
    static void release(_ptr_type);
    static void duplicate(_ptr_type);
    static void marshalObjRef(_ptr_type, cdrStream&);
    static _ptr_type unmarshalObjRef(cdrStream&);
  };

  typedef _CORBA_ObjRef_Var<_objref_GEOM_Superv, GEOM_Superv_Helper> GEOM_Superv_var;
  typedef _CORBA_ObjRef_OUT_arg<_objref_GEOM_Superv,GEOM_Superv_Helper > GEOM_Superv_out;

#endif

  // interface GEOM_Superv
  class GEOM_Superv {
  public:
    // Declarations for this interface type.
    typedef GEOM_Superv_ptr _ptr_type;
    typedef GEOM_Superv_var _var_type;

    static _ptr_type _duplicate(_ptr_type);
    static _ptr_type _narrow(::CORBA::Object_ptr);
    static _ptr_type _unchecked_narrow(::CORBA::Object_ptr);
    
    static _ptr_type _nil();

    static inline void _marshalObjRef(_ptr_type, cdrStream&);

    static inline _ptr_type _unmarshalObjRef(cdrStream& s) {
      omniObjRef* o = omniObjRef::_unMarshal(_PD_repoId,s);
      if (o)
        return (_ptr_type) o->_ptrToObjRef(_PD_repoId);
      else
        return _nil();
    }

    static _core_attr const char* _PD_repoId;

    // Other IDL defined within this scope.
    
  };

  class _objref_GEOM_Superv :
    public virtual Engines::_objref_Component,
    public virtual SALOMEDS::_objref_Driver
  {
  public:
    void SetStudyID(::CORBA::Long theStudyID);
    GEOM_List_ptr CreateListOfGO();
    void AddItemToListOfGO(_CORBA_ObjRef_INOUT_arg< GEOM::_objref_GEOM_List, ::GEOM::GEOM_List_Helper > theList, ::GEOM::GEOM_Object_ptr theObject);
    GEOM_List_ptr CreateListOfLong();
    void AddItemToListOfLong(_CORBA_ObjRef_INOUT_arg< GEOM::_objref_GEOM_List, ::GEOM::GEOM_List_Helper > theList, ::CORBA::Long theObject);
    GEOM_List_ptr CreateListOfDouble();
    void AddItemToListOfDouble(_CORBA_ObjRef_INOUT_arg< GEOM::_objref_GEOM_List, ::GEOM::GEOM_List_Helper > theList, ::CORBA::Double theObject);
    GEOM_Object_ptr MakePointXYZ(::CORBA::Double theX, ::CORBA::Double theY, ::CORBA::Double theZ);
    GEOM_Object_ptr MakePointWithReference(::GEOM::GEOM_Object_ptr theReference, ::CORBA::Double theX, ::CORBA::Double theY, ::CORBA::Double theZ);
    GEOM_Object_ptr MakePointOnCurve(::GEOM::GEOM_Object_ptr theRefCurve, ::CORBA::Double theParameter);
    GEOM_Object_ptr MakeTangentOnCurve(::GEOM::GEOM_Object_ptr theRefCurve, ::CORBA::Double theParameter);
    GEOM_Object_ptr MakeVectorDXDYDZ(::CORBA::Double theDX, ::CORBA::Double theDY, ::CORBA::Double theDZ);
    GEOM_Object_ptr MakeVectorTwoPnt(::GEOM::GEOM_Object_ptr thePnt1, ::GEOM::GEOM_Object_ptr thePnt2);
    GEOM_Object_ptr MakeLineTwoPnt(::GEOM::GEOM_Object_ptr thePnt1, ::GEOM::GEOM_Object_ptr thePnt2);
    GEOM_Object_ptr MakeLineTwoFaces(::GEOM::GEOM_Object_ptr theFace1, ::GEOM::GEOM_Object_ptr theFace2);
    GEOM_Object_ptr MakePlaneThreePnt(::GEOM::GEOM_Object_ptr thePnt1, ::GEOM::GEOM_Object_ptr thePnt2, ::GEOM::GEOM_Object_ptr thePnt3, ::CORBA::Double theTrimSize);
    GEOM_Object_ptr MakePlanePntVec(::GEOM::GEOM_Object_ptr thePnt, ::GEOM::GEOM_Object_ptr theVec, ::CORBA::Double theTrimSize);
    GEOM_Object_ptr MakePlaneFace(::GEOM::GEOM_Object_ptr theFace, ::CORBA::Double theTrimSize);
    GEOM_Object_ptr MakePlane2Vec(::GEOM::GEOM_Object_ptr theVec1, ::GEOM::GEOM_Object_ptr theVec2, ::CORBA::Double theTrimSize);
    GEOM_Object_ptr MakePlaneLCS(::GEOM::GEOM_Object_ptr theLCS, ::CORBA::Double theTrimSize, ::CORBA::Double theOrientation);
    GEOM_Object_ptr MakeMarker(::CORBA::Double theOX, ::CORBA::Double theOY, ::CORBA::Double theOZ, ::CORBA::Double theXDX, ::CORBA::Double theXDY, ::CORBA::Double theXDZ, ::CORBA::Double theYDX, ::CORBA::Double theYDY, ::CORBA::Double theYDZ);
    GEOM_Object_ptr MakeMarkerFromShape(::GEOM::GEOM_Object_ptr theShape);
    GEOM_Object_ptr MakeMarkerPntTwoVec(::GEOM::GEOM_Object_ptr theOrigin, ::GEOM::GEOM_Object_ptr theXVec, ::GEOM::GEOM_Object_ptr theYVec);
    GEOM_Object_ptr MakeTangentPlaneOnFace(::GEOM::GEOM_Object_ptr theFace, ::CORBA::Double theParameterU, ::CORBA::Double theParameterV, ::CORBA::Double theTrimSize);
    GEOM_Object_ptr MakeBox(::CORBA::Double theX1, ::CORBA::Double theY1, ::CORBA::Double theZ1, ::CORBA::Double theX2, ::CORBA::Double theY2, ::CORBA::Double theZ2);
    GEOM_Object_ptr MakeBoxDXDYDZ(::CORBA::Double theDX, ::CORBA::Double theDY, ::CORBA::Double theDZ);
    GEOM_Object_ptr MakeBoxTwoPnt(::GEOM::GEOM_Object_ptr thePnt1, ::GEOM::GEOM_Object_ptr thePnt2);
    GEOM_Object_ptr MakeFaceHW(::CORBA::Double theH, ::CORBA::Double theW, ::CORBA::Short theOrientation);
    GEOM_Object_ptr MakeFaceObjHW(::GEOM::GEOM_Object_ptr theObj, ::CORBA::Double theH, ::CORBA::Double theW);
    GEOM_Object_ptr MakeDiskPntVecR(::GEOM::GEOM_Object_ptr thePnt, ::GEOM::GEOM_Object_ptr theVec, ::CORBA::Double theR);
    GEOM_Object_ptr MakeDiskThreePnt(::GEOM::GEOM_Object_ptr thePnt1, ::GEOM::GEOM_Object_ptr thePnt2, ::GEOM::GEOM_Object_ptr thePnt3);
    GEOM_Object_ptr MakeDiskR(::CORBA::Double theR, ::CORBA::Short theOrientation);
    GEOM_Object_ptr MakeCylinderPntVecRH(::GEOM::GEOM_Object_ptr thePnt, ::GEOM::GEOM_Object_ptr theAxis, ::CORBA::Double theRadius, ::CORBA::Double theHeight);
    GEOM_Object_ptr MakeCylinderRH(::CORBA::Double theR, ::CORBA::Double theH);
    GEOM_Object_ptr MakeSphere(::CORBA::Double theX, ::CORBA::Double theY, ::CORBA::Double theZ, ::CORBA::Double theRadius);
    GEOM_Object_ptr MakeSphereR(::CORBA::Double theR);
    GEOM_Object_ptr MakeSpherePntR(::GEOM::GEOM_Object_ptr thePnt, ::CORBA::Double theR);
    GEOM_Object_ptr MakeTorusPntVecRR(::GEOM::GEOM_Object_ptr thePnt, ::GEOM::GEOM_Object_ptr theVec, ::CORBA::Double theRMajor, ::CORBA::Double theRMinor);
    GEOM_Object_ptr MakeTorusRR(::CORBA::Double theRMajor, ::CORBA::Double theRMinor);
    GEOM_Object_ptr MakeConePntVecR1R2H(::GEOM::GEOM_Object_ptr thePnt, ::GEOM::GEOM_Object_ptr theAxis, ::CORBA::Double theR1, ::CORBA::Double theR2, ::CORBA::Double theHeight);
    GEOM_Object_ptr MakeConeR1R2H(::CORBA::Double theR1, ::CORBA::Double theR2, ::CORBA::Double theHeight);
    GEOM_Object_ptr MakePrismVecH(::GEOM::GEOM_Object_ptr theBase, ::GEOM::GEOM_Object_ptr theVec, ::CORBA::Double theH);
    GEOM_Object_ptr MakePrismVecH2Ways(::GEOM::GEOM_Object_ptr theBase, ::GEOM::GEOM_Object_ptr theVec, ::CORBA::Double theH);
    GEOM_Object_ptr MakePrismTwoPnt(::GEOM::GEOM_Object_ptr theBase, ::GEOM::GEOM_Object_ptr thePoint1, ::GEOM::GEOM_Object_ptr thePoint2);
    GEOM_Object_ptr MakePrismTwoPnt2Ways(::GEOM::GEOM_Object_ptr theBase, ::GEOM::GEOM_Object_ptr thePoint1, ::GEOM::GEOM_Object_ptr thePoint2);
    GEOM_Object_ptr MakePipe(::GEOM::GEOM_Object_ptr theBase, ::GEOM::GEOM_Object_ptr thePath);
    GEOM_Object_ptr MakeRevolutionAxisAngle(::GEOM::GEOM_Object_ptr theBase, ::GEOM::GEOM_Object_ptr theAxis, ::CORBA::Double theAngle);
    GEOM_Object_ptr MakeRevolutionAxisAngle2Ways(::GEOM::GEOM_Object_ptr theBase, ::GEOM::GEOM_Object_ptr theAxis, ::CORBA::Double theAngle);
    GEOM_Object_ptr MakeFilling(::GEOM::GEOM_Object_ptr theShape, ::CORBA::Long theMinDeg, ::CORBA::Long theMaxDeg, ::CORBA::Double theTol2D, ::CORBA::Double theTol3D, ::CORBA::Long theNbIter, ::GEOM::filling_oper_method theMethod, ::CORBA::Boolean theApprox);
    GEOM_Object_ptr MakeThruSections(const ::GEOM::ListOfGO& theSeqSections, ::CORBA::Boolean theModeSolid, ::CORBA::Double thePreci, ::CORBA::Boolean theRuled);
    GEOM_Object_ptr MakePipeWithDifferentSections(const ::GEOM::ListOfGO& theSeqBases, const ::GEOM::ListOfGO& theLocations, ::GEOM::GEOM_Object_ptr thePath, ::CORBA::Boolean theWithContact, ::CORBA::Boolean theWithCorrection);
    GEOM_Object_ptr MakePipeWithShellSections(const ::GEOM::ListOfGO& theSeqBases, const ::GEOM::ListOfGO& theSeqSubBases, const ::GEOM::ListOfGO& theLocations, ::GEOM::GEOM_Object_ptr thePath, ::CORBA::Boolean theWithContact, ::CORBA::Boolean theWithCorrection);
    GEOM_Object_ptr MakePipeShellsWithoutPath(const ::GEOM::ListOfGO& theSeqBases, const ::GEOM::ListOfGO& theLocations);
    GEOM_Object_ptr MakePipeBiNormalAlongVector(::GEOM::GEOM_Object_ptr theBase, ::GEOM::GEOM_Object_ptr thePath, ::GEOM::GEOM_Object_ptr theVec);
    GEOM_Object_ptr MakeBoolean(::GEOM::GEOM_Object_ptr theShape1, ::GEOM::GEOM_Object_ptr theShape2, ::CORBA::Long theOperation);
    GEOM_Object_ptr MakeFuse(::GEOM::GEOM_Object_ptr theShape1, ::GEOM::GEOM_Object_ptr theShape2);
    GEOM_Object_ptr MakePartition(::GEOM::GEOM_List_ptr theShapes, ::GEOM::GEOM_List_ptr theTools, ::GEOM::GEOM_List_ptr theKeepInside, ::GEOM::GEOM_List_ptr theRemoveInside, ::CORBA::Short theLimit, ::CORBA::Boolean theRemoveWebs, ::GEOM::GEOM_List_ptr theMaterials, ::CORBA::Short theKeepNonlimitShapes);
    GEOM_Object_ptr MakeHalfPartition(::GEOM::GEOM_Object_ptr theShape, ::GEOM::GEOM_Object_ptr thePlane);
    GEOM_Object_ptr MakeCopy(::GEOM::GEOM_Object_ptr theOriginal);
    void Export(::GEOM::GEOM_Object_ptr theObject, const char* theFileName, const char* theFormatName);
    GEOM_Object_ptr Import(const char* theFileName, const char* theFormatName);
    void ImportTranslators(::GEOM::string_array_out theFormats, ::GEOM::string_array_out thePatterns);
    void ExportTranslators(::GEOM::string_array_out theFormats, ::GEOM::string_array_out thePatterns);
    GEOM_Object_ptr TranslateTwoPoints(::GEOM::GEOM_Object_ptr theObject, ::GEOM::GEOM_Object_ptr thePoint1, ::GEOM::GEOM_Object_ptr thePoint2);
    GEOM_Object_ptr TranslateTwoPointsCopy(::GEOM::GEOM_Object_ptr theObject, ::GEOM::GEOM_Object_ptr thePoint1, ::GEOM::GEOM_Object_ptr thePoint2);
    GEOM_Object_ptr TranslateDXDYDZ(::GEOM::GEOM_Object_ptr theObject, ::CORBA::Double theDX, ::CORBA::Double theDY, ::CORBA::Double theDZ);
    GEOM_Object_ptr TranslateDXDYDZCopy(::GEOM::GEOM_Object_ptr theObject, ::CORBA::Double theDX, ::CORBA::Double theDY, ::CORBA::Double theDZ);
    GEOM_Object_ptr TranslateVector(::GEOM::GEOM_Object_ptr theObject, ::GEOM::GEOM_Object_ptr theVector);
    GEOM_Object_ptr TranslateVectorCopy(::GEOM::GEOM_Object_ptr theObject, ::GEOM::GEOM_Object_ptr theVector);
    GEOM_Object_ptr TranslateVectorDistance(::GEOM::GEOM_Object_ptr theObject, ::GEOM::GEOM_Object_ptr theVector, ::CORBA::Double theDistance, ::CORBA::Boolean theCopy);
    GEOM_Object_ptr MultiTranslate1D(::GEOM::GEOM_Object_ptr theObject, ::GEOM::GEOM_Object_ptr theVector, ::CORBA::Double theStep, ::CORBA::Long theNbTimes);
    GEOM_Object_ptr MultiTranslate2D(::GEOM::GEOM_Object_ptr theObject, ::GEOM::GEOM_Object_ptr theVector1, ::CORBA::Double theStep1, ::CORBA::Long theNbTimes1, ::GEOM::GEOM_Object_ptr theVector2, ::CORBA::Double theStep2, ::CORBA::Long theNbTimes2);
    GEOM_Object_ptr Rotate(::GEOM::GEOM_Object_ptr theObject, ::GEOM::GEOM_Object_ptr theAxis, ::CORBA::Double theAngle);
    GEOM_Object_ptr RotateCopy(::GEOM::GEOM_Object_ptr theObject, ::GEOM::GEOM_Object_ptr theAxis, ::CORBA::Double theAngle);
    GEOM_Object_ptr RotateThreePoints(::GEOM::GEOM_Object_ptr theObject, ::GEOM::GEOM_Object_ptr theCentPoint, ::GEOM::GEOM_Object_ptr thePoint1, ::GEOM::GEOM_Object_ptr thePoint2);
    GEOM_Object_ptr RotateThreePointsCopy(::GEOM::GEOM_Object_ptr theObject, ::GEOM::GEOM_Object_ptr theCentPoint, ::GEOM::GEOM_Object_ptr thePoint1, ::GEOM::GEOM_Object_ptr thePoint2);
    GEOM_Object_ptr MultiRotate1D(::GEOM::GEOM_Object_ptr theObject, ::GEOM::GEOM_Object_ptr theAxis, ::CORBA::Long theNbTimes);
    GEOM_Object_ptr MultiRotate2D(::GEOM::GEOM_Object_ptr theObject, ::GEOM::GEOM_Object_ptr theAxis, ::CORBA::Double theAngle, ::CORBA::Long theNbTimes1, ::CORBA::Double theStep, ::CORBA::Long theNbTimes2);
    GEOM_Object_ptr MirrorPlane(::GEOM::GEOM_Object_ptr theObject, ::GEOM::GEOM_Object_ptr thePlane);
    GEOM_Object_ptr MirrorPlaneCopy(::GEOM::GEOM_Object_ptr theObject, ::GEOM::GEOM_Object_ptr thePlane);
    GEOM_Object_ptr MirrorAxis(::GEOM::GEOM_Object_ptr theObject, ::GEOM::GEOM_Object_ptr theAxis);
    GEOM_Object_ptr MirrorAxisCopy(::GEOM::GEOM_Object_ptr theObject, ::GEOM::GEOM_Object_ptr theAxis);
    GEOM_Object_ptr MirrorPoint(::GEOM::GEOM_Object_ptr theObject, ::GEOM::GEOM_Object_ptr thePoint);
    GEOM_Object_ptr MirrorPointCopy(::GEOM::GEOM_Object_ptr theObject, ::GEOM::GEOM_Object_ptr thePoint);
    GEOM_Object_ptr OffsetShape(::GEOM::GEOM_Object_ptr theObject, ::CORBA::Double theOffset);
    GEOM_Object_ptr OffsetShapeCopy(::GEOM::GEOM_Object_ptr theObject, ::CORBA::Double theOffset);
    GEOM_Object_ptr ScaleShape(::GEOM::GEOM_Object_ptr theObject, ::GEOM::GEOM_Object_ptr thePoint, ::CORBA::Double theFactor);
    GEOM_Object_ptr ScaleShapeCopy(::GEOM::GEOM_Object_ptr theObject, ::GEOM::GEOM_Object_ptr thePoint, ::CORBA::Double theFactor);
    GEOM_Object_ptr ScaleShapeAlongAxes(::GEOM::GEOM_Object_ptr theObject, ::GEOM::GEOM_Object_ptr thePoint, ::CORBA::Double theFactorX, ::CORBA::Double theFactorY, ::CORBA::Double theFactorZ);
    GEOM_Object_ptr ScaleShapeAlongAxesCopy(::GEOM::GEOM_Object_ptr theObject, ::GEOM::GEOM_Object_ptr thePoint, ::CORBA::Double theFactorX, ::CORBA::Double theFactorY, ::CORBA::Double theFactorZ);
    GEOM_Object_ptr PositionShape(::GEOM::GEOM_Object_ptr theObject, ::GEOM::GEOM_Object_ptr theStartLCS, ::GEOM::GEOM_Object_ptr theEndLCS);
    GEOM_Object_ptr PositionShapeCopy(::GEOM::GEOM_Object_ptr theObject, ::GEOM::GEOM_Object_ptr theStartLCS, ::GEOM::GEOM_Object_ptr theEndLCS);
    GEOM_Object_ptr PositionAlongPath(::GEOM::GEOM_Object_ptr theObject, ::GEOM::GEOM_Object_ptr thePath, ::CORBA::Double theDistance, ::CORBA::Boolean theCopy, ::CORBA::Boolean theReverse);
    GEOM_Object_ptr MakeEdge(::GEOM::GEOM_Object_ptr thePnt1, ::GEOM::GEOM_Object_ptr thePnt2);
    GEOM_Object_ptr MakeWire(::GEOM::GEOM_List_ptr theEdgesAndWires, ::CORBA::Double theTolerance);
    GEOM_Object_ptr MakeFace(::GEOM::GEOM_Object_ptr theWire, ::CORBA::Boolean isPlanarWanted);
    GEOM_Object_ptr MakeFaceWires(::GEOM::GEOM_List_ptr theWires, ::CORBA::Boolean isPlanarWanted);
    GEOM_Object_ptr MakeShell(::GEOM::GEOM_List_ptr theFacesAndShells);
    GEOM_Object_ptr MakeSolidShell(::GEOM::GEOM_Object_ptr theShell);
    GEOM_Object_ptr MakeSolidShells(::GEOM::GEOM_List_ptr theShells);
    GEOM_Object_ptr MakeCompound(::GEOM::GEOM_List_ptr theShapes);
    GEOM_Object_ptr MakeGlueFaces(::GEOM::GEOM_Object_ptr theShape, ::CORBA::Double theTolerance, ::CORBA::Boolean doKeepNonSolids);
    GEOM_List_ptr GetGlueFaces(::GEOM::GEOM_Object_ptr theShape, ::CORBA::Double theTolerance);
    GEOM_Object_ptr MakeGlueFacesByList(::GEOM::GEOM_Object_ptr theShape, ::CORBA::Double theTolerance, const ::GEOM::ListOfGO& theFaces, ::CORBA::Boolean doKeepNonSolids);
    GEOM_List_ptr MakeExplode(::GEOM::GEOM_Object_ptr theShape, ::CORBA::Long theShapeType, ::CORBA::Boolean isSorted);
    ::CORBA::Long NumberOfFaces(::GEOM::GEOM_Object_ptr theShape);
    ::CORBA::Long NumberOfEdges(::GEOM::GEOM_Object_ptr theShape);
    GEOM_Object_ptr ChangeOrientation(::GEOM::GEOM_Object_ptr theShape);
    GEOM_List_ptr GetShapesOnShape(::GEOM::GEOM_Object_ptr theCheckShape, ::GEOM::GEOM_Object_ptr theShape, ::CORBA::Short theShapeType, ::GEOM::shape_state theState);
    GEOM_Object_ptr GetShapesOnShapeAsCompound(::GEOM::GEOM_Object_ptr theCheckShape, ::GEOM::GEOM_Object_ptr theShape, ::CORBA::Short theShapeType, ::GEOM::shape_state theState);
    GEOM_Object_ptr MakeQuad4Vertices(::GEOM::GEOM_Object_ptr thePnt1, ::GEOM::GEOM_Object_ptr thePnt2, ::GEOM::GEOM_Object_ptr thePnt3, ::GEOM::GEOM_Object_ptr thePnt4);
    GEOM_Object_ptr MakeQuad(::GEOM::GEOM_Object_ptr theEdge1, ::GEOM::GEOM_Object_ptr theEdge2, ::GEOM::GEOM_Object_ptr theEdge3, ::GEOM::GEOM_Object_ptr theEdge4);
    GEOM_Object_ptr MakeQuad2Edges(::GEOM::GEOM_Object_ptr theEdge1, ::GEOM::GEOM_Object_ptr theEdge2);
    GEOM_Object_ptr MakeHexa(::GEOM::GEOM_Object_ptr theFace1, ::GEOM::GEOM_Object_ptr theFace2, ::GEOM::GEOM_Object_ptr theFace3, ::GEOM::GEOM_Object_ptr theFace4, ::GEOM::GEOM_Object_ptr theFace5, ::GEOM::GEOM_Object_ptr theFace6);
    GEOM_Object_ptr MakeHexa2Faces(::GEOM::GEOM_Object_ptr theFace1, ::GEOM::GEOM_Object_ptr theFace2);
    GEOM_Object_ptr GetPoint(::GEOM::GEOM_Object_ptr theShape, ::CORBA::Double theX, ::CORBA::Double theY, ::CORBA::Double theZ, ::CORBA::Double theEpsilon);
    GEOM_Object_ptr GetEdge(::GEOM::GEOM_Object_ptr theShape, ::GEOM::GEOM_Object_ptr thePoint1, ::GEOM::GEOM_Object_ptr thePoint2);
    GEOM_Object_ptr GetEdgeNearPoint(::GEOM::GEOM_Object_ptr theShape, ::GEOM::GEOM_Object_ptr thePoint);
    GEOM_Object_ptr GetFaceByPoints(::GEOM::GEOM_Object_ptr theShape, ::GEOM::GEOM_Object_ptr thePoint1, ::GEOM::GEOM_Object_ptr thePoint2, ::GEOM::GEOM_Object_ptr thePoint3, ::GEOM::GEOM_Object_ptr thePoint4);
    GEOM_Object_ptr GetFaceByEdges(::GEOM::GEOM_Object_ptr theShape, ::GEOM::GEOM_Object_ptr theEdge1, ::GEOM::GEOM_Object_ptr theEdge2);
    GEOM_Object_ptr GetOppositeFace(::GEOM::GEOM_Object_ptr theBlock, ::GEOM::GEOM_Object_ptr theFace);
    GEOM_Object_ptr GetFaceNearPoint(::GEOM::GEOM_Object_ptr theShape, ::GEOM::GEOM_Object_ptr thePoint);
    GEOM_Object_ptr GetFaceByNormale(::GEOM::GEOM_Object_ptr theBlock, ::GEOM::GEOM_Object_ptr theVector);
    ::CORBA::Boolean IsCompoundOfBlocks(::GEOM::GEOM_Object_ptr theCompound, ::CORBA::Long theMinNbFaces, ::CORBA::Long theMaxNbFaces, ::CORBA::Long& theNbBlocks);
    ::CORBA::Boolean CheckCompoundOfBlocks(::GEOM::GEOM_Object_ptr theCompound, ::GEOM::GEOM_IBlocksOperations::BCErrors_out theErrors);
    char* PrintBCErrors(::GEOM::GEOM_Object_ptr theCompound, const ::GEOM::GEOM_IBlocksOperations::BCErrors& theErrors);
    GEOM_List_ptr ExplodeCompoundOfBlocks(::GEOM::GEOM_Object_ptr theCompound, ::CORBA::Long theMinNbFaces, ::CORBA::Long theMaxNbFaces);
    GEOM_Object_ptr GetBlockNearPoint(::GEOM::GEOM_Object_ptr theCompound, ::GEOM::GEOM_Object_ptr thePoint);
    GEOM_Object_ptr GetBlockByParts(::GEOM::GEOM_Object_ptr theCompound, ::GEOM::GEOM_List_ptr theParts);
    GEOM_List_ptr GetBlocksByParts(::GEOM::GEOM_Object_ptr theCompound, ::GEOM::GEOM_List_ptr theParts);
    GEOM_Object_ptr MakeMultiTransformation1D(::GEOM::GEOM_Object_ptr theBlock, ::CORBA::Long theDirFace1, ::CORBA::Long theDirFace2, ::CORBA::Long theNbTimes);
    GEOM_Object_ptr MakeMultiTransformation2D(::GEOM::GEOM_Object_ptr theBlock, ::CORBA::Long theDirFace1U, ::CORBA::Long theDirFace2U, ::CORBA::Long theNbTimesU, ::CORBA::Long theDirFace1V, ::CORBA::Long theDirFace2V, ::CORBA::Long theNbTimesV);
    GEOM_Object_ptr MakeCirclePntVecR(::GEOM::GEOM_Object_ptr thePnt, ::GEOM::GEOM_Object_ptr theVec, ::CORBA::Double theR);
    GEOM_Object_ptr MakeCircleThreePnt(::GEOM::GEOM_Object_ptr thePnt1, ::GEOM::GEOM_Object_ptr thePnt2, ::GEOM::GEOM_Object_ptr thePnt3);
    GEOM_Object_ptr MakeCircleCenter2Pnt(::GEOM::GEOM_Object_ptr thePnt1, ::GEOM::GEOM_Object_ptr thePnt2, ::GEOM::GEOM_Object_ptr thePnt3);
    GEOM_Object_ptr MakeEllipse(::GEOM::GEOM_Object_ptr thePnt, ::GEOM::GEOM_Object_ptr theVec, ::CORBA::Double theRMajor, ::CORBA::Double theRMinor);
    GEOM_Object_ptr MakeEllipseVec(::GEOM::GEOM_Object_ptr thePnt, ::GEOM::GEOM_Object_ptr theVec, ::CORBA::Double theRMajor, ::CORBA::Double theRMinor, ::GEOM::GEOM_Object_ptr theVecMaj);
    GEOM_Object_ptr MakeArc(::GEOM::GEOM_Object_ptr thePnt1, ::GEOM::GEOM_Object_ptr thePnt2, ::GEOM::GEOM_Object_ptr thePnt3);
    GEOM_Object_ptr MakeArcCenter(::GEOM::GEOM_Object_ptr theCenter, ::GEOM::GEOM_Object_ptr thePnt1, ::GEOM::GEOM_Object_ptr thePnt2, ::CORBA::Boolean theSense);
    GEOM_Object_ptr MakeArcOfEllipse(::GEOM::GEOM_Object_ptr theCenter, ::GEOM::GEOM_Object_ptr thePnt1, ::GEOM::GEOM_Object_ptr thePnt2);
    GEOM_Object_ptr MakePolyline(::GEOM::GEOM_List_ptr thePoints);
    GEOM_Object_ptr MakeSplineBezier(::GEOM::GEOM_List_ptr thePoints);
    GEOM_Object_ptr MakeSplineInterpolation(::GEOM::GEOM_List_ptr thePoints, ::CORBA::Boolean theIsClosed);
    GEOM_Object_ptr MakeSketcher(const char* theCommand, ::GEOM::GEOM_List_ptr theWorkingPlane);
    GEOM_Object_ptr MakeFilletAll(::GEOM::GEOM_Object_ptr theShape, ::CORBA::Double theR);
    GEOM_Object_ptr MakeFilletEdges(::GEOM::GEOM_Object_ptr theShape, ::CORBA::Double theR, ::GEOM::GEOM_List_ptr theEdges);
    GEOM_Object_ptr MakeFilletEdgesR1R2(::GEOM::GEOM_Object_ptr theShape, ::CORBA::Double theR1, ::CORBA::Double theR2, ::GEOM::GEOM_List_ptr theEdges);
    GEOM_Object_ptr MakeFilletFaces(::GEOM::GEOM_Object_ptr theShape, ::CORBA::Double theR, ::GEOM::GEOM_List_ptr theFaces);
    GEOM_Object_ptr MakeFilletFacesR1R2(::GEOM::GEOM_Object_ptr theShape, ::CORBA::Double theR1, ::CORBA::Double theR2, ::GEOM::GEOM_List_ptr theFaces);
    GEOM_Object_ptr MakeFillet2D(::GEOM::GEOM_Object_ptr theShape, ::CORBA::Double theR, ::GEOM::GEOM_List_ptr theVertexes);
    GEOM_Object_ptr MakeChamferAll(::GEOM::GEOM_Object_ptr theShape, ::CORBA::Double theD);
    GEOM_Object_ptr MakeChamferEdge(::GEOM::GEOM_Object_ptr theShape, ::CORBA::Double theD1, ::CORBA::Double theD2, ::CORBA::Long theFace1, ::CORBA::Long theFace2);
    GEOM_Object_ptr MakeChamferEdgeAD(::GEOM::GEOM_Object_ptr theShape, ::CORBA::Double theD, ::CORBA::Double theAngle, ::CORBA::Long theFace1, ::CORBA::Long theFace2);
    GEOM_Object_ptr MakeChamferFaces(::GEOM::GEOM_Object_ptr theShape, ::CORBA::Double theD1, ::CORBA::Double theD2, ::GEOM::GEOM_List_ptr theFaces);
    GEOM_Object_ptr MakeChamferFacesAD(::GEOM::GEOM_Object_ptr theShape, ::CORBA::Double theD, ::CORBA::Double theAngle, ::GEOM::GEOM_List_ptr theFaces);
    GEOM_Object_ptr MakeChamferEdges(::GEOM::GEOM_Object_ptr theShape, ::CORBA::Double theD1, ::CORBA::Double theD2, ::GEOM::GEOM_List_ptr theEdges);
    GEOM_Object_ptr MakeChamferEdgesAD(::GEOM::GEOM_Object_ptr theShape, ::CORBA::Double theD, ::CORBA::Double theAngle, ::GEOM::GEOM_List_ptr theEdges);
    GEOM_Object_ptr MakeArchimede(::GEOM::GEOM_Object_ptr theShape, ::CORBA::Double theWeight, ::CORBA::Double theWaterDensity, ::CORBA::Double theMeshDeflection);
    ::CORBA::Long GetSubShapeIndex(::GEOM::GEOM_Object_ptr theShape, ::GEOM::GEOM_Object_ptr theSubShape);
    GEOM_Object_ptr CreateGroup(::GEOM::GEOM_Object_ptr theMainShape, ::CORBA::Long theShapeType);
    void AddObject(::GEOM::GEOM_Object_ptr theGroup, ::CORBA::Long theSubShapeId);
    void RemoveObject(::GEOM::GEOM_Object_ptr theGroup, ::CORBA::Long theSubShapeId);
    ::CORBA::Long GetType(::GEOM::GEOM_Object_ptr theGroup);
    GEOM_Object_ptr GetMainShape(::GEOM::GEOM_Object_ptr theGroup);
    GEOM_List_ptr GetObjects(::GEOM::GEOM_Object_ptr theGroup);
    GEOM_List_ptr MakePipeTShape(::CORBA::Double theR1, ::CORBA::Double theW1, ::CORBA::Double theL1, ::CORBA::Double theR2, ::CORBA::Double theW2, ::CORBA::Double theL2, ::CORBA::Boolean theHexMesh);
    GEOM_List_ptr MakePipeTShapeWithPosition(::CORBA::Double theR1, ::CORBA::Double theW1, ::CORBA::Double theL1, ::CORBA::Double theR2, ::CORBA::Double theW2, ::CORBA::Double theL2, ::CORBA::Boolean theHexMesh, ::GEOM::GEOM_Object_ptr theP1, ::GEOM::GEOM_Object_ptr theP2, ::GEOM::GEOM_Object_ptr theP3);
    GEOM_List_ptr MakePipeTShapeChamfer(::CORBA::Double theR1, ::CORBA::Double theW1, ::CORBA::Double theL1, ::CORBA::Double theR2, ::CORBA::Double theW2, ::CORBA::Double theL2, ::CORBA::Double theH, ::CORBA::Double theW, ::CORBA::Boolean theHexMesh);
    GEOM_List_ptr MakePipeTShapeChamferWithPosition(::CORBA::Double theR1, ::CORBA::Double theW1, ::CORBA::Double theL1, ::CORBA::Double theR2, ::CORBA::Double theW2, ::CORBA::Double theL2, ::CORBA::Double theH, ::CORBA::Double theW, ::CORBA::Boolean theHexMesh, ::GEOM::GEOM_Object_ptr theP1, ::GEOM::GEOM_Object_ptr theP2, ::GEOM::GEOM_Object_ptr theP3);
    GEOM_List_ptr MakePipeTShapeFillet(::CORBA::Double theR1, ::CORBA::Double theW1, ::CORBA::Double theL1, ::CORBA::Double theR2, ::CORBA::Double theW2, ::CORBA::Double theL2, ::CORBA::Double theRF, ::CORBA::Boolean theHexMesh);
    GEOM_List_ptr MakePipeTShapeFilletWithPosition(::CORBA::Double theR1, ::CORBA::Double theW1, ::CORBA::Double theL1, ::CORBA::Double theR2, ::CORBA::Double theW2, ::CORBA::Double theL2, ::CORBA::Double theRF, ::CORBA::Boolean theHexMesh, ::GEOM::GEOM_Object_ptr theP1, ::GEOM::GEOM_Object_ptr theP2, ::GEOM::GEOM_Object_ptr theP3);

    inline _objref_GEOM_Superv()  { _PR_setobj(0); }  // nil
    _objref_GEOM_Superv(omniIOR*, omniIdentity*);

  protected:
    virtual ~_objref_GEOM_Superv();

    
  private:
    virtual void* _ptrToObjRef(const char*);

    _objref_GEOM_Superv(const _objref_GEOM_Superv&);
    _objref_GEOM_Superv& operator = (const _objref_GEOM_Superv&);
    // not implemented

    friend class GEOM_Superv;
  };

  class _pof_GEOM_Superv : public _OMNI_NS(proxyObjectFactory) {
  public:
    inline _pof_GEOM_Superv() : _OMNI_NS(proxyObjectFactory)(GEOM_Superv::_PD_repoId) {}
    virtual ~_pof_GEOM_Superv();

    virtual omniObjRef* newObjRef(omniIOR*,omniIdentity*);
    virtual _CORBA_Boolean is_a(const char*) const;
  };

  class _impl_GEOM_Superv :
    public virtual Engines::_impl_Component,
    public virtual SALOMEDS::_impl_Driver
  {
  public:
    virtual ~_impl_GEOM_Superv();

    virtual void SetStudyID(::CORBA::Long theStudyID) = 0;
    virtual GEOM_List_ptr CreateListOfGO() = 0;
    virtual void AddItemToListOfGO(::GEOM::GEOM_List_ptr& theList, ::GEOM::GEOM_Object_ptr theObject) = 0;
    virtual GEOM_List_ptr CreateListOfLong() = 0;
    virtual void AddItemToListOfLong(::GEOM::GEOM_List_ptr& theList, ::CORBA::Long theObject) = 0;
    virtual GEOM_List_ptr CreateListOfDouble() = 0;
    virtual void AddItemToListOfDouble(::GEOM::GEOM_List_ptr& theList, ::CORBA::Double theObject) = 0;
    virtual GEOM_Object_ptr MakePointXYZ(::CORBA::Double theX, ::CORBA::Double theY, ::CORBA::Double theZ) = 0;
    virtual GEOM_Object_ptr MakePointWithReference(::GEOM::GEOM_Object_ptr theReference, ::CORBA::Double theX, ::CORBA::Double theY, ::CORBA::Double theZ) = 0;
    virtual GEOM_Object_ptr MakePointOnCurve(::GEOM::GEOM_Object_ptr theRefCurve, ::CORBA::Double theParameter) = 0;
    virtual GEOM_Object_ptr MakeTangentOnCurve(::GEOM::GEOM_Object_ptr theRefCurve, ::CORBA::Double theParameter) = 0;
    virtual GEOM_Object_ptr MakeVectorDXDYDZ(::CORBA::Double theDX, ::CORBA::Double theDY, ::CORBA::Double theDZ) = 0;
    virtual GEOM_Object_ptr MakeVectorTwoPnt(::GEOM::GEOM_Object_ptr thePnt1, ::GEOM::GEOM_Object_ptr thePnt2) = 0;
    virtual GEOM_Object_ptr MakeLineTwoPnt(::GEOM::GEOM_Object_ptr thePnt1, ::GEOM::GEOM_Object_ptr thePnt2) = 0;
    virtual GEOM_Object_ptr MakeLineTwoFaces(::GEOM::GEOM_Object_ptr theFace1, ::GEOM::GEOM_Object_ptr theFace2) = 0;
    virtual GEOM_Object_ptr MakePlaneThreePnt(::GEOM::GEOM_Object_ptr thePnt1, ::GEOM::GEOM_Object_ptr thePnt2, ::GEOM::GEOM_Object_ptr thePnt3, ::CORBA::Double theTrimSize) = 0;
    virtual GEOM_Object_ptr MakePlanePntVec(::GEOM::GEOM_Object_ptr thePnt, ::GEOM::GEOM_Object_ptr theVec, ::CORBA::Double theTrimSize) = 0;
    virtual GEOM_Object_ptr MakePlaneFace(::GEOM::GEOM_Object_ptr theFace, ::CORBA::Double theTrimSize) = 0;
    virtual GEOM_Object_ptr MakePlane2Vec(::GEOM::GEOM_Object_ptr theVec1, ::GEOM::GEOM_Object_ptr theVec2, ::CORBA::Double theTrimSize) = 0;
    virtual GEOM_Object_ptr MakePlaneLCS(::GEOM::GEOM_Object_ptr theLCS, ::CORBA::Double theTrimSize, ::CORBA::Double theOrientation) = 0;
    virtual GEOM_Object_ptr MakeMarker(::CORBA::Double theOX, ::CORBA::Double theOY, ::CORBA::Double theOZ, ::CORBA::Double theXDX, ::CORBA::Double theXDY, ::CORBA::Double theXDZ, ::CORBA::Double theYDX, ::CORBA::Double theYDY, ::CORBA::Double theYDZ) = 0;
    virtual GEOM_Object_ptr MakeMarkerFromShape(::GEOM::GEOM_Object_ptr theShape) = 0;
    virtual GEOM_Object_ptr MakeMarkerPntTwoVec(::GEOM::GEOM_Object_ptr theOrigin, ::GEOM::GEOM_Object_ptr theXVec, ::GEOM::GEOM_Object_ptr theYVec) = 0;
    virtual GEOM_Object_ptr MakeTangentPlaneOnFace(::GEOM::GEOM_Object_ptr theFace, ::CORBA::Double theParameterU, ::CORBA::Double theParameterV, ::CORBA::Double theTrimSize) = 0;
    virtual GEOM_Object_ptr MakeBox(::CORBA::Double theX1, ::CORBA::Double theY1, ::CORBA::Double theZ1, ::CORBA::Double theX2, ::CORBA::Double theY2, ::CORBA::Double theZ2) = 0;
    virtual GEOM_Object_ptr MakeBoxDXDYDZ(::CORBA::Double theDX, ::CORBA::Double theDY, ::CORBA::Double theDZ) = 0;
    virtual GEOM_Object_ptr MakeBoxTwoPnt(::GEOM::GEOM_Object_ptr thePnt1, ::GEOM::GEOM_Object_ptr thePnt2) = 0;
    virtual GEOM_Object_ptr MakeFaceHW(::CORBA::Double theH, ::CORBA::Double theW, ::CORBA::Short theOrientation) = 0;
    virtual GEOM_Object_ptr MakeFaceObjHW(::GEOM::GEOM_Object_ptr theObj, ::CORBA::Double theH, ::CORBA::Double theW) = 0;
    virtual GEOM_Object_ptr MakeDiskPntVecR(::GEOM::GEOM_Object_ptr thePnt, ::GEOM::GEOM_Object_ptr theVec, ::CORBA::Double theR) = 0;
    virtual GEOM_Object_ptr MakeDiskThreePnt(::GEOM::GEOM_Object_ptr thePnt1, ::GEOM::GEOM_Object_ptr thePnt2, ::GEOM::GEOM_Object_ptr thePnt3) = 0;
    virtual GEOM_Object_ptr MakeDiskR(::CORBA::Double theR, ::CORBA::Short theOrientation) = 0;
    virtual GEOM_Object_ptr MakeCylinderPntVecRH(::GEOM::GEOM_Object_ptr thePnt, ::GEOM::GEOM_Object_ptr theAxis, ::CORBA::Double theRadius, ::CORBA::Double theHeight) = 0;
    virtual GEOM_Object_ptr MakeCylinderRH(::CORBA::Double theR, ::CORBA::Double theH) = 0;
    virtual GEOM_Object_ptr MakeSphere(::CORBA::Double theX, ::CORBA::Double theY, ::CORBA::Double theZ, ::CORBA::Double theRadius) = 0;
    virtual GEOM_Object_ptr MakeSphereR(::CORBA::Double theR) = 0;
    virtual GEOM_Object_ptr MakeSpherePntR(::GEOM::GEOM_Object_ptr thePnt, ::CORBA::Double theR) = 0;
    virtual GEOM_Object_ptr MakeTorusPntVecRR(::GEOM::GEOM_Object_ptr thePnt, ::GEOM::GEOM_Object_ptr theVec, ::CORBA::Double theRMajor, ::CORBA::Double theRMinor) = 0;
    virtual GEOM_Object_ptr MakeTorusRR(::CORBA::Double theRMajor, ::CORBA::Double theRMinor) = 0;
    virtual GEOM_Object_ptr MakeConePntVecR1R2H(::GEOM::GEOM_Object_ptr thePnt, ::GEOM::GEOM_Object_ptr theAxis, ::CORBA::Double theR1, ::CORBA::Double theR2, ::CORBA::Double theHeight) = 0;
    virtual GEOM_Object_ptr MakeConeR1R2H(::CORBA::Double theR1, ::CORBA::Double theR2, ::CORBA::Double theHeight) = 0;
    virtual GEOM_Object_ptr MakePrismVecH(::GEOM::GEOM_Object_ptr theBase, ::GEOM::GEOM_Object_ptr theVec, ::CORBA::Double theH) = 0;
    virtual GEOM_Object_ptr MakePrismVecH2Ways(::GEOM::GEOM_Object_ptr theBase, ::GEOM::GEOM_Object_ptr theVec, ::CORBA::Double theH) = 0;
    virtual GEOM_Object_ptr MakePrismTwoPnt(::GEOM::GEOM_Object_ptr theBase, ::GEOM::GEOM_Object_ptr thePoint1, ::GEOM::GEOM_Object_ptr thePoint2) = 0;
    virtual GEOM_Object_ptr MakePrismTwoPnt2Ways(::GEOM::GEOM_Object_ptr theBase, ::GEOM::GEOM_Object_ptr thePoint1, ::GEOM::GEOM_Object_ptr thePoint2) = 0;
    virtual GEOM_Object_ptr MakePipe(::GEOM::GEOM_Object_ptr theBase, ::GEOM::GEOM_Object_ptr thePath) = 0;
    virtual GEOM_Object_ptr MakeRevolutionAxisAngle(::GEOM::GEOM_Object_ptr theBase, ::GEOM::GEOM_Object_ptr theAxis, ::CORBA::Double theAngle) = 0;
    virtual GEOM_Object_ptr MakeRevolutionAxisAngle2Ways(::GEOM::GEOM_Object_ptr theBase, ::GEOM::GEOM_Object_ptr theAxis, ::CORBA::Double theAngle) = 0;
    virtual GEOM_Object_ptr MakeFilling(::GEOM::GEOM_Object_ptr theShape, ::CORBA::Long theMinDeg, ::CORBA::Long theMaxDeg, ::CORBA::Double theTol2D, ::CORBA::Double theTol3D, ::CORBA::Long theNbIter, ::GEOM::filling_oper_method theMethod, ::CORBA::Boolean theApprox) = 0;
    virtual GEOM_Object_ptr MakeThruSections(const ::GEOM::ListOfGO& theSeqSections, ::CORBA::Boolean theModeSolid, ::CORBA::Double thePreci, ::CORBA::Boolean theRuled) = 0;
    virtual GEOM_Object_ptr MakePipeWithDifferentSections(const ::GEOM::ListOfGO& theSeqBases, const ::GEOM::ListOfGO& theLocations, ::GEOM::GEOM_Object_ptr thePath, ::CORBA::Boolean theWithContact, ::CORBA::Boolean theWithCorrection) = 0;
    virtual GEOM_Object_ptr MakePipeWithShellSections(const ::GEOM::ListOfGO& theSeqBases, const ::GEOM::ListOfGO& theSeqSubBases, const ::GEOM::ListOfGO& theLocations, ::GEOM::GEOM_Object_ptr thePath, ::CORBA::Boolean theWithContact, ::CORBA::Boolean theWithCorrection) = 0;
    virtual GEOM_Object_ptr MakePipeShellsWithoutPath(const ::GEOM::ListOfGO& theSeqBases, const ::GEOM::ListOfGO& theLocations) = 0;
    virtual GEOM_Object_ptr MakePipeBiNormalAlongVector(::GEOM::GEOM_Object_ptr theBase, ::GEOM::GEOM_Object_ptr thePath, ::GEOM::GEOM_Object_ptr theVec) = 0;
    virtual GEOM_Object_ptr MakeBoolean(::GEOM::GEOM_Object_ptr theShape1, ::GEOM::GEOM_Object_ptr theShape2, ::CORBA::Long theOperation) = 0;
    virtual GEOM_Object_ptr MakeFuse(::GEOM::GEOM_Object_ptr theShape1, ::GEOM::GEOM_Object_ptr theShape2) = 0;
    virtual GEOM_Object_ptr MakePartition(::GEOM::GEOM_List_ptr theShapes, ::GEOM::GEOM_List_ptr theTools, ::GEOM::GEOM_List_ptr theKeepInside, ::GEOM::GEOM_List_ptr theRemoveInside, ::CORBA::Short theLimit, ::CORBA::Boolean theRemoveWebs, ::GEOM::GEOM_List_ptr theMaterials, ::CORBA::Short theKeepNonlimitShapes) = 0;
    virtual GEOM_Object_ptr MakeHalfPartition(::GEOM::GEOM_Object_ptr theShape, ::GEOM::GEOM_Object_ptr thePlane) = 0;
    virtual GEOM_Object_ptr MakeCopy(::GEOM::GEOM_Object_ptr theOriginal) = 0;
    virtual void Export(::GEOM::GEOM_Object_ptr theObject, const char* theFileName, const char* theFormatName) = 0;
    virtual GEOM_Object_ptr Import(const char* theFileName, const char* theFormatName) = 0;
    virtual void ImportTranslators(::GEOM::string_array_out theFormats, ::GEOM::string_array_out thePatterns) = 0;
    virtual void ExportTranslators(::GEOM::string_array_out theFormats, ::GEOM::string_array_out thePatterns) = 0;
    virtual GEOM_Object_ptr TranslateTwoPoints(::GEOM::GEOM_Object_ptr theObject, ::GEOM::GEOM_Object_ptr thePoint1, ::GEOM::GEOM_Object_ptr thePoint2) = 0;
    virtual GEOM_Object_ptr TranslateTwoPointsCopy(::GEOM::GEOM_Object_ptr theObject, ::GEOM::GEOM_Object_ptr thePoint1, ::GEOM::GEOM_Object_ptr thePoint2) = 0;
    virtual GEOM_Object_ptr TranslateDXDYDZ(::GEOM::GEOM_Object_ptr theObject, ::CORBA::Double theDX, ::CORBA::Double theDY, ::CORBA::Double theDZ) = 0;
    virtual GEOM_Object_ptr TranslateDXDYDZCopy(::GEOM::GEOM_Object_ptr theObject, ::CORBA::Double theDX, ::CORBA::Double theDY, ::CORBA::Double theDZ) = 0;
    virtual GEOM_Object_ptr TranslateVector(::GEOM::GEOM_Object_ptr theObject, ::GEOM::GEOM_Object_ptr theVector) = 0;
    virtual GEOM_Object_ptr TranslateVectorCopy(::GEOM::GEOM_Object_ptr theObject, ::GEOM::GEOM_Object_ptr theVector) = 0;
    virtual GEOM_Object_ptr TranslateVectorDistance(::GEOM::GEOM_Object_ptr theObject, ::GEOM::GEOM_Object_ptr theVector, ::CORBA::Double theDistance, ::CORBA::Boolean theCopy) = 0;
    virtual GEOM_Object_ptr MultiTranslate1D(::GEOM::GEOM_Object_ptr theObject, ::GEOM::GEOM_Object_ptr theVector, ::CORBA::Double theStep, ::CORBA::Long theNbTimes) = 0;
    virtual GEOM_Object_ptr MultiTranslate2D(::GEOM::GEOM_Object_ptr theObject, ::GEOM::GEOM_Object_ptr theVector1, ::CORBA::Double theStep1, ::CORBA::Long theNbTimes1, ::GEOM::GEOM_Object_ptr theVector2, ::CORBA::Double theStep2, ::CORBA::Long theNbTimes2) = 0;
    virtual GEOM_Object_ptr Rotate(::GEOM::GEOM_Object_ptr theObject, ::GEOM::GEOM_Object_ptr theAxis, ::CORBA::Double theAngle) = 0;
    virtual GEOM_Object_ptr RotateCopy(::GEOM::GEOM_Object_ptr theObject, ::GEOM::GEOM_Object_ptr theAxis, ::CORBA::Double theAngle) = 0;
    virtual GEOM_Object_ptr RotateThreePoints(::GEOM::GEOM_Object_ptr theObject, ::GEOM::GEOM_Object_ptr theCentPoint, ::GEOM::GEOM_Object_ptr thePoint1, ::GEOM::GEOM_Object_ptr thePoint2) = 0;
    virtual GEOM_Object_ptr RotateThreePointsCopy(::GEOM::GEOM_Object_ptr theObject, ::GEOM::GEOM_Object_ptr theCentPoint, ::GEOM::GEOM_Object_ptr thePoint1, ::GEOM::GEOM_Object_ptr thePoint2) = 0;
    virtual GEOM_Object_ptr MultiRotate1D(::GEOM::GEOM_Object_ptr theObject, ::GEOM::GEOM_Object_ptr theAxis, ::CORBA::Long theNbTimes) = 0;
    virtual GEOM_Object_ptr MultiRotate2D(::GEOM::GEOM_Object_ptr theObject, ::GEOM::GEOM_Object_ptr theAxis, ::CORBA::Double theAngle, ::CORBA::Long theNbTimes1, ::CORBA::Double theStep, ::CORBA::Long theNbTimes2) = 0;
    virtual GEOM_Object_ptr MirrorPlane(::GEOM::GEOM_Object_ptr theObject, ::GEOM::GEOM_Object_ptr thePlane) = 0;
    virtual GEOM_Object_ptr MirrorPlaneCopy(::GEOM::GEOM_Object_ptr theObject, ::GEOM::GEOM_Object_ptr thePlane) = 0;
    virtual GEOM_Object_ptr MirrorAxis(::GEOM::GEOM_Object_ptr theObject, ::GEOM::GEOM_Object_ptr theAxis) = 0;
    virtual GEOM_Object_ptr MirrorAxisCopy(::GEOM::GEOM_Object_ptr theObject, ::GEOM::GEOM_Object_ptr theAxis) = 0;
    virtual GEOM_Object_ptr MirrorPoint(::GEOM::GEOM_Object_ptr theObject, ::GEOM::GEOM_Object_ptr thePoint) = 0;
    virtual GEOM_Object_ptr MirrorPointCopy(::GEOM::GEOM_Object_ptr theObject, ::GEOM::GEOM_Object_ptr thePoint) = 0;
    virtual GEOM_Object_ptr OffsetShape(::GEOM::GEOM_Object_ptr theObject, ::CORBA::Double theOffset) = 0;
    virtual GEOM_Object_ptr OffsetShapeCopy(::GEOM::GEOM_Object_ptr theObject, ::CORBA::Double theOffset) = 0;
    virtual GEOM_Object_ptr ScaleShape(::GEOM::GEOM_Object_ptr theObject, ::GEOM::GEOM_Object_ptr thePoint, ::CORBA::Double theFactor) = 0;
    virtual GEOM_Object_ptr ScaleShapeCopy(::GEOM::GEOM_Object_ptr theObject, ::GEOM::GEOM_Object_ptr thePoint, ::CORBA::Double theFactor) = 0;
    virtual GEOM_Object_ptr ScaleShapeAlongAxes(::GEOM::GEOM_Object_ptr theObject, ::GEOM::GEOM_Object_ptr thePoint, ::CORBA::Double theFactorX, ::CORBA::Double theFactorY, ::CORBA::Double theFactorZ) = 0;
    virtual GEOM_Object_ptr ScaleShapeAlongAxesCopy(::GEOM::GEOM_Object_ptr theObject, ::GEOM::GEOM_Object_ptr thePoint, ::CORBA::Double theFactorX, ::CORBA::Double theFactorY, ::CORBA::Double theFactorZ) = 0;
    virtual GEOM_Object_ptr PositionShape(::GEOM::GEOM_Object_ptr theObject, ::GEOM::GEOM_Object_ptr theStartLCS, ::GEOM::GEOM_Object_ptr theEndLCS) = 0;
    virtual GEOM_Object_ptr PositionShapeCopy(::GEOM::GEOM_Object_ptr theObject, ::GEOM::GEOM_Object_ptr theStartLCS, ::GEOM::GEOM_Object_ptr theEndLCS) = 0;
    virtual GEOM_Object_ptr PositionAlongPath(::GEOM::GEOM_Object_ptr theObject, ::GEOM::GEOM_Object_ptr thePath, ::CORBA::Double theDistance, ::CORBA::Boolean theCopy, ::CORBA::Boolean theReverse) = 0;
    virtual GEOM_Object_ptr MakeEdge(::GEOM::GEOM_Object_ptr thePnt1, ::GEOM::GEOM_Object_ptr thePnt2) = 0;
    virtual GEOM_Object_ptr MakeWire(::GEOM::GEOM_List_ptr theEdgesAndWires, ::CORBA::Double theTolerance) = 0;
    virtual GEOM_Object_ptr MakeFace(::GEOM::GEOM_Object_ptr theWire, ::CORBA::Boolean isPlanarWanted) = 0;
    virtual GEOM_Object_ptr MakeFaceWires(::GEOM::GEOM_List_ptr theWires, ::CORBA::Boolean isPlanarWanted) = 0;
    virtual GEOM_Object_ptr MakeShell(::GEOM::GEOM_List_ptr theFacesAndShells) = 0;
    virtual GEOM_Object_ptr MakeSolidShell(::GEOM::GEOM_Object_ptr theShell) = 0;
    virtual GEOM_Object_ptr MakeSolidShells(::GEOM::GEOM_List_ptr theShells) = 0;
    virtual GEOM_Object_ptr MakeCompound(::GEOM::GEOM_List_ptr theShapes) = 0;
    virtual GEOM_Object_ptr MakeGlueFaces(::GEOM::GEOM_Object_ptr theShape, ::CORBA::Double theTolerance, ::CORBA::Boolean doKeepNonSolids) = 0;
    virtual GEOM_List_ptr GetGlueFaces(::GEOM::GEOM_Object_ptr theShape, ::CORBA::Double theTolerance) = 0;
    virtual GEOM_Object_ptr MakeGlueFacesByList(::GEOM::GEOM_Object_ptr theShape, ::CORBA::Double theTolerance, const ::GEOM::ListOfGO& theFaces, ::CORBA::Boolean doKeepNonSolids) = 0;
    virtual GEOM_List_ptr MakeExplode(::GEOM::GEOM_Object_ptr theShape, ::CORBA::Long theShapeType, ::CORBA::Boolean isSorted) = 0;
    virtual ::CORBA::Long NumberOfFaces(::GEOM::GEOM_Object_ptr theShape) = 0;
    virtual ::CORBA::Long NumberOfEdges(::GEOM::GEOM_Object_ptr theShape) = 0;
    virtual GEOM_Object_ptr ChangeOrientation(::GEOM::GEOM_Object_ptr theShape) = 0;
    virtual GEOM_List_ptr GetShapesOnShape(::GEOM::GEOM_Object_ptr theCheckShape, ::GEOM::GEOM_Object_ptr theShape, ::CORBA::Short theShapeType, ::GEOM::shape_state theState) = 0;
    virtual GEOM_Object_ptr GetShapesOnShapeAsCompound(::GEOM::GEOM_Object_ptr theCheckShape, ::GEOM::GEOM_Object_ptr theShape, ::CORBA::Short theShapeType, ::GEOM::shape_state theState) = 0;
    virtual GEOM_Object_ptr MakeQuad4Vertices(::GEOM::GEOM_Object_ptr thePnt1, ::GEOM::GEOM_Object_ptr thePnt2, ::GEOM::GEOM_Object_ptr thePnt3, ::GEOM::GEOM_Object_ptr thePnt4) = 0;
    virtual GEOM_Object_ptr MakeQuad(::GEOM::GEOM_Object_ptr theEdge1, ::GEOM::GEOM_Object_ptr theEdge2, ::GEOM::GEOM_Object_ptr theEdge3, ::GEOM::GEOM_Object_ptr theEdge4) = 0;
    virtual GEOM_Object_ptr MakeQuad2Edges(::GEOM::GEOM_Object_ptr theEdge1, ::GEOM::GEOM_Object_ptr theEdge2) = 0;
    virtual GEOM_Object_ptr MakeHexa(::GEOM::GEOM_Object_ptr theFace1, ::GEOM::GEOM_Object_ptr theFace2, ::GEOM::GEOM_Object_ptr theFace3, ::GEOM::GEOM_Object_ptr theFace4, ::GEOM::GEOM_Object_ptr theFace5, ::GEOM::GEOM_Object_ptr theFace6) = 0;
    virtual GEOM_Object_ptr MakeHexa2Faces(::GEOM::GEOM_Object_ptr theFace1, ::GEOM::GEOM_Object_ptr theFace2) = 0;
    virtual GEOM_Object_ptr GetPoint(::GEOM::GEOM_Object_ptr theShape, ::CORBA::Double theX, ::CORBA::Double theY, ::CORBA::Double theZ, ::CORBA::Double theEpsilon) = 0;
    virtual GEOM_Object_ptr GetEdge(::GEOM::GEOM_Object_ptr theShape, ::GEOM::GEOM_Object_ptr thePoint1, ::GEOM::GEOM_Object_ptr thePoint2) = 0;
    virtual GEOM_Object_ptr GetEdgeNearPoint(::GEOM::GEOM_Object_ptr theShape, ::GEOM::GEOM_Object_ptr thePoint) = 0;
    virtual GEOM_Object_ptr GetFaceByPoints(::GEOM::GEOM_Object_ptr theShape, ::GEOM::GEOM_Object_ptr thePoint1, ::GEOM::GEOM_Object_ptr thePoint2, ::GEOM::GEOM_Object_ptr thePoint3, ::GEOM::GEOM_Object_ptr thePoint4) = 0;
    virtual GEOM_Object_ptr GetFaceByEdges(::GEOM::GEOM_Object_ptr theShape, ::GEOM::GEOM_Object_ptr theEdge1, ::GEOM::GEOM_Object_ptr theEdge2) = 0;
    virtual GEOM_Object_ptr GetOppositeFace(::GEOM::GEOM_Object_ptr theBlock, ::GEOM::GEOM_Object_ptr theFace) = 0;
    virtual GEOM_Object_ptr GetFaceNearPoint(::GEOM::GEOM_Object_ptr theShape, ::GEOM::GEOM_Object_ptr thePoint) = 0;
    virtual GEOM_Object_ptr GetFaceByNormale(::GEOM::GEOM_Object_ptr theBlock, ::GEOM::GEOM_Object_ptr theVector) = 0;
    virtual ::CORBA::Boolean IsCompoundOfBlocks(::GEOM::GEOM_Object_ptr theCompound, ::CORBA::Long theMinNbFaces, ::CORBA::Long theMaxNbFaces, ::CORBA::Long& theNbBlocks) = 0;
    virtual ::CORBA::Boolean CheckCompoundOfBlocks(::GEOM::GEOM_Object_ptr theCompound, ::GEOM::GEOM_IBlocksOperations::BCErrors_out theErrors) = 0;
    virtual char* PrintBCErrors(::GEOM::GEOM_Object_ptr theCompound, const ::GEOM::GEOM_IBlocksOperations::BCErrors& theErrors) = 0;
    virtual GEOM_List_ptr ExplodeCompoundOfBlocks(::GEOM::GEOM_Object_ptr theCompound, ::CORBA::Long theMinNbFaces, ::CORBA::Long theMaxNbFaces) = 0;
    virtual GEOM_Object_ptr GetBlockNearPoint(::GEOM::GEOM_Object_ptr theCompound, ::GEOM::GEOM_Object_ptr thePoint) = 0;
    virtual GEOM_Object_ptr GetBlockByParts(::GEOM::GEOM_Object_ptr theCompound, ::GEOM::GEOM_List_ptr theParts) = 0;
    virtual GEOM_List_ptr GetBlocksByParts(::GEOM::GEOM_Object_ptr theCompound, ::GEOM::GEOM_List_ptr theParts) = 0;
    virtual GEOM_Object_ptr MakeMultiTransformation1D(::GEOM::GEOM_Object_ptr theBlock, ::CORBA::Long theDirFace1, ::CORBA::Long theDirFace2, ::CORBA::Long theNbTimes) = 0;
    virtual GEOM_Object_ptr MakeMultiTransformation2D(::GEOM::GEOM_Object_ptr theBlock, ::CORBA::Long theDirFace1U, ::CORBA::Long theDirFace2U, ::CORBA::Long theNbTimesU, ::CORBA::Long theDirFace1V, ::CORBA::Long theDirFace2V, ::CORBA::Long theNbTimesV) = 0;
    virtual GEOM_Object_ptr MakeCirclePntVecR(::GEOM::GEOM_Object_ptr thePnt, ::GEOM::GEOM_Object_ptr theVec, ::CORBA::Double theR) = 0;
    virtual GEOM_Object_ptr MakeCircleThreePnt(::GEOM::GEOM_Object_ptr thePnt1, ::GEOM::GEOM_Object_ptr thePnt2, ::GEOM::GEOM_Object_ptr thePnt3) = 0;
    virtual GEOM_Object_ptr MakeCircleCenter2Pnt(::GEOM::GEOM_Object_ptr thePnt1, ::GEOM::GEOM_Object_ptr thePnt2, ::GEOM::GEOM_Object_ptr thePnt3) = 0;
    virtual GEOM_Object_ptr MakeEllipse(::GEOM::GEOM_Object_ptr thePnt, ::GEOM::GEOM_Object_ptr theVec, ::CORBA::Double theRMajor, ::CORBA::Double theRMinor) = 0;
    virtual GEOM_Object_ptr MakeEllipseVec(::GEOM::GEOM_Object_ptr thePnt, ::GEOM::GEOM_Object_ptr theVec, ::CORBA::Double theRMajor, ::CORBA::Double theRMinor, ::GEOM::GEOM_Object_ptr theVecMaj) = 0;
    virtual GEOM_Object_ptr MakeArc(::GEOM::GEOM_Object_ptr thePnt1, ::GEOM::GEOM_Object_ptr thePnt2, ::GEOM::GEOM_Object_ptr thePnt3) = 0;
    virtual GEOM_Object_ptr MakeArcCenter(::GEOM::GEOM_Object_ptr theCenter, ::GEOM::GEOM_Object_ptr thePnt1, ::GEOM::GEOM_Object_ptr thePnt2, ::CORBA::Boolean theSense) = 0;
    virtual GEOM_Object_ptr MakeArcOfEllipse(::GEOM::GEOM_Object_ptr theCenter, ::GEOM::GEOM_Object_ptr thePnt1, ::GEOM::GEOM_Object_ptr thePnt2) = 0;
    virtual GEOM_Object_ptr MakePolyline(::GEOM::GEOM_List_ptr thePoints) = 0;
    virtual GEOM_Object_ptr MakeSplineBezier(::GEOM::GEOM_List_ptr thePoints) = 0;
    virtual GEOM_Object_ptr MakeSplineInterpolation(::GEOM::GEOM_List_ptr thePoints, ::CORBA::Boolean theIsClosed) = 0;
    virtual GEOM_Object_ptr MakeSketcher(const char* theCommand, ::GEOM::GEOM_List_ptr theWorkingPlane) = 0;
    virtual GEOM_Object_ptr MakeFilletAll(::GEOM::GEOM_Object_ptr theShape, ::CORBA::Double theR) = 0;
    virtual GEOM_Object_ptr MakeFilletEdges(::GEOM::GEOM_Object_ptr theShape, ::CORBA::Double theR, ::GEOM::GEOM_List_ptr theEdges) = 0;
    virtual GEOM_Object_ptr MakeFilletEdgesR1R2(::GEOM::GEOM_Object_ptr theShape, ::CORBA::Double theR1, ::CORBA::Double theR2, ::GEOM::GEOM_List_ptr theEdges) = 0;
    virtual GEOM_Object_ptr MakeFilletFaces(::GEOM::GEOM_Object_ptr theShape, ::CORBA::Double theR, ::GEOM::GEOM_List_ptr theFaces) = 0;
    virtual GEOM_Object_ptr MakeFilletFacesR1R2(::GEOM::GEOM_Object_ptr theShape, ::CORBA::Double theR1, ::CORBA::Double theR2, ::GEOM::GEOM_List_ptr theFaces) = 0;
    virtual GEOM_Object_ptr MakeFillet2D(::GEOM::GEOM_Object_ptr theShape, ::CORBA::Double theR, ::GEOM::GEOM_List_ptr theVertexes) = 0;
    virtual GEOM_Object_ptr MakeChamferAll(::GEOM::GEOM_Object_ptr theShape, ::CORBA::Double theD) = 0;
    virtual GEOM_Object_ptr MakeChamferEdge(::GEOM::GEOM_Object_ptr theShape, ::CORBA::Double theD1, ::CORBA::Double theD2, ::CORBA::Long theFace1, ::CORBA::Long theFace2) = 0;
    virtual GEOM_Object_ptr MakeChamferEdgeAD(::GEOM::GEOM_Object_ptr theShape, ::CORBA::Double theD, ::CORBA::Double theAngle, ::CORBA::Long theFace1, ::CORBA::Long theFace2) = 0;
    virtual GEOM_Object_ptr MakeChamferFaces(::GEOM::GEOM_Object_ptr theShape, ::CORBA::Double theD1, ::CORBA::Double theD2, ::GEOM::GEOM_List_ptr theFaces) = 0;
    virtual GEOM_Object_ptr MakeChamferFacesAD(::GEOM::GEOM_Object_ptr theShape, ::CORBA::Double theD, ::CORBA::Double theAngle, ::GEOM::GEOM_List_ptr theFaces) = 0;
    virtual GEOM_Object_ptr MakeChamferEdges(::GEOM::GEOM_Object_ptr theShape, ::CORBA::Double theD1, ::CORBA::Double theD2, ::GEOM::GEOM_List_ptr theEdges) = 0;
    virtual GEOM_Object_ptr MakeChamferEdgesAD(::GEOM::GEOM_Object_ptr theShape, ::CORBA::Double theD, ::CORBA::Double theAngle, ::GEOM::GEOM_List_ptr theEdges) = 0;
    virtual GEOM_Object_ptr MakeArchimede(::GEOM::GEOM_Object_ptr theShape, ::CORBA::Double theWeight, ::CORBA::Double theWaterDensity, ::CORBA::Double theMeshDeflection) = 0;
    virtual ::CORBA::Long GetSubShapeIndex(::GEOM::GEOM_Object_ptr theShape, ::GEOM::GEOM_Object_ptr theSubShape) = 0;
    virtual GEOM_Object_ptr CreateGroup(::GEOM::GEOM_Object_ptr theMainShape, ::CORBA::Long theShapeType) = 0;
    virtual void AddObject(::GEOM::GEOM_Object_ptr theGroup, ::CORBA::Long theSubShapeId) = 0;
    virtual void RemoveObject(::GEOM::GEOM_Object_ptr theGroup, ::CORBA::Long theSubShapeId) = 0;
    virtual ::CORBA::Long GetType(::GEOM::GEOM_Object_ptr theGroup) = 0;
    virtual GEOM_Object_ptr GetMainShape(::GEOM::GEOM_Object_ptr theGroup) = 0;
    virtual GEOM_List_ptr GetObjects(::GEOM::GEOM_Object_ptr theGroup) = 0;
    virtual GEOM_List_ptr MakePipeTShape(::CORBA::Double theR1, ::CORBA::Double theW1, ::CORBA::Double theL1, ::CORBA::Double theR2, ::CORBA::Double theW2, ::CORBA::Double theL2, ::CORBA::Boolean theHexMesh) = 0;
    virtual GEOM_List_ptr MakePipeTShapeWithPosition(::CORBA::Double theR1, ::CORBA::Double theW1, ::CORBA::Double theL1, ::CORBA::Double theR2, ::CORBA::Double theW2, ::CORBA::Double theL2, ::CORBA::Boolean theHexMesh, ::GEOM::GEOM_Object_ptr theP1, ::GEOM::GEOM_Object_ptr theP2, ::GEOM::GEOM_Object_ptr theP3) = 0;
    virtual GEOM_List_ptr MakePipeTShapeChamfer(::CORBA::Double theR1, ::CORBA::Double theW1, ::CORBA::Double theL1, ::CORBA::Double theR2, ::CORBA::Double theW2, ::CORBA::Double theL2, ::CORBA::Double theH, ::CORBA::Double theW, ::CORBA::Boolean theHexMesh) = 0;
    virtual GEOM_List_ptr MakePipeTShapeChamferWithPosition(::CORBA::Double theR1, ::CORBA::Double theW1, ::CORBA::Double theL1, ::CORBA::Double theR2, ::CORBA::Double theW2, ::CORBA::Double theL2, ::CORBA::Double theH, ::CORBA::Double theW, ::CORBA::Boolean theHexMesh, ::GEOM::GEOM_Object_ptr theP1, ::GEOM::GEOM_Object_ptr theP2, ::GEOM::GEOM_Object_ptr theP3) = 0;
    virtual GEOM_List_ptr MakePipeTShapeFillet(::CORBA::Double theR1, ::CORBA::Double theW1, ::CORBA::Double theL1, ::CORBA::Double theR2, ::CORBA::Double theW2, ::CORBA::Double theL2, ::CORBA::Double theRF, ::CORBA::Boolean theHexMesh) = 0;
    virtual GEOM_List_ptr MakePipeTShapeFilletWithPosition(::CORBA::Double theR1, ::CORBA::Double theW1, ::CORBA::Double theL1, ::CORBA::Double theR2, ::CORBA::Double theW2, ::CORBA::Double theL2, ::CORBA::Double theRF, ::CORBA::Boolean theHexMesh, ::GEOM::GEOM_Object_ptr theP1, ::GEOM::GEOM_Object_ptr theP2, ::GEOM::GEOM_Object_ptr theP3) = 0;
    
  public:  // Really protected, workaround for xlC
    virtual _CORBA_Boolean _dispatch(omniCallHandle&);

  private:
    virtual void* _ptrToInterface(const char*);
    virtual const char* _mostDerivedRepoId();
    
  };


  _CORBA_MODULE_VAR _dyn_attr const ::CORBA::TypeCode_ptr _tc_GEOM_Superv;

_CORBA_MODULE_END



_CORBA_MODULE POA_GEOM
_CORBA_MODULE_BEG

  class GEOM_List :
    public virtual GEOM::_impl_GEOM_List,
    public virtual ::PortableServer::ServantBase
  {
  public:
    virtual ~GEOM_List();

    inline ::GEOM::GEOM_List_ptr _this() {
      return (::GEOM::GEOM_List_ptr) _do_this(::GEOM::GEOM_List::_PD_repoId);
    }
  };

  class GEOM_Superv :
    public virtual GEOM::_impl_GEOM_Superv,
    public virtual POA_Engines::Component,
      public virtual POA_SALOMEDS::Driver
  {
  public:
    virtual ~GEOM_Superv();

    inline ::GEOM::GEOM_Superv_ptr _this() {
      return (::GEOM::GEOM_Superv_ptr) _do_this(::GEOM::GEOM_Superv::_PD_repoId);
    }
  };

_CORBA_MODULE_END



_CORBA_MODULE OBV_GEOM
_CORBA_MODULE_BEG

_CORBA_MODULE_END





#undef _core_attr
#undef _dyn_attr

void operator<<=(::CORBA::Any& _a, GEOM::GEOM_List_ptr _s);
void operator<<=(::CORBA::Any& _a, GEOM::GEOM_List_ptr* _s);
_CORBA_Boolean operator>>=(const ::CORBA::Any& _a, GEOM::GEOM_List_ptr& _s);

void operator<<=(::CORBA::Any& _a, GEOM::GEOM_Superv_ptr _s);
void operator<<=(::CORBA::Any& _a, GEOM::GEOM_Superv_ptr* _s);
_CORBA_Boolean operator>>=(const ::CORBA::Any& _a, GEOM::GEOM_Superv_ptr& _s);



inline void
GEOM::GEOM_List::_marshalObjRef(::GEOM::GEOM_List_ptr obj, cdrStream& s) {
  omniObjRef::_marshal(obj->_PR_getobj(),s);
}


inline void
GEOM::GEOM_Superv::_marshalObjRef(::GEOM::GEOM_Superv_ptr obj, cdrStream& s) {
  omniObjRef::_marshal(obj->_PR_getobj(),s);
}




#ifdef   USE_stub_in_nt_dll_NOT_DEFINED_GEOM__Superv
# undef  USE_stub_in_nt_dll
# undef  USE_stub_in_nt_dll_NOT_DEFINED_GEOM__Superv
#endif
#ifdef   USE_core_stub_in_nt_dll_NOT_DEFINED_GEOM__Superv
# undef  USE_core_stub_in_nt_dll
# undef  USE_core_stub_in_nt_dll_NOT_DEFINED_GEOM__Superv
#endif
#ifdef   USE_dyn_stub_in_nt_dll_NOT_DEFINED_GEOM__Superv
# undef  USE_dyn_stub_in_nt_dll
# undef  USE_dyn_stub_in_nt_dll_NOT_DEFINED_GEOM__Superv
#endif

#endif  // __GEOM__Superv_hh__

