SMESH_MesherHelper Class Reference

It helps meshers to add elements and provides other utilities. More...

#include <SMESH_MesherHelper.hxx>

Public Types

enum  MType { LINEAR , QUADRATIC , COMP }
 Check mesh without geometry for: if all elements on this shape are quadratic, quadratic elements will be created. More...
 

Public Member Functions

SMDS_MeshEdgeAddEdge (const SMDS_MeshNode *n1, const SMDS_MeshNode *n2, const int id=0, const bool force3d=true)
 
SMDS_MeshFaceAddFace (const SMDS_MeshNode *n1, const SMDS_MeshNode *n2, const SMDS_MeshNode *n3, const int id=0, const bool force3d=false)
 
SMDS_MeshFaceAddFace (const SMDS_MeshNode *n1, const SMDS_MeshNode *n2, const SMDS_MeshNode *n3, const SMDS_MeshNode *n4, const int id=0, const bool force3d=false)
 
SMDS_MeshNodeAddNode (double x, double y, double z, int ID=0, double u=0., double v=0.)
 
SMDS_MeshFaceAddPolygonalFace (const std::vector< const SMDS_MeshNode * > &nodes, const int id=0, const bool force3d=false)
 
SMDS_MeshVolumeAddPolyhedralVolume (const std::vector< const SMDS_MeshNode * > &nodes, const std::vector< int > &quantities, const int ID=0, const bool force3d=true)
 
void AddTLinkNode (const SMDS_MeshNode *n1, const SMDS_MeshNode *n2, const SMDS_MeshNode *n12)
 Add a link in my data structure. More...
 
void AddTLinkNodeMap (const TLinkNodeMap &aMap)
 Add many links in my data structure. More...
 
bool AddTLinks (const SMDS_MeshEdge *edge)
 Add quadratic links of edge to own data structure. More...
 
bool AddTLinks (const SMDS_MeshFace *face)
 Add quadratic links of face to own data structure. More...
 
bool AddTLinks (const SMDS_MeshVolume *vol)
 Add quadratic links of volume to own data structure. More...
 
SMDS_MeshVolumeAddVolume (const SMDS_MeshNode *n1, const SMDS_MeshNode *n2, const SMDS_MeshNode *n3, const SMDS_MeshNode *n4, const int id=0, const bool force3d=true)
 
SMDS_MeshVolumeAddVolume (const SMDS_MeshNode *n1, const SMDS_MeshNode *n2, const SMDS_MeshNode *n3, const SMDS_MeshNode *n4, const SMDS_MeshNode *n5, const int id=0, const bool force3d=true)
 
SMDS_MeshVolumeAddVolume (const SMDS_MeshNode *n1, const SMDS_MeshNode *n2, const SMDS_MeshNode *n3, const SMDS_MeshNode *n4, const SMDS_MeshNode *n5, const SMDS_MeshNode *n6, const int id=0, const bool force3d=true)
 
SMDS_MeshVolumeAddVolume (const SMDS_MeshNode *n1, const SMDS_MeshNode *n2, const SMDS_MeshNode *n3, const SMDS_MeshNode *n4, const SMDS_MeshNode *n5, const SMDS_MeshNode *n6, const SMDS_MeshNode *n7, const SMDS_MeshNode *n8, const int id=0, bool force3d=true)
 
SMDS_MeshVolumeAddVolume (const SMDS_MeshNode *n1, const SMDS_MeshNode *n2, const SMDS_MeshNode *n3, const SMDS_MeshNode *n4, const SMDS_MeshNode *n5, const SMDS_MeshNode *n6, const SMDS_MeshNode *n7, const SMDS_MeshNode *n8, const SMDS_MeshNode *n9, const SMDS_MeshNode *n10, const SMDS_MeshNode *n11, const SMDS_MeshNode *n12, const int id=0, bool force3d=true)
 
void AdjustByPeriod (const TopoDS_Face &face, gp_XY uv[], const int nbUV)
 Move node positions on a FACE within surface period. More...
 
bool CheckNodeU (const TopoDS_Edge &E, const SMDS_MeshNode *n, double &u, const double tol, const bool force=false, double distXYZ[4]=0) const
 Check and fix node U on an edge. More...
 
bool CheckNodeUV (const TopoDS_Face &F, const SMDS_MeshNode *n, gp_XY &uv, const double tol, const bool force=false, double distXYZ[4]=0) const
 Check and fix node UV on a face. More...
 
void FixQuadraticElements (SMESH_ComputeErrorPtr &error, bool volumeOnly=true)
 Move medium nodes of faces and volumes to fix distorted elements. More...
 
const SMDS_MeshNodeGetCentralNode (const SMDS_MeshNode *n1, const SMDS_MeshNode *n2, const SMDS_MeshNode *n3, const SMDS_MeshNode *n12, const SMDS_MeshNode *n23, const SMDS_MeshNode *n31, bool force3d)
 Return existing or create a new central node for a quadratic triangle given its 6 nodes. More...
 
const SMDS_MeshNodeGetCentralNode (const SMDS_MeshNode *n1, const SMDS_MeshNode *n2, const SMDS_MeshNode *n3, const SMDS_MeshNode *n4, const SMDS_MeshNode *n12, const SMDS_MeshNode *n23, const SMDS_MeshNode *n34, const SMDS_MeshNode *n41, bool force3d)
 Return existing or create a new central node for a quardilateral quadratic face given its 8 nodes. More...
 
SMESH_GenGetGen () const
 
bool GetIsBiQuadratic () const
 Return myCreateBiQuadratic flag. More...
 
bool GetIsQuadratic () const
 Return myCreateQuadratic flag. More...
 
const SMDS_MeshNodeGetMediumNode (const SMDS_MeshNode *n1, const SMDS_MeshNode *n2, const bool force3d, TopAbs_ShapeEnum expectedSupport=TopAbs_SHAPE)
 Return existing or create new medium nodes between given ones. More...
 
std::pair< int, TopAbs_ShapeEnum > GetMediumPos (const SMDS_MeshNode *n1, const SMDS_MeshNode *n2, const bool useCurSubShape=false, TopAbs_ShapeEnum expectedSupport=TopAbs_SHAPE)
 Return index and type of the shape (EDGE or FACE only) to set a medium node on. More...
 
SMESH_MeshGetMesh () const
 
SMESHDS_MeshGetMeshDS () const
 
double GetNodeU (const TopoDS_Edge &theEdge, const SMDS_MeshNode *theNode, const SMDS_MeshNode *inEdgeNode=0, bool *check=0) const
 Return U of the given node on the edge. More...
 
gp_XY GetNodeUV (const TopoDS_Face &F, const SMDS_MeshNode *n, const SMDS_MeshNode *inFaceNode=0, bool *check=0) const
 Return node UV on face. More...
 
