-
-int SMESHDS_SubMesh::getSize()
-{
- int c = NbNodes();
- int d = NbElements();
- return c+d;
-}
-
-void SMESHDS_SubMesh::compactList()
-{
- if ( myUnusedIdElements > 0 )
- {
- std::vector<const SMDS_MeshElement*> newElems;
- newElems.reserve( myElements.size() - myUnusedIdElements );
- for ( size_t i = 0; i < myElements.size(); i++)
- if ( myElements[i] )
- {
- SMDS_MeshElement* elem = (SMDS_MeshElement*)myElements[i];
- elem->setIdInShape( newElems.size() );
- newElems.push_back( elem );
- }
- myElements.swap(newElems);
- myUnusedIdElements = 0;
- }
- else
- {
- std::vector<const SMDS_MeshElement*>( myElements ).swap( myElements );
- }
-
- if ( myUnusedIdNodes > 0 )
- {
- std::vector<const SMDS_MeshNode*> newNodes;
- newNodes.reserve( myNodes.size() - myUnusedIdNodes );
- for ( size_t i = 0; i < myNodes.size(); i++ )
- if ( myNodes[i] )
- {
- SMDS_MeshNode* node = (SMDS_MeshNode*)myNodes[i];
- node->setIdInShape( newNodes.size() );
- newNodes.push_back( node );
- }
- myNodes.swap(newNodes);
- myUnusedIdNodes = 0;
- }
- else
- {
- std::vector<const SMDS_MeshNode*>( myNodes ).swap( myNodes );
- }
-}
-
-//=======================================================================
-//function : GetElement
-//purpose : Return an element by its IdInShape
-//=======================================================================
-
-const SMDS_MeshElement* SMESHDS_SubMesh::GetElement( size_t idInShape ) const
-{
- return ( !IsComplexSubmesh() && idInShape < myElements.size() ) ? myElements[idInShape] : 0;
-}
-
-//=======================================================================
-//function : GetElement
-//purpose : Return a node by its IdInShape
-//=======================================================================
-
-const SMDS_MeshNode* SMESHDS_SubMesh::GetNode( size_t idInShape ) const
-{
- return ( !IsComplexSubmesh() && idInShape < myNodes.size() ) ? myNodes[idInShape] : 0;
-}