X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FStdMeshers%2FStdMeshers_CartesianParameters3D.hxx;h=a913e830cd4e8c1712a8c2533ced5e21ac9c3cf5;hb=0eea513c934f0925f9b9ec6cc56892feafc04c0d;hp=d7ecbb1bf45bdaeb2ef867e7eb9b9a5ce6a54caf;hpb=cc9e7d544292b687b0cc729bc455c147bd65ac54;p=modules%2Fsmesh.git diff --git a/src/StdMeshers/StdMeshers_CartesianParameters3D.hxx b/src/StdMeshers/StdMeshers_CartesianParameters3D.hxx index d7ecbb1bf..a913e830c 100644 --- a/src/StdMeshers/StdMeshers_CartesianParameters3D.hxx +++ b/src/StdMeshers/StdMeshers_CartesianParameters3D.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2013 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2024 CEA, EDF, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -6,7 +6,7 @@ // 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 @@ -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& xNodes, int axis) throw ( SALOME_Exception ); + void SetGrid(std::vector& xNodes, int axis); /*! * Return coordinates of node positions along the three axes */ - void GetGrid(std::vector& xNodes, int axis) const throw ( SALOME_Exception ); + void GetGrid(std::vector& 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& spaceFunctions, std::vector& internalPoints, - const int axis) throw ( SALOME_Exception ); + const int axis); void GetGridSpacing(std::vector& spaceFunctions, std::vector& 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& points, std::vector& 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& xNodes, std::vector& yNodes, std::vector& 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,38 @@ 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 Enables use of quanta for hexahedrons at the solid external boundary + */ + void SetToUseQuanta(bool toUseQuanta); + bool GetToUseQuanta() const { return _toUseQuanta; } + + /*! + * \brief Value of the quanta (volPolyhedron/volHexahedron) to use + * \remark value [0.1, 1.0] + */ + void SetQuanta(const double quanta ); + double GetQuanta() const { return _quanta; } + + /*! * \brief Return true if parameters are well defined */ @@ -171,6 +203,11 @@ public: double _sizeThreshold; bool _toAddEdges; + bool _toConsiderInternalFaces; + bool _toUseThresholdForInternalFaces; + bool _toCreateFaces; + bool _toUseQuanta; + double _quanta; }; #endif