Salome HOME
Debug, reduce code, mesh selection, dump python.
[modules/smesh.git] / src / SMESH_I / SMESH_Homard_i.hxx
index 1a45e1878a9c27f6adc3877b98222555b51aa12f..3f08b4d2ff3b5476e1d45a2e8aa4ab9f36133682 100644 (file)
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 
-// Remarques :
-// L'ordre de description des fonctions est le meme dans tous les fichiers
-// HOMARD_aaaa.idl, HOMARD_aaaa.hxx, HOMARD_aaaa.cxx, HOMARD_aaaa_i.hxx, HOMARD_aaaa_i.cxx :
-// 1. Les generalites : Name, Delete, DumpPython, Dump, Restore
-// 2. Les caracteristiques
-// 3. Le lien avec les autres structures
-//
-// Quand les 2 fonctions Setxxx et Getxxx sont presentes, Setxxx est decrit en premier
-//
-
 #ifndef _SMESH_HOMARD_I_HXX_
 #define _SMESH_HOMARD_I_HXX_
 
@@ -36,6 +26,7 @@
 #include CORBA_CLIENT_HEADER(SALOMEDS_Attributes)
 #include CORBA_CLIENT_HEADER(SALOME_ModuleCatalog)
 #include CORBA_CLIENT_HEADER(SMESH_Gen)
+#include CORBA_CLIENT_HEADER(SMESH_Mesh)
 
 #include "SMESH.hxx"
 #include "SMESH_Homard.hxx"
 #include <string>
 #include <vector>
 
