Version: 9.16.0
SMESHDS_SubMesh Class Reference

#include <SMESHDS_SubMesh.hxx>

Inheritance diagram for SMESHDS_SubMesh:

Public Member Functions

 SMESHDS_SubMesh (const SMESHDS_Mesh *parent, int index)
 Constructor. More...
 
virtual ~SMESHDS_SubMesh ()
 Destructor. More...
 
virtual bool IsComplexSubmesh () const
 
virtual void AddElement (const SMDS_MeshElement *ME)
 
virtual bool RemoveElement (const SMDS_MeshElement *ME)
 
virtual void AddNode (const SMDS_MeshNode *ME)
 
virtual bool RemoveNode (const SMDS_MeshNode *ME)
 
void AddSubMesh (const SMESHDS_SubMesh *theSubMesh)
 
bool RemoveSubMesh (const SMESHDS_SubMesh *theSubMesh)
 
void RemoveAllSubmeshes ()
 
bool ContainsSubMesh (const SMESHDS_SubMesh *theSubMesh) const
 
size_t NbSubMeshes () const
 
SMESHDS_SubMeshIteratorPtr GetSubMeshIterator () const
 
virtual smIdType NbElements () const
 
virtual smIdType NbNodes () const
 
virtual SMDS_ElemIteratorPtr GetElements () const
 
virtual SMDS_NodeIteratorPtr GetNodes () const
 
virtual bool Contains (const SMDS_MeshElement *ME) const
 
virtual bool IsQuadratic () const
 
virtual void Clear ()
 
SMESHDS_MeshGetParent () const
 
int GetID () const
 

Protected Member Functions

virtual SMDS_ElemIteratorPtr getElements ()
 < the descendant object return its elements just before the mesh compacting More...
 
virtual void tmpClear ()
 the descendant object re-add its elements after the mesh compacting More...
 
virtual void add (const SMDS_MeshElement *element)
 the descendant squeeze its element storage after re-adding elements More...
 
virtual void compact ()
 allow the descendant treat its elements before mesh clearing More...
 
virtual void clear ()
 

Protected Attributes

SMDS_MeshmyMesh
 

Private Member Functions

void beforeCompacting ()
 store vtkIDs of elements More...
 
void restoreElements (const std::vector< smIdType > &idNodessOldToNew, const std::vector< smIdType > &idCellsOldToNew)
 restore pointers to elements More...
 

Private Attributes

int myIndex
 
smIdType myNbElements
 
smIdType myNbNodes
 
const SMDS_MeshElementmy1stElemNode [2]
 
const SMESHDS_MeshmyParent
 
TSubMeshSet mySubMeshes
 
std::vector< const SMDS_MeshElement * > myExternalElems
 elements not contained in the mesh More...
 
std::vector< vtkIdType > myVtkIDs
 vtk IDs of elements More...
 
std::vector< boolmyIsNode
 
std::set< SMDS_ElementHolder * >::iterator myPtrInMesh
 

Constructor & Destructor Documentation

◆ SMESHDS_SubMesh()

SMESHDS_SubMesh::SMESHDS_SubMesh ( const SMESHDS_Mesh parent,
int  index 
)

Constructor.

References my1stElemNode, myIndex, myNbElements, myNbNodes, and myParent.

◆ ~SMESHDS_SubMesh()

SMESHDS_SubMesh::~SMESHDS_SubMesh ( )
virtual

Destructor.

Member Function Documentation

◆ add()

void SMESHDS_SubMesh::add ( const SMDS_MeshElement element)
protectedvirtual

the descendant squeeze its element storage after re-adding elements

Implements SMDS_ElementHolder.

Reimplemented in SMESH_ProxyMesh::SubMesh.

References SMDS_MeshElement::GetID(), SMDS_MeshElement::GetType(), and my1stElemNode.

Referenced by AddElement(), and AddNode().

◆ AddElement()

◆ AddNode()

◆ AddSubMesh()

void SMESHDS_SubMesh::AddSubMesh ( const SMESHDS_SubMesh theSubMesh)

◆ beforeCompacting()

◆ clear()

virtual void SMDS_ElementHolder::clear ( )
protectedvirtualinherited

◆ Clear()

◆ compact()

virtual void SMESHDS_SubMesh::compact ( )
protectedvirtual

allow the descendant treat its elements before mesh clearing

Implements SMDS_ElementHolder.

Reimplemented in SMESH_ProxyMesh::SubMesh.

◆ Contains()

◆ ContainsSubMesh()

bool SMESHDS_SubMesh::ContainsSubMesh ( const SMESHDS_SubMesh theSubMesh) const

References mySubMeshes.

◆ getElements()

SMDS_ElemIteratorPtr SMESHDS_SubMesh::getElements ( )
protectedvirtual

< the descendant object return its elements just before the mesh compacting

