-
-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;
- }
-
- 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;
- }
-}