bool GetNodeUVneedInFaceNode (const TopoDS_Face &F=TopoDS_Face()) const
 Check if inFaceNode argument is necessary for call GetNodeUV(F,..) More...
 
double GetOtherParam (const double param) const
 Return an alternative parameter for a node on seam. More...
 
int GetPeriodicIndex () const
 Return index of periodic parametric direction of a closed face. More...
 
GeomAPI_ProjectPointOnSurf & GetProjector (const TopoDS_Face &F, TopLoc_Location &loc, double tol=0) const
 Return projector initialized by given face without location, which is returned. More...
 
const TopoDS_Shape & GetSubShape () const
 Return the shape set by IsQuadraticSubMesh() or SetSubShape() More...
 
int GetSubShapeID () const
 Return ID of the shape set by IsQuadraticSubMesh() or SetSubShape() More...
 
const TLinkNodeMap & GetTLinkNodeMap () const
 Returns myTLinkNodeMap. More...
 
 Handle (ShapeAnalysis_Surface) GetSurface(const TopoDS_Face &F) const
 Return a cached ShapeAnalysis_Surface of a FACE. More...
 
bool HasDegeneratedEdges () const
 Check if the shape set through IsQuadraticSubMesh() or SetSubShape() has a degenerated edges. More...
 
bool HasRealSeam () const
 Check if the shape set through IsQuadraticSubMesh() or SetSubShape() has a seam edge that encounters twice in a wire. More...
 
bool HasSeam () const
 Check if the shape set through IsQuadraticSubMesh() or SetSubShape() has a seam edge, i.e. an edge that has two parametric representations on a surface. More...
 
bool IsDegenShape (const int subShape) const
 Check if shape is a degenerated edge or it's vertex. More...
 
MType IsQuadraticMesh ()
 
bool IsQuadraticSubMesh (const TopoDS_Shape &theShape)
 
bool IsRealSeam (const int subShape) const
 Return true if an edge or a vertex encounters twice in face wire. More...
 
bool IsRealSeam (const TopoDS_Shape &subShape) const
 Return true if an edge or a vertex encounters twice in face wire. More...
 
bool IsReversedSubMesh (const TopoDS_Face &theFace)
 Find out elements orientation on a geometrical face. More...
 
bool IsSeamShape (const int subShape) const
 Check if shape is a seam edge or it's vertex. More...
 
bool IsSeamShape (const TopoDS_Shape &subShape) const
 Check if shape is a seam edge or it's vertex. More...
 
bool SetElementsOnShape (bool toSet)
 To set created elements on the shape set by IsQuadraticSubMesh() or the next methods. By default elements are set on the shape if a mesh has no shape to be meshed. More...
 
void SetIsBiQuadratic (const bool theBuildBiQuadratic)
 Set myCreateBiQuadratic flag. More...
 
void SetIsQuadratic (const bool theBuildQuadratic)
 Set order of elements to create without calling IsQuadraticSubMesh() More...
 
void SetSubShape (const int subShapeID)
 Set shape to make elements on without calling IsQuadraticSubMesh() More...
 
void SetSubShape (const TopoDS_Shape &subShape)
 ==SMESHDS_Mesh::ShapeToIndex(shape) More...
 
 SMESH_MesherHelper (SMESH_Mesh &theMesh)
 Constructor. More...
 
void ToFixNodeParameters (bool toFix)
 Enables fixing node parameters on EDGEs and FACEs by GetNodeU(...,check=true), GetNodeUV(...,check=true), CheckNodeUV() and CheckNodeU() in case if a node lies on a shape set via SetSubShape(). Default is False. More...
 
virtual ~SMESH_MesherHelper ()
 

Static Public Member Functions

static gp_XY ApplyIn2D (Handle(Geom_Surface) surface, const gp_XY &uv1, const gp_XY &uv2, xyFunPtr fun, const bool resultInPeriod=true)
 Perform given operation on two 2d points in parameric space of given surface. It takes into account period of the surface. Use gp_XY_FunPtr macro to easily define pointer to function of gp_XY class. More...
 
static gp_XY calcTFI (double x, double y, const gp_XY &a0, const gp_XY &a1, const gp_XY &a2, const gp_XY &a3, const gp_XY &p0, const gp_XY &p1, const gp_XY &p2, const gp_XY &p3)
 Return UV of a point inside a quadrilateral FACE by it's normalized parameters within a unit quadrangle and the corresponding projections on sub-shapes of the real-world FACE. The used calculation method is called Trans-Finite Interpolation (TFI). More...
 
static gp_XYZ calcTFI (double x, double y, const gp_XYZ &a0, const gp_XYZ &a1, const gp_XYZ &a2, const gp_XYZ &a3, const gp_XYZ &p0, const gp_XYZ &p1, const gp_XYZ &p2, const gp_XYZ &p3)
 Same as "gp_XY calcTFI(...)" but in 3D. More...
 
static int Count (const TopoDS_Shape &shape, const TopAbs_ShapeEnum type, const bool ignoreSame)
 Count nb of sub-shapes. More...
 
static PShapeIteratorPtr GetAncestors (const TopoDS_Shape &shape, const SMESH_Mesh &mesh, TopAbs_ShapeEnum ancestorType)
 Return iterator on ancestors of the given type. More...
 
static double GetAngle (const TopoDS_Edge &E1, const TopoDS_Edge &E2, const TopoDS_Face &F, const TopoDS_Vertex &V, gp_Vec *faceNormal=0)
 Return an angle between two EDGEs sharing a common VERTEX with reference of the FACE normal. More...
 
static gp_XY GetCenterUV (const gp_XY &uv1, const gp_XY &uv2, const gp_XY &uv3, const gp_XY &uv12, const gp_XY &uv23, const gp_XY &uv31, bool *isBadTria=0)
 Return UV for the central node of a biquadratic triangle. More...
 
static TopoDS_Shape GetCommonAncestor (const TopoDS_Shape &shape1, const TopoDS_Shape &shape2, const SMESH_Mesh &mesh, TopAbs_ShapeEnum ancestorType)
 Find a common ancestor, of the given type, of two shapes. More...
 
static TopAbs_ShapeEnum GetGroupType (const TopoDS_Shape &group, const bool avoidCompound=false)
 Return type of shape contained in a group. More...
 
static gp_XY GetMiddleUV (const Handle(Geom_Surface)&surface, const gp_XY &uv1, const gp_XY &uv2)
 Return middle UV taking in account surface period. More...
 
static TopoDS_Shape GetShapeOfHypothesis (const SMESHDS_Hypothesis *hyp, const TopoDS_Shape &shape, SMESH_Mesh *mesh)
 Returns a shape, to which a hypothesis used to mesh a given shape is assigned. More...
 