the descendant object temporary remove its elements

Implements SMDS_ElementHolder.

Reimplemented in SMESH_ProxyMesh::SubMesh.

References GetElements(), GetNodes(), IsComplexSubmesh(), and my1stElemNode.

◆ GetElements()

SMDS_ElemIteratorPtr SMESHDS_SubMesh::GetElements ( ) const
virtual

Reimplemented in SMESH_ProxyMesh::SubMesh.

References IsComplexSubmesh(), my1stElemNode, myIndex, myNbElements, myParent, mySubMeshes, SMDS_Mesh::shapeElementsIterator(), and SMDSAbs_All.

Referenced by SMESH_Algo::addBadInputElements(), StdMeshers::Cartesian3D::Hexahedron::addFaces(), StdMeshers_Quadrangle_2D::check(), Clear(), StdMeshers_Prism_3D::compute(), StdMeshers_PolyhedronPerSolid_3D::Compute(), StdMeshers_Projection_1D::Compute(), StdMeshers_Projection_1D2D::Compute(), StdMeshers_Projection_2D::Compute(), StdMeshers_Projection_3D::Compute(), StdMeshers_RadialPrism_3D::Compute(), StdMeshers_QuadToTriaAdaptor::Compute(), StdMeshers_Prism_3D::computeWalls(), SMESH_MeshEditor::convertElemToQuadratic(), SMESH_Gen_i::CopyMeshWithGeom(), StdMeshers_Projection_1D::Evaluate(), StdMeshers_Projection_1D2D::Evaluate(), StdMeshers_Projection_2D::Evaluate(), StdMeshers_Projection_3D::Evaluate(), SMESH_MeshEditor_i::ExtrusionAlongPathObjects(), StdMeshers_ProjectionUtils::FindMatchingNodesOnFaces(), VISCOUS_3D::_ViscousBuilder::fixBadFaces(), SMESH_2D_Algo::FixInternalNodes(), StdMeshers_FaceSide::GetEdgeNodes(), getElements(), MyElemIterator::getElements(), SMESH_Mesh_i::GetElements(), SMESH_Algo::GetMeshError(), _FaceSide::GetNbSegments(), SMESH_Algo::GetNodeParamOnEdge(), SMESH_Mesh_i::GetSubMeshElementsId(), SMESH_Mesh_i::GetSubMeshElementType(), SMESH_Mesh_i::GetSubMeshNodesId(), SMESH_Pattern::getSubmeshWithElements(), StdMeshers_Prism_3D::getSweepTolerance(), SMESH_ProxyMesh::HasPrismsOnTwoSides(), SMESH_MesherHelper::IsDistorted2D(), isMeshBoundToShape(), IsQuadratic(), SMESH_MesherHelper::IsReversedSubMesh(), SMESH_MesherHelper::IsSameElemGeometry(), SMESH_Pattern::Load(), _QuadFaceGrid::LoadGrid(), StdMeshers_Penta_3D::LoadIJNodes(), SMESH_MesherHelper::LoadNodeColumns(), StdMeshers_Penta_3D::MakeBlock(), VISCOUS_3D::_ViscousBuilder::makeLayer(), StdMeshers_Penta_3D::MakeMeshOnFxy1(), VISCOUS_3D::_ViscousBuilder::MakeN2NMap(), StdMeshers_Penta_3D::MakeVolumeMesh(), MyIterator< VALUE >::MyIterator(), SMESH_Gen_i::Precompute(), VISCOUS_3D::_SolidData::PrepareEdgesToSmoothOnFace(), StdMeshers_Sweeper::prepareTopBotDelaunay(), StdMeshers_Prism_3D::project2dMesh(), StdMeshers_Prism_3D::projectBottomToTop(), VISCOUS_3D::_ViscousBuilder::refine(), StdMeshers_Adaptive1D::SetParametersByMesh(), StdMeshers_MaxElementArea::SetParametersByMesh(), StdMeshers_MaxElementVolume::SetParametersByMesh(), VISCOUS_3D::_ViscousBuilder::setShapeData(), VISCOUS_3D::_ViscousBuilder::shrink(), DriverMED_Family::SplitByType(), and SMESH_Algo::VertexNode().

◆ GetID()

◆ GetNodes()

◆ GetParent()

SMESHDS_Mesh * SMESHDS_SubMesh::GetParent ( ) const

◆ GetSubMeshIterator()

SMESHDS_SubMeshIteratorPtr SMESHDS_SubMesh::GetSubMeshIterator ( ) const

References mySubMeshes.

Referenced by Clear().

◆ IsComplexSubmesh()

◆ IsQuadratic()

bool SMESHDS_SubMesh::IsQuadratic ( ) const
virtual

◆ NbElements()

smIdType SMESHDS_SubMesh::NbElements ( ) const
virtual

Reimplemented in SMESH_ProxyMesh::SubMesh.

