Salome HOME
Copyright update 2022
[plugins/ghs3dprlplugin.git] / src / tepal2med / ghs3dprl_mesh_wrap.h
old mode 100755 (executable)
new mode 100644 (file)
index e467036..7847c23
@@ -1,9 +1,9 @@
-// Copyright (C) 2007-2008 OPEN CASCADE, CEA/DEN, EDF R&D
+// Copyright (C) 2007-2022  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
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
 //
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
+
 // ---
-//
 // File   : ghs3dprl_mesh_wrap.h
 // Author : Christian VAN WAMBEKE (CEA) (from Hexotic plugin Lioka RAZAFINDRAZAKA)
-//
 // ---
-
+//
 #ifndef GHS3DPRL_MESH_WRAP_H
 #define GHS3DPRL_MESH_WRAP_H
 
-#include <QHash>
+#include <string>
 #include <map>
+#include <QHash>
 #include <QRegExp>
 
-//Med File V 2.2 attributes
-#undef MED_H
-#undef MED_PROTO_H
-namespace med_2_2 {
-  extern "C" {
-#include <med.h>
-#include <med_proto.h>
-  }
-}
-
 #include <libxml/tree.h>
 #include <libxml/parser.h>
 #include <libxml/xpath.h>
 #include <libxml/xpathInternals.h>
 
-using namespace std;
-using namespace med_2_2;
+//Med File V 2.2 attributes
+//#undef MED_H
+//#undef MED_PROTO_H
+
+#include <med.h>
+//#include <med_proto.h>
 
 class CVWtab
 //contains size=size of vector and the vector (med_int or med_float)
@@ -67,8 +61,8 @@ public:
    bool is_equal(CVWtab *tab2);
 };
 
-typedef map<QString,  int> fend;
-typedef map<QString, fend> fagr;
+typedef std::map<QString,  int> fend;
+typedef std::map<QString, fend> fagr;
 class familles{
    private:
    void newfam(QString nom);
@@ -89,20 +83,30 @@ class familles{
 class ghs3dprl_mesh_wrap
 {
 public:
-   QString medname,casename,path,pathini,filemed,format;
-   QRegExp deletegroups; //regular expression 
+   QString 
+      medname,
+      casename,
+      path,
+      pathini,
+      filemed,
+      format,
+      format_tetra;
+   bool for_tetrahpc;    //to know what files to read: .noboite or .mesh
+   bool for_multithread; //to know what files to read: one or more
+   QRegExp deletegroups; //regular expression
    long
       nbtetrastotal,
       nofile,nbfiles,nbfilestot,
       nbelem_limit_swap,
+      nbvert, nbedge, nbtria, nbtetr, // for current idom
       verbose;
    med_err err;
    med_idt fid,fidjoint;
    med_int idom;
 
    //master.xml
-   string filemaster,domainname;
-   char distfilename[MED_TAILLE_DESC];
+   std::string filemaster,domainname;
+   char distfilename[MED_COMMENT_SIZE];
    xmlDocPtr master_doc;
    xmlNodePtr root_node,node,node2,
               joints_node,info_node,files_node,mesh_node;
@@ -111,16 +115,16 @@ public:
    familles families;
 
    //from skin.med
-   char nommaa[MED_TAILLE_NOM+1];
-   char maillage_description[MED_TAILLE_DESC+1];
-   char nomcoo[3*MED_TAILLE_PNOM+1];
-   char unicoo[3*MED_TAILLE_PNOM+1];
+   char nommaa[MED_NAME_SIZE+1];
+   char maillage_description[MED_COMMENT_SIZE+1];
+   char nomcoo[3*MED_SNAME_SIZE+1];
+   char unicoo[3*MED_SNAME_SIZE+1];
    med_int *famnodesskin;    //from skin.med...
    med_int *famseg2skin;     //...valid on global index/numerotation
    med_int *famtria3skin;
 
    //to final files .med with tetrahedra
-   char nomfinal[MED_TAILLE_NOM+1];
+   char nomfinal[MED_NAME_SIZE+1];
    med_int *famnodes,nbnodes,famnewnodes,famallnodes;  //to final files .med with tetrahedra
    med_int *famseg2,nbseg2,famnewseg2,famallseg2;
    med_int *famtria3,nbtria3,famnewtria3,famalltria3;
@@ -137,7 +141,8 @@ public:
 
    //family level
    bool set_one_more_family(med_int *fami, med_int *more, med_int nb);
-   med_int create_families(med_idt fid,int sign);
+   med_int create_families(med_idt fid, int sign);
+   med_int create_family_zero(med_idt fid, QString nameMesh);
    void add_family(med_int num,QString newgro);
    void cout_families_and_groups();
    bool idom_nodes();
@@ -153,16 +158,20 @@ public:
    //hight level
    long SwapOutOfMemory_key_mesh_wrap(const QRegExp &rxp,long ifgreaterthan=0);
    bool ReadFileMSGnew(const QString FileName);
+   bool TestExistingFileMESHnew(const QString FileName);
    bool ReadFileGLO(const QString FileName);
+   bool ReadFileGLOBAL(const QString FileName); //mg-tetra v2.1.11
+   bool ReadFileDefaultGLOBAL(long vert, long edge, long tria, long tetr); //as default when multithread as one output 
    bool ReadFileFACES(const QString FileName);
+   bool ReadFileMESH(const QString FileName);
    bool ReadFileNOBOITE(const QString FileName);
    bool ReadFileNOBOITEB(const QString FileName);
    bool ReadFilePOINTS(const QString FileName);
    bool Find_VerticesDomainToVerticesSkin();
    bool Write_masterxmlMEDfile();
-   bool Write_MEDfiles_v0(bool deletekeys=FALSE); 
-   bool Write_MEDfiles_v1(bool deletekeys=FALSE); 
-   bool Write_MEDfiles_v2(bool deletekeys=FALSE);
+   bool Write_MEDfiles_v0(bool deletekeys=false); 
+   bool Write_MEDfiles_v1(bool deletekeys=false); 
+   bool Write_MEDfiles_v2(bool deletekeys=false);
 };
 
 #endif