static TopoDS_Shape GetSubShapeByNode (const SMDS_MeshNode *node, const SMESHDS_Mesh *meshDS)
 Return support shape of a node. More...
 
static TopAbs_Orientation GetSubShapeOri (const TopoDS_Shape &shape, const TopoDS_Shape &subShape)
 Return orientation of sub-shape in the main shape. More...
 
static bool IsBlock (const TopoDS_Shape &shape)
 
static bool IsClosedEdge (const TopoDS_Edge &anEdge)
 Check if the first and last vertices of an edge are the same. More...
 
static bool IsDistorted2D (SMESH_subMesh *faceSM, bool checkUV=false)
 Return true if 2D mesh on FACE is distored. More...
 
static bool IsMedium (const SMDS_MeshNode *node, const SMDSAbs_ElementType typeToCheck=SMDSAbs_All)
 Returns true if given node is medium. More...
 
static bool IsSameElemGeometry (const SMESHDS_SubMesh *smDS, SMDSAbs_GeometryType shape, const bool nullSubMeshRes=true)
 Returns true if all elements of a sub-mesh are of same shape. More...
 
static bool IsStructured (SMESH_subMesh *faceSM)
 Return true if 2D mesh on FACE is structured. More...
 
static bool IsSubShape (const TopoDS_Shape &shape, const TopoDS_Shape &mainShape)
 
static bool IsSubShape (const TopoDS_Shape &shape, SMESH_Mesh *aMesh)
 
static TopoDS_Vertex IthVertex (const bool is2nd, TopoDS_Edge anEdge, const bool CumOri=true)
 Wrapper over TopExp::FirstVertex() and TopExp::LastVertex() fixing them in the case of INTERNAL edge. More...
 
static bool LoadNodeColumns (TParam2ColumnMap &theParam2ColumnMap, const TopoDS_Face &theFace, const std::list< TopoDS_Edge > &theBaseSide, SMESHDS_Mesh *theMesh, SMESH_ProxyMesh *theProxyMesh=0)
 Load nodes bound to face into a map of node columns. More...
 
static bool LoadNodeColumns (TParam2ColumnMap &theParam2ColumnMap, const TopoDS_Face &theFace, const TopoDS_Edge &theBaseEdge, SMESHDS_Mesh *theMesh, SMESH_ProxyMesh *theProxyMesh=0)
 Variant of LoadNodeColumns() above with theBaseSide given by one edge. More...
 
static double MaxTolerance (const TopoDS_Shape &shape)
 Return maximal tolerance of shape. More...
 
static int NbAncestors (const TopoDS_Shape &shape, const SMESH_Mesh &mesh, TopAbs_ShapeEnum ancestorType=TopAbs_SHAPE)
 Return number of unique ancestors of the shape. More...
 
static int WrapIndex (int ind, const int nbNodes)
 Return a valid node index, fixing the given one if necessary. More...
 

Protected Member Functions

double getFaceMaxTol (const TopoDS_Shape &face) const
 Return MaxTolerance( face ), probably cached. More...
 
const SMDS_MeshNodegetMediumNodeOnComposedWire (const SMDS_MeshNode *n1, const SMDS_MeshNode *n2, bool force3d)
 Makes a medium node if nodes reside different edges. More...
 
gp_Pnt2d getUVOnSeam (const gp_Pnt2d &uv1, const gp_Pnt2d &uv2) const
 Select UV on either of 2 pcurves of a seam edge, closest to the given UV. More...
 

Detailed Description

It helps meshers to add elements and provides other utilities.

  • It allows meshers not to care about creation of medium nodes when filling a quadratic mesh. Helper does it itself. It defines order of elements to create when IsQuadraticSubMesh() is called.
  • It provides information on a shape it is initialized with: periodicity, presence of singularities etc.
  • ...

Member Enumeration Documentation

◆ MType

Check mesh without geometry for: if all elements on this shape are quadratic, quadratic elements will be created.

Used then generated 3D mesh without geometry.

Enumerator
LINEAR 
QUADRATIC 
COMP 

Constructor & Destructor Documentation

◆ SMESH_MesherHelper()

SMESH_MesherHelper::SMESH_MesherHelper ( SMESH_Mesh theMesh)

Constructor.

References SMESH_Mesh::HasShapeToMesh().

◆ ~SMESH_MesherHelper()

SMESH_MesherHelper::~SMESH_MesherHelper ( )
virtual

Member Function Documentation

◆ AddEdge()

◆ AddFace() [1/2]

◆ AddFace() [2/2]

SMDS_MeshFace * SMESH_MesherHelper::AddFace ( const SMDS_MeshNode n1,
const SMDS_MeshNode n2,
const SMDS_MeshNode n3,
const SMDS_MeshNode n4,
const int  id = 0,
const bool  force3d = false 
)

◆ AddNode()

◆ AddPolygonalFace()

SMDS_MeshFace * SMESH_MesherHelper::AddPolygonalFace ( const std::vector< const SMDS_MeshNode * > &  nodes,
const int  id = 0,
const bool  force3d = false 
)

◆ AddPolyhedralVolume()

SMDS_MeshVolume * SMESH_MesherHelper::AddPolyhedralVolume ( const std::vector< const SMDS_MeshNode * > &  nodes,
const std::vector< int > &  quantities,
const int  ID = 0,
const bool  force3d = true 
)

◆ AddTLinkNode()

void SMESH_MesherHelper::AddTLinkNode ( const SMDS_MeshNode n1,
const SMDS_MeshNode n2,
const SMDS_MeshNode n12 
)

Add a link in my data structure.

Referenced by AddTLinks(), IsQuadraticSubMesh(), and SMESH_MeshEditor::QuadToTri().

◆ AddTLinkNodeMap()

void SMESH_MesherHelper::AddTLinkNodeMap ( const TLinkNodeMap &  aMap)

Add many links in my data structure.

◆ AddTLinks() [1/3]

◆ AddTLinks() [2/3]

bool SMESH_MesherHelper::AddTLinks ( const SMDS_MeshFace face)

Add quadratic links of face to own data structure.

References AddTLinkNode().

◆ AddTLinks() [3/3]

◆ AddVolume() [1/5]

◆ AddVolume() [2/5]

SMDS_MeshVolume * SMESH_MesherHelper::AddVolume ( const SMDS_MeshNode n1,
const SMDS_MeshNode n2,
const SMDS_MeshNode n3,
const SMDS_MeshNode n4,
const SMDS_MeshNode n5,
const int  id = 0,
const bool  force3d = true 
)

◆ AddVolume() [3/5]

