[vtkusers] renderer.GetActors() returning 3d actors, but not 2d actors.
Greg Schussman
greg.schussman at gmail.com
Mon Sep 15 13:16:40 EDT 2014
Hi, David.
Thanks! That worked perfectly.
Greg
On Fri, Sep 12, 2014 at 5:20 PM, David Gobbi <david.gobbi at gmail.com> wrote:
> Use GetViewProps() and use IsA() to check the type of each prop.
>
> On Fri, Sep 12, 2014 at 6:04 PM, Greg Schussman
> <greg.schussman at gmail.com> wrote:
> > Hi.
> >
> > I'm using python-2.6 and vtk-5.10.1.
> >
> > I have a renderer, to which I'm adding actors. Some are 3d actors
> > (surfaces, sets of cones), and some are 2d actors (filename text,
> > scalarbar). To add them, I'm calling:
> >
> > self.renderer.AddActor(my_actor) # Also tried AddViewProp(my_actor)
> >
> > They seem to add in ok, and they do get rendered.
> >
> > However, based on user input, sometimes actors need to be removed and new
> > ones added. So I need to take a look at what's already there, which I do
> > this way:
> >
> > c = self.renderer.GetActors()
> > c.InitTraversal()
> > num_items = c.GetNumberOfItems()
> > result = []
> > for i in xrange(num_items):
> > result.append(c.GetNextActor())
> >
> > I notice that when I add a 3d actor and I check before/adter, the
> num_items
> > increments as expected.
> >
> > However, when I add 2d actors (ScalarBar, Text), although they also
> render,
> > when I check before/after, the num_items does not increment, and they are
> > not returned in the GetActors() list.
> >
> > How do I find out which 2d actors are in the renderer, so that I can
> > optionally remove some of them?
> >
> > Should I be doing something different?
> >
> > Thanks.
> >
> > Greg
> >
> > p.s. I've tried calling renderer.GetActors2D(), but then when i try to
> call
> > GetNextActor() on that, I get "AttributeError: GetNextActor".
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/vtkusers/attachments/20140915/45946590/attachment.html>
More information about the vtkusers
mailing list