-// Copyright (C) 2007-2016 CEA/DEN, EDF R&D
+// Copyright (C) 2007-2022 CEA/DEN, EDF R&D
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
#include "Utils_SALOME_Exception.hxx"
#include <map>
+#include <set>
#include <vector>
// class HexoticSizeMap
{
public:
- HexoticPlugin_Hypothesis(int hypId, int studyId, SMESH_Gen* gen);
+ HexoticPlugin_Hypothesis(int hypId, SMESH_Gen* gen);
static const char* GetHypType() { return "MG-Hexa Parameters"; }
void SetMaxSize(double theVal);
double GetMaxSize() const { return _maxSize; }
+ void SetGeomApproxAngle(double angle);
+ double GetGeomApproxAngle() const { return _approxAngle; }
+
void SetHexoticIgnoreRidges(bool theVal);
bool GetHexoticIgnoreRidges() const { return _hexoticIgnoreRidges; }
void SetHexoticMaxMemory(int theVal);
int GetHexoticMaxMemory() const { return _hexoticMaxMemory; }
- void SetTextOptions(const std::string& theOptions);
- std::string GetTextOptions() const { return _textOptions; }
+ void SetKeepFiles(bool toKeep);
+ bool GetKeepFiles() const { return _keepFiles; }
+ void SetStandardOutputLog(bool logInStandardOutput);
+ bool GetStandardOutputLog() const { return _logInStandardOutput; }
+ void SetRemoveLogOnSuccess(bool removeLogOnSuccess);
+ bool GetRemoveLogOnSuccess() const { return _removeLogOnSuccess; }
+
+
+ typedef std::map< std::string, std::string > TOptionValues;
+ typedef std::set< std::string > TOptionNames;
+
+ void SetOptionValue(const std::string& optionName,
+ const std::string& optionValue);
+ std::string GetOptionValue(const std::string& optionName,
+ bool* isDefault=0) const;
+ bool HasOptionDefined( const std::string& optionName ) const;
+ void ClearOption(const std::string& optionName);
+ TOptionValues GetOptionValues() const;
+ const TOptionValues& GetCustomOptionValues() const { return _customOption2value; }
+ std::string GetAdvancedOption( bool customOnly = false ) const;
+ void SetAdvancedOption(const std::string& theOptions); // obsolete
+
+ static bool ToBool(const std::string& str, bool* isOk=0);
+ static double ToDbl(const std::string& str, bool* isOk=0);
+ static int ToInt(const std::string& str, bool* isOk=0);
+
// Size Maps
typedef std::map<std::string,double> THexoticSizeMaps;
-
+
// For the GUI HexoticPluginGUI_HypothesisCreator::storeParamToHypo
- THexoticSizeMaps GetSizeMaps() const { return _sizeMaps; };
-
+ const THexoticSizeMaps& GetSizeMaps() const { return _sizeMaps; }
+
// Add one size map to the collection of size maps (user interface)
bool AddSizeMap(std::string theEntry, double theSize);
bool UnsetSizeMap(std::string theEntry);
double GetGrowth() const { return _growth; }
bool SetFacesWithLayers(const std::vector<int>& theVal);
- std::vector<int> GetFacesWithLayers() const { return _facesWithLayers; }
+ const std::vector<int>& GetFacesWithLayers() const { return _facesWithLayers; }
bool SetImprintedFaces(const std::vector<int>& theVal);
- std::vector<int> GetImprintedFaces() const { return _imprintedFaces; }
+ const std::vector<int>& GetImprintedFaces() const { return _imprintedFaces; }
// the parameters default values
static int GetDefaultHexesMinLevel();
static int GetDefaultHexesMaxLevel();
static double GetDefaultMinSize();
static double GetDefaultMaxSize();
+ static double GetDefaultGeomApproxAngle() { return 0; }
static bool GetDefaultHexoticIgnoreRidges();
static bool GetDefaultHexoticInvalidElements();
static double GetDefaultHexoticSharpAngleThreshold();
static double GetDefaultGrowth();
static std::vector<int> GetDefaultFacesWithLayers();
static std::vector<int> GetDefaultImprintedFaces();
+ static bool GetDefaultStandardOutputLog() { return false; }
+ static bool GetDefaultRemoveLogOnSuccess() { return false; }
+ static bool GetDefaultKeepFiles() { return false; }
// Persistence
virtual std::ostream& SaveTo(std::ostream& save);
*/
virtual bool SetParametersByDefaults(const TDefaults& dflts, const SMESH_Mesh* theMesh=0);
-private:
+ private:
int _hexesMinLevel;
int _hexesMaxLevel;
double _minSize;
double _maxSize;
+ double _approxAngle;
bool _hexoticIgnoreRidges;
bool _hexoticInvalidElements;
double _hexoticSharpAngleThreshold;
int _hexoticSdMode;
int _hexoticVerbosity;
int _hexoticMaxMemory;
- std::string _textOptions;
THexoticSizeMaps _sizeMaps;
+
+ TOptionValues _option2value, _customOption2value; // user defined values
+ TOptionValues _defaultOptionValues; // default values
+ TOptionNames _doubleOptions, _charOptions, _boolOptions; // to find a type of option
+
std::string _hexoticWorkingDirectory;
+ bool _logInStandardOutput;
+ bool _removeLogOnSuccess;
+ bool _keepFiles;
+
int _nbLayers;
double _firstLayerSize;
bool _direction;