[vtkusers] Question about removeVertex

planar3d planar3d at gmail.com
Tue Apr 24 01:42:57 EDT 2012


Why doesn't the appended code work? RemoveVertex doesn't seem to be working
for me. I make a pass through all the vertices and remove them when I find a
vertex of degree 0. Then I make the same pass again just to double check and
make sure I can't find any vertices with degree 0 but I do happen to find
them. I am using vtk 5.8.

When you remove a vertex do the vtkIdType (i.e. the unique identifiers for
each vertex) change?



bool removeAllVerticesWithDegree0(vtkSmartPointer<vtkMutableUndirectedGraph>
graph)
{
  // These variables will be reused
  vtkSmartPointer<vtkVertexListIterator> verticesItr =
vtkSmartPointer<vtkVertexListIterator>::New();

  vtkIdType vertexID;

  vtkIdType degree;



  // First remove all vertices of degree 0
  graph->GetVertices(verticesItr);

  while(verticesItr->HasNext())
  {
    // Grab a vertex and look at its degree
    vertexID = verticesItr->Next();

    degree = graph->GetDegree(vertexID);

    if(degree == 0)
    {
      graph->RemoveVertex(vertexID);
    }
  }


  graph->GetVertices(verticesItr);

  while(verticesItr->HasNext())
  {
    // Grab a vertex and look at its degree
    vertexID = verticesItr->Next();

    degree = graph->GetDegree(vertexID);

    if(degree == 0)
    {
      std::cout << "Uh oh. Should have been removed." << endl;
    }

  return true;
}

--
View this message in context: http://vtk.1045678.n5.nabble.com/Question-about-removeVertex-tp5661075p5661075.html
Sent from the VTK - Users mailing list archive at Nabble.com.



More information about the vtkusers mailing list