#include <SMDS_VolumeTool.hxx>
Classes | |
struct | SaveFacet |
Saver/restorer of a SMDS_VolumeTool::myCurFace. More... | |
Public Types | |
enum | VolumeType { UNKNOWN = -1, TETRA = 0, PYRAM, PENTA, HEXA, HEX_PRISM, QUAD_TETRA, QUAD_PYRAM, QUAD_PENTA, QUAD_HEXA, POLYHEDA, NB_VOLUME_TYPES } |
Public Member Functions | |
const SMDS_MeshVolume * | Element () const |
int | GetAllExistingEdges (std::vector< const SMDS_MeshElement * > &edges) const |
Fill vector with boundary edges existing in the mesh. More... | |
int | GetAllExistingFaces (std::vector< const SMDS_MeshElement * > &faces) const |
Fill vector with boundary faces existing in the mesh. More... | |
bool | GetBaryCenter (double &X, double &Y, double &Z) const |
int | GetCenterNodeIndex (int faceIndex) const |
Return index of the node located at face center of a quadratic element like HEX27. More... | |
double | GetFaceArea (int faceIndex) const |
bool | GetFaceBaryCenter (int faceIndex, double &X, double &Y, double &Z) const |
Return barycenter of a face. More... | |
int | GetFaceIndex (const std::set< const SMDS_MeshNode * > &theFaceNodes, const int theFaceIndexHint=-1) const |
const SMDS_MeshNode ** | GetFaceNodes (int faceIndex) const |
bool | GetFaceNodes (int faceIndex, std::set< const SMDS_MeshNode * > &theFaceNodes) const |
const int * | GetFaceNodesIndices (int faceIndex) const |
bool | GetFaceNormal (int faceIndex, double &X, double &Y, double &Z) const |
int | GetNodeIndex (const SMDS_MeshNode *theNode) const |
const SMDS_MeshNode ** | GetNodes () |
int | GetOppFaceIndex (int faceIndex) const |
double | GetSize () const |
VolumeType | GetVolumeType () const |
int | ID () const |
void | Inverse () |
bool | IsFaceExternal (int faceIndex) const |
bool | IsForward () const |
bool | IsFreeFace (int faceIndex, const SMDS_MeshElement **otherVol=0) const |
fast check that only one volume is build on the face nodes This check is valid for conformal meshes only More... | |
bool | IsFreeFaceAdv (int faceIndex, const SMDS_MeshElement **otherVol=0) const |
Thorough check that only one volume is build on the face nodes. More... | |
bool | IsLinked (const int theNode1Index, const int theNode2Index, bool theIgnoreMediumNodes=false) const |
bool | IsLinked (const SMDS_MeshNode *theNode1, const SMDS_MeshNode *theNode2, const bool theIgnoreMediumNodes=false) const |
bool | IsOut (double X, double Y, double Z, double tol) const |
Classify a point. More... | |
bool | IsPoly () const |
double | MaxLinearSize2 () const |
Return maximal square distance between connected corner nodes. More... | |
double | MinLinearSize2 () const |
Return minimal square distance between connected corner nodes. More... | |
int | NbFaceNodes (int faceIndex) const |
int | NbFaces () const |
int | NbNodes () |
bool | Set (const SMDS_MeshElement *theVolume, const bool ignoreCentralNodes=true) |
void | SetExternalNormal () |
SMDS_VolumeTool () | |
SMDS_VolumeTool (const SMDS_MeshElement *theVolume, const bool ignoreCentralNodes=true) | |
~SMDS_VolumeTool () | |
Static Public Member Functions | |
static const int * | GetFaceNodesIndices (VolumeType type, int faceIndex, bool external) |
static int | GetOppFaceIndexOfHex (int faceIndex) |
static VolumeType | GetType (int nbNodes) |
static int | NbCornerNodes (VolumeType type) |
Useful to know nb of corner nodes of a quadratic volume. More... | |
static int | NbFaceNodes (VolumeType type, int faceIndex) |
static int | NbFaces (VolumeType type) |
Member Enumeration Documentation
◆ VolumeType
Constructor & Destructor Documentation
◆ SMDS_VolumeTool() [1/2]
SMDS_VolumeTool::SMDS_VolumeTool | ( | ) |
◆ ~SMDS_VolumeTool()
SMDS_VolumeTool::~SMDS_VolumeTool | ( | ) |
◆ SMDS_VolumeTool() [2/2]
SMDS_VolumeTool::SMDS_VolumeTool | ( | const SMDS_MeshElement * | theVolume, |
const bool | ignoreCentralNodes = true |
||
) |
Member Function Documentation
◆ Element()
const SMDS_MeshVolume * SMDS_VolumeTool::Element | ( | ) | const |
◆ GetAllExistingEdges()
int SMDS_VolumeTool::GetAllExistingEdges | ( | std::vector< const SMDS_MeshElement * > & | edges | ) | const |
Fill vector with boundary edges existing in the mesh.
- Parameters
-
edges - vector of found edges
- Return values
-
int - nb of found faces
References SMDS_Mesh::FindEdge().
◆ GetAllExistingFaces()
int SMDS_VolumeTool::GetAllExistingFaces | ( | std::vector< const SMDS_MeshElement * > & | faces | ) | const |
Fill vector with boundary faces existing in the mesh.
- Parameters
-
faces - vector of found nodes
- Return values
-
int - nb of found faces
References SMDS_Mesh::FindFace().
◆ GetBaryCenter()
bool SMDS_VolumeTool::GetBaryCenter | ( | double & | X, |
double & | Y, | ||
double & | Z | ||
) | const |
Referenced by IsFreeFaceAdv(), and SMESH_MeshEditor::SplitVolumes().
◆ GetCenterNodeIndex()
int SMDS_VolumeTool::GetCenterNodeIndex | ( | int | faceIndex | ) | const |
Return index of the node located at face center of a quadratic element like HEX27.
Referenced by SMESH_MesherHelper::AddTLinks(), SMESH_MeshEditor::MakeBoundaryMesh(), and SMESH_MeshEditor::SplitVolumes().
◆ GetFaceArea()
double SMDS_VolumeTool::GetFaceArea | ( | int | faceIndex | ) | const |
◆ GetFaceBaryCenter()
bool SMDS_VolumeTool::GetFaceBaryCenter | ( | int | faceIndex, |
double & | X, | ||
double & | Y, | ||
double & | Z | ||
) | const |
Return barycenter of a face.
Referenced by SMESH_MeshAlgos::GetDistance(), and SMESH_MeshEditor::SplitVolumes().
◆ GetFaceIndex()
int SMDS_VolumeTool::GetFaceIndex | ( | const std::set< const SMDS_MeshNode * > & | theFaceNodes, |
const int | theFaceIndexHint = -1 |
||
) | const |
Referenced by SMESH_MeshEditor::GetHexaFacetsToSplit(), and SMESH_MeshEditor::Reorient2DBy3D().
◆ GetFaceNodes() [1/2]
const SMDS_MeshNode ** SMDS_VolumeTool::GetFaceNodes | ( | int | faceIndex | ) | const |
Referenced by SMESH_MesherHelper::FixQuadraticElements(), SMESH_MeshAlgos::GetDistance(), SMESH_MeshEditor::GetHexaFacetsToSplit(), SMESH_Algo::GetMeshError(), SMESH::Controls::BareBorderVolume::IsSatisfy(), SMESH_MeshEditor::Make2DMeshFrom3D(), SMESH_MeshEditor::MakeBoundaryMesh(), SMESH_MeshEditor::Reorient2DBy3D(), SMESH_MeshEditor::SewSideElements(), SMESH_MeshEditor::SplitVolumes(), and SMESH_MeshEditor::UpdateVolumes().
◆ GetFaceNodes() [2/2]
bool SMDS_VolumeTool::GetFaceNodes | ( | int | faceIndex, |
std::set< const SMDS_MeshNode * > & | theFaceNodes | ||
) | const |
◆ GetFaceNodesIndices() [1/2]
const int * SMDS_VolumeTool::GetFaceNodesIndices | ( | int | faceIndex | ) | const |
◆ GetFaceNodesIndices() [2/2]
|
static |
◆ GetFaceNormal()
bool SMDS_VolumeTool::GetFaceNormal | ( | int | faceIndex, |
double & | X, | ||
double & | Y, | ||
double & | Z | ||
) | const |
◆ GetNodeIndex()
int SMDS_VolumeTool::GetNodeIndex | ( | const SMDS_MeshNode * | theNode | ) | const |
◆ GetNodes()
const SMDS_MeshNode** SMDS_VolumeTool::GetNodes | ( | ) |
◆ GetOppFaceIndex()
int SMDS_VolumeTool::GetOppFaceIndex | ( | int | faceIndex | ) | const |
Referenced by SMESH_MeshEditor::MergeNodes().
◆ GetOppFaceIndexOfHex()
|
static |
Referenced by SMESH_MeshEditor::GetHexaFacetsToSplit().
◆ GetSize()
double SMDS_VolumeTool::GetSize | ( | ) | const |
Referenced by SMESH::Controls::Volume::GetValue().
◆ GetType()
|
static |
Referenced by StdMeshers_Projection_3D::Compute(), and SMESH::Controls::AspectRatio3D::GetValue().
◆ GetVolumeType()
SMDS_VolumeTool::VolumeType SMDS_VolumeTool::GetVolumeType | ( | ) | const |
◆ ID()
int SMDS_VolumeTool::ID | ( | ) | const |
◆ Inverse()
void SMDS_VolumeTool::Inverse | ( | ) |
◆ IsFaceExternal()
bool SMDS_VolumeTool::IsFaceExternal | ( | int | faceIndex | ) | const |
Referenced by SMESH_MeshEditor::SplitVolumes().
◆ IsForward()
bool SMDS_VolumeTool::IsForward | ( | ) | const |
◆ IsFreeFace()
bool SMDS_VolumeTool::IsFreeFace | ( | int | faceIndex, |
const SMDS_MeshElement ** | otherVol = 0 |
||
) | const |
fast check that only one volume is build on the face nodes This check is valid for conformal meshes only
References SMDS_MeshNode::GetInverseElementIterator(), and SMDS_MeshElement::GetNodeIndex().
Referenced by SMESH_MeshEditor::GetHexaFacetsToSplit(), SMESH_Algo::GetMeshError(), SMESH::Controls::BareBorderVolume::IsSatisfy(), SMESH::Controls::OverConstrainedVolume::IsSatisfy(), SMESH_MeshEditor::Make2DMeshFrom3D(), SMESH_MeshEditor::MakeBoundaryMesh(), and SMESH_MeshEditor::SewSideElements().
◆ IsFreeFaceAdv()
bool SMDS_VolumeTool::IsFreeFaceAdv | ( | int | faceIndex, |
const SMDS_MeshElement ** | otherVol = 0 |
||
) | const |
Thorough check that only one volume is build on the face nodes.
References GetBaryCenter(), and SMDS_MeshNode::GetInverseElementIterator().
◆ IsLinked() [1/2]
bool SMDS_VolumeTool::IsLinked | ( | const int | theNode1Index, |
const int | theNode2Index, | ||
bool | theIgnoreMediumNodes = false |
||
) | const |
◆ IsLinked() [2/2]
bool SMDS_VolumeTool::IsLinked | ( | const SMDS_MeshNode * | theNode1, |
const SMDS_MeshNode * | theNode2, | ||
const bool | theIgnoreMediumNodes = false |
||
) | const |
◆ IsOut()
bool SMDS_VolumeTool::IsOut | ( | double | X, |
double | Y, | ||
double | Z, | ||
double | tol | ||
) | const |
◆ IsPoly()
bool SMDS_VolumeTool::IsPoly | ( | ) | const |
◆ MaxLinearSize2()
double SMDS_VolumeTool::MaxLinearSize2 | ( | ) | const |
Return maximal square distance between connected corner nodes.
◆ MinLinearSize2()
double SMDS_VolumeTool::MinLinearSize2 | ( | ) | const |
Return minimal square distance between connected corner nodes.
Referenced by SMESH_MesherHelper::FixQuadraticElements().
◆ NbCornerNodes()
|
static |
Useful to know nb of corner nodes of a quadratic volume.
- Parameters
-
type - volume type
- Return values
-
int - nb of corner nodes
Referenced by StdMeshers_Projection_3D::Compute().
◆ NbFaceNodes() [1/2]
int SMDS_VolumeTool::NbFaceNodes | ( | int | faceIndex | ) | const |
Referenced by SMESH_MesherHelper::AddTLinks(), SMESH_MesherHelper::FixQuadraticElements(), SMESH_MeshVSLink::Get3DGeom(), SMESH_MeshAlgos::GetDistance(), SMESH_MeshEditor::GetHexaFacetsToSplit(), SMESH_Algo::GetMeshError(), SMESH::Controls::AspectRatio3D::GetValue(), SMESH::Controls::BareBorderVolume::IsSatisfy(), SMESH_MeshEditor::Make2DMeshFrom3D(), SMESH_MeshEditor::MakeBoundaryMesh(), SMESH_MeshEditor::SewSideElements(), SMESH_MeshEditor::SplitVolumes(), and SMESH_MeshEditor::UpdateVolumes().
◆ NbFaceNodes() [2/2]
|
static |
◆ NbFaces() [1/2]
int SMDS_VolumeTool::NbFaces | ( | ) | const |
Referenced by SMESH_MesherHelper::AddTLinks(), StdMeshers_HexaFromSkin_3D::Compute(), SMESH_MesherHelper::FixQuadraticElements(), SMESH_MeshVSLink::Get3DGeom(), SMESH_MeshAlgos::GetDistance(), SMESH_MeshEditor::GetHexaFacetsToSplit(), SMESH_Algo::GetMeshError(), SMESH::Controls::AspectRatio3D::GetValue(), SMESH::Controls::BareBorderVolume::IsSatisfy(), SMESH::Controls::OverConstrainedVolume::IsSatisfy(), SMESH_Block::LoadMeshBlock(), SMESH_MeshEditor::Make2DMeshFrom3D(), SMESH_MeshEditor::MakeBoundaryMesh(), SMESH_MeshEditor::SewSideElements(), SMESH_MeshEditor::SplitVolumes(), and SMESH_MeshEditor::UpdateVolumes().
◆ NbFaces() [2/2]
|
static |
◆ NbNodes()
int SMDS_VolumeTool::NbNodes | ( | ) |
◆ Set()
bool SMDS_VolumeTool::Set | ( | const SMDS_MeshElement * | theVolume, |
const bool | ignoreCentralNodes = true |
||
) |
References SMDS_MeshElement::GetType(), SMDS_MeshElement::NbCornerNodes(), SMDS_MeshElement::NbFaces(), SMDS_MeshElement::nodesIterator(), SMDS_MeshNode::X(), SMDS_MeshNode::Y(), and SMDS_MeshNode::Z().
Referenced by StdMeshers_Prism_3D::AddPrisms(), SMESH_MesherHelper::FixQuadraticElements(), SMESH_MeshVSLink::Get3DGeom(), SMESH_MeshEditor::GetHexaFacetsToSplit(), SMESH_Algo::GetMeshError(), SMESH::Controls::Volume::GetValue(), SMESH::Controls::BareBorderVolume::IsSatisfy(), SMESH::Controls::OverConstrainedVolume::IsSatisfy(), SMESH_Block::LoadMeshBlock(), SMESH_MeshEditor::MakeBoundaryMesh(), StdMeshers_Penta_3D::MakeVolumeMesh(), SMESH_MeshEditor::Reorient2DBy3D(), SMESH_MeshEditor::SewFreeBorder(), and SMESH_MeshEditor::SplitVolumes().
◆ SetExternalNormal()
void SMDS_VolumeTool::SetExternalNormal | ( | ) |
The documentation for this class was generated from the following files:
- src/3rdParty/salomesmesh/inc/SMDS_VolumeTool.hxx
- src/3rdParty/salomesmesh/src/SMDS/SMDS_VolumeTool.cpp