SMDS_MeshVolume * SMESH_MesherHelper::AddVolume ( const SMDS_MeshNode n1,
const SMDS_MeshNode n2,
const SMDS_MeshNode n3,
const SMDS_MeshNode n4,
const SMDS_MeshNode n5,
const SMDS_MeshNode n6,
const int  id = 0,
const bool  force3d = true 
)

◆ AddVolume() [4/5]

◆ AddVolume() [5/5]

SMDS_MeshVolume * SMESH_MesherHelper::AddVolume ( const SMDS_MeshNode n1,
const SMDS_MeshNode n2,
const SMDS_MeshNode n3,
const SMDS_MeshNode n4,
const SMDS_MeshNode n5,
const SMDS_MeshNode n6,
const SMDS_MeshNode n7,
const SMDS_MeshNode n8,
const SMDS_MeshNode n9,
const SMDS_MeshNode n10,
const SMDS_MeshNode n11,
const SMDS_MeshNode n12,
const int  id = 0,
bool  force3d = true 
)

◆ AdjustByPeriod()

void SMESH_MesherHelper::AdjustByPeriod ( const TopoDS_Face &  face,
gp_XY  uv[],
const int  nbUV 
)

Move node positions on a FACE within surface period.

Parameters
[in]face- the FACE
[in,out]uv- node positions to adjust
[in]nbUV- nb of uv

References GetPeriodicIndex(), and SetSubShape().

Referenced by FixQuadraticElements(), and GetCentralNode().

◆ ApplyIn2D()

static gp_XY SMESH_MesherHelper::ApplyIn2D ( Handle(Geom_Surface)  surface,
const gp_XY &  uv1,
const gp_XY &  uv2,
xyFunPtr  fun,
const bool  resultInPeriod = true 
)
static

Perform given operation on two 2d points in parameric space of given surface. It takes into account period of the surface. Use gp_XY_FunPtr macro to easily define pointer to function of gp_XY class.

Referenced by NETGENPlugin_Mesher::AddIntVerticesInFaces(), FixQuadraticElements(), and GetMiddleUV().

◆ calcTFI() [1/2]

gp_XY SMESH_MesherHelper::calcTFI ( double  x,
double  y,
const gp_XY &  a0,
const gp_XY &  a1,
const gp_XY &  a2,
const gp_XY &  a3,
const gp_XY &  p0,
const gp_XY &  p1,
const gp_XY &  p2,
const gp_XY &  p3 
)
static

Return UV of a point inside a quadrilateral FACE by it's normalized parameters within a unit quadrangle and the corresponding projections on sub-shapes of the real-world FACE. The used calculation method is called Trans-Finite Interpolation (TFI).

Parameters
x,y- normalized parameters that should be in range [0,1]
a0,a1,a2,a3- UV of VERTEXes of the FACE == projections on VERTEXes
p0,p1,p2,p3- UV of the point projections on EDGEs of the FACE
Returns
gp_XY - UV of the point on the FACE

Y ^ Order of those UV in the FACE is as follows. | a3 p2 a2 o—x--—o | : | | :UV | p3 x...O.....x p1 | : | o—x--—o -—> X a0 p0 a1

Referenced by SMESH_2D_Algo::FixInternalNodes(), FixQuadraticElements(), GetCentralNode(), SMESH_MeshEditor::QuadTo4Tri(), StdMeshers_Quadrangle_2D::smooth(), and VISCOUS_3D::_SmoothNode::Smooth().

◆ calcTFI() [2/2]

gp_XYZ SMESH_MesherHelper::calcTFI ( double  x,
double  y,
const gp_XYZ &  a0,
const gp_XYZ &  a1,
const gp_XYZ &  a2,
const gp_XYZ &  a3,
const gp_XYZ &  p0,
const gp_XYZ &  p1,
const gp_XYZ &  p2,
const gp_XYZ &  p3 
)
static

Same as "gp_XY calcTFI(...)" but in 3D.

◆ CheckNodeU()

bool SMESH_MesherHelper::CheckNodeU ( const TopoDS_Edge &  E,
const SMDS_MeshNode n,
double &  u,
const double  tol,
const bool  force = false,
double  distXYZ[4] = 0 
) const

Check and fix node U on an edge.

Parameters
force- check even if checks of other nodes on this edge passed OK
distXYZ- returns result distance and point coordinates
Return values
bool- false if U is bad and could not be fixed

References DraftVecUtils::dist(), GetMeshDS(), Handle(), and SMESHDS_Mesh::ShapeToIndex().

Referenced by StdMeshers_Import_1D::Compute(), StdMeshers_Import_1D2D::Compute(), StdMeshers_Projection_1D2D::Compute(), StdMeshers_Import_1D2D::Evaluate(), GetMediumNode(), GetNodeU(), SMESH_Pattern::MakeMesh(), and VISCOUS_3D::_LayerEdge::SetNewLength().

◆ CheckNodeUV()

bool SMESH_MesherHelper::CheckNodeUV ( const TopoDS_Face &  F,
const SMDS_MeshNode n,
gp_XY &  uv,
const double  tol,
const bool  force = false,
double  distXYZ[4] = 0 
) const

Check and fix node UV on a face.

Parameters
force- check even if checks of other nodes on this face passed OK
distXYZ- returns result distance and point coordinates
Return values
bool- false if UV is bad and could not be fixed

References DraftVecUtils::dist(), GetProjector(), and Handle().

Referenced by NETGENPlugin_Mesher::AddIntVerticesInFaces(), StdMeshers_Import_1D2D::Compute(), StdMeshers_Import_1D2D::Evaluate(), FixQuadraticElements(), GetMediumNode(), GetNodeUV(), VISCOUS_3D::_LayerEdge::SetNewLength(), VISCOUS_3D::_LayerEdge::SmoothOnEdge(), and SMESH_MeshEditor::SplitVolumes().

◆ Count()

int SMESH_MesherHelper::Count ( const TopoDS_Shape &  shape,
const TopAbs_ShapeEnum  type,
const bool  ignoreSame 
)
static

◆ FixQuadraticElements()

void SMESH_MesherHelper::FixQuadraticElements ( SMESH_ComputeErrorPtr &  compError,
bool  volumeOnly = true 
)

Move medium nodes of faces and volumes to fix distorted elements.

Parameters
error- container of fixed distorted elements
volumeOnly- fix nodes on geom faces or not if the shape is solid
error- container of fixed distorted elements
volumeOnly- to fix nodes on faces or not, if the shape is solid

Issue 0020307: EDF 992 SMESH : Linea/Quadratic with Medium Node on Geometry

