Simplex (triangle or tetrahedron) based on 1 (tria) or 2 (tet) nodes of _LayerEdge and 2 nodes of the mesh surface beening smoothed. More...
Public Member Functions | |
_Simplex (const SMDS_MeshNode *nPrev=0, const SMDS_MeshNode *nNext=0, const SMDS_MeshNode *nOpp=0) | |
bool | IsForward (const gp_XYZ *pntSrc, const gp_XYZ *pntTgt, double &vol) const |
bool | IsForward (const SMDS_MeshNode *nSrc, const gp_XYZ &pTgt, double &vol) const |
bool | IsForward (const gp_XY &tgtUV, const SMDS_MeshNode *smoothedNode, const TopoDS_Face &face, SMESH_MesherHelper &helper, const double refSign) const |
bool | IsMinAngleOK (const gp_XYZ &pTgt, double &minAngle) const |
bool | IsNeighbour (const _Simplex &other) const |
bool | Includes (const SMDS_MeshNode *node) const |
Static Public Member Functions | |
static void | GetSimplices (const SMDS_MeshNode *node, vector< _Simplex > &simplices, const set< TGeomID > &ingnoreShapes, const _SolidData *dataToCheckOri=0, const bool toSort=false) |
Fills a vector<_Simplex > More... | |
static void | SortSimplices (vector< _Simplex > &simplices) |
Set neighbor simplices side by side. More... | |
Data Fields | |
const SMDS_MeshNode * | _nPrev |
const SMDS_MeshNode * | _nNext |
const SMDS_MeshNode * | _nOpp |
Simplex (triangle or tetrahedron) based on 1 (tria) or 2 (tet) nodes of _LayerEdge and 2 nodes of the mesh surface beening smoothed.
The class is used to check validity of face or volumes around a smoothed node; it stores only 2 nodes as the other nodes are stored by _LayerEdge.
VISCOUS_3D::_Simplex::_Simplex | ( | const SMDS_MeshNode * | nPrev = 0 , |
const SMDS_MeshNode * | nNext = 0 , |
||
const SMDS_MeshNode * | nOpp = 0 |
||
) |
Referenced by GetSimplices().
|
static |
Fills a vector<_Simplex >
References VISCOUS_3D::_SolidData::_reversedFaceIds, _Simplex(), SMDS_MeshNode::GetInverseElementIterator(), SMDS_MeshElement::GetNode(), SMDS_MeshElement::GetNodeIndex(), SMDS_MeshElement::getshapeId(), SMDS_MeshElement::NbCornerNodes(), SMDSAbs_Face, SortSimplices(), and SMESH_MesherHelper::WrapIndex().
Referenced by VISCOUS_3D::_ViscousBuilder::isNewNormalOk(), VISCOUS_3D::_ViscousBuilder::setEdgeData(), and VISCOUS_3D::_ViscousBuilder::shrink().
bool VISCOUS_3D::_Simplex::Includes | ( | const SMDS_MeshNode * | node | ) | const |
bool VISCOUS_3D::_Simplex::IsForward | ( | const gp_XYZ * | pntSrc, |
const gp_XYZ * | pntTgt, | ||
double & | vol | ||
) | const |
bool VISCOUS_3D::_Simplex::IsForward | ( | const SMDS_MeshNode * | nSrc, |
const gp_XYZ & | pTgt, | ||
double & | vol | ||
) | const |
bool VISCOUS_3D::_Simplex::IsForward | ( | const gp_XY & | tgtUV, |
const SMDS_MeshNode * | smoothedNode, | ||
const TopoDS_Face & | face, | ||
SMESH_MesherHelper & | helper, | ||
const double | refSign | ||
) | const |
References MESHCUT::d, and SMESH_MesherHelper::GetNodeUV().
bool VISCOUS_3D::_Simplex::IsMinAngleOK | ( | const gp_XYZ & | pTgt, |
double & | minAngle | ||
) | const |
References Max(), VISCOUS_3D::theMinSmoothQuadAngle, and VISCOUS_3D::theMinSmoothTriaAngle.
|
static |
Set neighbor simplices side by side.
References _nNext, and _nPrev.
Referenced by GetSimplices(), and VISCOUS_3D::_SolidData::PrepareEdgesToSmoothOnFace().
const SMDS_MeshNode * VISCOUS_3D::_Simplex::_nNext |
const SMDS_MeshNode* VISCOUS_3D::_Simplex::_nOpp |
const SMDS_MeshNode* VISCOUS_3D::_Simplex::_nPrev |