Version: 9.16.0
DriverMED_W_SMESHDS_Mesh.h
Go to the documentation of this file.
1// Copyright (C) 2007-2026 CEA, EDF, OPEN CASCADE
2//
3// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
5//
6// This library is free software; you can redistribute it and/or
7// modify it under the terms of the GNU Lesser General Public
8// License as published by the Free Software Foundation; either
9// version 2.1 of the License, or (at your option) any later version.
10//
11// This library is distributed in the hope that it will be useful,
12// but WITHOUT ANY WARRANTY; without even the implied warranty of
13// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14// Lesser General Public License for more details.
15//
16// You should have received a copy of the GNU Lesser General Public
17// License along with this library; if not, write to the Free Software
18// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19//
20// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21//
22
23// SMESH DriverMED : driver to read and write 'med' files
24// File : DriverMED_W_SMESHDS_Mesh.h
25// Module : SMESH
26//
27#ifndef _INCLUDE_DRIVERMED_W_SMESHDS_MESH
28#define _INCLUDE_DRIVERMED_W_SMESHDS_MESH
29
30#include "SMESH_DriverMED.hxx"
31
32#include "Driver_SMESHDS_Mesh.h"
33//#include "MED_Common.hxx"
34
35#include <string>
36#include <list>
37#include <map>
38#include <vector>
39
40class SMESHDS_Mesh;
42class SMESHDS_SubMesh;
44
49{
50 public:
51
53
54 void SetFile(const std::string& theFileName, int theVersion=-1);
55 void SetAutoDimension(bool toFindOutDimension) { myAutoDimension = toFindOutDimension; }
56 void SetZTolerance(double tol) { myZTolerance = tol; }
57 void SetSaveNumbers(bool toSave) { mySaveNumbers = toSave; }
58
59 static std::string GetVersionString(int theMinor, int theNbDigits=2);
60
61 void AddGroupOfNodes();
62 void AddGroupOfEdges();
63 void AddGroupOfFaces();
64 void AddGroupOfVolumes();
65 void AddGroupOf0DElems();
66 void AddGroupOfBalls();
67
70 void AddGroup(SMESHDS_GroupBase * theGroup);
71 void AddAllSubMeshes();
72 void AddSubMesh(SMESHDS_SubMesh* theSubMesh, int theID);
73 void AddODOnVertices(bool toAdd) { myAddODOnVertices = toAdd; }
74
75 static bool getNodesOfMissing0DOnVert(SMESHDS_Mesh* mesh,
76 std::vector<const SMDS_MeshElement*>& nodes);
77
80 Status Perform() override;
81
82 template<class LowLevelWriter>
83 Driver_Mesh::Status PerformInternal(LowLevelWriter myMed);
84
85 private:
86
87 std::list<SMESHDS_GroupBase*> myGroups;
89 std::vector<SMESHDS_SubMesh*> mySubMeshes;
102};
103
104#include "MEDCouplingMemArray.hxx"
105
110{
111public:
112 Status Perform() override;
113 MEDCoupling::MCAuto<MEDCoupling::DataArrayByte> getData() { return _data; }
114private:
115 MEDCoupling::MCAuto<MEDCoupling::DataArrayByte> _data;
116};
117
118#endif
#define MESHDRIVERMED_EXPORT
Definition: SMESH_DriverMED.hxx:37
Write a mesh to a MEDCoupling DS.
Definition: DriverMED_W_SMESHDS_Mesh.h:110
MEDCoupling::MCAuto< MEDCoupling::DataArrayByte > getData()
Definition: DriverMED_W_SMESHDS_Mesh.h:113
MEDCoupling::MCAuto< MEDCoupling::DataArrayByte > _data
Definition: DriverMED_W_SMESHDS_Mesh.h:115
Write a mesh to a MED file.
Definition: DriverMED_W_SMESHDS_Mesh.h:49
bool myDoGroupOf0DElems
Definition: DriverMED_W_SMESHDS_Mesh.h:94
std::list< SMESHDS_GroupBase * > myGroups
Definition: DriverMED_W_SMESHDS_Mesh.h:87
bool myDoGroupOfFaces
Definition: DriverMED_W_SMESHDS_Mesh.h:92
void AddODOnVertices(bool toAdd)
Definition: DriverMED_W_SMESHDS_Mesh.h:73
void SetSaveNumbers(bool toSave)
Definition: DriverMED_W_SMESHDS_Mesh.h:57
double myZTolerance
Definition: DriverMED_W_SMESHDS_Mesh.h:100
int myVersion
Definition: DriverMED_W_SMESHDS_Mesh.h:99
bool myDoGroupOfVolumes
Definition: DriverMED_W_SMESHDS_Mesh.h:93
void SetAutoDimension(bool toFindOutDimension)
Definition: DriverMED_W_SMESHDS_Mesh.h:55
bool myDoAllInGroups
Definition: DriverMED_W_SMESHDS_Mesh.h:98
bool mySaveNumbers
Definition: DriverMED_W_SMESHDS_Mesh.h:101
void SetZTolerance(double tol)
Definition: DriverMED_W_SMESHDS_Mesh.h:56
bool myAddODOnVertices
Definition: DriverMED_W_SMESHDS_Mesh.h:97
bool myDoGroupOfEdges
Definition: DriverMED_W_SMESHDS_Mesh.h:91
std::vector< SMESHDS_SubMesh * > mySubMeshes
Definition: DriverMED_W_SMESHDS_Mesh.h:89
bool myDoGroupOfBalls
Definition: DriverMED_W_SMESHDS_Mesh.h:95
bool myAllSubMeshes
Definition: DriverMED_W_SMESHDS_Mesh.h:88
bool myAutoDimension
Definition: DriverMED_W_SMESHDS_Mesh.h:96
bool myDoGroupOfNodes
Definition: DriverMED_W_SMESHDS_Mesh.h:90
virtual Status Perform()=0
Status
Definition: Driver_Mesh.h:53
virtual void SetFile(const std::string &theFileName)
Definition: Driver_Mesh.cxx:58
Definition: Driver_SMESHDS_Mesh.h:31
Base class for elements.
Definition: SMDS_MeshElement.hxx:56
Definition: SMESHDS_GroupBase.hxx:42
Definition: SMESHDS_Mesh.hxx:98
Definition: SMESHDS_SubMesh.hxx:48
SMESH::SMESH_Group_var AddGroup(SMESH::SMESH_Mesh_ptr theMesh, SMESH::ElementType theType, const QString &theGroupName)
Definition: SMESHGUI_GroupUtils.cxx:38