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
IPAL52716: Meshing with Viscous Layers fails
[modules/smesh.git]
/
src
/
SMESH
/
SMESH_MesherHelper.hxx
diff --git
a/src/SMESH/SMESH_MesherHelper.hxx
b/src/SMESH/SMESH_MesherHelper.hxx
index d85f8329edee134477e1416dc8a2880637d53f96..a8d7a8e64ecc17e4701a8ab50ae9d05bce8c906d 100644
(file)
--- a/
src/SMESH/SMESH_MesherHelper.hxx
+++ b/
src/SMESH/SMESH_MesherHelper.hxx
@@
-1,4
+1,4
@@
-// Copyright (C) 2007-201
5
CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-201
6
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
@@
-30,10
+30,9
@@
#include "SMESH_SMESH.hxx"
#include "SMESH_MeshEditor.hxx" // needed for many meshers
#include "SMESH_SMESH.hxx"
#include "SMESH_MeshEditor.hxx" // needed for many meshers
-#include <SMDS_MeshNode.hxx>
-#include <SMDS_QuadraticEdge.hxx>
#include <Geom_Surface.hxx>
#include <Geom_Surface.hxx>
+#include <ShapeAnalysis_Surface.hxx>
#include <TopoDS_Face.hxx>
#include <TopoDS_Shape.hxx>
#include <gp_Pnt2d.hxx>
#include <TopoDS_Face.hxx>
#include <TopoDS_Shape.hxx>
#include <gp_Pnt2d.hxx>
@@
-41,8
+40,11
@@
#include <map>
#include <vector>
#include <map>
#include <vector>
-class GeomAPI_ProjectPointOnSurf;
class GeomAPI_ProjectPointOnCurve;
class GeomAPI_ProjectPointOnCurve;
+class GeomAPI_ProjectPointOnSurf;
+class SMDS_MeshNode;
+class SMESHDS_Hypothesis;
+class SMESH_Gen;
class SMESH_ProxyMesh;
typedef std::map<SMESH_TLink, const SMDS_MeshNode*> TLinkNodeMap;
class SMESH_ProxyMesh;
typedef std::map<SMESH_TLink, const SMDS_MeshNode*> TLinkNodeMap;
@@
-199,11
+201,12
@@
class SMESH_EXPORT SMESH_MesherHelper
const SMESH_Mesh& mesh,
TopAbs_ShapeEnum ancestorType=TopAbs_SHAPE);
/*!
const SMESH_Mesh& mesh,
TopAbs_ShapeEnum ancestorType=TopAbs_SHAPE);
/*!
- * \brief Return iterator on ancestors of the given type
+ * \brief Return iterator on ancestors of the given type
, included into a container shape
*/
static PShapeIteratorPtr GetAncestors(const TopoDS_Shape& shape,
const SMESH_Mesh& mesh,
*/
static PShapeIteratorPtr GetAncestors(const TopoDS_Shape& shape,
const SMESH_Mesh& mesh,
- TopAbs_ShapeEnum ancestorType);
+ TopAbs_ShapeEnum ancestorType,
+ const TopoDS_Shape* container = 0);
/*!
* \brief Find a common ancestor, of the given type, of two shapes
*/
/*!
* \brief Find a common ancestor, of the given type, of two shapes
*/
@@
-247,12
+250,12
@@
public:
// constructor
SMESH_MesherHelper(SMESH_Mesh& theMesh);
// constructor
SMESH_MesherHelper(SMESH_Mesh& theMesh);
- SMESH_Gen* GetGen() const
{ return GetMesh()->GetGen(); }
+ SMESH_Gen* GetGen() const
;
SMESH_Mesh* GetMesh() const { return myMesh; }
SMESH_Mesh* GetMesh() const { return myMesh; }
- SMESHDS_Mesh* GetMeshDS() const
{ return GetMesh()->GetMeshDS(); }
-
+ SMESHDS_Mesh* GetMeshDS() const
;
+
/*!
* Check submesh for given shape: if all elements on this shape are quadratic,
* quadratic elements will be created. Also fill myTLinkNodeMap
/*!
* Check submesh for given shape: if all elements on this shape are quadratic,
* quadratic elements will be created. Also fill myTLinkNodeMap
@@
-316,6
+319,11
@@
public:
*/
const TopoDS_Shape& GetSubShape() const { return myShape; }
*/
const TopoDS_Shape& GetSubShape() const { return myShape; }
+ /*!
+ * \brief Convert a shape to its index in the SMESHDS_Mesh
+ */
+ int ShapeToIndex( const TopoDS_Shape& S ) const;
+
/*!
* Creates a node (!Note ID before u=0.,v0.)
*/
/*!
* Creates a node (!Note ID before u=0.,v0.)
*/
@@
-528,13
+536,17
@@
public:
GeomAPI_ProjectPointOnSurf& GetProjector(const TopoDS_Face& F,
TopLoc_Location& loc,
double tol=0 ) const;
GeomAPI_ProjectPointOnSurf& GetProjector(const TopoDS_Face& F,
TopLoc_Location& loc,
double tol=0 ) const;
+ /*!
+ * \brief Return a cached ShapeAnalysis_Surface of a FACE
+ */
+ Handle(ShapeAnalysis_Surface) GetSurface(const TopoDS_Face& F ) const;
/*!
* \brief Check if shape is a degenerated edge or it's vertex
/*!
* \brief Check if shape is a degenerated edge or it's vertex
-
*
\param subShape - edge or vertex index in SMESHDS
-
*
\retval bool - true if subShape is a degenerated shape
-
*
-
* It works only if IsQuadraticSubMesh() or SetSubShape() has been called
+
*
\param subShape - edge or vertex index in SMESHDS
+
*
\retval bool - true if subShape is a degenerated shape
+ *
+ * It works only if IsQuadraticSubMesh() or SetSubShape() has been called
*/
bool IsDegenShape(const int subShape) const
{ return myDegenShapeIds.find( subShape ) != myDegenShapeIds.end(); }
*/
bool IsDegenShape(const int subShape) const
{ return myDegenShapeIds.find( subShape ) != myDegenShapeIds.end(); }
@@
-564,7
+576,7
@@
public:
* Seam shape has two 2D alternative represenations on the face
*/
bool IsSeamShape(const TopoDS_Shape& subShape) const
* Seam shape has two 2D alternative represenations on the face
*/
bool IsSeamShape(const TopoDS_Shape& subShape) const
- { return IsSeamShape(
GetMeshDS()->
ShapeToIndex( subShape )); }
+ { return IsSeamShape( ShapeToIndex( subShape )); }
/*!
* \brief Return true if an edge or a vertex encounters twice in face wire
* \param subShape - Id of edge or vertex
/*!
* \brief Return true if an edge or a vertex encounters twice in face wire
* \param subShape - Id of edge or vertex
@@
-576,7
+588,7
@@
public:
* \param subShape - edge or vertex
*/
bool IsRealSeam(const TopoDS_Shape& subShape) const
* \param subShape - edge or vertex
*/
bool IsRealSeam(const TopoDS_Shape& subShape) const
- { return IsRealSeam(
GetMeshDS()->ShapeToIndex( subShape
)); }
+ { return IsRealSeam(
ShapeToIndex( subShape
)); }
/*!
* \brief Check if the shape set through IsQuadraticSubMesh() or SetSubShape()
* has a seam edge, i.e. an edge that has two parametric representations
/*!
* \brief Check if the shape set through IsQuadraticSubMesh() or SetSubShape()
* has a seam edge, i.e. an edge that has two parametric representations
@@
-679,6
+691,8
@@
public:
virtual ~SMESH_MesherHelper();
virtual ~SMESH_MesherHelper();
+ static void WriteShape(const TopoDS_Shape& s);
+
protected:
/*!
protected:
/*!
@@
-731,8
+745,10
@@
public:
std::map< int, double > myFaceMaxTol;
std::map< int, double > myFaceMaxTol;
+ typedef std::map< int, Handle(ShapeAnalysis_Surface)> TID2Surface;
typedef std::map< int, GeomAPI_ProjectPointOnSurf* > TID2ProjectorOnSurf;
typedef std::map< int, GeomAPI_ProjectPointOnCurve* > TID2ProjectorOnCurve;
typedef std::map< int, GeomAPI_ProjectPointOnSurf* > TID2ProjectorOnSurf;
typedef std::map< int, GeomAPI_ProjectPointOnCurve* > TID2ProjectorOnCurve;
+ mutable TID2Surface myFace2Surface;
TID2ProjectorOnSurf myFace2Projector;
TID2ProjectorOnCurve myEdge2Projector;
TID2ProjectorOnSurf myFace2Projector;
TID2ProjectorOnCurve myEdge2Projector;