Write a mesh to a MED file. More...
#include <DriverMED_W_SMESHDS_Mesh.h>
Public Types | |
enum | Status { DRS_OK , DRS_EMPTY , DRS_WARN_RENUMBER , DRS_WARN_SKIP_ELEM , DRS_WARN_DESCENDING , DRS_FAIL , DRS_TOO_LARGE_MESH } |
Public Member Functions | |
DriverMED_W_SMESHDS_Mesh () | |
Constructor. More... | |
void | SetFile (const std::string &theFileName, int theVersion=-1) |
Set a file name and a version. More... | |
void | SetAutoDimension (bool toFindOutDimension) |
void | SetZTolerance (double tol) |
void | SetSaveNumbers (bool toSave) |
void | AddGroupOfNodes () |
void | AddGroupOfEdges () |
void | AddGroupOfFaces () |
void | AddGroupOfVolumes () |
void | AddGroupOf0DElems () |
void | AddGroupOfBalls () |
void | AddGroup (SMESHDS_GroupBase *theGroup) |
functions to prepare adding one mesh More... | |
void | AddAllSubMeshes () |
void | AddSubMesh (SMESHDS_SubMesh *theSubMesh, int theID) |
void | AddODOnVertices (bool toAdd) |
Status | Perform () override |
add one mesh More... | |
template<class LowLevelWriter > | |
Driver_Mesh::Status | PerformInternal (LowLevelWriter myMed) |
Write my mesh. More... | |
void | SetMesh (SMESHDS_Mesh *theMesh) |
void | SetMeshId (int theMeshId) |
virtual void | SetFile (const std::string &theFileName) |
virtual void | SetMeshName (const std::string &theMeshName) |
virtual std::string | GetMeshName () const |
virtual void | SetOption (const std::string &, const std::string &) |
virtual SMESH_ComputeErrorPtr | GetError () |
Return a structure containing description of errors. More... | |
Static Public Member Functions | |
static std::string | GetVersionString (int theMinor, int theNbDigits=2) |
MED version is either the latest available, or with an inferior minor, to ensure backward compatibility on writing med files. More... | |
static bool | getNodesOfMissing0DOnVert (SMESHDS_Mesh *mesh, std::vector< const SMDS_MeshElement * > &nodes) |
Returns nodes on VERTEXes where 0D elements are absent. More... | |
template<typename IDTYPE > | |
static bool | IsMeshTooLarge (const SMDS_Mesh *mesh, bool checkIDs) |
Protected Member Functions | |
Status | addMessage (const std::string &msg, const bool isFatal=false) |
Stores an error message. More... | |
Static Protected Member Functions | |
static std::string | fixUTF8 (const std::string &s) |
Assure a string is UTF-8 valid by replacing invalid chars. More... | |
Protected Attributes | |
SMESHDS_Mesh * | myMesh |
std::string | myFile |
std::string | myMeshName |
int | myMeshId |
std::vector< std::string > | myErrorMessages |
Status | myStatus |
Private Attributes | |
std::list< SMESHDS_GroupBase * > | myGroups |
bool | myAllSubMeshes |
std::vector< SMESHDS_SubMesh * > | mySubMeshes |
bool | myDoGroupOfNodes |
bool | myDoGroupOfEdges |
bool | myDoGroupOfFaces |
bool | myDoGroupOfVolumes |
bool | myDoGroupOf0DElems |
bool | myDoGroupOfBalls |
bool | myAutoDimension |
bool | myAddODOnVertices |
bool | myDoAllInGroups |
int | myVersion |
double | myZTolerance |
bool | mySaveNumbers |
Write a mesh to a MED file.
|
inherited |
DriverMED_W_SMESHDS_Mesh::DriverMED_W_SMESHDS_Mesh | ( | ) |
Constructor.
void DriverMED_W_SMESHDS_Mesh::AddAllSubMeshes | ( | ) |
References myAllSubMeshes.
void DriverMED_W_SMESHDS_Mesh::AddGroup | ( | SMESHDS_GroupBase * | theGroup | ) |
functions to prepare adding one mesh
References myGroups.
Referenced by SMESH_Mesh::exportMEDCommmon(), and SMESH_Gen_i::Save().
void DriverMED_W_SMESHDS_Mesh::AddGroupOf0DElems | ( | ) |
References myDoGroupOf0DElems.
Referenced by SMESH_Mesh::exportMEDCommmon().
void DriverMED_W_SMESHDS_Mesh::AddGroupOfBalls | ( | ) |
References myDoGroupOfBalls.
Referenced by SMESH_Mesh::exportMEDCommmon().
void DriverMED_W_SMESHDS_Mesh::AddGroupOfEdges | ( | ) |
References myDoGroupOfEdges.
Referenced by SMESH_Mesh::exportMEDCommmon().
void DriverMED_W_SMESHDS_Mesh::AddGroupOfFaces | ( | ) |
References myDoGroupOfFaces.
Referenced by SMESH_Mesh::exportMEDCommmon().
void DriverMED_W_SMESHDS_Mesh::AddGroupOfNodes | ( | ) |
References myDoGroupOfNodes.
Referenced by SMESH_Mesh::exportMEDCommmon().
void DriverMED_W_SMESHDS_Mesh::AddGroupOfVolumes | ( | ) |
References myDoGroupOfVolumes.
Referenced by SMESH_Mesh::exportMEDCommmon().
|
protectedinherited |
Stores an error message.
We consider an error fatal if none mesh can be read
References Driver_Mesh::DRS_FAIL, Driver_Mesh::DRS_WARN_SKIP_ELEM, MESSAGE, Driver_Mesh::myErrorMessages, and Driver_Mesh::myStatus.
Referenced by DriverGMF_Read::Perform(), DriverGMF_Write::Perform(), DriverMED_W_Field::Perform(), DriverMED_W_Field::PerformInternal(), and DriverGMF_Read::storeBadNodeIds().
void DriverMED_W_SMESHDS_Mesh::AddODOnVertices | ( | bool | toAdd | ) |
Referenced by SMESH_Mesh::exportMEDCommmon().
void DriverMED_W_SMESHDS_Mesh::AddSubMesh | ( | SMESHDS_SubMesh * | theSubMesh, |
int | theID | ||
) |
References mySubMeshes.
|
staticprotectedinherited |
Assure a string is UTF-8 valid by replacing invalid chars.
|
virtualinherited |
Return a structure containing description of errors.
References COMPERR_OK, Driver_Mesh::DRS_OK, Driver_Mesh::myErrorMessages, Driver_Mesh::myStatus, and SMESH_ComputeError::New().
Referenced by SMESH_Mesh::ExportCGNS(), SMESH_Mesh_i::exportMEDFields(), SMESH_Mesh::GMFToMesh(), and SMESH_Mesh::MEDToMesh().
|
virtualinherited |
References Driver_Mesh::myMeshName.
Referenced by SMESH_Mesh::CGNSToMesh().
|
static |
Returns nodes on VERTEXes where 0D elements are absent.
References SMESHDS_Mesh::IndexToShape(), SMESHDS_Mesh::MaxShapeIndex(), SMESHDS_Mesh::MeshElements(), SMDS_MeshNode::NbInverseElements(), and SMDSAbs_0DElement.
Referenced by PerformInternal(), and DriverMED_W_Field::Set().
|
static |
MED version is either the latest available, or with an inferior minor, to ensure backward compatibility on writing med files.
Referenced by SMESH_Mesh_i::GetVersionString().
|
staticinherited |
|
overridevirtual |
add one mesh
Write my mesh to a file.
Implements Driver_Mesh.
Reimplemented in DriverMED_W_SMESHDS_Mesh_Mem.
References MED::CrWrapperW(), Driver_Mesh::myFile, and myVersion.
Referenced by SMESH_Mesh::exportMEDCommmon(), and SMESH_Gen_i::Save().
Driver_Mesh::Status DriverMED_W_SMESHDS_Mesh::PerformInternal | ( | LowLevelWriter | myMed | ) |
Write my mesh.
References MED::aXGetCoord, MED::aXYGetCoord, MED::aXYZGetCoord, MED::aXZGetCoord, MED::aYGetCoord, MED::aYZGetCoord, MED::aZGetCoord, SMDS_Mesh::DownCast(), Driver_Mesh::DRS_OK, Driver_Mesh::DRS_TOO_LARGE_MESH, MED::eARETE, MED::eBALL, MED::eCART, Edge, MED::eFACE, MED::eFAUX, MED::eFULL_INTERLACE, MED::eHEXA20, MED::eHEXA27, MED::eHEXA8, SMDS_Mesh::elementEntityIterator(), SMDS_Mesh::elementGeomIterator(), SMDS_Mesh::elementsIterator(), MED::eMAILLE, MED::eNOD, MED::eNOEUD_ELEMENT, MED::eOCTA12, MED::ePENTA15, MED::ePENTA18, MED::ePENTA6, MED::ePOINT1, MED::ePOLYEDRE, MED::ePOLYGON2, MED::ePOLYGONE, MED::ePYRA13, MED::ePYRA5, MED::eQUAD4, MED::eQUAD8, MED::eQUAD9, MED::eSEG2, MED::eSEG3, MED::eSTRUCT_ELEMENT, MED::eTETRA10, MED::eTETRA4, MED::eTRIA3, MED::eTRIA6, MED::eTRIA7, MED::eVRAI, Face, SMDS_MeshElement::GetID(), SMDS_Mesh::GetMeshInfo(), MED::GetNbNodes(), SMDS_MeshNode::GetNode(), SMDS_MeshElement::GetNode(), getNodesOfMissing0DOnVert(), SMDS_MeshElement::IsPoly(), DriverMED_Family::MakeFamilies(), SMDS_Mesh::MaxElementID(), myAddODOnVertices, myAllSubMeshes, myAutoDimension, myDoAllInGroups, myDoGroupOf0DElems, myDoGroupOfBalls, myDoGroupOfEdges, myDoGroupOfFaces, myDoGroupOfNodes, myDoGroupOfVolumes, myGroups, Driver_SMESHDS_Mesh::myMesh, Driver_Mesh::myMeshId, Driver_Mesh::myMeshName, mySaveNumbers, mySubMeshes, myZTolerance, SMDS_Mesh::Nb0DElements(), SMDS_MeshInfo::Nb0DElements(), SMDS_Mesh::NbBalls(), SMDS_MeshInfo::NbBalls(), SMDS_MeshInfo::NbBiQuadPrisms(), SMDS_MeshInfo::NbBiQuadQuadrangles(), SMDS_MeshInfo::NbBiQuadTriangles(), SMDS_Mesh::NbEdges(), SMDS_MeshInfo::NbEdges(), SMDS_MeshVolume::NbFaceNodes(), SMDS_Mesh::NbFaces(), SMDS_MeshVolume::NbFaces(), SMDS_MeshElement::NbFaces(), SMDS_MeshInfo::NbHexas(), SMDS_MeshInfo::NbHexPrisms(), SMDS_Mesh::NbNodes(), SMDS_MeshElement::NbNodes(), SMDS_MeshInfo::NbPolygons(), SMDS_MeshInfo::NbPolyhedrons(), SMDS_MeshInfo::NbPrisms(), SMDS_MeshInfo::NbPyramids(), SMDS_MeshInfo::NbQuadPrisms(), SMDS_MeshInfo::NbQuadrangles(), SMDS_MeshInfo::NbTetras(), SMDS_MeshInfo::NbTriangles(), SMDS_MeshInfo::NbTriQuadHexas(), SMDS_Mesh::NbVolumes(), NIG_0DELEM_FAMILY, NIG_BALL_FAMILY, NIG_EDGES_FAMILY, NIG_FACES_FAMILY, NIG_VOLS_FAMILY, SMDS_Mesh::nodesIterator(), SMDS_MeshElement::nodesIterator(), ORDER_LINEAR, ORDER_QUADRATIC, REST_0DELEM_FAMILY, REST_BALL_FAMILY, REST_EDGES_FAMILY, REST_FACES_FAMILY, REST_NODES_FAMILY, REST_VOLUMES_FAMILY, SMESHDS_Mesh::ShapeToMesh(), SMDSAbs_0DElement, SMDSAbs_Ball, SMDSAbs_Edge, SMDSAbs_Face, SMDSAbs_NbElementTypes, SMDSAbs_Node, SMDSAbs_Volume, SMDSEntity_Polygon, SMDSEntity_Quad_Polygon, SMDSGeom_POLYHEDRA, SMESHDS_Mesh::SubMeshes(), SMESHDS_Mesh::SubMeshIndices(), SMDS_MeshNode::X(), SMDS_MeshNode::Y(), and SMDS_MeshNode::Z().
void DriverMED_W_SMESHDS_Mesh::SetAutoDimension | ( | bool | toFindOutDimension | ) |
Referenced by SMESH_Mesh::exportMEDCommmon().
|
virtualinherited |
References Driver_Mesh::myFile.
Referenced by SMESH_Mesh::CGNSToMesh(), SMESH_Gen_i::CreateMeshesFromCGNS(), SMESH_Gen_i::CreateMeshesFromMED(), SMESH_Mesh::ExportCGNS(), SMESH_Mesh::ExportDAT(), MEDFileSpeCls::exportField(), SMESH_Mesh::ExportGMF(), SMESH_Mesh::ExportSTL(), SMESH_Mesh::ExportUNV(), SMESH_PreMeshInfo::FullLoadFromFile(), MG_ADAPT::MgAdapt::getCommandToRun(), GetMGLicenseKeyImpl(), SMESH_Mesh::GMFToMesh(), SMESH_Mesh::MEDToMesh(), SetFile(), SMESH_Mesh::STLToMesh(), and SMESH_Mesh::UNVToMesh().
void DriverMED_W_SMESHDS_Mesh::SetFile | ( | const std::string & | theFileName, |
int | theVersion = -1 |
||
) |
Set a file name and a version.
[in] | theFileName | - output file name |
[in] | theVersion | - desired MED file version == major * 10 + minor |
References myVersion, and Driver_Mesh::SetFile().
Referenced by SMESH_Mesh::ExportMED(), and SMESH_Gen_i::Save().
|
inherited |
References Driver_SMESHDS_Mesh::myMesh.
Referenced by SMESH_Mesh::CGNSToMesh(), SMESH_Mesh::ExportCGNS(), SMESH_Mesh::ExportGMF(), SMESH_Mesh::exportMEDCommmon(), SMESH_PreMeshInfo::FullLoadFromFile(), SMESH_Mesh::GMFToMesh(), SMESH_Mesh::MEDToMesh(), SMESH_Gen_i::Save(), and DriverMED_W_Field::Set().
|
inherited |
References Driver_Mesh::myMeshId.
Referenced by SMESH_Mesh::CGNSToMesh(), SMESH_Gen_i::CreateMeshesFromMED(), SMESH_Mesh::ExportDAT(), SMESH_Mesh::exportMEDCommmon(), SMESH_Mesh::ExportSTL(), SMESH_Mesh::ExportUNV(), SMESH_PreMeshInfo::FullLoadFromFile(), SMESH_Mesh::MEDToMesh(), SMESH_Gen_i::Save(), SMESH_Mesh::STLToMesh(), and SMESH_Mesh::UNVToMesh().
|
virtualinherited |
References Driver_Mesh::myMeshName.
Referenced by SMESH_Mesh::ExportCGNS(), MEDFileSpeCls::exportField(), MEDFileMemSpeCls::exportField(), and SMESH_Mesh::exportMEDCommmon().
|
virtualinherited |
void DriverMED_W_SMESHDS_Mesh::SetSaveNumbers | ( | bool | toSave | ) |
Referenced by SMESH_Mesh::exportMEDCommmon().
void DriverMED_W_SMESHDS_Mesh::SetZTolerance | ( | double | tol | ) |
Referenced by SMESH_Mesh::exportMEDCommmon().
|
private |
Referenced by PerformInternal().
|
private |
Referenced by AddAllSubMeshes(), and PerformInternal().
|
private |
Referenced by PerformInternal().
|
private |
Referenced by PerformInternal().
|
private |
Referenced by AddGroupOf0DElems(), and PerformInternal().
|
private |
Referenced by AddGroupOfBalls(), and PerformInternal().
|
private |
Referenced by AddGroupOfEdges(), and PerformInternal().
|
private |
Referenced by AddGroupOfFaces(), and PerformInternal().
|
private |
Referenced by AddGroupOfNodes(), and PerformInternal().
|
private |
Referenced by AddGroupOfVolumes(), and PerformInternal().
|
protectedinherited |
Referenced by Driver_Mesh::addMessage(), and Driver_Mesh::GetError().
|
protectedinherited |
Referenced by DriverGMF_Read::GetMeshInfo(), DriverGMF_Read::Perform(), DriverGMF_Write::Perform(), DriverSTL_R_SMDS_Mesh::Perform(), DriverMED_W_Field::Perform(), DriverMED_W_Field_Mem::Perform(), Perform(), DriverMED_W_SMESHDS_Mesh_Mem::Perform(), DriverSTL_R_SMDS_Mesh::readAscii(), Driver_Mesh::SetFile(), DriverSTL_W_SMDS_Mesh::writeAscii(), and DriverSTL_W_SMDS_Mesh::writeBinary().
|
private |
Referenced by AddGroup(), and PerformInternal().
|
protectedinherited |
|
protectedinherited |
Referenced by PerformInternal(), DriverMED_W_Field::PerformInternal(), and Driver_Mesh::SetMeshId().
|
protectedinherited |
|
private |
Referenced by PerformInternal().
|
protectedinherited |
Referenced by Driver_Mesh::addMessage(), Driver_Mesh::GetError(), and DriverGMF_Read::storeBadNodeIds().
|
private |
Referenced by AddSubMesh(), and PerformInternal().
|
private |
Referenced by PerformInternal().