References AdjustByPeriod(), ApplyIn2D(), SMDS_MeshElement::begin_nodes(), calcTFI(), CheckNodeUV(), SMDS_MeshElement::end_nodes(), SMDS_Mesh::FindFace(), GetCenterUV(), SMDS_VolumeTool::GetFaceNodes(), GetMeshDS(), GetMiddleUV(), SMDS_MeshElement::GetNode(), SMDS_VolumeTool::GetNodes(), GetNodeUV(), SMDS_MeshElement::getshapeId(), SMESH_Mesh::GetShapeToMesh(), SMESH_Mesh::GetSubMesh(), SMESH_Mesh::GetSubMeshContaining(), SMESH_subMesh::GetSubMeshDS(), GetSubShape(), GetSubShapeByNode(), Handle(), SMESH_Mesh::HasShapeToMesh(), SMESH_Block::ID_E00z, SMESH_Block::ID_E01z, SMESH_Block::ID_E0y0, SMESH_Block::ID_E0y1, SMESH_Block::ID_E10z, SMESH_Block::ID_E11z, SMESH_Block::ID_E1y0, SMESH_Block::ID_E1y1, SMESH_Block::ID_Ex00, SMESH_Block::ID_Ex01, SMESH_Block::ID_Ex10, SMESH_Block::ID_Ex11, SMESH_Block::ID_F0yz, SMESH_Block::ID_F1yz, SMESH_Block::ID_Fx0z, SMESH_Block::ID_Fx1z, SMESH_Block::ID_Fxy0, SMESH_Block::ID_Fxy1, SMESH_Block::ID_Shell, SMESH_Block::ID_V000, SMESH_Block::ID_V001, SMESH_Block::ID_V010, SMESH_Block::ID_V011, SMESH_Block::ID_V100, SMESH_Block::ID_V101, SMESH_Block::ID_V110, SMESH_Block::ID_V111, SMESHDS_Mesh::IndexToShape(), SMESH_subMesh::IsEmpty(), SMDS_MeshElement::IsQuadratic(), SMDS_VolumeTool::MinLinearSize2(), SMESHDS_Mesh::MoveNode(), SMESH_Mesh::NbBiQuadQuadrangles(), SMESH_Mesh::NbBiQuadTriangles(), SMDS_MeshElement::NbCornerNodes(), SMDS_VolumeTool::NbFaceNodes(), SMDS_VolumeTool::NbFaces(), SMESH_Mesh::NbTriQuadraticHexas(), SMDS_VolumeTool::Set(), SetSubShape(), SMESH_Block::ShellPoint(), ToFixNodeParameters(), and SMDS_MeshNode::X().

Referenced by SMESH_Gen::Compute(), and SMESH_MeshEditor::ConvertToQuadratic().

◆ GetAncestors()

◆ GetAngle()

double SMESH_MesherHelper::GetAngle ( const TopoDS_Edge &  theE1,
const TopoDS_Edge &  theE2,
const TopoDS_Face &  theFace,
const TopoDS_Vertex &  theCommonV,
gp_Vec *  theFaceNormal = 0 
)
static

Return an angle between two EDGEs sharing a common VERTEX with reference of the FACE normal.

Returns
double - the angle (between -Pi and Pi), negative if the angle is concave, 1e100 in case of failure \waring Care about order of the EDGEs and their orientation to be as they are within the FACE! Don't pass degenerated EDGEs neither!

References DraftVecUtils::angle(), and Handle().

Referenced by StdMeshers_Quadrangle_2D::check(), VISCOUS_3D::getConcaveVertices(), and VISCOUS_3D::getFaceDir().

◆ GetCenterUV()

gp_XY SMESH_MesherHelper::GetCenterUV ( const gp_XY &  uv1,
const gp_XY &  uv2,
const gp_XY &  uv3,
const gp_XY &  uv12,
const gp_XY &  uv23,
const gp_XY &  uv31,
bool isBadTria = 0 
)
static

Return UV for the central node of a biquadratic triangle.

Referenced by FixQuadraticElements(), and GetCentralNode().

◆ GetCentralNode() [1/2]

const SMDS_MeshNode * SMESH_MesherHelper::GetCentralNode ( const SMDS_MeshNode n1,
const SMDS_MeshNode n2,
const SMDS_MeshNode n3,
const SMDS_MeshNode n12,
const SMDS_MeshNode n23,
const SMDS_MeshNode n31,
bool  force3d 
)

Return existing or create a new central node for a quadratic triangle given its 6 nodes.

Parameters
force3d- true means node creation in between the given nodes, else node position is found on a geometrical face if any.

References SMESHDS_Mesh::AddNode(), AdjustByPeriod(), GetAncestors(), GetCenterUV(), GetMesh(), GetMeshDS(), GetNodeUV(), SMDS_MeshElement::getshapeId(), GetSubShapeByNode(), Handle(), SMESHDS_Mesh::IndexToShape(), SMESHDS_Mesh::SetMeshElementOnShape(), SMESHDS_Mesh::SetNodeInVolume(), SMESHDS_Mesh::SetNodeOnFace(), and SMESHDS_Mesh::ShapeToIndex().

◆ GetCentralNode() [2/2]

const SMDS_MeshNode * SMESH_MesherHelper::GetCentralNode ( const SMDS_MeshNode n1,
const SMDS_MeshNode n2,
const SMDS_MeshNode n3,
const SMDS_MeshNode n4,
const SMDS_MeshNode n12,
const SMDS_MeshNode n23,
const SMDS_MeshNode n34,
const SMDS_MeshNode n41,
bool  force3d 
)

Return existing or create a new central node for a quardilateral quadratic face given its 8 nodes.

Parameters
force3d- true means node creation in between the given nodes, else node position is found on a geometrical face if any.

References SMESHDS_Mesh::AddNode(), AdjustByPeriod(), calcTFI(), GetAncestors(), GetMesh(), GetMeshDS(), GetNodeUV(), SMDS_MeshElement::getshapeId(), GetSubShapeByNode(), Handle(), HasDegeneratedEdges(), SMESHDS_Mesh::IndexToShape(), SMESHDS_Mesh::SetMeshElementOnShape(), SMESHDS_Mesh::SetNodeInVolume(), SMESHDS_Mesh::SetNodeOnFace(), and SMESHDS_Mesh::ShapeToIndex().

Referenced by AddFace(), and AddVolume().

◆ GetCommonAncestor()

TopoDS_Shape SMESH_MesherHelper::GetCommonAncestor ( const TopoDS_Shape &  shape1,
const TopoDS_Shape &  shape2,
const SMESH_Mesh mesh,
TopAbs_ShapeEnum  ancestorType 
)
static

Find a common ancestor, of the given type, of two shapes.

References GetAncestors(), and IsSubShape().

Referenced by StdMeshers_Import_1D2D::Compute(), GetMediumPos(), IsReversedSubMesh(), and SMESH_Pattern::MakeMesh().

