-// Copyright (C) 2020-2021 CEA/DEN, EDF R&D
+// Copyright (C) 2020-2024 CEA, EDF
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
#include "MG_ADAPT.hxx"
-#include "SMESH_File.hxx"
-#include "SMESH_Comment.hxx"
+#include <DriverGMF_Read.hxx>
+#include <SMESH_Comment.hxx>
+#include <SMESH_File.hxx>
+#include <SMESH_MGLicenseKeyGen.hxx>
+#include <SMESH_TypeDefs.hxx>
#include <MEDFileData.hxx>
#include <MEDFileField.hxx>
#include <fcntl.h>
#include <array>
#include <memory> // unique_ptr
+#include <chrono>
typedef SMESH_Comment ToComment;
}
void MgAdapt::setMedFileIn(std::string fileName)
{
- if ( isFileExist(fileName) )
+ if ( isFileExist( fileName ))
{
medFileIn = fileName;
cmd+= " --in "+ meshIn;
meshFormatOutputMesh = getFileName()+".mesh";
tmpFilesToBeDeleted.push_back(meshFormatOutputMesh);
+
cmd+= " --out "+ meshFormatOutputMesh;
if (useLocalMap || useConstantValue) cmd+= " --sizemap "+ solFileIn;
else // (useBackgroundMap)
cmd += " --";
else
cmd += " ";
-// std::cout << "--- option: '" << option << ", value: '" << value <<"'"<< std::endl;
+ // std::cout << "--- option: '" << option << ", value: '" << value <<"'"<< std::endl;
cmd += option + " " + value;
}
}
{
cmd+= " --verbose "+ ToComment(verbosityLevel);
}
- //~}
-//~cmd+= " >"
+ // get license key
+ {
+ smIdType nbVertex, nbEdge, nbFace, nbVol;
+ DriverGMF_Read gmfReader;
+ gmfReader.SetFile( meshIn );
+ gmfReader.GetMeshInfo( nbVertex, nbEdge, nbFace, nbVol );
+
+ std::string errorTxt;
+ std::string key = SMESHUtils_MGLicenseKeyGen::GetKey( meshIn,
+ FromSmIdType<int>( nbVertex ),
+ FromSmIdType<int>( nbEdge ),
+ FromSmIdType<int>( nbFace ),
+ FromSmIdType<int>( nbVol ),
+ errorTxt );
+ if ( key.empty() )
+ return ToComment( "Problem with library SalomeMeshGemsKeyGenerator: " + errorTxt );
+
+ if ( key!="0" )
+ cmd += " --key " + key;
+ }
+
#ifdef WIN32
- cmd += " < NUL";
+ cmd += " < NUL";
#endif
-// std::cout << "--- cmd :"<< std::endl;
-// std::cout << cmd << std::endl;
+
+ if (SALOME::VerbosityActivated())
+ {
+ std::cout << "--- cmd :"<< std::endl;
+ std::cout << cmd << std::endl;
+ }
return cmd;
}
{
aTmpDir = Tmp_dir;
}
- else {
+
+ if ( ! isFileExist( aTmpDir ))
+ {
#ifdef WIN32
aTmpDir = "C:\\";
#else
aGenericName << _getpid();
#endif
aGenericName << "_";
- aGenericName << std::abs((int)(long) aGenericName.data());
+ aGenericName << std::chrono::system_clock::now().time_since_epoch().count();
return aGenericName;
}
_errorMessages.push_back( msg );
//~MESSAGE(msg);
-#ifdef _DEBUG_
- std::cout << msg << std::endl;
-#endif
+ if (SALOME::VerbosityActivated())
+ std::cout << msg << std::endl;
+
return ( _status = isFatal ? MgAdapt::DRS_FAIL : MgAdapt::DRS_WARN_SKIP_ELEM );
}