Salome HOME
Merge multi-study removal branch.
[plugins/hybridplugin.git] / src / HYBRIDPlugin / HYBRIDPlugin_Hypothesis.hxx
index baeca583eae5bc0f1c35b6c6f98612ed672f9e89..ddf1b3dfd2066ad67bc471644765fc69358b567e 100644 (file)
@@ -129,6 +129,16 @@ public:
    */
   void SetLayersOnAllWrap(bool toMesh);
   bool GetLayersOnAllWrap(bool checkFreeOption = false) const;
+  /*!
+   * IDs of faces to grow the layers on
+   */
+  bool SetFacesWithLayers(const std::vector<int>& theVal);
+  const std::vector<int>& GetFacesWithLayers() const;
+  /*!
+   * IDs of faces to imprint the layers on
+   */
+  bool SetFacesWithImprinting(const std::vector<int>& theVal);
+  const std::vector<int>& GetFacesWithImprinting() const;
   /*!
    * To make groups of volumes of different domains when mesh is generated from skin.
    * Default is to make groups.
@@ -167,9 +177,9 @@ public:
   void SetBoundaryLayersGrowth(BoundaryLayersGrowth level);
   BoundaryLayersGrowth GetBoundaryLayersGrowth() const;
   /*!
-   * ElementGeneration: 0-Generation_Tetra_Dominant, 1-Generation_Hexa_Dominant. Default is Generation_Tetra_Dominant
+   * ElementGeneration: 0-Generation_Tetra_Dominant, 1-Generation_Hexa_Dominant, 2-Generation_Cartesian_Core. Default is Generation_Tetra_Dominant
    */
-  enum ElementGeneration { Generation_Tetra_Dominant = 0, Generation_Hexa_Dominant };
+  enum ElementGeneration { Generation_Tetra_Dominant = 0, Generation_Hexa_Dominant, Generation_Cartesian_Core };
   void SetElementGeneration(ElementGeneration level);
   ElementGeneration GetElementGeneration() const;
     /*!
@@ -195,6 +205,12 @@ public:
      */
     void SetBoundaryLayersProgression(double BLP);
     double GetBoundaryLayersProgression() const;
+    /*!
+     * Set core elements size.
+     * Default is 0.0
+     */
+    void SetCoreSize(double CS);
+    double GetCoreSize() const;
     /*!
      * To set multinormals angle threshold at opening ridges.
      * Default is 30.0
@@ -288,8 +304,7 @@ public:
   /*!
    * \brief Return command to run hybrid mesher excluding file prefix (-f)
    */
-  static std::string CommandToRun(const HYBRIDPlugin_Hypothesis* hyp,
-                                  const bool                    hasShapeToMesh=true);
+  static std::string CommandToRun(const HYBRIDPlugin_Hypothesis* hyp, SMESH_Mesh& mesh);
   /*!
    * \brief Return a unique file name
    */
@@ -298,6 +313,10 @@ public:
    * \brief Return the name of executable
    */
   static std::string GetExeName();
+  /*!
+   * \brief Return a tag of enforced triangles
+   */
+  static int EnforcedTag() { return -5; }
 
   /*!
    * To set an enforced vertex
@@ -372,6 +391,7 @@ public:
   static short  DefaultNbOfBoundaryLayers();
   static double DefaultHeightFirstLayer();
   static double DefaultBoundaryLayersProgression();
+  static double DefaultCoreSize();
   static double DefaultMultinormalsAngle();
     
   static THYBRIDEnforcedVertex DefaultHYBRIDEnforcedVertex() {return THYBRIDEnforcedVertex();}
@@ -408,33 +428,36 @@ public:
 
 private:
 
-  bool   myToMeshHoles;
-  bool   myLayersOnAllWrap;
-  bool   myToMakeGroupsOfDomains;
-  double myMaximumMemory;
-  double myInitialMemory;
-  short  myOptimizationLevel;
-  short  myCollisionMode;
-  short  myBoundaryLayersGrowth;
-  short  myElementGeneration;
-  bool   myKeepFiles;
-  std::string myWorkingDirectory;
-  short  myVerboseLevel;
-  bool   myToCreateNewNodes;
-  bool   myToUseBoundaryRecoveryVersion;
-  bool   myToUseFemCorrection;
-  bool   myToRemoveCentralPoint;
-  bool   myLogInStandardOutput;
-  bool   myRemoveLogOnSuccess;
-  std::string myTextOption;
-  double myGradation;
+  bool             myToMeshHoles;
+  bool             myLayersOnAllWrap;
+  std::vector<int> myFacesWithLayers;
+  std::vector<int> myFacesWithImprinting;
+  bool             myToMakeGroupsOfDomains;
+  double           myMaximumMemory;
+  double           myInitialMemory;
+  short            myOptimizationLevel;
+  short            myCollisionMode;
+  short            myBoundaryLayersGrowth;
+  short            myElementGeneration;
+  bool             myKeepFiles;
+  std::string      myWorkingDirectory;
+  short            myVerboseLevel;
+  bool             myToCreateNewNodes;
+  bool             myToUseBoundaryRecoveryVersion;
+  bool             myToUseFemCorrection;
+  bool             myToRemoveCentralPoint;
+  bool             myLogInStandardOutput;
+  bool             myRemoveLogOnSuccess;
+  std::string      myTextOption;
+  double           myGradation;
 
-  bool    myAddMultinormals;
-  bool    mySmoothNormals;
-  double  myHeightFirstLayer;
-  double  myBoundaryLayersProgression;
-  double  myMultinormalsAngle;
-  short   myNbOfBoundaryLayers;
+  bool             myAddMultinormals;
+  bool             mySmoothNormals;
+  double           myHeightFirstLayer;
+  double           myBoundaryLayersProgression;
+  double           myCoreSize;
+  double           myMultinormalsAngle;
+  short            myNbOfBoundaryLayers;
    
   THYBRIDEnforcedVertexList _enfVertexList;
   THYBRIDEnforcedVertexCoordsValues _enfVertexCoordsSizeList;