Create a Delaunay triangulation of nodes on a face boundary and provide exploration of nodes shared by elements lying on the face. More...
#include <StdMeshers_ProjectionUtils.hxx>

Public Member Functions | |
| Delaunay (const TSideVector &wires, bool checkUV=false) | |
| Delaunay (const std::vector< const UVPtStructVec * > &boundaryNodes, SMESH_MesherHelper &faceHelper, bool checkUV=false) | |
| void | InitTraversal (const int nbNodesToVisit=-1) |
| Prepare to the exploration of nodes. More... | |
| const SMDS_MeshNode * | NextNode (double bc[3], int triaNodes[3]) |
| Return a node with its Barycentric Coordinates within the triangle defined by its node indices (zero based) More... | |
| size_t | NbVisitedNodes () const |
| const BRepMesh_Triangle * | FindTriangle (const gp_XY &uv, const BRepMesh_Triangle *bmTria, double bc[3], int triaNodes[3]) |
| Find a Delaunay triangle containing a given 2D point and return barycentric coordinates within the found triangle. More... | |
| const BRepMesh_Triangle * | GetTriangleNear (int iBndNode) |
| Return a triangle sharing a given boundary node. More... | |
| const std::vector< const SMDS_MeshNode * > & | GetBndNodes () const |
| gp_XY | GetBndUV (const int iNode) const |
| Return UV of the i-th source boundary node (zero based) More... | |
| const gp_XY & | GetScale () const |
| void | ToPython () const |
| Write a python script that creates an equal mesh in Mesh module. More... | |
| Handle (BRepMesh_DataStructureOfDelaun) GetDS() | |
Protected Types | |
| typedef std::list< std::pair< const SMDS_MeshNode *, const BRepMesh_Triangle * > > | TNodeTriaList |
Protected Member Functions | |
| virtual gp_XY | getNodeUV (const TopoDS_Face &face, const SMDS_MeshNode *node) const |
| Handle (BRepMesh_DataStructureOfDelaun) _triaDS | |
Static Protected Member Functions | |
| static void | addCloseNodes (const SMDS_MeshNode *node, const BRepMesh_Triangle *bmTria, const int faceID, TNodeTriaList &noTriQueue) |
| Add non-marked nodes surrounding a given one to a queue. More... | |
Protected Attributes | |
| const TopoDS_Face & | _face |
| int | _faceID |
| std::vector< const SMDS_MeshNode * > | _bndNodes |
| gp_XY | _scale |
| size_t | _nbNodesToVisit |
| size_t | _nbVisitedNodes |
| size_t | _iBndNode |
| TNodeTriaList | _noTriQueue |
Private Attributes | |
| SMESH_MesherHelper * | _helper |
| StdMeshers_FaceSidePtr | _wire |
| bool * | _checkUVPtr |
| bool | _checkUV |
Create a Delaunay triangulation of nodes on a face boundary and provide exploration of nodes shared by elements lying on the face.
For a returned node, also return a Delaunay triangle the node lies in and its Barycentric Coordinates within the triangle. Only non-marked nodes are visited.
The main methods are defined in ../SMESHUtils/SMESH_Delaunay.hxx
|
protectedinherited |
| StdMeshers_ProjectionUtils::Delaunay::Delaunay | ( | const TSideVector & | wires, |
| bool | checkUV = false |
||
| ) |
References _checkUV, _checkUVPtr, _helper, and _wire.
| StdMeshers_ProjectionUtils::Delaunay::Delaunay | ( | const std::vector< const UVPtStructVec * > & | boundaryNodes, |
| SMESH_MesherHelper & | faceHelper, | ||
| bool | checkUV = false |
||
| ) |
References _checkUV, _checkUVPtr, and _helper.
|
staticprotectedinherited |
Add non-marked nodes surrounding a given one to a queue.
References SMESH_Delaunay::_noTriQueue, SMDS_MeshNode::GetInverseElementIterator(), SMDS_MeshElement::GetNode(), SMDS_MeshElement::getshapeId(), SMDS_MeshElement::isMarked(), SMDS_MeshElement::NbNodes(), and SMDSAbs_Face.
Referenced by SMESH_Delaunay::NextNode().
|
inherited |
Find a Delaunay triangle containing a given 2D point and return barycentric coordinates within the found triangle.
References SMESH_Delaunay::_scale, and SMESH_MeshAlgos::GetBarycentricCoords().
Referenced by SMESH_Delaunay::NextNode().
|
inherited |
Referenced by StdMeshers_ProjectionUtils::Morph::Perform().
|
inherited |
Return UV of the i-th source boundary node (zero based)
|
protectedvirtual |
Implements SMESH_Delaunay.
References _checkUVPtr, _helper, and SMESH_MesherHelper::GetNodeUV().
|
inherited |
|
inherited |
Return a triangle sharing a given boundary node.
| [in] | iBndNode | - index of the boundary node |
References SMESH_Delaunay::_bndNodes.
Referenced by SMESH_Delaunay::NextNode().
|
protectedinherited |
|
inherited |
|
inherited |
Prepare to the exploration of nodes.
References SMESH_Delaunay::_iBndNode, SMESH_Delaunay::_nbNodesToVisit, SMESH_Delaunay::_nbVisitedNodes, and SMESH_Delaunay::_noTriQueue.
Referenced by StdMeshers_ProjectionUtils::Morph::Perform().
|
inherited |
|
inherited |
Return a node with its Barycentric Coordinates within the triangle defined by its node indices (zero based)
| [out] | bc | - Barycentric Coordinates of the returned node |
| [out] | triaNodes | - indices of triangle nodes |
References SMESH_Delaunay::_bndNodes, SMESH_Delaunay::_face, SMESH_Delaunay::_faceID, SMESH_Delaunay::_iBndNode, SMESH_Delaunay::_nbNodesToVisit, SMESH_Delaunay::_nbVisitedNodes, SMESH_Delaunay::_noTriQueue, SMESH_Delaunay::addCloseNodes(), SMESH_Delaunay::FindTriangle(), SMESH_Delaunay::getNodeUV(), SMESH_Delaunay::GetTriangleNear(), SMDS_MeshElement::isMarked(), and SMDS_MeshElement::setIsMarked().
Referenced by StdMeshers_ProjectionUtils::Morph::Perform().
|
inherited |
Write a python script that creates an equal mesh in Mesh module.
References SMESH_File::openForWriting(), SMESH_File::remove(), and SMESH_File::write().
|
protectedinherited |
Referenced by SMESH_Delaunay::GetTriangleNear(), SMESH_Delaunay::NextNode(), and SMESH_Delaunay::SMESH_Delaunay().
|
private |
Referenced by Delaunay().
|
private |
Referenced by Delaunay(), and getNodeUV().
|
protectedinherited |
Referenced by SMESH_Delaunay::NextNode().
|
protectedinherited |
Referenced by SMESH_Delaunay::NextNode().
|
private |
Referenced by Delaunay(), and getNodeUV().
|
protectedinherited |
Referenced by SMESH_Delaunay::InitTraversal(), and SMESH_Delaunay::NextNode().
|
protectedinherited |
Referenced by SMESH_Delaunay::InitTraversal(), and SMESH_Delaunay::NextNode().
|
protectedinherited |
Referenced by SMESH_Delaunay::InitTraversal(), and SMESH_Delaunay::NextNode().
|
protectedinherited |
Referenced by SMESH_Delaunay::addCloseNodes(), SMESH_Delaunay::InitTraversal(), and SMESH_Delaunay::NextNode().
|
protectedinherited |
Referenced by SMESH_Delaunay::FindTriangle(), and SMESH_Delaunay::SMESH_Delaunay().
|
private |
Referenced by Delaunay().