Version: 9.16.0
SMESH_Meshio Class Reference

#include <SMESH_Meshio.h>

Public Member Functions

 SMESH_Meshio ()
 Constructor. More...
 
 SMESH_Meshio (const QString &selectedFilter)
 Constructor. More...
 
virtual ~SMESH_Meshio ()
 Destructor. More...
 
QString CreateTempFileName (const QString &targetFileName)
 Returns a name for a file in default temp directory based on a target basename. More...
 
void Convert (const QString &sourceFileName, const QString &targetFileName, bool isImport=false, const QString &converter=QString()) const
 Convert file with meshio convert command. More...
 

Static Public Member Functions

static QString GetMeshioVersion ()
 Returns meshio version string that has valid integer at least in the first position. More...
 
static bool IsModernMeshioVersion ()
 Returns true if we're going to use meshio version of 5.0 or greater. More...
 
static bool IsMeshioInstalled ()
 Returns true if meshio is installed. More...
 
static bool IsModernPythonVersion ()
 Returns true if current Python equal or newer than required version for meshio release from 5.0 and greater. More...
 
static QString GetConverterVersion (SMESHIOConverter::ExternalConverter converter)
 Returns lib version string that has valid integer at least in the first position. More...
 
static bool IsConverterInstalled (SMESHIOConverter::ExternalConverter converter=SMESHIOConverter::ExternalConverter::Gmsh)
 Check if a given converter library is installed and allowed for use. More...
 
static SMESHIOConverter::ExternalConverter GetConverterForExtension (const QString &selectedFilter=QString(), const QString &sourceFileName=QString(), const QString &converter=QString())
 find library for extension More...
 

Private Member Functions

void RemoveTempFile ()
 Removes the temporary file if we have any. More...
 
void CreateErrorFileName ()
 Creates a temp file for error output from meshio command. More...
 
void RemoveErrorFile ()
 Removes the temporary error output file if we have any. More...
 
std::string ReadErrorsFromFile () const
 Read all errors output from a temp file. More...
 
QString GetConvertOptArgs (SMESHIOConverter::ExternalConverter externalConverter, const QString &sourceFileName=QString()) const
 Get optional arguments for meshio convert command. More...
 

Private Attributes

QString myTempFileName
 
QString myErrorFileName
 
QString mySelectedFilter
 

Constructor & Destructor Documentation

◆ SMESH_Meshio() [1/2]

SMESH_Meshio::SMESH_Meshio ( )

Constructor.

References CreateErrorFileName().

◆ SMESH_Meshio() [2/2]

SMESH_Meshio::SMESH_Meshio ( const QString &  selectedFilter)

Constructor.

References mySelectedFilter.

◆ ~SMESH_Meshio()

SMESH_Meshio::~SMESH_Meshio ( )
virtual

Destructor.

References RemoveErrorFile(), and RemoveTempFile().

Member Function Documentation

◆ Convert()

void SMESH_Meshio::Convert ( const QString &  sourceFileName,
const QString &  targetFileName,
bool  isImport = false,
const QString &  converter = QString() 
) const

◆ CreateErrorFileName()

void SMESH_Meshio::CreateErrorFileName ( )
private

Creates a temp file for error output from meshio command.

References MESSAGE, and myErrorFileName.

Referenced by SMESH_Meshio().

◆ CreateTempFileName()

QString SMESH_Meshio::CreateTempFileName ( const QString &  targetFileName)

Returns a name for a file in default temp directory based on a target basename.

References MESSAGE, and myTempFileName.

Referenced by SMESH_Gen_i::CreateMeshesFromMESHIO(), SMESH_Mesh_i::ExportPartToMESHIO(), and SMESH_Gen_i::ReloadMeshesFromMESHIO().

◆ GetConverterForExtension()

SMESHIOConverter::ExternalConverter SMESH_Meshio::GetConverterForExtension ( const QString &  selectedFilter = QString(),
const QString &  sourceFileName = QString(),
const QString &  converter = QString() 
)
static

