Version: 9.16.0
SMESH_PreMeshInfo.hxx
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// File : SMESH_PreMeshInfo.hxx
23// Created : Fri Feb 10 13:25:02 2012
24// Author : Edward AGAPOV (eap)
25
26
27#ifndef __SMESH_PreMeshInfo_HXX__
28#define __SMESH_PreMeshInfo_HXX__
29
30#include "SMDS_MeshInfo.hxx"
31#include <SALOMEconfig.h>
32#include CORBA_SERVER_HEADER(SMESH_Mesh)
33#include CORBA_SERVER_HEADER(SALOMEDS)
34
35#include <TopAbs_ShapeEnum.hxx>
36#include <TColStd_MapOfAsciiString.hxx>
37
39class HDFfile;
40class HDFgroup;
41class SMESH_Mesh_i;
42
54{
55public:
56 // fills SMESH_PreMeshInfo* field of all objects of mesh
57 static void LoadFromFile( SMESH_Mesh_i* mesh,
58 const int meshID,
59 const std::string& medFile,
60 const std::string& hdfFile,
61 const bool toRemoveFiles);
62
63 // saves SMESH_PreMeshInfo to the study file
64 static void SaveToFile( SMESH_Mesh_i* mesh,
65 const int meshID,
66 HDFfile* hdfFile);
67
68 // remove all SMESH_PreMeshInfo fields from mesh and its child objects w/o data loading
69 static void ForgetAllData( SMESH_Mesh_i* mesh );
70
71 // reads all data and remove all SMESH_PreMeshInfo fields from objects
72 void FullLoadFromFile() const;
73
74 // remove all SMESH_PreMeshInfo fields from objects w/o data loading
75 void ForgetAllData() const;
76
77 // calls either FullLoadFromFile() or ForgetAllData() depending on preferences;
78 // is called on hypothesis modification
79 void ForgetOrLoad() const;
80
81 // meshods of SMESH_IDSource interface
84 bool IsMeshInfoCorrect() const;
85
87
88 // TEMPORARY method to remove study files on closing study;
89 // RIGHT WAY: study files are remove automatically when meshes are destroyed
90 static void RemoveStudyFiles_TMP_METHOD(SALOMEDS::SComponent_ptr smeshComp);
91
92private:
93
94 // creation by LoadFromFile() only
96 const int meshID,
97 const std::string& medFile,
98 const std::string& hdfFile);
99
102
103 // reading from the new study, for which SaveToFile() was called
104 bool readPreInfoFromHDF();
105 void hdf2meshInfo( const std::string& dataSetName,
106 HDFgroup* infoHdfGroup,
107 const TColStd_MapOfAsciiString& allHdfNames);
108
109 // reading from the old study, for which SaveToFile() was not called
110 bool readMeshInfo();
111 void readGroupInfo();
112 void readSubMeshInfo();
113 SMDSAbs_EntityType getElemType( const TopAbs_ShapeEnum shapeType,
114 const int nbElemsInSubMesh,
115 bool& isKoType) const;
116
117 void readSubMeshes(DriverMED_R_SMESHDS_Mesh* reader) const;
118
119 // general data
125
126 int _elemCounter; /* used as a counter while mesh info reading and
127 as a signal that mesh info is incorrect after reading
128 */
129};
130
131#endif
SMDSAbs_EntityType
Enumeration of entity type used in mesh info array.
Definition: SMDSAbs_ElementType.hxx:79
Definition: DriverMED_R_SMESHDS_Mesh.h:51
Definition: SMDS_MeshInfo.hxx:36
Definition: SMESH_Mesh_i.hxx:57
Class loading and holding information of a mesh object (mesh, group, submesh) not yet loaded from HDF...
Definition: SMESH_PreMeshInfo.hxx:54
bool IsMeshInfoCorrect() const
Returns false if GetMeshInfo() returns incorrect information that may happen if mesh data is not yet ...
Definition: SMESH_PreMeshInfo.cxx:1222
static void RemoveStudyFiles_TMP_METHOD(SALOMEDS::SComponent_ptr smeshComp)
TEMPORARY method to remove study files on closing study; RIGHT WAY: study files are remove automatica...
Definition: SMESH_PreMeshInfo.cxx:1234
int _meshID
Definition: SMESH_PreMeshInfo.hxx:122
SMESH::smIdType_array * GetMeshInfo() const
Method of SMESH_IDSource interface returning nb elements by element type.
Definition: SMESH_PreMeshInfo.cxx:1203
~SMESH_PreMeshInfo()
Release temporary files.
Definition: SMESH_PreMeshInfo.cxx:353
void hdf2meshInfo(const std::string &dataSetName, HDFgroup *infoHdfGroup, const TColStd_MapOfAsciiString &allHdfNames)
Reads meshInfo from a HDF file.
Definition: SMESH_PreMeshInfo.cxx:287
void FullLoadFromFile() const
Reads all data and remove all SMESH_PreMeshInfo fields from objects.
Definition: SMESH_PreMeshInfo.cxx:804
void ForgetOrLoad() const
Calls either FullLoadFromFile() or ForgetAllData() depending on preferences.
Definition: SMESH_PreMeshInfo.cxx:1166
std::string _medFileName
Definition: SMESH_PreMeshInfo.hxx:120
void readSubMeshInfo()
Reads info of sub-meshes from hdf file of old study.
Definition: SMESH_PreMeshInfo.cxx:597
int _elemCounter
Definition: SMESH_PreMeshInfo.hxx:126
static void SaveToFile(SMESH_Mesh_i *mesh, const int meshID, HDFfile *hdfFile)
Saves SMESH_PreMeshInfo to the study file.
Definition: SMESH_PreMeshInfo.cxx:741
bool _isInfoOk
Definition: SMESH_PreMeshInfo.hxx:124
SMESH_PreMeshInfo(SMESH_Mesh_i *mesh, const int meshID, const std::string &medFile, const std::string &hdfFile)
Constructor callable by SMESH_PreMeshInfo only.
Definition: SMESH_PreMeshInfo.cxx:333
void ForgetAllData() const
Remove all SMESH_PreMeshInfo fields from objects w/o data loading.
Definition: SMESH_PreMeshInfo.cxx:1095
SMDSAbs_EntityType getElemType(const TopAbs_ShapeEnum shapeType, const int nbElemsInSubMesh, bool &isKoType) const
Return type of element for sub-mesh on a shape of given type.
Definition: SMESH_PreMeshInfo.cxx:698
SMESH::array_of_ElementType * GetTypes() const
Method of SMESH_IDSource interface.
Definition: SMESH_PreMeshInfo.cxx:1181
SMESH_Mesh_i * _mesh
Definition: SMESH_PreMeshInfo.hxx:123
std::string _hdfFileName
Definition: SMESH_PreMeshInfo.hxx:120
void readGroupInfo()
Reads info of groups from the med file.
Definition: SMESH_PreMeshInfo.cxx:508
bool readMeshInfo()
Reads mesh info of mesh from the med file.
Definition: SMESH_PreMeshInfo.cxx:476
bool _toRemoveFiles
Definition: SMESH_PreMeshInfo.hxx:121
bool readPreInfoFromHDF()
Tries to read all SMESH_PreMeshInfo from a HDF file.
Definition: SMESH_PreMeshInfo.cxx:409
SMESH_PreMeshInfo * newInstance()
Definition: SMESH_PreMeshInfo.hxx:100
void readSubMeshes(DriverMED_R_SMESHDS_Mesh *reader) const
Reads full data of sub-meshes.
Definition: SMESH_PreMeshInfo.cxx:859
static void LoadFromFile(SMESH_Mesh_i *mesh, const int meshID, const std::string &medFile, const std::string &hdfFile, const bool toRemoveFiles)
fills SMESH_PreMeshInfo field of all objects of mesh
Definition: SMESH_PreMeshInfo.cxx:367
sequence< ElementType > array_of_ElementType
Definition: SMESH_Mesh.idl:138
sequence< smIdType > smIdType_array
Definition: SMESH_Mesh.idl:45