◆ getFaceMaxTol()

double SMESH_MesherHelper::getFaceMaxTol ( const TopoDS_Shape &  face) const
protected

Return MaxTolerance( face ), probably cached.

References GetMeshDS(), MaxTolerance(), and SMESHDS_Mesh::ShapeToIndex().

Referenced by GetMediumNode(), and GetNodeUV().

◆ GetGen()

SMESH_Gen * SMESH_MesherHelper::GetGen ( ) const

◆ GetGroupType()

TopAbs_ShapeEnum SMESH_MesherHelper::GetGroupType ( const TopoDS_Shape &  group,
const bool  avoidCompound = false 
)
static

Return type of shape contained in a group.

Parameters
group- a shape of type TopAbs_COMPOUND
avoidCompound- not to return TopAbs_COMPOUND

References GetGroupType().

Referenced by SMESH_Gen::GetAlgo(), and GetGroupType().

◆ GetIsBiQuadratic()

bool SMESH_MesherHelper::GetIsBiQuadratic ( ) const

Return myCreateBiQuadratic flag.

◆ GetIsQuadratic()

bool SMESH_MesherHelper::GetIsQuadratic ( ) const

◆ GetMediumNode()

const SMDS_MeshNode * SMESH_MesherHelper::GetMediumNode ( const SMDS_MeshNode n1,
const SMDS_MeshNode n2,
const bool  force3d,
TopAbs_ShapeEnum  expectedSupport = TopAbs_SHAPE 
)

Return existing or create new medium nodes between given ones.

Parameters
force3d- true means node creation at the middle between the two given nodes, else node position is found on its supporting geometrical shape, if any.
expectedSupport- shape type corresponding to element being created , e.g TopAbs_EDGE if SMDSAbs_Edge is created basing on n1 and n2

References SMESHDS_Mesh::AddNode(), CheckNodeU(), CheckNodeUV(), getFaceMaxTol(), getMediumNodeOnComposedWire(), GetMediumPos(), GetMeshDS(), GetMiddleUV(), GetNodeU(), GetNodeUV(), SMDS_MeshNode::GetPosition(), SMDS_MeshElement::getshapeId(), SMDS_Position::GetTypeOfPosition(), Handle(), HasDegeneratedEdges(), SMESHDS_Mesh::IndexToShape(), IsDegenShape(), IsSeamShape(), SMESHDS_Mesh::SetMeshElementOnShape(), SMESHDS_Mesh::SetNodeOnEdge(), SMESHDS_Mesh::SetNodeOnFace(), SMDS_MeshNode::X(), SMDS_MeshNode::Y(), and SMDS_MeshNode::Z().

Referenced by AddEdge(), AddFace(), AddPolygonalFace(), AddPolyhedralVolume(), and AddVolume().

◆ getMediumNodeOnComposedWire()

const SMDS_MeshNode * SMESH_MesherHelper::getMediumNodeOnComposedWire ( const SMDS_MeshNode n1,
const SMDS_MeshNode n2,
bool  force3d 
)
protected

Makes a medium node if nodes reside different edges.

Referenced by GetMediumNode().

◆ GetMediumPos()

std::pair< int, TopAbs_ShapeEnum > SMESH_MesherHelper::GetMediumPos ( const SMDS_MeshNode n1,
const SMDS_MeshNode n2,
const bool  useCurSubShape = false,
TopAbs_ShapeEnum  expectedSupport = TopAbs_SHAPE 
)

◆ GetMesh()

◆ GetMeshDS()

◆ GetMiddleUV()

gp_XY SMESH_MesherHelper::GetMiddleUV ( const Handle(Geom_Surface)&  surface,
const gp_XY &  uv1,
const gp_XY &  uv2 
)
static

Return middle UV taking in account surface period.

References ApplyIn2D().

Referenced by FixQuadraticElements(), GetMediumNode(), SMESH_MeshEditor::QuadTo4Tri(), and SMESH_MeshEditor::Smooth().

◆ GetNodeU()

◆ GetNodeUV()

gp_XY SMESH_MesherHelper::GetNodeUV ( const TopoDS_Face &  F,
const SMDS_MeshNode n,
const SMDS_MeshNode inFaceNode = 0,
bool check = 0 
) const

◆ GetNodeUVneedInFaceNode()

bool SMESH_MesherHelper::GetNodeUVneedInFaceNode ( const TopoDS_Face &  F = TopoDS_Face()) const

Check if inFaceNode argument is necessary for call GetNodeUV(F,..)

Return values
bool- return true if the face is periodic

If F is Null, answer about subshape set through IsQuadraticSubMesh() or SetSubShape()

References Handle().

Referenced by SMESH_Pattern::Apply(), and SMESH_MeshEditor::QuadToTri().

◆ GetOtherParam()

double SMESH_MesherHelper::GetOtherParam ( const double  param) const

Return an alternative parameter for a node on seam.

References draftguitools.gui_annotationstyleeditor::param.

Referenced by StdMeshers_Import_1D2D::Compute(), and NETGENPlugin_Mesher::FillNgMesh().

◆ GetPeriodicIndex()

int SMESH_MesherHelper::GetPeriodicIndex ( ) const

Return index of periodic parametric direction of a closed face.

Return values
int- 1 for U, 2 for V direction

Referenced by AdjustByPeriod(), StdMeshers_Import_1D2D::Compute(), and NETGENPlugin_Mesher::FillNgMesh().

◆ GetProjector()

GeomAPI_ProjectPointOnSurf & SMESH_MesherHelper::GetProjector ( const TopoDS_Face &  F,
TopLoc_Location &  loc,
double  tol = 0 
) const

Return projector initialized by given face without location, which is returned.

References GetMeshDS(), Handle(), and SMESHDS_Mesh::ShapeToIndex().

Referenced by CheckNodeUV(), and StdMeshers_Import_1D2D::Compute().

◆ GetShapeOfHypothesis()

TopoDS_Shape SMESH_MesherHelper::GetShapeOfHypothesis ( const SMESHDS_Hypothesis hyp,
const TopoDS_Shape &  shape,
SMESH_Mesh mesh 
)
static

Returns a shape, to which a hypothesis used to mesh a given shape is assigned.

Parameters
[in]hyp- the hypothesis
[in]shape- the shape, for meshing which the hyp is used
[in]mesh- the mesh
Returns
TopoDS_Shape - the shape the hyp is assigned to

References SMESH_HypoFilter::Is().

◆ GetSubShape()

◆ GetSubShapeByNode()

TopoDS_Shape SMESH_MesherHelper::GetSubShapeByNode ( const SMDS_MeshNode node,
const SMESHDS_Mesh meshDS 
)
static

Return support shape of a node.