◆ GetConverterVersion()

QString SMESH_Meshio::GetConverterVersion ( SMESHIOConverter::ExternalConverter  converter)
static

Returns lib version string that has valid integer at least in the first position.

References IsModernPythonVersion(), SMESHIOConverter::MeshIo, MESSAGE, and SMESHIOConverter::toString().

Referenced by IsConverterInstalled().

◆ GetConvertOptArgs()

QString SMESH_Meshio::GetConvertOptArgs ( SMESHIOConverter::ExternalConverter  externalConverter,
const QString &  sourceFileName = QString() 
) const
private

Get optional arguments for meshio convert command.

References end(), SMESHIOConverter::ExtensionMap, SMESHIOConverter::fromLabel(), mySelectedFilter, and SMESHIOConverter::Unknown.

Referenced by Convert().

◆ GetMeshioVersion()

QString SMESH_Meshio::GetMeshioVersion ( )
static

Returns meshio version string that has valid integer at least in the first position.

References IsModernPythonVersion(), and MESSAGE.

Referenced by IsMeshioInstalled(), and IsModernMeshioVersion().

◆ IsConverterInstalled()

bool SMESH_Meshio::IsConverterInstalled ( SMESHIOConverter::ExternalConverter  converter = SMESHIOConverter::ExternalConverter::Gmsh)
static

Check if a given converter library is installed and allowed for use.

This function performs two verifications:

  1. Environment check:
    • Reads the corresponding environment variable (e.g. GMSH_VERSION, MESHIO_VERSION).
    • If the variable is set to 0 or invalid, the converter is considered disabled.
  2. Executable check:
    • Attempts to start the corresponding executable with "--version" (or "meshio-info --version" for legacy MeshIo).
    • If the process starts and exits normally, the converter is considered available in PATH.

A converter is considered installed only if both checks succeed.

Parameters
converterThe converter to check (Gmsh, MeshIo).
Returns
true if the converter is allowed by environment and its executable is available, false otherwise.

References GetConverterVersion(), IsModernMeshioVersion(), SMESHIOConverter::MeshIo, MESSAGE, and SMESHIOConverter::toString().

Referenced by SMESHGUI_Meshio::IsConverterInstalled().

◆ IsMeshioInstalled()

bool SMESH_Meshio::IsMeshioInstalled ( )
static

Returns true if meshio is installed.

References GetMeshioVersion(), IsModernMeshioVersion(), and MESSAGE.

Referenced by SMESHGUI_Meshio::IsMeshioInstalled().

◆ IsModernMeshioVersion()

bool SMESH_Meshio::IsModernMeshioVersion ( )
static

Returns true if we're going to use meshio version of 5.0 or greater.

References GetMeshioVersion().

Referenced by Convert(), IsConverterInstalled(), and IsMeshioInstalled().

◆ IsModernPythonVersion()

bool SMESH_Meshio::IsModernPythonVersion ( )
static

Returns true if current Python equal or newer than required version for meshio release from 5.0 and greater.

References MESSAGE.

Referenced by GetConverterVersion(), and GetMeshioVersion().

◆ ReadErrorsFromFile()

std::string SMESH_Meshio::ReadErrorsFromFile ( ) const
private

Read all errors output from a temp file.

References myErrorFileName.

Referenced by Convert().

◆ RemoveErrorFile()

void SMESH_Meshio::RemoveErrorFile ( )
private

Removes the temporary error output file if we have any.

References MESSAGE, and myErrorFileName.

Referenced by ~SMESH_Meshio().

◆ RemoveTempFile()

void SMESH_Meshio::RemoveTempFile ( )
private

Removes the temporary file if we have any.

References MESSAGE, and myTempFileName.

Referenced by ~SMESH_Meshio().

Field Documentation

◆ myErrorFileName

QString SMESH_Meshio::myErrorFileName
private

◆ mySelectedFilter

QString SMESH_Meshio::mySelectedFilter
private

◆ myTempFileName

QString SMESH_Meshio::myTempFileName
private