-// Copyright (C) 2007-2012 CEA/DEN, EDF R&D
+// Copyright (C) 2007-2016 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
// License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
#include "SMESH_Hypothesis.hxx"
#include "Utils_SALOME_Exception.hxx"
-// Parameters for work of Hexotic
+#include <map>
+#include <vector>
+
+// class HexoticSizeMap
+// {
+// public:
+// SizeMap(const TopoDS_Shape& theShape, double theSize)
+// {
+// shape=theShape;
+// size=theSize;
+// };
+// TopoDS_Shape shape;
+// double size;
+// }
+// Parameters for work of MG-Hexa
//
class HEXOTICPLUGIN_EXPORT HexoticPlugin_Hypothesis: public SMESH_Hypothesis
{
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 SetHexesMinLevel(int theVal);
int GetHexesMinLevel() const { return _hexesMinLevel; }
void SetHexoticMaxMemory(int theVal);
int GetHexoticMaxMemory() const { return _hexoticMaxMemory; }
+
+ void SetAdvancedOption(const std::string& theOptions);
+ std::string GetAdvancedOption() const { return _textOptions; }
+ void SetTextOptions(const std::string& theOptions); // obsolete
+ std::string GetTextOptions() const { return _textOptions; }
- // the parameters default values
+ // Size Maps
+ typedef std::map<std::string,double> THexoticSizeMaps;
+
+ // For the GUI HexoticPluginGUI_HypothesisCreator::storeParamToHypo
+ 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);
+
+ void SetNbLayers(int theVal);
+ int GetNbLayers() const { return _nbLayers; }
+ void SetFirstLayerSize(double theVal);
+ double GetFirstLayerSize() const { return _firstLayerSize; }
+
+ void SetDirection(bool theVal);
+ bool GetDirection() const { return _direction; }
+
+ void SetGrowth(double theVal);
+ double GetGrowth() const { return _growth; }
+
+ bool SetFacesWithLayers(const std::vector<int>& theVal);
+ const std::vector<int>& GetFacesWithLayers() const { return _facesWithLayers; }
+
+ bool SetImprintedFaces(const std::vector<int>& theVal);
+ const std::vector<int>& GetImprintedFaces() const { return _imprintedFaces; }
+
+ // the parameters default values
static int GetDefaultHexesMinLevel();
static int GetDefaultHexesMaxLevel();
static double GetDefaultMinSize();
static int GetDefaultHexoticSdMode();
static int GetDefaultHexoticVerbosity();
static int GetDefaultHexoticMaxMemory();
+ static std::string GetDefaultTextOptions();
+ static THexoticSizeMaps GetDefaultHexoticSizeMaps();
+ static int GetDefaultNbLayers();
+ static double GetDefaultFirstLayerSize();
+ static bool GetDefaultDirection();
+ static double GetDefaultGrowth();
+ static std::vector<int> GetDefaultFacesWithLayers();
+ static std::vector<int> GetDefaultImprintedFaces();
// Persistence
virtual std::ostream& SaveTo(std::ostream& save);
int _hexoticSdMode;
int _hexoticVerbosity;
int _hexoticMaxMemory;
- std::string _hexoticWorkingDirectory ;
+ std::string _textOptions;
+ THexoticSizeMaps _sizeMaps;
+ std::string _hexoticWorkingDirectory;
+ int _nbLayers;
+ double _firstLayerSize;
+ bool _direction;
+ double _growth;
+ std::vector<int> _facesWithLayers;
+ std::vector<int> _imprintedFaces;
};
#endif