[vtkusers] vtkPolyData RemoveDeletedCells() reorders vtkIdType cellid, so my indexes to them are no longer correct.

da xu remywendy at gmail.com
Wed Aug 12 21:04:04 EDT 2009


Hi all,
I have some cells in a vtkPolyData where I also have a std::list of their
index in my program. Sometimes, I want to delete some of these cells, but
when I call RemoveDeletedCells the cells in my vtkPolyData get re-ordered,
so my std::list index to them are no longer correct.

My question is there another way to keep track of which cell is which cell
if I do call RemoveDeletedCells and get rid of some of them? Such as a
pointer to each cell within my vtkPolyData...

Relevant code below:

pointArray is of vtkPoints
cellArray is of vtkCellArray

I keep a list of actorIndex to refer to each cell. (each cell is basically
just the point i want to display on the render window). So when I delete
actorIndex 10, the old actorIndex 11 becomes 10, and when I try to delete 11
I get an error....

AddPoint(double pt[3]) {

    int actorIndex = pointArray->InsertNextPoint(pt);
    polyData->SetPoints(pointArray);

    int n = pointArray->GetNumberOfPoints() - 1; // Subtract one for the
correct array index
    cellArray->InsertNextCell(1, &n);

    polyData->SetVerts(cellArray);
    if (n==0) {
        polyMapper->SetInput(polyData);
        actor->SetMapper(polyMapper);
        actor->GetProperty()->SetRepresentationToPoints();
        renderer->AddActor(actor);
    }
    polyData->Modified();
...

Any help/clue/pointer is appreciated!

-Will
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20090812/c73374ff/attachment.htm>


More information about the vtkusers mailing list