Parameters
node- the node
meshDS- mesh DS
Return values
TopoDS_Shape- found support shape
See also
SMESH_Algo::VertexNode( const TopoDS_Vertex&, SMESHDS_Mesh* )

References SMDS_MeshElement::getshapeId(), and SMESHDS_Mesh::IndexToShape().

Referenced by StdMeshers_Import_1D2D::Compute(), FixQuadraticElements(), GetCentralNode(), GetMediumPos(), SMESH_ProxyMesh::GetProxyNode(), StdMeshers_PrismAsBlock::IsForwardEdge(), IsReversedSubMesh(), SMESH_Pattern::MakeMesh(), SMESH_Algo::VertexNode(), and StdMeshers_FaceSide::VertexNode().

◆ GetSubShapeID()

◆ GetSubShapeOri()

TopAbs_Orientation SMESH_MesherHelper::GetSubShapeOri ( const TopoDS_Shape &  shape,
const TopoDS_Shape &  subShape 
)
static

◆ GetTLinkNodeMap()

const TLinkNodeMap & SMESH_MesherHelper::GetTLinkNodeMap ( ) const

Returns myTLinkNodeMap.

Referenced by NETGENPlugin_Mesher::FillSMesh(), and StdMeshers_Quadrangle_2D::smooth().

◆ getUVOnSeam()

gp_Pnt2d SMESH_MesherHelper::getUVOnSeam ( const gp_Pnt2d &  uv1,
const gp_Pnt2d &  uv2 
) const
protected

Select UV on either of 2 pcurves of a seam edge, closest to the given UV.

Parameters
uv1- UV on the seam
uv2- UV within a face
Return values
gp_Pnt2d- selected UV

Referenced by GetNodeUV().

◆ Handle()

SMESH_MesherHelper::Handle ( ShapeAnalysis_Surface  ) const &

◆ HasDegeneratedEdges()

bool SMESH_MesherHelper::HasDegeneratedEdges ( ) const

Check if the shape set through IsQuadraticSubMesh() or SetSubShape() has a degenerated edges.

Return values
bool- true if it has

Referenced by StdMeshers_Projection_2D::Compute(), GetCentralNode(), GetMediumNode(), IsDistorted2D(), and StdMeshers_Quadrangle_2D::smooth().

◆ HasRealSeam()

bool SMESH_MesherHelper::HasRealSeam ( ) const

Check if the shape set through IsQuadraticSubMesh() or SetSubShape() has a seam edge that encounters twice in a wire.

Return values
bool- true if it has

◆ HasSeam()

bool SMESH_MesherHelper::HasSeam ( ) const

Check if the shape set through IsQuadraticSubMesh() or SetSubShape() has a seam edge, i.e. an edge that has two parametric representations on a surface.

Return values
bool- true if it has

Referenced by StdMeshers_Quadrangle_2D::check(), StdMeshers_Import_1D2D::Compute(), StdMeshers_Projection_1D2D::Compute(), NETGENPlugin_Mesher::FillNgMesh(), StdMeshers_ProjectionUtils::FindMatchingNodesOnFaces(), IsDistorted2D(), and SMESH_Pattern::Load().

◆ IsBlock()

bool SMESH_MesherHelper::IsBlock ( const TopoDS_Shape &  shape)
static

◆ IsClosedEdge()

bool SMESH_MesherHelper::IsClosedEdge ( const TopoDS_Edge &  anEdge)
static

Check if the first and last vertices of an edge are the same.

Parameters
anEdge- the edge to check
Return values
bool- true if same

References IsClosedEdge().

Referenced by StdMeshers_ProjectionUtils::FindFaceAssociation(), StdMeshers_ProjectionUtils::FindMatchingNodesOnFaces(), StdMeshers_ProjectionUtils::FindSubShapeAssociation(), VISCOUS_3D::getFaceDir(), IsClosedEdge(), and StdMeshers_PrismAsBlock::IsForwardEdge().

◆ IsDegenShape()

bool SMESH_MesherHelper::IsDegenShape ( const int  subShape) const

Check if shape is a degenerated edge or it's vertex.

Parameters
subShape- edge or vertex index in SMESHDS
Return values
bool- true if subShape is a degenerated shape

It works only if IsQuadraticSubMesh() or SetSubShape() has been called

Referenced by NETGENPlugin_Mesher::AddSegmentsToMesh(), NETGENPlugin_NETGEN_3D::Compute(), StdMeshers_Projection_2D::Compute(), GetMediumNode(), StdMeshers_FaceSide::GetOrderedNodes(), StdMeshers_FaceSide::GetUVPtStruct(), IsDistorted2D(), StdMeshers_FaceSide::NbPoints(), and StdMeshers_Quadrangle_2D::updateDegenUV().

◆ IsDistorted2D()

◆ IsMedium()

bool SMESH_MesherHelper::IsMedium ( const SMDS_MeshNode node,
const SMDSAbs_ElementType  typeToCheck = SMDSAbs_All 
)
static

Returns true if given node is medium.

Parameters
n- node to check
typeToCheck- type of elements containing the node to ask about node status
Return values
bool- check result

References SMESH_MeshEditor::IsMedium().

Referenced by StdMeshers_Projection_1D::Compute(), SMESH_MeshEditor::FindCoincidentNodes(), StdMeshers_Penta_3D::FindNodeOnShape(), SMESH_Algo::GetSortedNodesOnEdge(), SMESH_Pattern::Load(), StdMeshers_Penta_3D::LoadIJNodes(), StdMeshers_Penta_3D::MakeMeshOnFxy1(), and StdMeshers_Penta_3D::MakeNodes().

◆ IsQuadraticMesh()

◆ IsQuadraticSubMesh()

◆ IsRealSeam() [1/2]

◆ IsRealSeam() [2/2]

bool SMESH_MesherHelper::IsRealSeam ( const TopoDS_Shape &  subShape) const

Return true if an edge or a vertex encounters twice in face wire.

Parameters
subShape- edge or vertex

◆ IsReversedSubMesh()

bool SMESH_MesherHelper::IsReversedSubMesh ( const TopoDS_Face &  theFace)

Find out elements orientation on a geometrical face.

Parameters
theFace- The face correctly oriented in the shape being meshed
Return values
bool- true if the face normal and the normal of first element in the correspoding submesh point in different directions

References SMESH_MeshAlgos::FaceNormal(), GetCommonAncestor(), SMESHDS_SubMesh::GetElements(), GetMeshDS(), SMDS_MeshElement::GetNode(), GetNodeU(), GetNodeUV(), GetSubShapeByNode(), Handle(), SMESHDS_Mesh::IndexToShape(), SMESHDS_Mesh::MeshElements(), SMDS_MeshElement::NbCornerNodes(), SMDS_MeshElement::nodesIterator(), and SMESHDS_Mesh::ShapeToIndex().

