Salome HOME
Copyright update 2021
[modules/smesh.git] / src / StdMeshers / StdMeshers_CartesianParameters3D.hxx
index ce4e6a443689af4413c222f0ca2d64ea05a90ed8..4ba593c305fd062bef6fda93ff61e81a7358c0ee 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2016  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2021  CEA/DEN, EDF R&D, OPEN CASCADE
 //
 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
@@ -49,34 +49,34 @@ class STDMESHERS_EXPORT StdMeshers_CartesianParameters3D:  public SMESH_Hypothes
 {
 public:
   // Constructor
-  StdMeshers_CartesianParameters3D( int hypId, int studyId, SMESH_Gen * gen );
+  StdMeshers_CartesianParameters3D( int hypId, SMESH_Gen * gen );
 
   /*!
    * Sets coordinates of node positions along an axis (countered from 0)
    */
-  void SetGrid(std::vector<double>& xNodes, int axis) throw ( SALOME_Exception );
+  void SetGrid(std::vector<double>& xNodes, int axis);
   /*!
    * Return coordinates of node positions along the three axes
    */
-  void GetGrid(std::vector<double>& xNodes, int axis) const throw ( SALOME_Exception );
+  void GetGrid(std::vector<double>& xNodes, int axis) const;
 
   /*!
    * \brief Set grid spacing along the three axes
    *  \param spaceFunctions - functions defining spacing values at given point on axis
    *  \param internalPoints - points dividing a grid into parts along each direction
    *
-   * Parameter t of spaceFunction f(t) is a position [0,1] withing bounding box of
+   * Parameter t of spaceFunction f(t) is a position [0,1] within bounding box of
    * the shape to mesh
    */
   void SetGridSpacing(std::vector<std::string>& spaceFunctions,
                       std::vector<double>&      internalPoints,
-                      const int                 axis) throw ( SALOME_Exception );
+                      const int                 axis);
 
   void GetGridSpacing(std::vector<std::string>& spaceFunctions,
                       std::vector<double>&      internalPoints,
-                      const int                 axis) const throw ( SALOME_Exception );
+                      const int                 axis) const;
 
-  bool IsGridBySpacing(const int axis) const throw ( SALOME_Exception );
+  bool IsGridBySpacing(const int axis) const;
 
   /*!
    * Set/unset a fixed point, at which a node will be created provided that grid
@@ -99,7 +99,7 @@ public:
                                  std::vector<double>&      points,
                                  std::vector<double>&      coords,
                                  const std::string&        axis,
-                                 const double*             xForced=0) throw (SALOME_Exception);
+                                 const double*             xForced=0);
   /*!
    * Return coordinates of node positions along the three axes.
    * If the grid is defined by spacing functions, the coordinates are computed
@@ -107,12 +107,12 @@ public:
   void GetCoordinates(std::vector<double>& xNodes,
                       std::vector<double>& yNodes,
                       std::vector<double>& zNodes,
-                      const Bnd_Box&       bndBox) const throw ( SALOME_Exception );
+                      const Bnd_Box&       bndBox) const;
 
   /*!
    * \brief Set custom direction of axes
    */
-  void SetAxisDirs(const double* the9DirComps) throw ( SALOME_Exception );
+  void SetAxisDirs(const double* the9DirComps);
   const double* GetAxisDirs() const { return _axisDirs; }
   /*!
    * \brief Returns axes at which number of hexahedra is maximal
@@ -125,7 +125,7 @@ public:
    * hexahedron by geometry boundary is considered small and is removed if
    * it's size is \athreshold times less than the size of the initial hexahedron.
    */
-  void SetSizeThreshold(const double threshold) throw ( SALOME_Exception );
+  void SetSizeThreshold(const double threshold);
   /*!
    * \brief Return size threshold
    */
@@ -139,6 +139,25 @@ public:
   void SetToAddEdges(bool toAdd);
   bool GetToAddEdges() const;
 
+  /*!
+   * \brief Enables treatment of geom faces either shared by solids or internal.
+   */
+  void SetToConsiderInternalFaces(bool toTreat);
+  bool GetToConsiderInternalFaces() const { return _toConsiderInternalFaces; }
+
+  /*!
+   * \brief Enables applying size threshold to grid cells cut by internal geom faces.
+   */
+  void SetToUseThresholdForInternalFaces(bool toUse);
+  bool GetToUseThresholdForInternalFaces() const { return _toUseThresholdForInternalFaces; }
+
+  /*!
+   * \brief Enables creation of mesh faces.
+   */
+  void SetToCreateFaces(bool toCreate);
+  bool GetToCreateFaces() const { return _toCreateFaces; }
+
+
   /*!
    * \brief Return true if parameters are well defined
    */
@@ -171,6 +190,9 @@ public:
 
   double _sizeThreshold;
   bool   _toAddEdges;
+  bool   _toConsiderInternalFaces;
+  bool   _toUseThresholdForInternalFaces;
+  bool   _toCreateFaces;
 };
 
 #endif