Salome HOME
projects
/
modules
/
smesh.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[bos #24169] [CEA 24168] Error in AffectedElemGroupsInRegion
[modules/smesh.git]
/
src
/
SMESH
/
SMESH_MesherHelper.hxx
diff --git
a/src/SMESH/SMESH_MesherHelper.hxx
b/src/SMESH/SMESH_MesherHelper.hxx
index d4f54833ae574dacf157d599aa2f7d4ea926213c..d48318877d2043cc7f96e8a7d11a37d8fe29e32b 100644
(file)
--- a/
src/SMESH/SMESH_MesherHelper.hxx
+++ b/
src/SMESH/SMESH_MesherHelper.hxx
@@
-1,4
+1,4
@@
-// Copyright (C) 2007-20
16
CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-20
21
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
//
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
@@
-29,7
+29,8
@@
#include "SMESH_SMESH.hxx"
#include "SMESH_SMESH.hxx"
-#include "SMESH_MeshEditor.hxx" // needed for many meshers
+#include "SMESH_ComputeError.hxx"
+#include "SMESH_TypeDefs.hxx"
#include <Geom_Surface.hxx>
#include <ShapeAnalysis_Surface.hxx>
#include <Geom_Surface.hxx>
#include <ShapeAnalysis_Surface.hxx>
@@
-44,8
+45,15
@@
class GeomAPI_ProjectPointOnCurve;
class GeomAPI_ProjectPointOnSurf;
class SMDS_MeshNode;
class SMESHDS_Hypothesis;
class GeomAPI_ProjectPointOnSurf;
class SMDS_MeshNode;
class SMESHDS_Hypothesis;
+class SMESHDS_Mesh;
+class SMESHDS_SubMesh;
class SMESH_Gen;
class SMESH_Gen;
+class SMESH_Mesh;
class SMESH_ProxyMesh;
class SMESH_ProxyMesh;
+class SMESH_subMesh;
+class TopoDS_Edge;
+class TopoDS_Face;
+class TopoDS_Vertex;
typedef std::map<SMESH_TLink, const SMDS_MeshNode*> TLinkNodeMap;
typedef std::map<SMESH_TLink, const SMDS_MeshNode*>::iterator ItTLinkNode;
typedef std::map<SMESH_TLink, const SMDS_MeshNode*> TLinkNodeMap;
typedef std::map<SMESH_TLink, const SMDS_MeshNode*>::iterator ItTLinkNode;
@@
-92,7
+100,7
@@
class SMESH_EXPORT SMESH_MesherHelper
* \brief Load nodes bound to face into a map of node columns
* \param theParam2ColumnMap - map of node columns to fill
* \param theFace - the face on which nodes are searched for
* \brief Load nodes bound to face into a map of node columns
* \param theParam2ColumnMap - map of node columns to fill
* \param theFace - the face on which nodes are searched for
- * \param theBaseSide - the edges holding nodes on which columns
' bases
+ * \param theBaseSide - the edges holding nodes on which columns
base
* \param theMesh - the mesh containing nodes
* \retval bool - false if something is wrong
*
* \param theMesh - the mesh containing nodes
* \retval bool - false if something is wrong
*
@@
-300,7
+308,7
@@
public:
/*!
* \brief To set created elements on the shape set by IsQuadraticSubMesh()
/*!
* \brief To set created elements on the shape set by IsQuadraticSubMesh()
- * or the next methods. By defaul elements are set on the shape if
+ * or the next methods. By defaul
t
elements are set on the shape if
* a mesh has no shape to be meshed
*/
bool SetElementsOnShape(bool toSet)
* a mesh has no shape to be meshed
*/
bool SetElementsOnShape(bool toSet)
@@
-335,13
+343,13
@@
public:
/*!
* Creates a node (!Note ID before u=0.,v0.)
*/
/*!
* Creates a node (!Note ID before u=0.,v0.)
*/
- SMDS_MeshNode* AddNode(double x, double y, double z,
int
ID = 0, double u=0., double v=0.);
+ SMDS_MeshNode* AddNode(double x, double y, double z,
smIdType
ID = 0, double u=0., double v=0.);
/*!
* Creates quadratic or linear edge
*/
SMDS_MeshEdge* AddEdge(const SMDS_MeshNode* n1,
const SMDS_MeshNode* n2,
/*!
* Creates quadratic or linear edge
*/
SMDS_MeshEdge* AddEdge(const SMDS_MeshNode* n1,
const SMDS_MeshNode* n2,
- const
int
id = 0,
+ const
smIdType
id = 0,
const bool force3d = true);
/*!
* Creates quadratic or linear triangle
const bool force3d = true);
/*!
* Creates quadratic or linear triangle
@@
-349,7
+357,7
@@
public:
SMDS_MeshFace* AddFace(const SMDS_MeshNode* n1,
const SMDS_MeshNode* n2,
const SMDS_MeshNode* n3,
SMDS_MeshFace* AddFace(const SMDS_MeshNode* n1,
const SMDS_MeshNode* n2,
const SMDS_MeshNode* n3,
- const
int
id=0,
+ const
smIdType
id=0,
const bool force3d = false);
/*!
* Creates bi-quadratic, quadratic or linear quadrangle
const bool force3d = false);
/*!
* Creates bi-quadratic, quadratic or linear quadrangle
@@
-358,13
+366,13
@@
public:
const SMDS_MeshNode* n2,
const SMDS_MeshNode* n3,
const SMDS_MeshNode* n4,
const SMDS_MeshNode* n2,
const SMDS_MeshNode* n3,
const SMDS_MeshNode* n4,
- const
int
id = 0,
+ const
smIdType
id = 0,
const bool force3d = false);
/*!
* Creates polygon, with additional nodes in quadratic mesh
*/
SMDS_MeshFace* AddPolygonalFace (const std::vector<const SMDS_MeshNode*>& nodes,
const bool force3d = false);
/*!
* Creates polygon, with additional nodes in quadratic mesh
*/
SMDS_MeshFace* AddPolygonalFace (const std::vector<const SMDS_MeshNode*>& nodes,
- const
int
id = 0,
+ const
smIdType
id = 0,
const bool force3d = false);
/*!
* Creates quadratic or linear tetrahedron
const bool force3d = false);
/*!
* Creates quadratic or linear tetrahedron
@@
-373,7
+381,7
@@
public:
const SMDS_MeshNode* n2,
const SMDS_MeshNode* n3,
const SMDS_MeshNode* n4,
const SMDS_MeshNode* n2,
const SMDS_MeshNode* n3,
const SMDS_MeshNode* n4,
- const
int
id = 0,
+ const
smIdType
id = 0,
const bool force3d = true);
/*!
* Creates quadratic or linear pyramid
const bool force3d = true);
/*!
* Creates quadratic or linear pyramid
@@
-383,7
+391,7
@@
public:
const SMDS_MeshNode* n3,
const SMDS_MeshNode* n4,
const SMDS_MeshNode* n5,
const SMDS_MeshNode* n3,
const SMDS_MeshNode* n4,
const SMDS_MeshNode* n5,
- const
int
id = 0,
+ const
smIdType
id = 0,
const bool force3d = true);
/*!
* Creates quadratic or linear pentahedron
const bool force3d = true);
/*!
* Creates quadratic or linear pentahedron
@@
-394,7
+402,7
@@
public:
const SMDS_MeshNode* n4,
const SMDS_MeshNode* n5,
const SMDS_MeshNode* n6,
const SMDS_MeshNode* n4,
const SMDS_MeshNode* n5,
const SMDS_MeshNode* n6,
- const
int
id = 0,
+ const
smIdType
id = 0,
const bool force3d = true);
/*!
* Creates bi-quadratic, quadratic or linear hexahedron
const bool force3d = true);
/*!
* Creates bi-quadratic, quadratic or linear hexahedron
@@
-407,7
+415,7
@@
public:
const SMDS_MeshNode* n6,
const SMDS_MeshNode* n7,
const SMDS_MeshNode* n8,
const SMDS_MeshNode* n6,
const SMDS_MeshNode* n7,
const SMDS_MeshNode* n8,
- const
int
id = 0,
+ const
smIdType
id = 0,
bool force3d = true);
/*!
bool force3d = true);
/*!
@@
-425,7
+433,7
@@
public:
const SMDS_MeshNode* n10,
const SMDS_MeshNode* n11,
const SMDS_MeshNode* n12,
const SMDS_MeshNode* n10,
const SMDS_MeshNode* n11,
const SMDS_MeshNode* n12,
- const
int
id = 0,
+ const
smIdType
id = 0,
bool force3d = true);
/*!
bool force3d = true);
/*!
@@
-433,7
+441,7
@@
public:
*/
SMDS_MeshVolume* AddPolyhedralVolume (const std::vector<const SMDS_MeshNode*>& nodes,
const std::vector<int>& quantities,
*/
SMDS_MeshVolume* AddPolyhedralVolume (const std::vector<const SMDS_MeshNode*>& nodes,
const std::vector<int>& quantities,
- const
int
ID=0,
+ const
smIdType
ID=0,
const bool force3d = true);
/*!
* \brief Enables fixing node parameters on EDGEs and FACEs by
const bool force3d = true);
/*!
* \brief Enables fixing node parameters on EDGEs and FACEs by
@@
-502,7
+510,7
@@
public:
/*!
* \brief Define a pointer to wrapper over a function of gp_XY class,
* suitable to pass as xyFunPtr to ApplyIn2D().
/*!
* \brief Define a pointer to wrapper over a function of gp_XY class,
* suitable to pass as xyFunPtr to ApplyIn2D().
- * For exaple gp_XY_FunPtr(Added) defines pointer gp_XY_Added to function
+ * For exa
m
ple gp_XY_FunPtr(Added) defines pointer gp_XY_Added to function
* calling gp_XY::Added(gp_XY), which is to be used like following
* ApplyIn2D(surf, uv1, uv2, gp_XY_Added)
*/
* calling gp_XY::Added(gp_XY), which is to be used like following
* ApplyIn2D(surf, uv1, uv2, gp_XY_Added)
*/
@@
-539,7
+547,7
@@
public:
bool GetNodeUVneedInFaceNode(const TopoDS_Face& F = TopoDS_Face()) const;
/*!
bool GetNodeUVneedInFaceNode(const TopoDS_Face& F = TopoDS_Face()) const;
/*!
- * \brief Return projector in
t
itialized by given face without location, which is returned
+ * \brief Return projector initialized by given face without location, which is returned
*/
GeomAPI_ProjectPointOnSurf& GetProjector(const TopoDS_Face& F,
TopLoc_Location& loc,
*/
GeomAPI_ProjectPointOnSurf& GetProjector(const TopoDS_Face& F,
TopLoc_Location& loc,
@@
-577,7
+585,7
@@
public:
* \retval bool - true if subShape is a seam shape
*
* It works only if IsQuadraticSubMesh() or SetSubShape() has been called.
* \retval bool - true if subShape is a seam shape
*
* It works only if IsQuadraticSubMesh() or SetSubShape() has been called.
- * Seam shape has two 2D alternative represenations on the face
+ * Seam shape has two 2D alternative represen
t
ations on the face
*/
bool IsSeamShape(const int subShape) const
{ return mySeamShapeIds.find( subShape ) != mySeamShapeIds.end(); }
*/
bool IsSeamShape(const int subShape) const
{ return mySeamShapeIds.find( subShape ) != mySeamShapeIds.end(); }
@@
-587,7
+595,7
@@
public:
* \retval bool - true if subShape is a seam shape
*
* It works only if IsQuadraticSubMesh() or SetSubShape() has been called.
* \retval bool - true if subShape is a seam shape
*
* It works only if IsQuadraticSubMesh() or SetSubShape() has been called.
- * Seam shape has two 2D alternative represenations on the face
+ * Seam shape has two 2D alternative represen
t
ations on the face
*/
bool IsSeamShape(const TopoDS_Shape& subShape) const
{ return IsSeamShape( ShapeToIndex( subShape )); }
*/
bool IsSeamShape(const TopoDS_Shape& subShape) const
{ return IsSeamShape( ShapeToIndex( subShape )); }
@@
-627,6
+635,10
@@
public:
* \retval int - 1 for U, 2 for V direction
*/
int GetPeriodicIndex() const { return myParIndex; }
* \retval int - 1 for U, 2 for V direction
*/
int GetPeriodicIndex() const { return myParIndex; }
+ /*!
+ * \brief Return period in given direction [1,2]
+ */
+ double GetPeriod(int perioIndex) const { return myPar2[ perioIndex-1 ] - myPar1[ perioIndex-1 ]; }
/*!
* \brief Return an alternative parameter for a node on seam
*/
/*!
* \brief Return an alternative parameter for a node on seam
*/
@@
-741,7
+753,7
@@
public:
SMESH_MesherHelper (const SMESH_MesherHelper& theOther);
// key of a map of bi-quadratic face to it's central node
SMESH_MesherHelper (const SMESH_MesherHelper& theOther);
// key of a map of bi-quadratic face to it's central node
- struct TBiQuad: public std::pair<
int, std::pair<int, int
> >
+ struct TBiQuad: public std::pair<
smIdType, std::pair<smIdType, smIdType
> >
{
TBiQuad(const SMDS_MeshNode* n1,
const SMDS_MeshNode* n2,
{
TBiQuad(const SMDS_MeshNode* n1,
const SMDS_MeshNode* n2,