+
+int SMESHDS_SubMesh::getSize()
+{
+ int c = NbNodes();
+ int d = NbElements();
+ //cerr << "SMESHDS_SubMesh::NbNodes " << c << endl;
+ //cerr << "SMESHDS_SubMesh::NbElements " << d << endl;
+ return c+d;
+}
+
+void SMESHDS_SubMesh::compactList()
+{
+ //MESSAGE("compactList old: nodes " << myNodes.size() << " elements " << myElements.size());
+ //stringstream a;
+ //stringstream b;
+ //stringstream c;
+ //stringstream d;
+
+ std::vector<const SMDS_MeshElement*> newElems;
+ newElems.clear();
+ for (int i = 0; i < myElements.size(); i++)
+ if (myElements[i])
+ {
+ SMDS_MeshElement* elem = (SMDS_MeshElement*)myElements[i];
+ elem->setIdInShape(newElems.size());
+ newElems.push_back(elem);
+ //a << elem->GetID() << " ";
+ //b << elem->GetID() << " ";
+ }
+ //else
+ // a << "_ ";
+ myElements.swap(newElems);
+ myUnusedIdElements = 0;
+ //MESSAGE("in " << myIndex << " oldElems " << a.str());
+ //MESSAGE("in " << myIndex << " newElems " << b.str());
+
+ std::vector<const SMDS_MeshNode*> newNodes;
+ newNodes.clear();
+ for (int i = 0; i < myNodes.size(); i++)
+ if (myNodes[i])
+ {
+ SMDS_MeshNode* node = (SMDS_MeshNode*)myNodes[i];
+ node->setIdInShape(newNodes.size());
+ newNodes.push_back(node);
+ //c << node->GetID() << " ";
+ //d << node->GetID() << " ";
+ }
+ //else
+ // c << "_ ";
+ myNodes.swap(newNodes);
+ myUnusedIdNodes = 0;
+ //MESSAGE("in " << myIndex << " oldNodes " << c.str());
+ //MESSAGE("in " << myIndex << " newNodes " << d.str());
+ //MESSAGE("compactList new: nodes " << myNodes.size() << " elements " << myElements.size());
+}