References IsComplexSubmesh(), myNbElements, and mySubMeshes.

Referenced by StdMeshers_Prism_3D::assocOrProjBottom2Top(), StdMeshers_Hexa_3D::Compute(), StdMeshers_Prism_3D::Compute(), StdMeshers_Projection_1D2D::Compute(), StdMeshers_Projection_2D::Compute(), StdMeshers_Regular_1D::computeInternalParameters(), ComputePentahedralMesh(), StdMeshers_Prism_3D::computeWalls(), StdMeshers_Projection_1D2D::Evaluate(), StdMeshers_ProjectionUtils::FindMatchingNodesOnFaces(), VISCOUS_3D::_ViscousBuilder::findNeiborsOnEdge(), VISCOUS_3D::_ViscousBuilder::findSolidsWithLayers(), SMESH_2D_Algo::FixInternalNodes(), StdMeshers_FaceSide::GetEdgeNodes(), _FaceSide::GetNbSegments(), SMESH_Algo::GetSortedNodesOnEdge(), SMESH_Mesh_i::GetSubMeshElementsId(), SMESH_Mesh_i::GetSubMeshElementType(), SMESH_Mesh_i::GetSubMeshNodesId(), SMESH_ProxyMesh::HasPrismsOnTwoSides(), StdMeshers_Import_1D::importMesh(), SMESH_MesherHelper::IsDistorted2D(), isMeshBoundToShape(), SMESH_MesherHelper::IsReversedSubMesh(), VISCOUS_3D::ShrinkFace::IsSameNbElements(), SMESH_MesherHelper::IsStructured(), SMESH_MeshEditor_i::LinearAnglesVariation(), SMESH_Pattern::Load(), _QuadFaceGrid::LoadGrid(), SMESH_MesherHelper::LoadNodeColumns(), StdMeshers_Penta_3D::MakeBlock(), VISCOUS_3D::_ViscousBuilder::MakeN2NMap(), VISCOUS_3D::_ViscousBuilder::prepareEdgeToShrink(), StdMeshers_Prism_3D::projectBottomToTop(), StdMeshers_AutomaticLength::SetParametersByMesh(), StdMeshers_NumberOfSegments::SetParametersByMesh(), VISCOUS_3D::_ViscousBuilder::setShapeData(), VISCOUS_3D::_ViscousBuilder::shrink(), SMESH_MeshEditor::Smooth(), SMESH_subMesh::SubMeshesComputed(), and SMESH_Algo::VertexNode().

◆ NbNodes()

◆ NbSubMeshes()

size_t SMESHDS_SubMesh::NbSubMeshes ( ) const

Referenced by Clear(), and SMESH_ProxyMesh::GetFaces().

◆ RemoveAllSubmeshes()

void SMESHDS_SubMesh::RemoveAllSubmeshes ( )

References mySubMeshes.

Referenced by SMESH_ProxyMesh::GetFaces().

◆ RemoveElement()

◆ RemoveNode()

◆ RemoveSubMesh()

bool SMESHDS_SubMesh::RemoveSubMesh ( const SMESHDS_SubMesh theSubMesh)

References mySubMeshes.

◆ restoreElements()

void SMDS_ElementHolder::restoreElements ( const std::vector< smIdType > &  idNodessOldToNew,
const std::vector< smIdType > &  idCellsOldToNew 
)
privateinherited

◆ tmpClear()

void SMESHDS_SubMesh::tmpClear ( )
protectedvirtual

the descendant object re-add its elements after the mesh compacting

Implements SMDS_ElementHolder.

Reimplemented in SMESH_ProxyMesh::SubMesh.

References my1stElemNode.

Field Documentation

◆ my1stElemNode

const SMDS_MeshElement* SMESHDS_SubMesh::my1stElemNode[2]
private

◆ myExternalElems

std::vector<const SMDS_MeshElement*> SMDS_ElementHolder::myExternalElems
privateinherited

elements not contained in the mesh

Referenced by SMDS_ElementHolder::beforeCompacting(), and SMDS_ElementHolder::restoreElements().

◆ myIndex

int SMESHDS_SubMesh::myIndex
private

◆ myIsNode

std::vector< bool > SMDS_ElementHolder::myIsNode
privateinherited

◆ myMesh

◆ myNbElements

smIdType SMESHDS_SubMesh::myNbElements
private

◆ myNbNodes

smIdType SMESHDS_SubMesh::myNbNodes
private

◆ myParent

const SMESHDS_Mesh* SMESHDS_SubMesh::myParent
private

◆ myPtrInMesh

std::set<SMDS_ElementHolder*>::iterator SMDS_ElementHolder::myPtrInMesh
privateinherited

◆ mySubMeshes

◆ myVtkIDs

std::vector< vtkIdType > SMDS_ElementHolder::myVtkIDs
privateinherited