-//namespace SMESHHOMARDImpl
-//{
-//  class HOMARD_Boundary;
-//  class HOMARD_Cas;
-//  class HOMARD_Hypothesis;
-//  class HOMARD_Iteration;
-//};
-
 namespace SMESHHOMARD_I
 {
 
-class SMESH_I_EXPORT HOMARD_Boundary_i:
-  public virtual Engines_Component_i,
-  public virtual POA_SMESHHOMARD::HOMARD_Boundary,
-  public virtual PortableServer::ServantBase
+class SMESH_I_EXPORT HOMARD_Boundary_i : public virtual SALOME::GenericObj_i,
+                                         public virtual POA_SMESHHOMARD::HOMARD_Boundary
 {
 public:
-  HOMARD_Boundary_i( CORBA::ORB_ptr orb, SMESHHOMARD::HOMARD_Gen_var gen_i );
+  HOMARD_Boundary_i(SMESHHOMARD::HOMARD_Gen_var gen_i);
   HOMARD_Boundary_i();
 
   virtual ~HOMARD_Boundary_i();
 
   // Generalites
-  void                   SetName( const char* Name );
+  void                   SetName(const char* Name);
   char*                  GetName();
 
-  CORBA::Long            Delete();
-
   char*                  GetDumpPython();
 
-  std::string            Dump() const;
-  bool                   Restore( const std::string& stream );
-
   // Caracteristiques
-  void                   SetType( CORBA::Long Type );
+  void                   SetType(CORBA::Long Type);
   CORBA::Long            GetType();
 
-  void                   SetMeshName( const char* MeshName );
+  void                   SetMeshName(const char* MeshName);
   char*                  GetMeshName();
 
-  void                   SetDataFile( const char* DataFile );
+  void                   SetDataFile(const char* DataFile);
   char*                  GetDataFile();
 
-  void                   SetCylinder( double Xcentre, double Ycentre, double ZCentre,
+  void                   SetCylinder(double Xcentre, double Ycentre, double ZCentre,
                                       double Xaxe, double Yaxe, double Zaxe,
-                                      double rayon );
-  void                   SetSphere( double Xcentre, double Ycentre, double ZCentre,
-                                    double rayon );
-  void                   SetConeR( double Xcentre1, double Ycentre1, double Zcentre1, double Rayon1,
+                                      double rayon);
+  void                   SetSphere(double Xcentre, double Ycentre, double ZCentre,
+                                    double rayon);
+  void                   SetConeR(double Xcentre1, double Ycentre1, double Zcentre1, double Rayon1,
                                    double Xcentre2, double Ycentre2, double Zcentre2, double Rayon2);
-  void                   SetConeA( double Xaxe, double Yaxe, double Zaxe, double Angle,
+  void                   SetConeA(double Xaxe, double Yaxe, double Zaxe, double Angle,
                                    double Xcentre, double Ycentre, double ZCentre);
-  void                   SetTorus( double Xcentre, double Ycentre, double ZCentre,
+  void                   SetTorus(double Xcentre, double Ycentre, double ZCentre,
                                       double Xaxe, double Yaxe, double Zaxe,
-                                      double rayonRev, double rayonPri );
+                                      double rayonRev, double rayonPri);
 
   SMESHHOMARD::double_array*  GetCoords();
 
-  void                   SetLimit( double Xincr, double Yincr, double Zincr);
+  void                   SetLimit(double Xincr, double Yincr, double Zincr);
   SMESHHOMARD::double_array*  GetLimit();
 
-  void                   AddGroup( const char* Group);
+  void                   AddGroup(const char* Group);
   void                   SetGroups(const SMESHHOMARD::ListGroupType& ListGroup);
   SMESHHOMARD::ListGroupType* GetGroups();
 
-// Liens avec les autres structures
-  void                   SetCaseCreation( const char* NomCaseCreation );
-  char*                  GetCaseCreation();
+  // Liens avec les autres structures
+  void  SetCaseCreation(const char* NomCaseCreation);
+  char* GetCaseCreation();
 
 
 private:
-  SMESHHOMARDImpl::HOMARD_Boundary*     myHomardBoundary;
-
-  CORBA::ORB_ptr         _orb;
+  SMESHHOMARDImpl::HOMARD_Boundary* myHomardBoundary;
   SMESHHOMARD::HOMARD_Gen_var _gen_i;
 };
 
-class SMESH_I_EXPORT HOMARD_Cas_i:
-  public virtual Engines_Component_i,
-  public virtual POA_SMESHHOMARD::HOMARD_Cas,
-  public virtual PortableServer::ServantBase
+class SMESH_I_EXPORT HOMARD_Cas_i : public virtual SALOME::GenericObj_i,
+                                    public virtual POA_SMESHHOMARD::HOMARD_Cas
 {
 public:
-  HOMARD_Cas_i( CORBA::ORB_ptr orb, SMESHHOMARD::HOMARD_Gen_var gen_i );
+  HOMARD_Cas_i(SMESHHOMARD::HOMARD_Gen_var gen_i);
   HOMARD_Cas_i();
 
   virtual ~HOMARD_Cas_i();
 
-  // Generalites
-  void                   SetName( const char* Name );
-  char*                  GetName();
-
-  CORBA::Long            Delete( CORBA::Long Option );
-
-  char*                  GetDumpPython();
-
-  std::string            Dump() const;
-  bool                   Restore( const std::string& stream );
+  char* GetName();
+  char* GetDumpPython();
 
   // Caracteristiques
-  void                   SetDirName( const char* NomDir );
-  char*                  GetDirName();
-
-  CORBA::Long            GetState();
-
-  CORBA::Long            GetNumberofIter();
+  void  SetDirName(const char* NomDir);
+  char* GetDirName();
 
-  void                   SetConfType( CORBA::Long ConfType );
-  CORBA::Long            GetConfType();
+  void        SetConfType(CORBA::Long ConfType);
+  CORBA::Long GetConfType();
 
-  void                   SetExtType( CORBA::Long ExtType );
-  CORBA::Long            GetExtType();
+  void                  SetBoundingBox(const SMESHHOMARD::extrema& LesExtremes);
+  SMESHHOMARD::extrema* GetBoundingBox();
 
-  void                   SetBoundingBox( const SMESHHOMARD::extrema& LesExtremes );
-  SMESHHOMARD::extrema*       GetBoundingBox();
-
-  void                   AddGroup( const char* Group);
-  void                   SetGroups(const SMESHHOMARD::ListGroupType& ListGroup);
+  void AddGroup(const char* Group);
+  void SetGroups(const SMESHHOMARD::ListGroupType& ListGroup);
   SMESHHOMARD::ListGroupType* GetGroups();
 
-  void                   AddBoundary(const char* Boundary);
-  void                   AddBoundaryGroup(const char* Boundary, const char* Group);
-  SMESHHOMARD::ListBoundaryGroupType*  GetBoundaryGroup();
-  void                   SupprBoundaryGroup( );
-
-  void                   SetPyram( CORBA::Long Pyram );
-  CORBA::Long            GetPyram();
-
-  void                   MeshInfo(CORBA::Long Qual, CORBA::Long Diam, CORBA::Long Conn, CORBA::Long Tail, CORBA::Long Inte);
+  void AddBoundary(const char* Boundary);
+  void AddBoundaryGroup(const char* Boundary, const char* Group);
+  SMESHHOMARD::ListBoundaryGroupType* GetBoundaryGroup();
+  void SupprBoundaryGroup();
 
-// Liens avec les autres structures
-  char*                  GetIter0Name();
-  SMESHHOMARD::HOMARD_Iteration_ptr GetIter0();
-
-  SMESHHOMARD::HOMARD_Iteration_ptr  NextIteration( const char* Name );
-
-  SMESHHOMARD::HOMARD_Iteration_ptr  LastIteration();
-
-  void                   AddIteration( const char* NomIteration );
+  void AddIteration(const char* NomIteration);
 
 private:
-  SMESHHOMARDImpl::HOMARD_Cas*          myHomardCas;
-
-  CORBA::ORB_ptr         _orb;
+  SMESHHOMARDImpl::HOMARD_Cas* myHomardCas;
   SMESHHOMARD::HOMARD_Gen_var _gen_i;
 };
 
-class SMESH_I_EXPORT HOMARD_Hypothesis_i:
-  public virtual Engines_Component_i,
-  public virtual POA_SMESHHOMARD::HOMARD_Hypothesis,
-  public virtual PortableServer::ServantBase
+class SMESH_I_EXPORT HOMARD_Hypothesis_i : public virtual SALOME::GenericObj_i,
+                                           public virtual POA_SMESHHOMARD::HOMARD_Hypothesis
 {
 public:
-  HOMARD_Hypothesis_i( CORBA::ORB_ptr orb, SMESHHOMARD::HOMARD_Gen_var gen_i );
+  HOMARD_Hypothesis_i(SMESHHOMARD::HOMARD_Gen_var gen_i);
   HOMARD_Hypothesis_i();
 
   virtual ~HOMARD_Hypothesis_i();
 
-// Generalites
-  void                   SetName( const char* Name );
-  char*                  GetName();
-
-  CORBA::Long            Delete();
-
-  char*                  GetDumpPython();
-
-  std::string            Dump() const;
-  bool                   Restore( const std::string& stream );
-
-// Caracteristiques
-  void                   SetUnifRefinUnRef( CORBA::Long TypeRaffDera );
-  SMESHHOMARD::listeTypes*    GetAdapRefinUnRef();
-  CORBA::Long            GetAdapType();
-  CORBA::Long            GetRefinType();
-  CORBA::Long            GetUnRefType();
-
-  void                   SetField( const char* FieldName );
-  char*                  GetFieldName();
-  void                   SetUseField(CORBA::Long UsField);
-  SMESHHOMARD::InfosHypo*     GetField();
-
-  void                   SetUseComp(CORBA::Long UsCmpI);
-  void                   AddComp( const char* NomComp );
-  void                   SupprComp( const char* NomComp );
-  void                   SupprComps();
-  SMESHHOMARD::listeComposantsHypo* GetComps();
-
-  void                   SetRefinThr(CORBA::Long TypeThR, CORBA::Double ThreshR);
-  CORBA::Long            GetRefinThrType();
-  void                   SetUnRefThr(CORBA::Long TypeThC, CORBA::Double ThreshC);
-  CORBA::Long            GetUnRefThrType();
-
-  void                   SetNivMax( CORBA::Long NivMax );
-  CORBA::Long            GetNivMax();
-
-  void                   SetDiamMin( CORBA::Double DiamMin );
-  CORBA::Double          GetDiamMin();
-
-  void                   SetAdapInit( CORBA::Long AdapInit );
-  CORBA::Long            GetAdapInit();
-
-  void                   SetExtraOutput( CORBA::Long ExtraOutput );
-  CORBA::Long            GetExtraOutput();
-
-  void                   AddGroup( const char* Group);
-  void                   SupprGroup( const char* Group );
-  void                   SupprGroups();
-  void                   SetGroups(const SMESHHOMARD::ListGroupType& ListGroup);
-  SMESHHOMARD::ListGroupType* GetGroups();
-
-  void                   SetTypeFieldInterp( CORBA::Long TypeFieldInterp );
-  CORBA::Long            GetTypeFieldInterp();
-  void                   AddFieldInterp( const char* FieldInterp );
-  void                   AddFieldInterpType( const char* FieldInterp, CORBA::Long TypeInterp );
-  void                   SupprFieldInterp( const char* FieldInterp );
-  void                   SupprFieldInterps();
-  SMESHHOMARD::listeFieldInterpsHypo* GetFieldInterps();
-
-// Liens avec les autres structures
-  void                   SetCaseCreation( const char* NomCaseCreation );
-  char*                  GetCaseCreation();
+  // Generalites
+  void SetExtraOutput(CORBA::Long ExtraOutput);
+  CORBA::Long GetExtraOutput();
 
-  void                   LinkIteration( const char* NomIteration );
-  void                   UnLinkIteration( const char* NomIteration );
-  SMESHHOMARD::listeIters*    GetIterations();
+  void LinkIteration(const char* NomIteration);
+  void UnLinkIteration(const char* NomIteration);
 
 private:
   SMESHHOMARDImpl::HOMARD_Hypothesis* myHomardHypothesis;
-
-  CORBA::ORB_ptr               _orb;
   SMESHHOMARD::HOMARD_Gen_var  _gen_i;
 };
 
-class SMESH_I_EXPORT HOMARD_Iteration_i:
-  public virtual Engines_Component_i,
-  public virtual POA_SMESHHOMARD::HOMARD_Iteration,
-  public virtual PortableServer::ServantBase
+class SMESH_I_EXPORT HOMARD_Iteration_i : public virtual SALOME::GenericObj_i,
+                                          public virtual POA_SMESHHOMARD::HOMARD_Iteration
 {
 public:
-  HOMARD_Iteration_i( CORBA::ORB_ptr orb,
-                      SMESHHOMARD::HOMARD_Gen_var gen_i );
+  HOMARD_Iteration_i(SMESHHOMARD::HOMARD_Gen_var gen_i);
   HOMARD_Iteration_i();
 
   virtual ~HOMARD_Iteration_i();
 
-// Generalites
-  void                   SetName( const char* Name );
+  // Generalites
+  void                   SetName(const char* Name);
   char*                  GetName();
 
-  CORBA::Long            Delete( CORBA::Long Option, bool doRemoveWorkingFiles );
-
-  char*                  GetDumpPython();
-
-  std::string            Dump() const;
-  bool                   Restore( const std::string& stream );
-
-// Caracteristiques
-  void                   SetDirNameLoc( const char* NomDir );
+  // Caracteristiques
+  void                   SetDirNameLoc(const char* NomDir);
   char*                  GetDirNameLoc();
 
   char*                  GetDirName();
 
-  void                   SetNumber( CORBA::Long NumIter );
+  void                   SetNumber(CORBA::Long NumIter);
   CORBA::Long            GetNumber();
 
-  void                   SetState( CORBA::Long etat );
+  void                   SetState(CORBA::Long etat);
   CORBA::Long            GetState();
 
-  void                   SetMeshName( const char* NomMesh );
+  void                   SetMeshName(const char* NomMesh);
   char*                  GetMeshName();
 
-  void                   SetMeshFile( const char* MeshFile );
+  void                   SetMeshFile(const char* MeshFile);
   char*                  GetMeshFile();
 
-  void                   SetFieldFile( const char* FieldFile );
-  char*                  GetFieldFile();
-// Instants pour le champ de pilotage
-  void                   SetTimeStep( CORBA::Long TimeStep );
-  void                   SetTimeStepRank( CORBA::Long TimeStep, CORBA::Long Rank );
-  void                   SetTimeStepRankLast();
-  CORBA::Long            GetTimeStep();
-  CORBA::Long            GetRank();
-// Instants pour un champ a interpoler
-  void                   SetFieldInterpTimeStep( const char* FieldInterp, CORBA::Long TimeStep );
-  void                   SetFieldInterpTimeStepRank( const char* FieldInterp, CORBA::Long TimeStep, CORBA::Long Rank );
-  SMESHHOMARD::listeFieldInterpTSRsIter* GetFieldInterpsTimeStepRank();
-  void                   SetFieldInterp( const char* FieldInterp );
-  SMESHHOMARD::listeFieldInterpsIter* GetFieldInterps();
-  void                   SupprFieldInterps();
-
-  void                   SetLogFile( const char* LogFile );
+  void                   SetLogFile(const char* LogFile);
   char*                  GetLogFile();
 
-  CORBA::Long            Compute(CORBA::Long etatMenage, CORBA::Long Option);
-
-  void                   MeshInfo(CORBA::Long Qual, CORBA::Long Diam, CORBA::Long Conn, CORBA::Long Tail, CORBA::Long Inte);
-
-  void                   MeshInfoOption(CORBA::Long Qual, CORBA::Long Diam, CORBA::Long Conn, CORBA::Long Tail, CORBA::Long Inte, CORBA::Long Option);
-
-  void                   SetFileInfo( const char* FileInfo );
+  void                   SetFileInfo(const char* FileInfo);
   char*                  GetFileInfo();
 
   // Liens avec les autres iterations
-  SMESHHOMARD::HOMARD_Iteration_ptr NextIteration( const char* Name);
-
-  void                   LinkNextIteration( const char* NomIteration );
-  void                   UnLinkNextIteration( const char* NomIteration );
-  SMESHHOMARD::listeIterFilles* GetIterations();
+  void                   LinkNextIteration(const char* NomIteration);
+  void                   UnLinkNextIteration(const char* NomIteration);
 
-  void                   SetIterParentName( const char* NomIterParent );
+  void                   SetIterParentName(const char* NomIterParent);
   char*                  GetIterParentName();
-  SMESHHOMARD::HOMARD_Iteration_ptr GetIterParent();
 
-// Liens avec les autres structures
-  void                   SetCaseName( const char* NomCas );
+  // Liens avec les autres structures
+  void                   SetCaseName(const char* NomCas);
   char*                  GetCaseName();
 
-  void                   AssociateHypo( const char* NomHypo);
-  void                   SetHypoName( const char* NomHypo );
-  char*                  GetHypoName();
+  void                   SetHypoName(const char* NomHypo);
 
-// Divers
-  void                   SetInfoCompute( CORBA::Long MessInfo );
+  // Drivers
+  void                   SetInfoCompute(CORBA::Long MessInfo);
   CORBA::Long            GetInfoCompute();
 
 private:
-  SMESHHOMARDImpl::HOMARD_Iteration*    myHomardIteration;
-
-  CORBA::ORB_ptr         _orb;
+  SMESHHOMARDImpl::HOMARD_Iteration* myHomardIteration;
   SMESHHOMARD::HOMARD_Gen_var _gen_i;
 };
 
 class SMESH_I_EXPORT HOMARD_Gen_i : public virtual SALOME::GenericObj_i,
-                                         public virtual POA_SMESHHOMARD::HOMARD_Gen
+                                    public virtual POA_SMESHHOMARD::HOMARD_Gen
 {
 public:
   HOMARD_Gen_i();
   virtual ~HOMARD_Gen_i();
 
-
-// Generalites
-
-// Les creations
-  SMESHHOMARD::HOMARD_Boundary_ptr     CreateBoundary (const char* nomBoundary, CORBA::Long typeBoundary);
-  SMESHHOMARD::HOMARD_Boundary_ptr     CreateBoundaryCAO(const char* nomBoundary,
-                                                    const char* DataFile);
-  SMESHHOMARD::HOMARD_Boundary_ptr     CreateBoundaryDi (const char* nomBoundary,
-                                                    const char* MeshName, const char* DataFile);
-  SMESHHOMARD::HOMARD_Boundary_ptr     CreateBoundaryCylinder (const char* nomBoundary,
-                                      CORBA::Double Xcentre, CORBA::Double Ycentre, CORBA::Double Zcentre,
-                                      CORBA::Double Xaxis, CORBA::Double Yaxis, CORBA::Double Zaxis,
-                                      CORBA::Double Rayon);
-  SMESHHOMARD::HOMARD_Boundary_ptr     CreateBoundarySphere (const char* nomBoundary,
-                                      CORBA::Double Xcentre, CORBA::Double Ycentre, CORBA::Double Zcentre,
-                                      CORBA::Double Rayon);
-  SMESHHOMARD::HOMARD_Boundary_ptr     CreateBoundaryConeR (const char* nomBoundary,
-                                      CORBA::Double Xcentre1, CORBA::Double Ycentre1, CORBA::Double Zcentre1, CORBA::Double Rayon1,
-                                      CORBA::Double Xcentre2, CORBA::Double Ycentre2, CORBA::Double Zcentre2, CORBA::Double Rayon2);
-  SMESHHOMARD::HOMARD_Boundary_ptr     CreateBoundaryConeA (const char* nomBoundary,
-                                      CORBA::Double Xaxis, CORBA::Double Yaxis, CORBA::Double Zaxis, CORBA::Double Angle,
-                                      CORBA::Double Xcentre, CORBA::Double Ycentre, CORBA::Double Zcentre);
-  SMESHHOMARD::HOMARD_Boundary_ptr     CreateBoundaryTorus (const char* nomBoundary,
-                                      CORBA::Double Xcentre, CORBA::Double Ycentre, CORBA::Double Zcentre,
-                                      CORBA::Double Xaxis, CORBA::Double Yaxis, CORBA::Double Zaxis,
-                                      CORBA::Double RayonRev, CORBA::Double RayonPri);
-
-  SMESHHOMARD::HOMARD_Cas_ptr CreateCase (const char* nomCas, const char* MeshName,
-                                          const char* FileName);
-  SMESHHOMARD::HOMARD_Cas_ptr CreateCase0 (const char* nomCas, const char* MeshName,
-                                           const char* FileName, CORBA::Long MeshOption,
-                                           CORBA::Long NumeIter, CORBA::Long Option);
-  std::string                 CreateCase1 (const char* DirNameStart, CORBA::Long Number);
-
-  SMESHHOMARD::HOMARD_Hypothesis_ptr   CreateHypothesis(const char* nomHypothesis);
-
-  SMESHHOMARD::HOMARD_Iteration_ptr    CreateIteration (const char* nomIter, const char* nomIterParent);
+  // Les creations
+  SMESHHOMARD::HOMARD_Boundary_ptr CreateBoundary (const char* nomBoundary,
+                                                   CORBA::Long typeBoundary);
+  SMESHHOMARD::HOMARD_Boundary_ptr CreateBoundaryCAO (const char* nomBoundary,
+                                                      const char* DataFile);
+  SMESHHOMARD::HOMARD_Boundary_ptr CreateBoundaryDi (const char* nomBoundary,
+                                                     const char* MeshName, const char* DataFile);
+  SMESHHOMARD::HOMARD_Boundary_ptr CreateBoundaryCylinder
+    (const char* nomBoundary,
+     CORBA::Double Xcentre, CORBA::Double Ycentre, CORBA::Double Zcentre,
+     CORBA::Double Xaxis, CORBA::Double Yaxis, CORBA::Double Zaxis,
+     CORBA::Double Rayon);
+  SMESHHOMARD::HOMARD_Boundary_ptr CreateBoundarySphere
+    (const char* nomBoundary,
+     CORBA::Double Xcentre, CORBA::Double Ycentre, CORBA::Double Zcentre,
+     CORBA::Double Rayon);
+  SMESHHOMARD::HOMARD_Boundary_ptr CreateBoundaryConeR
+    (const char* nomBoundary,
+     CORBA::Double Xcentre1, CORBA::Double Ycentre1, CORBA::Double Zcentre1,
+     CORBA::Double Rayon1,
+     CORBA::Double Xcentre2, CORBA::Double Ycentre2, CORBA::Double Zcentre2,
+     CORBA::Double Rayon2);
+  SMESHHOMARD::HOMARD_Boundary_ptr CreateBoundaryConeA
+    (const char* nomBoundary,
+     CORBA::Double Xaxis, CORBA::Double Yaxis, CORBA::Double Zaxis,
+     CORBA::Double Angle,
+     CORBA::Double Xcentre, CORBA::Double Ycentre, CORBA::Double Zcentre);
+  SMESHHOMARD::HOMARD_Boundary_ptr CreateBoundaryTorus
+    (const char* nomBoundary,
+     CORBA::Double Xcentre, CORBA::Double Ycentre, CORBA::Double Zcentre,
+     CORBA::Double Xaxis, CORBA::Double Yaxis, CORBA::Double Zaxis,
+     CORBA::Double RayonRev, CORBA::Double RayonPri);
+
+  SMESHHOMARD::HOMARD_Cas_ptr CreateCaseOnMesh (const char* MeshName,
+                                                SMESH::SMESH_Mesh_ptr smeshMesh,
+                                                const char* theWorkingDir);
+  SMESHHOMARD::HOMARD_Cas_ptr CreateCase (const char* MeshName,
+                                          const char* FileName,
+                                          const char* theWorkingDir);
+
+  SMESHHOMARD::HOMARD_Iteration_ptr CreateIteration();
 
   // Les informations
-  SMESHHOMARD::HOMARD_Boundary_ptr     GetBoundary   (const char* nomBoundary);
-  SMESHHOMARD::HOMARD_Cas_ptr          GetCase       (const char* nomCas);
-  SMESHHOMARD::HOMARD_Hypothesis_ptr   GetHypothesis (const char* nomHypothesis);
-  SMESHHOMARD::HOMARD_Iteration_ptr    GetIteration  (const char* nomIteration);
-
-  SMESHHOMARD::listeBoundarys*         GetAllBoundarysName();
-  SMESHHOMARD::listeCases*             GetAllCasesName();
-  SMESHHOMARD::listeHypotheses*        GetAllHypothesesName();
-  SMESHHOMARD::listeIterations*        GetAllIterationsName();
-
-  void                            MeshInfo      (const char* nomCas,
-                                                 const char* MeshName, const char* FileName, const char* DirName,
-                                                 CORBA::Long Qual, CORBA::Long Diam, CORBA::Long Conn, CORBA::Long Tail, CORBA::Long Inte);
-
-  SMESHHOMARD::HOMARD_Iteration_ptr    LastIteration  (const char* nomCas);
-
-  // Liens entre structures
-  void                            InvalideBoundary(const char* nomBoundary);
-  void                            InvalideHypo(const char* nomHypo);
-  void                            InvalideIter(const char* nomIter);
-  void                            InvalideIterOption(const char* nomIter, CORBA::Long Option,
-                                                     bool doRemoveWorkingFiles);
-  void                            InvalideIterInfo(const char* nomIter);
-
-  CORBA::Long                     DeleteBoundary(const char* nomBoundary);
-  CORBA::Long                     DeleteCase(const char* nomCas, CORBA::Long Option);
-  CORBA::Long                     DeleteHypo(const char* nomHypothesis);
-  CORBA::Long                     DeleteIteration(const char* nomIter,
-                                                  CORBA::Long Option,
-                                                  bool doRemoveWorkingFiles);
-  CORBA::Long                     DeleteIterationOption(const char* nomIter,
-                                                        CORBA::Long Option1,
-                                                        CORBA::Long Option2,
-                                                        bool doRemoveWorkingFiles);
-
-  void  AssociateIterHypo(const char* nomIter, const char* nomHypothesis);
-
-  void  AssociateCaseIter(const char* nomCas, const char* nomIter,
-                          const char* labelIter);
-
-  // Actions
-  void  SetEtatIter(const char* nomIter,const CORBA::Long Etat);
-  char* CreateDirNameIter(const char* nomrep, CORBA::Long num );
-
-  CORBA::Long Compute(const char* nomIteration, CORBA::Long etatMenage,
-                      CORBA::Long modeHOMARD,
-                      CORBA::Long Option1, CORBA::Long Option2);
+  SMESHHOMARD::HOMARD_Boundary_ptr  GetBoundary  (const char* nomBoundary);
+  SMESHHOMARD::HOMARD_Cas_ptr       GetCase      ();
+  SMESHHOMARD::HOMARD_Iteration_ptr GetIteration (CORBA::Long numIter);
+
+  SMESHHOMARD::listeBoundarys* GetAllBoundarysName();
+
+  void InvalideBoundary(const char* nomBoundary);
+
+  CORBA::Long DeleteBoundary(const char* nomBoundary);
+  CORBA::Long DeleteCase();
+  CORBA::Long DeleteIteration(int numIter);
+
+  void AssociateCaseIter(int numIter, const char* labelIter);
+  char* CreateDirNameIter(const char* nomrep, CORBA::Long num);
+
+  CORBA::Long Compute();
   CORBA::Long ComputeAdap(SMESHHOMARD::HOMARD_Cas_var myCase,
                           SMESHHOMARD::HOMARD_Iteration_var myIteration,
-                          CORBA::Long etatMenage, SMESHHOMARDImpl::HomardDriver* myDriver,
-                          CORBA::Long Option1, CORBA::Long Option2);
+                          SMESHHOMARDImpl::HomardDriver* myDriver);
   CORBA::Long ComputeCAO(SMESHHOMARD::HOMARD_Cas_var myCase,
-                         SMESHHOMARD::HOMARD_Iteration_var myIteration,
-                         CORBA::Long Option1, CORBA::Long Option2);
-  CORBA::Long ComputeCAObis(SMESHHOMARD::HOMARD_Iteration_var myIteration,
-                            CORBA::Long Option1, CORBA::Long Option2);
+                         SMESHHOMARD::HOMARD_Iteration_var myIteration);
+  CORBA::Long ComputeCAObis(SMESHHOMARD::HOMARD_Iteration_var myIteration);
   char* ComputeDirManagement(SMESHHOMARD::HOMARD_Cas_var myCase,
-                             SMESHHOMARD::HOMARD_Iteration_var myIteration,
-                             CORBA::Long etatMenage);
+                             SMESHHOMARD::HOMARD_Iteration_var myIteration);
   char* ComputeDirPaManagement(SMESHHOMARD::HOMARD_Cas_var myCase,
                                SMESHHOMARD::HOMARD_Iteration_var myIteration);
-  void  DriverTexteField(SMESHHOMARD::HOMARD_Iteration_var myIteration,
-                         SMESHHOMARD::HOMARD_Hypothesis_var myHypo,
-                         SMESHHOMARDImpl::HomardDriver* myDriver);
   int   DriverTexteBoundary(SMESHHOMARD::HOMARD_Cas_var myCase,
                             SMESHHOMARDImpl::HomardDriver* myDriver);
-  void  DriverTexteFieldInterp(SMESHHOMARD::HOMARD_Iteration_var myIteration,
-                               SMESHHOMARD::HOMARD_Hypothesis_var myHypo,
-                               SMESHHOMARDImpl::HomardDriver* myDriver);
 
-  char* VerifieDir(const char* nomDir);
+  void PublishResultInSmesh(const char* NomFich, CORBA::Long Option);
+  void DeleteResultInSmesh(std::string NomFich, std::string MeshName);
 
-  void  PublishResultInSmesh(const char* NomFich, CORBA::Long Option);
-  void  DeleteResultInSmesh(std::string NomFich, std::string MeshName);
-  void  PublishMeshIterInSmesh(const char* NomIter);
+  void PythonDump();
 
   // Preferences
-  void                            SetPreferences();
-  void                            SetLanguageShort(const char* LanguageShort);
-  char*                           GetLanguageShort();
-  void                            SetPublisMesh(CORBA::Long PublisMeshIN, CORBA::Long PublisMeshOUT);
-  CORBA::Long                     GetPublisMeshIN();
-  CORBA::Long                     GetPublisMeshOUT();
-
-private:
-  SMESHHOMARD::HOMARD_Boundary_ptr     newBoundary();
-  SMESHHOMARD::HOMARD_Cas_ptr          newCase();
-  SMESHHOMARD::HOMARD_Hypothesis_ptr   newHypothesis();
-  SMESHHOMARD::HOMARD_Iteration_ptr    newIteration();
+  void SetKeepMedOUT(bool theKeepMedOUT);
+  void SetPublishMeshOUT(bool thePublishMeshOUT);
+  void SetMeshNameOUT (const char* theMeshNameOUT);
+  void SetMeshFileOUT (const char* theMeshFileOUT);
 
-  std::string GetStringInTexte( const std::string Texte, const std::string String, int option );
+  void SetVerboseLevel (CORBA::Long theVerboseLevel);
+  void SetKeepWorkingFiles(bool theKeepWorkingFiles);
+  void SetLogInFile(bool theLogInFile);
+  void SetLogFile (const char* theLogFile);
+  void SetRemoveLogOnSuccess(bool theRemoveLogOnSuccess);
 
 private:
-  struct StudyContext
-  {
-    std::map<std::string, SMESHHOMARD::HOMARD_Boundary_var>   _mesBoundarys;
-    std::map<std::string, SMESHHOMARD::HOMARD_Cas_var>        _mesCas;
-    std::map<std::string, SMESHHOMARD::HOMARD_Hypothesis_var> _mesHypotheses;
-    std::map<std::string, SMESHHOMARD::HOMARD_Iteration_var>  _mesIterations;
-  };
+  SMESHHOMARD::HOMARD_Boundary_ptr  newBoundary();
+  SMESHHOMARD::HOMARD_Cas_ptr       newCase();
+  SMESHHOMARD::HOMARD_Iteration_ptr newIteration();
+  void CleanCase();
 
+private:
   SMESHHOMARDImpl::HOMARD_Gen* myHomard;
-  StudyContext                 myStudyContext;
+  std::map<std::string, SMESHHOMARD::HOMARD_Boundary_var> _mesBoundarys;
+  SMESHHOMARD::HOMARD_Hypothesis_var myHypothesis;
+  SMESHHOMARD::HOMARD_Iteration_var  myIteration0;
+  SMESHHOMARD::HOMARD_Iteration_var  myIteration1;
+  SMESHHOMARD::HOMARD_Cas_var        myCase;
 
   // Preferences
-  std::string _Langue;
-  std::string _LangueShort;
-  int _PublisMeshIN;
-  int _PublisMeshOUT;
+  bool _KeepMedOUT;
+  bool _PublishMeshOUT;
+  bool _KeepWorkingFiles;
+  bool _LogInFile;
+  bool _RemoveLogOnSuccess;
+  int         _VerboseLevel;
+  std::string _MeshNameOUT;
+  std::string _MeshFileOUT;
+  std::string _LogFile;
+
+  // Input data type
+  bool _CaseOnMedFile;
+  SMESH::SMESH_Mesh_var _SmeshMesh;
 };
 
-SMESH_I_EXPORT int                    MEDFileExist( const char * aFile );
-SMESH_I_EXPORT std::vector<double>    GetBoundingBoxInMedFile( const char * aFile);
-SMESH_I_EXPORT std::set<std::string>  GetListeGroupesInMedFile(const char * aFile);
+SMESH_I_EXPORT std::vector<double>   GetBoundingBoxInMedFile(const char * aFile);
+SMESH_I_EXPORT std::set<std::string> GetListeGroupesInMedFile(const char * aFile);
 
 }; // namespace SMESHHOMARD_I