-// 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)
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);
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;
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;
//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();
//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