#include "MEDFileData.hxx"
#include "MEDLoaderBase.hxx"
#include "MEDFileSafeCaller.txx"
+#include "MEDFileBlowStrEltUp.hxx"
#include "InterpKernelAutoPtr.hxx"
ret.push_back((const MEDFileMeshes *)_meshes);
ret.push_back((const MEDFileParameters *)_params);
ret.push_back((const MEDFileMeshSupports *)_mesh_supports);
+ ret.push_back((const MEDFileStructureElements *)_struct_elems);
return ret;
}
return !meshesImpacted.empty();
}
+void MEDFileData::dealWithStructureElements()
+{
+ if(_struct_elems.isNull())
+ throw INTERP_KERNEL::Exception("MEDFileData::dealWithStructureElements : no structure elements in this !");
+ if(_meshes.isNull() || _fields.isNull())
+ throw INTERP_KERNEL::Exception("MEDFileData::dealWithStructureElements : meshes and fields must be not null !");
+ MEDFileBlowStrEltUp::DealWithSE(_fields,_meshes,_struct_elems);
+}
+
/*!
* Precondition : all instances in \a mfds should have a single mesh with fields on it. If there is an instance with not exactly one mesh an exception will be thrown.
* You can invoke MEDFileFields::partOfThisLyingOnSpecifiedMeshName method to make it work.
try
{
readHeader(fid);
- _fields=MEDFileFields::New(fid);
+ _mesh_supports=MEDFileMeshSupports::New(fid);
+ _struct_elems=MEDFileStructureElements::New(fid,_mesh_supports);
+ _fields=MEDFileFields::NewWithDynGT(fid,_struct_elems,true);
_meshes=MEDFileMeshes::New(fid);
_params=MEDFileParameters::New(fid);
- _mesh_supports=MEDFileMeshSupports::New(fid);
}
catch(INTERP_KERNEL::Exception& e)
{
_params->writeLL(fid);
if(_mesh_supports.isNotNull())
_mesh_supports->writeLL(fid);
+ if(_struct_elems.isNotNull())
+ _struct_elems->writeLL(fid);
}
std::string MEDFileData::getHeader() const