Referenced by NETGENPlugin_NETGEN_3D::Compute(), StdMeshers_Projection_2D::Compute(), and StdMeshers_QuadToTriaAdaptor::Compute().

◆ IsSameElemGeometry()

bool SMESH_MesherHelper::IsSameElemGeometry ( const SMESHDS_SubMesh smDS,
SMDSAbs_GeometryType  shape,
const bool  nullSubMeshRes = true 
)
static

Returns true if all elements of a sub-mesh are of same shape.

Parameters
smDS- sub-mesh to check elements of
shape- expected shape of elements
nullSubMeshRes- result value for the case of smDS == NULL
Return values
bool- check result

References SMESHDS_SubMesh::GetElements().

Referenced by StdMeshers_Hexa_3D::Compute(), and StdMeshers_Prism_3D::Compute().

◆ IsSeamShape() [1/2]

bool SMESH_MesherHelper::IsSeamShape ( const int  subShape) const

Check if shape is a seam edge or it's vertex.

Parameters
subShape- edge or vertex index in SMESHDS
Return values
bool- true if subShape is a seam shape

It works only if IsQuadraticSubMesh() or SetSubShape() has been called. Seam shape has two 2D alternative representations on the face

Referenced by SMESH_Pattern::Apply(), StdMeshers_Quadrangle_2D::check(), StdMeshers_Import_1D2D::Evaluate(), StdMeshers_ProjectionUtils::FindMatchingNodesOnFaces(), GetMediumNode(), GetNodeUV(), IsDistorted2D(), SMESH_Pattern::Load(), and SetSubShape().

◆ IsSeamShape() [2/2]

bool SMESH_MesherHelper::IsSeamShape ( const TopoDS_Shape &  subShape) const

Check if shape is a seam edge or it's vertex.

Parameters
subShape- edge or vertex
Return values
bool- true if subShape is a seam shape

It works only if IsQuadraticSubMesh() or SetSubShape() has been called. Seam shape has two 2D alternative representations on the face

◆ IsStructured()

◆ IsSubShape() [1/2]

◆ IsSubShape() [2/2]

bool SMESH_MesherHelper::IsSubShape ( const TopoDS_Shape &  shape,
SMESH_Mesh aMesh 
)
static

◆ IthVertex()

TopoDS_Vertex SMESH_MesherHelper::IthVertex ( const bool  is2nd,
TopoDS_Edge  anEdge,
const bool  CumOri = true 
)
static

◆ LoadNodeColumns() [1/2]

bool SMESH_MesherHelper::LoadNodeColumns ( TParam2ColumnMap &  theParam2ColumnMap,
const TopoDS_Face &  theFace,
const std::list< TopoDS_Edge > &  theBaseSide,
SMESHDS_Mesh theMesh,
SMESH_ProxyMesh theProxyMesh = 0 
)
static

Load nodes bound to face into a map of node columns.

Parameters
theParam2ColumnMap- map of node columns to fill
theFace- the face on which nodes are searched for
theBaseSide- the edges holding nodes on which columns' bases
theMesh- the mesh containing nodes
Return values
bool- false if something is wrong

The key of the map is a normalized parameter of each base node on theBaseSide. Edges in theBaseSide must be sequenced. This method works in supposition that nodes on the face forms a structured grid and elements can be quardrangles or triangles

References SMESHDS_SubMesh::Contains(), SMESH_Algo::EdgeLength(), SMESH_MeshAlgos::FindFaceInSet(), SMESHDS_SubMesh::GetElements(), SMDS_MeshElement::GetNode(), SMESH_ProxyMesh::GetProxyNode(), SMESH_Algo::GetSortedNodesOnEdge(), SMESH_ProxyMesh::GetSubMesh(), SMESH_ProxyMesh::IsTemporary(), SMESHDS_Mesh::MeshElements(), SMDS_MeshElement::NbCornerNodes(), and SMESHDS_SubMesh::NbElements().

Referenced by StdMeshers_Hexa_3D::Compute(), StdMeshers_PrismAsBlock::Init(), and LoadNodeColumns().

◆ LoadNodeColumns() [2/2]

bool SMESH_MesherHelper::LoadNodeColumns ( TParam2ColumnMap &  theParam2ColumnMap,
const TopoDS_Face &  theFace,
const TopoDS_Edge &  theBaseEdge,
SMESHDS_Mesh theMesh,
SMESH_ProxyMesh theProxyMesh = 0 
)
static

Variant of LoadNodeColumns() above with theBaseSide given by one edge.

References LoadNodeColumns().

◆ MaxTolerance()

double SMESH_MesherHelper::MaxTolerance ( const TopoDS_Shape &  shape)
static

Return maximal tolerance of shape.

Referenced by StdMeshers_Import_1D2D::Compute(), StdMeshers_Import_1D::Evaluate(), and getFaceMaxTol().

◆ NbAncestors()

int SMESH_MesherHelper::NbAncestors ( const TopoDS_Shape &  shape,
const SMESH_Mesh mesh,
TopAbs_ShapeEnum  ancestorType = TopAbs_SHAPE 
)
static

◆ SetElementsOnShape()

◆ SetIsBiQuadratic()

void SMESH_MesherHelper::SetIsBiQuadratic ( const bool  theBuildBiQuadratic)

◆ SetIsQuadratic()

void SMESH_MesherHelper::SetIsQuadratic ( const bool  theBuildQuadratic)

◆ SetSubShape() [1/2]

◆ SetSubShape() [2/2]

void SMESH_MesherHelper::SetSubShape ( const TopoDS_Shape &  subShape)

==SMESHDS_Mesh::ShapeToIndex(shape)

References GetMeshDS(), Handle(), SMESH_Algo::isDegenerated(), IsSeamShape(), and SMESHDS_Mesh::ShapeToIndex().

◆ ToFixNodeParameters()

void SMESH_MesherHelper::ToFixNodeParameters ( bool  toFix)

Enables fixing node parameters on EDGEs and FACEs by GetNodeU(...,check=true), GetNodeUV(...,check=true), CheckNodeUV() and CheckNodeU() in case if a node lies on a shape set via SetSubShape(). Default is False.

Referenced by StdMeshers_Hexa_3D::Compute(), StdMeshers_Projection_1D2D::Compute(), SMESH_MeshEditor::ConvertToQuadratic(), FixQuadraticElements(), StdMeshers_FaceSide::GetOrderedNodes(), StdMeshers_FaceSide::GetUVPtStruct(), SMESH_Pattern::MakeMesh(), and SMESH_MeshEditor::SplitVolumes().

◆ WrapIndex()


The documentation for this class was generated from the following files: