#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
1.8.17