[vtkusers] Removing al actors from a Renderer (I get multiple XYPlots in one renderer)

John Hunter jdhunter at ace.bsd.uchicago.edu
Fri Apr 4 07:24:40 EST 2003


>>>>> "Nico" == Nico Vermaas <vermaas at astron.nl> writes:

    Nico> Hi, I want to draw and update an XYPlotActor, but when I
    Nico> draw a new one (by addingAddActor2D(xyplot)) then the old
    Nico> one just also stays in there. So I need to delete the old
    Nico> one first.

    Nico> I tried this... and I do get the right count that increases
    Nico> every time I add an actor. But the Removing part does not
    Nico> work.

    Nico> Q: How do I delete all actors from a renderer?

Perhaps you need to call InitTraversal first... And are you calling
Render after you remove the actors?

  vtkActorCollection *actors = vtkActorCollection::New();
  int NumberOfActors = renderer->VisibleActorCount();

  actors=this->renderer->GetActors();
  actors->InitTraversal()
  for (int i=0; i<NumberOfActors; i++) {
     this->renderer->RemoveActor(actors->GetNextActor());
  }
  renderer->Render()
  actors->Delete();

John Hunter



More information about the vtkusers mailing list