-// Copyright (C) 2011-2012 CEA/DEN, EDF R&D
+// // Copyright (C) 2011-2013 CEA/DEN, EDF R&D
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
#include CORBA_SERVER_HEADER(HOMARD_Iteration)
#include CORBA_SERVER_HEADER(HOMARD_Zone)
#include CORBA_SERVER_HEADER(HOMARD_Boundary)
+#include CORBA_SERVER_HEADER(HOMARD_YACS)
#include CORBA_CLIENT_HEADER(SALOMEDS)
#include CORBA_CLIENT_HEADER(SALOMEDS_Attributes)
+#include "HOMARD_i.hxx"
#include "HOMARD_Gen.hxx"
+#include "HomardDriver.hxx"
+#include "YACSDriver.hxx"
#include "SALOME_Component_i.hxx"
#include "SALOME_NamingService.hxx"
#include "Utils_CorbaException.hxx"
#include <string>
#include <map>
-class HOMARD_Gen_i:
+class HOMARDENGINE_EXPORT HOMARD_Gen_i:
public virtual Engines_Component_i,
public virtual POA_HOMARD::HOMARD_Gen
{
virtual ~HOMARD_Gen_i();
- SALOMEDS::Study_ptr GetCurrentStudy();
- void SetCurrentStudy(SALOMEDS::Study_ptr theStudy);
- CORBA::Long GetCurrentStudyID();
+// Generalites
+
+// Les creations
+ HOMARD::HOMARD_Boundary_ptr CreateBoundary (const char* nomBoundary, CORBA::Long typeBoundary);
+ HOMARD::HOMARD_Boundary_ptr CreateBoundaryDi (const char* nomBoundary,
+ const char* MeshName, const char* FileName);
+ HOMARD::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);
+ HOMARD::HOMARD_Boundary_ptr CreateBoundarySphere (const char* nomBoundary,
+ CORBA::Double Xcentre, CORBA::Double Ycentre, CORBA::Double Zcentre,
+ CORBA::Double Rayon);
+ HOMARD::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);
+ HOMARD::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);
+ HOMARD::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);
+
+ HOMARD::HOMARD_Cas_ptr CreateCase (const char* nomCas, const char* MeshName, const char* FileName);
+ HOMARD::HOMARD_Cas_ptr CreateCaseFromIteration (const char* nomCas, const char* DirNameStart);
+ HOMARD::HOMARD_Cas_ptr CreateCaseFromCaseLastIteration (const char* nomCas, const char* DirNameStart);
+ HOMARD::HOMARD_Cas_ptr CreateCaseFromCaseIteration (const char* nomCas, const char* DirNameStart, CORBA::Long Number);
+ HOMARD::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);
- HOMARD::HOMARD_Cas_ptr CreateCase (const char* nomCas,
- const char* MeshName, const char* FileName);
HOMARD::HOMARD_Hypothesis_ptr CreateHypothesis(const char* nomHypothesis);
+
HOMARD::HOMARD_Iteration_ptr CreateIteration (const char* nomIter, const char* nomIterParent);
HOMARD::HOMARD_Zone_ptr CreateZone (const char* nomZone, CORBA::Long typeZone);
CORBA::Double Xmini, CORBA::Double Xmaxi,
CORBA::Double Ymini, CORBA::Double Ymaxi,
CORBA::Double Zmini, CORBA::Double Zmaxi);
- HOMARD::HOMARD_Zone_ptr CreateZoneSphere (const char* nomZone,
- CORBA::Double Xcentre, CORBA::Double Ycentre, CORBA::Double Zcentre, CORBA::Double Rayon);
- HOMARD::HOMARD_Zone_ptr CreateZoneCylinder (const char* nomZone,
- CORBA::Double Xcentre, CORBA::Double Ycentre, CORBA::Double Zcentre,
- CORBA::Double Xaxe, CORBA::Double Yaxe, CORBA::Double Zaxe,
- CORBA::Double Rayon, CORBA::Double Haut);
- HOMARD::HOMARD_Zone_ptr CreateZonePipe (const char* nomZone,
- CORBA::Double Xcentre, CORBA::Double Ycentre, CORBA::Double Zcentre,
- CORBA::Double Xaxe, CORBA::Double Yaxe, CORBA::Double Zaxe,
- CORBA::Double Rayon, CORBA::Double Haut, CORBA::Double Rayonint);
HOMARD::HOMARD_Zone_ptr CreateZoneBox2D (const char* nomZone,
CORBA::Double Umini, CORBA::Double Umaxi,
CORBA::Double Vmini, CORBA::Double Vmaxi,
CORBA::Long Orient);
+ HOMARD::HOMARD_Zone_ptr CreateZoneCylinder (const char* nomZone,
+ CORBA::Double Xcentre, CORBA::Double Ycentre, CORBA::Double Zcentre,
+ CORBA::Double Xaxe, CORBA::Double Yaxe, CORBA::Double Zaxe,
+ CORBA::Double Rayon, CORBA::Double Haut);
HOMARD::HOMARD_Zone_ptr CreateZoneDisk (const char* nomZone,
CORBA::Double Ucentre, CORBA::Double Vcentre,
CORBA::Double Rayon,
CORBA::Double Ucentre, CORBA::Double Vcentre,
CORBA::Double Rayon, CORBA::Double Rayonint,
CORBA::Long Orient);
-
- HOMARD::HOMARD_Boundary_ptr CreateBoundary (const char* nomBoundary, CORBA::Long typeBoundary);
- HOMARD::HOMARD_Boundary_ptr CreateBoundaryDi (const char* nomBoundary,
- const char* MeshName, const char* FileName);
- HOMARD::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);
- HOMARD::HOMARD_Boundary_ptr CreateBoundarySphere (const char* nomBoundary,
+ HOMARD::HOMARD_Zone_ptr CreateZonePipe (const char* nomZone,
CORBA::Double Xcentre, CORBA::Double Ycentre, CORBA::Double Zcentre,
- CORBA::Double Rayon);
+ CORBA::Double Xaxe, CORBA::Double Yaxe, CORBA::Double Zaxe,
+ CORBA::Double Rayon, CORBA::Double Haut, CORBA::Double Rayonint);
+ HOMARD::HOMARD_Zone_ptr CreateZoneSphere (const char* nomZone,
+ CORBA::Double Xcentre, CORBA::Double Ycentre, CORBA::Double Zcentre, CORBA::Double Rayon);
+// Les informations
+ HOMARD::HOMARD_Boundary_ptr GetBoundary (const char* nomBoundary);
HOMARD::HOMARD_Cas_ptr GetCase (const char* nomCas);
- HOMARD::HOMARD_Zone_ptr GetZone (const char* nomZone);
HOMARD::HOMARD_Hypothesis_ptr GetHypothesis (const char* nomHypothesis);
HOMARD::HOMARD_Iteration_ptr GetIteration (const char* nomIteration);
- HOMARD::HOMARD_Boundary_ptr GetBoundary (const char* nomBoundary);
+ HOMARD::HOMARD_YACS_ptr GetYACS (const char* nomYACS);
+ HOMARD::HOMARD_Zone_ptr GetZone (const char* nomZone);
- void AssociateCaseIter(const char* nomCas, const char* nomIter,
- const char* labelIter);
- void AssociateIterHypo(const char* nomIter, const char* nomHypothesis);
- void DissociateHypoZone(const char* nomZone, const char* nomHypothesis);
+ HOMARD::listeBoundarys* GetAllBoundarysName();
+ HOMARD::listeCases* GetAllCasesName();
+ HOMARD::listeHypotheses* GetAllHypothesesName();
+ HOMARD::listeIterations* GetAllIterationsName();
+ HOMARD::listeYACSs* GetAllYACSsName();
+ HOMARD::listeZones* GetAllZonesName();
+
+ 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);
+ HOMARD::HOMARD_Iteration_ptr LastIteration (const char* nomCas);
+
+// L'etude
+ SALOMEDS::Study_ptr GetCurrentStudy();
+ void SetCurrentStudy(SALOMEDS::Study_ptr theStudy);
+ CORBA::Long GetCurrentStudyID();
+ void IsValidStudy();
+
+// Liens entre structures
void InvalideBoundary(const char* nomBoundary);
- void InvalideZone(const char* nomZone);
void InvalideHypo(const char* nomHypo);
void InvalideIter(const char* nomIter);
+ void InvalideIterOption(const char* nomIter, CORBA::Long Option);
+ void InvalideIterInfo(const char* nomIter);
+ void InvalideYACS(const char* nomYACS);
+ void InvalideZone(const char* nomZone);
- void SetEtatIter(const char* nomIter,const CORBA::Boolean EtatCalcul);
+ 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);
+ CORBA::Long DeleteIterationOption(const char* nomIter, CORBA::Long Option1, CORBA::Long Option2);
+ CORBA::Long DeleteYACS(const char* nomYACS, CORBA::Long Option);
+ CORBA::Long DeleteZone(const char* nomZone);
- HOMARD::listeCases* GetAllCasesName();
- HOMARD::listeHypotheses* GetAllHypothesesName();
- HOMARD::listeZones* GetAllZonesName();
- HOMARD::listeIterations* GetAllIterationsName();
- HOMARD::listeBoundarys* GetAllBoundarysName();
+ void AssociateIterHypo(const char* nomIter, const char* nomHypothesis);
- CORBA::Long Compute(const char* nomIteration, CORBA::Long etatMenage);
- CORBA::Boolean VerifieDir(const char* nomDir);
+ void AssociateHypoZone(const char* nomHypothesis, const char* nomZone, CORBA::Long TypeUse);
+ void DissociateHypoZone(const char* nomHypothesis, const char* nomZone);
- void PublishResultInSmesh(const char* NomFich, CORBA::Long IconeType);
- void DeleteResultInSmesh(const char* NomFich, const char* MeshName);
- void PublishFileUnderIteration(const char* NomIter, const char* NomFich,
- const char* Commentaire);
+ 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);
+ CORBA::Long ComputeAdap(HOMARD::HOMARD_Cas_var myCase, HOMARD::HOMARD_Iteration_var myIteration, CORBA::Long etatMenage, HomardDriver* myDriver, CORBA::Long Option1, CORBA::Long Option2);
+ char* ComputeDirManagement(HOMARD::HOMARD_Cas_var myCase, HOMARD::HOMARD_Iteration_var myIteration, CORBA::Long etatMenage);
+ char* ComputeDirPaManagement(HOMARD::HOMARD_Cas_var myCase, HOMARD::HOMARD_Iteration_var myIteration);
+ void DriverTexteZone(HOMARD::HOMARD_Hypothesis_var myHypo, HomardDriver* myDriver);
+ void DriverTexteField(HOMARD::HOMARD_Iteration_var myIteration, HOMARD::HOMARD_Hypothesis_var myHypo, HomardDriver* myDriver);
+ void DriverTexteBoundary(HOMARD::HOMARD_Cas_var myCase, HomardDriver* myDriver);
+ void DriverTexteFieldInterp(HOMARD::HOMARD_Iteration_var myIteration, HOMARD::HOMARD_Hypothesis_var myHypo, HomardDriver* myDriver);
+
+ char* VerifieDir(const char* nomDir);
+
+ void PublishFileUnderIteration(const char* NomIter, const char* NomFich, const char* Commentaire);
+ void PublishFileUnderYACS(const char* NomYACS, const char* NomFich, const char* Commentaire);
+ void PublishBoundaryUnderCase(const char* CaseName, const char* BoundaryName);
+ void PublishCaseUnderYACS(const char* YACSName, const char* CaseName);
+ void PublishResultInSmesh(const char* NomFich, CORBA::Long Option);
+ void DeleteResultInSmesh(std::string NomFich, std::string MeshName);
+ void PublishMeshIterInSmesh(const char* NomIter);
+
+// YACS
+ HOMARD::HOMARD_YACS_ptr CreateYACSSchema (const char* YACSName, const char* nomCas, const char* ScriptFile, const char* DirName, const char* MeshFile);
+ CORBA::Long YACSWrite(const char* nomYACS);
+ CORBA::Long YACSWriteOnFile(const char* nomYACS, const char* XMLFile);
+ std::string YACSDriverTexteZone(HOMARD::HOMARD_Hypothesis_var myHypo, YACSDriver* myDriver);
+ std::string YACSDriverTexteBoundary(HOMARD::HOMARD_Cas_var myCase, YACSDriver* myDriver);
+
+// Preferences
+ void SetPreferences() ;
+ void SetLanguageShort(const char* LanguageShort);
+ char* GetLanguageShort();
+ void SetPublisMesh(CORBA::Long PublisMeshIN, CORBA::Long PublisMeshOUT);
+ CORBA::Long GetPublisMeshIN();
+ CORBA::Long GetPublisMeshOUT();
+ void SetYACSMaximum(CORBA::Long YACSMaxIter, CORBA::Long YACSMaxNode, CORBA::Long YACSMaxElem);
+ CORBA::Long GetYACSMaxIter();
+ CORBA::Long GetYACSMaxNode();
+ CORBA::Long GetYACSMaxElem();
- void IsValidStudy();
// ---------------------------------------------------------------
// next functions are inherited from SALOMEDS::Driver interface
CORBA::Long theObjectID,
SALOMEDS::SObject_ptr theObject);
+// virtual void SALOMEException( std::string message );
private:
void addInStudy(SALOMEDS::Study_ptr theStudy);
+ SALOMEDS::SObject_ptr PublishBoundaryInStudy(SALOMEDS::Study_ptr theStudy, SALOMEDS::StudyBuilder_var aStudyBuilder,
+ HOMARD::HOMARD_Boundary_ptr theObject, const char* theName);
SALOMEDS::SObject_ptr PublishCaseInStudy(SALOMEDS::Study_ptr theStudy, SALOMEDS::StudyBuilder_var aStudyBuilder,
HOMARD::HOMARD_Cas_ptr theObject, const char* theName);
-
SALOMEDS::SObject_ptr PublishHypotheseInStudy(SALOMEDS::Study_ptr theStudy, SALOMEDS::StudyBuilder_var aStudyBuilder,
HOMARD::HOMARD_Hypothesis_ptr theObject, const char* theName);
-
+ SALOMEDS::SObject_ptr PublishYACSInStudy(SALOMEDS::Study_ptr theStudy, SALOMEDS::StudyBuilder_var aStudyBuilder,
+ HOMARD::HOMARD_YACS_ptr theObject, const char* theName);
SALOMEDS::SObject_ptr PublishZoneInStudy(SALOMEDS::Study_ptr theStudy, SALOMEDS::StudyBuilder_var aStudyBuilder,
HOMARD::HOMARD_Zone_ptr theObject, const char* theName);
- SALOMEDS::SObject_ptr PublishBoundaryInStudy(SALOMEDS::Study_ptr theStudy, SALOMEDS::StudyBuilder_var aStudyBuilder,
- HOMARD::HOMARD_Boundary_ptr theObject, const char* theName);
virtual void PublishInStudyAttr(SALOMEDS::StudyBuilder_var aStudyBuilder,
SALOMEDS::SObject_var aResultSO,
- const char* theName, const char* value, const char* icone, const char* ior);
+ const char* theName, const char* comment, const char* icone, const char* ior);
+
PortableServer::ServantBase_var GetServant(CORBA::Object_ptr theObject);
+ HOMARD::HOMARD_Boundary_ptr newBoundary();
HOMARD::HOMARD_Cas_ptr newCase();
HOMARD::HOMARD_Hypothesis_ptr newHypothesis();
HOMARD::HOMARD_Iteration_ptr newIteration();
+ HOMARD::HOMARD_YACS_ptr newYACS();
HOMARD::HOMARD_Zone_ptr newZone();
- HOMARD::HOMARD_Boundary_ptr newBoundary();
virtual Engines::TMPFile* DumpPython(CORBA::Object_ptr theStudy,
CORBA::Boolean& isValidScript);
virtual char* getVersion();
+ std::string GetStringInTexte( const std::string Texte, const std::string String, int option ) ;
private:
struct StudyContext
{
+ std::map<std::string, HOMARD::HOMARD_Boundary_var> _mesBoundarys;
std::map<std::string, HOMARD::HOMARD_Cas_var> _mesCas;
std::map<std::string, HOMARD::HOMARD_Hypothesis_var> _mesHypotheses;
std::map<std::string, HOMARD::HOMARD_Iteration_var> _mesIterations;
+ std::map<std::string, HOMARD::HOMARD_YACS_var> _mesYACSs;
std::map<std::string, HOMARD::HOMARD_Zone_var> _mesZones;
- std::map<std::string, HOMARD::HOMARD_Boundary_var> _mesBoundarys;
std::map<int, PortableServer::ServantBase*> _idmap;
};
typedef std::map<int, StudyContext> ContextMap;
ContextMap myContextMap;
SALOME_NamingService* _NS;
+ int _tag_gene ;
+ int _tag_boun ;
+ int _tag_hypo ;
+ int _tag_yacs ;
+ int _tag_zone ;
+
+// Preferences
+ std::string _Langue ;
+ std::string _LangueShort ;
+ int _PublisMeshIN ;
+ int _PublisMeshOUT ;
+ int _YACSMaxIter ;
+ int _YACSMaxNode ;
+ int _YACSMaxElem ;
+ ;
+
};
#endif