#include <SMESHDS_SubMesh.hxx>

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_Mesh * | GetParent () 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_Mesh * | myMesh |
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_MeshElement * | my1stElemNode [2] |
| const SMESHDS_Mesh * | myParent |
| 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< bool > | myIsNode |
| std::set< SMDS_ElementHolder * >::iterator | myPtrInMesh |
| SMESHDS_SubMesh::SMESHDS_SubMesh | ( | const SMESHDS_Mesh * | parent, |
| int | index | ||
| ) |
Constructor.
References my1stElemNode, myIndex, myNbElements, myNbNodes, and myParent.
|
virtual |
Destructor.
|
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().
|
virtual |
Reimplemented in SMESH_ProxyMesh::SubMesh.
References add(), AddNode(), SMDS_MeshElement::GetShapeID(), SMDS_MeshElement::GetType(), IsComplexSubmesh(), myIndex, myNbElements, SMDS_MeshElement::setShapeID(), and SMDSAbs_Node.
Referenced by SMESHDS_Mesh::add(), VISCOUS_3D::_ViscousBuilder::addBoundaryElements(), SMESH_MeshEditor::convertElemToQuadratic(), SMESH_MeshEditor::ConvertToQuadratic(), DriverMED_R_SMESHDS_Mesh::GetSubMesh(), StdMeshers_Import_1D::importMesh(), SMESH_MeshEditor::MergeNodes(), SMESH_PreMeshInfo::readSubMeshes(), SMESH_MeshEditor::removeQuadElem(), SMESH_Mesh_i::ReplaceShape(), VISCOUS_3D::_ViscousBuilder::shrink(), SMESH_MeshEditor::SplitBiQuadraticIntoLinear(), and SMESH_MeshEditor::SplitVolumes().
|
virtual |
| void SMESHDS_SubMesh::AddSubMesh | ( | const SMESHDS_SubMesh * | theSubMesh | ) |
References mySubMeshes.
Referenced by SMESHDS_Mesh::AddCompoundSubmesh(), and SMESH_ProxyMesh::GetFaces().
|
privateinherited |
store vtkIDs of elements
References SMDS_Mesh::Contains(), SMDS_ElementHolder::getElements(), SMDS_MeshElement::GetType(), SMDS_MeshElement::GetVtkID(), SMDS_MeshElement::IsNull(), SMDS_ElementHolder::myExternalElems, SMDS_ElementHolder::myIsNode, SMDS_ElementHolder::myMesh, SMDS_ElementHolder::myVtkIDs, and SMDSAbs_Node.
|
protectedvirtualinherited |
Reimplemented in SMESH_ProxyMesh::SubMesh.
Referenced by SMESH_MeshEditor::SplitBiQuadraticIntoLinear().
|
virtual |
Reimplemented in SMESH_ProxyMesh::SubMesh.
References GetElements(), GetNodes(), GetSubMeshIterator(), my1stElemNode, myNbElements, myNbNodes, myParent, SMDS_Mesh::NbNodes(), NbSubMeshes(), and SMDS_MeshElement::setShapeID().
Referenced by VISCOUS_3D::_ViscousBuilder::shrink().
|
protectedvirtual |
allow the descendant treat its elements before mesh clearing
Implements SMDS_ElementHolder.
Reimplemented in SMESH_ProxyMesh::SubMesh.
|
virtual |
Reimplemented in SMESH_ProxyMesh::SubMesh.
References SMDS_MeshElement::getshapeId(), IsComplexSubmesh(), SMDS_MeshElement::IsNull(), myIndex, and mySubMeshes.
Referenced by StdMeshers_Quadrangle_2D::check(), SMESHDS_GroupOnGeom::Contains(), SMESH_MeshEditor::ConvertToQuadratic(), StdMeshers_ProjectionUtils::FindMatchingNodesOnFaces(), VISCOUS_3D::_ViscousBuilder::findNeiborsOnEdge(), SMESH_MeshEditor::FindShape(), VISCOUS_3D::_ViscousBuilder::fixBadFaces(), SMESH_MesherHelper::IsCornerOfStructure(), SMESH_MesherHelper::IsReversedSubMesh(), _QuadFaceGrid::LoadGrid(), SMESH_MesherHelper::LoadNodeColumns(), VISCOUS_3D::_ViscousBuilder::prepareEdgeToShrink(), SMESH_MeshEditor::removeQuadElem(), VISCOUS_3D::_ViscousBuilder::shrink(), SMESH_MeshEditor::Smooth(), SMESH_MeshEditor::SplitVolumes(), and VISCOUS_3D::_Shrinker1D::SwapSrcTgtNodes().
| bool SMESHDS_SubMesh::ContainsSubMesh | ( | const SMESHDS_SubMesh * | theSubMesh | ) | const |
References mySubMeshes.
|
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.
|
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().
| int SMESHDS_SubMesh::GetID | ( | ) | const |
|
virtual |
Reimplemented in SMESH_ProxyMesh::SubMesh.
References IsComplexSubmesh(), my1stElemNode, myIndex, myNbNodes, myParent, mySubMeshes, SMDS_Mesh::shapeNodesIterator(), and SMDSAbs_Node.
Referenced by SMESH_Algo::addBadInputElements(), VISCOUS_3D::_Shrinker1D::AddEdge(), Clear(), StdMeshers_Projection_1D::Compute(), StdMeshers_Projection_2D::Compute(), SMESH_Gen_i::CopyMeshWithGeom(), SMESH_Pattern::createElements(), StdMeshers_ProjectionUtils::FindMatchingNodesOnFaces(), StdMeshers_Penta_3D::FindNodeOnShape(), StdMeshers_FaceSide::GetEdgeNodes(), getElements(), MyNodeIterator::getElements(), SMESH_Algo::GetNodeParamOnEdge(), SMESH_Algo::GetSortedNodesOnEdge(), SMESH_Mesh_i::GetSubMeshNodesId(), SMESH_Pattern::getSubmeshWithElements(), Handle(), SMESH_Pattern::Load(), StdMeshers_Penta_3D::LoadIJNodes(), VISCOUS_3D::_ViscousBuilder::makeLayer(), StdMeshers_Penta_3D::MakeMeshOnFxy1(), StdMeshers_Penta_3D::MakeNodes(), MyIterator< VALUE >::MyIterator(), StdMeshers_ProjectionUtils::Morph::Perform(), SMESH_Gen_i::Precompute(), StdMeshers_Prism_3D::project2dMesh(), StdMeshers_Prism_3D::projectBottomToTop(), SMESH_Gen_i::Save(), StdMeshers_SegmentLengthAroundVertex::SetParametersByMesh(), VISCOUS_3D::_ViscousBuilder::shrink(), StdMeshers_Quadrangle_2D::smooth(), SMESH_MeshEditor::Smooth(), and DriverMED_Family::SplitByType().
| SMESHDS_Mesh * SMESHDS_SubMesh::GetParent | ( | ) | const |
Referenced by SMESH_Algo::addBadInputElements(), and SMESH_Algo::VertexNode().
| SMESHDS_SubMeshIteratorPtr SMESHDS_SubMesh::GetSubMeshIterator | ( | ) | const |
References mySubMeshes.
Referenced by Clear().
|
virtual |
Referenced by SMESHDS_Mesh::AddCompoundSubmesh(), AddElement(), AddNode(), Contains(), getElements(), GetElements(), SMESH_Mesh::GetGroupSubMeshesContaining(), GetNodes(), SMESH_subMesh_i::GetNumberOfNodes(), IsQuadratic(), DriverMED_Family::MakeFamilies(), NbElements(), NbNodes(), RemoveElement(), RemoveNode(), SMESH_Gen_i::Save(), and StdMeshers_ProjectionUtils::SetEventListener().
|
virtual |
References GetElements(), IsComplexSubmesh(), myNbElements, and mySubMeshes.
|
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().
|
virtual |
Reimplemented in SMESH_ProxyMesh::SubMesh, and VISCOUS_2D::_ProxyMeshOfFace::_EdgeSubMesh.
References IsComplexSubmesh(), myNbNodes, and mySubMeshes.
Referenced by VISCOUS_3D::_Shrinker1D::AddEdge(), StdMeshers_Prism_3D::assocOrProjBottom2Top(), StdMeshers_Projection_2D::Compute(), StdMeshers_Regular_1D::computeInternalParameters(), SMESH_subMesh::ComputeStateEngine(), StdMeshers_Prism_3D::computeWalls(), StdMeshers_Projection_1D2D::Evaluate(), StdMeshers_Projection_2D::Evaluate(), StdMeshers_Projection_3D::Evaluate(), StdMeshers_ProjectionUtils::FindMatchingNodesOnFaces(), StdMeshers_FaceSide::GetEdgeNodes(), SMESH_subMesh_i::GetNumberOfNodes(), SMESH_Algo::GetSortedNodesOnEdge(), StdMeshers_Import_1D::importMesh(), VISCOUS_3D::ShrinkFace::IsSameNbElements(), SMESH_Pattern::Load(), StdMeshers_Penta_3D::LoadIJNodes(), StdMeshers_Penta_3D::MakeMeshOnFxy1(), StdMeshers_Penta_3D::MakeNodes(), SMESH_Algo::NumberOfPoints(), StdMeshers_ProjectionUtils::Morph::Perform(), SMESH_Gen_i::Save(), StdMeshers_SegmentLengthAroundVertex::SetParametersByMesh(), VISCOUS_3D::_ViscousBuilder::shrink(), and SMESH_subMesh::SubMeshesComputed().
| size_t SMESHDS_SubMesh::NbSubMeshes | ( | ) | const |
Referenced by Clear(), and SMESH_ProxyMesh::GetFaces().
| void SMESHDS_SubMesh::RemoveAllSubmeshes | ( | ) |
References mySubMeshes.
Referenced by SMESH_ProxyMesh::GetFaces().
|
virtual |
|
virtual |
References SMDS_MeshElement::getshapeId(), IsComplexSubmesh(), my1stElemNode, myIndex, myNbNodes, myParent, SMDS_MeshElement::setShapeID(), SMDS_Mesh::shapeNodesIterator(), and SMDSAbs_Node.
Referenced by StdMeshers_Import_1D2D::Compute(), StdMeshers_Projection_1D2D::Compute(), SMESHDS_Mesh::RemoveFreeNode(), and SMESH_MeshEditor::SplitVolumes().
| bool SMESHDS_SubMesh::RemoveSubMesh | ( | const SMESHDS_SubMesh * | theSubMesh | ) |
References mySubMeshes.
|
privateinherited |
restore pointers to elements
References SMDS_ElementHolder::add(), SMDS_ElementHolder::compact(), SMDS_Mesh::FindElementVtk(), SMDS_Mesh::FindNodeVtk(), SMDS_ElementHolder::myExternalElems, SMDS_ElementHolder::myIsNode, SMDS_ElementHolder::myMesh, SMDS_ElementHolder::myVtkIDs, and SMDS_ElementHolder::tmpClear().
|
protectedvirtual |
the descendant object re-add its elements after the mesh compacting
Implements SMDS_ElementHolder.
Reimplemented in SMESH_ProxyMesh::SubMesh.
References my1stElemNode.
|
private |
Referenced by add(), Clear(), getElements(), GetElements(), GetNodes(), RemoveElement(), RemoveNode(), SMESHDS_SubMesh(), and tmpClear().
|
privateinherited |
elements not contained in the mesh
Referenced by SMDS_ElementHolder::beforeCompacting(), and SMDS_ElementHolder::restoreElements().
|
private |
Referenced by AddElement(), AddNode(), Contains(), GetElements(), GetNodes(), RemoveElement(), RemoveNode(), and SMESHDS_SubMesh().
|
privateinherited |
Referenced by SMDS_ElementHolder::beforeCompacting(), and SMDS_ElementHolder::restoreElements().
|
protectedinherited |
|
private |
Referenced by AddElement(), Clear(), GetElements(), IsQuadratic(), NbElements(), RemoveElement(), and SMESHDS_SubMesh().
|
private |
Referenced by AddNode(), Clear(), GetNodes(), NbNodes(), RemoveNode(), and SMESHDS_SubMesh().
|
private |
Referenced by Clear(), GetElements(), GetNodes(), RemoveElement(), RemoveNode(), and SMESHDS_SubMesh().
|
privateinherited |
Referenced by SMDS_ElementHolder::SMDS_ElementHolder(), and SMDS_ElementHolder::~SMDS_ElementHolder().
|
private |
Referenced by AddSubMesh(), Contains(), ContainsSubMesh(), GetElements(), GetNodes(), GetSubMeshIterator(), IsQuadratic(), NbElements(), NbNodes(), RemoveAllSubmeshes(), and RemoveSubMesh().
|
privateinherited |
vtk IDs of elements
Referenced by SMDS_ElementHolder::beforeCompacting(), and SMDS_ElementHolder::restoreElements().