[vtkusers] vtkImagePlaneWidget + SetTextureVisibility()

Mark Wyszomierski markww at gmail.com
Fri Apr 13 00:21:01 EDT 2007


Hi Dean,

I think I'm already doing what you described.I have an observer like:

    m_vPlane->AddObserver(vtkCommand::InteractionEvent, m_vPlaneCallback);

and it does get called when I started dragging the plane with the
mouse. All that happens afterwards is that I call:

    pImageData = pPlaneWidget->GetResliceOutput();

It is getting called everytime I interact.

I don't understand how if I initially turn the Texture visibility off
- then I get correct output like 80% of the time (the other 20% the
resulting extent comes back as (0,0,0). If I switch it on (visible)
just one time - it seems I always get correct output. I'm only
switching it on once, not toggling it on/off everytime I need resliced
output. It seems like maybe turning it on just once sets up some
pipeline internally maybe?

I'm confused! I don't know the internals of the class. Thanks for any
more information you may have, it is an extremely useful class,

Thanks,
Mark


On 4/12/07, dean.inglis at camris.ca <dean.inglis at camris.ca> wrote:
> Mark,
>
> there are numerous ways to get at the resliced output:
>  // Description:
>  // Convenience method to get the vtkImageReslice output.
>  vtkImageData* GetResliceOutput();
>
> which in vtkIPW is passed to vtkImageMapToColors
> whose output is passed to vtkTexture.  vtkIPW
> can give you the vtkImageMapToColors and/or the vtkTexture too.
> If you write a callback and add it to the widgets
> InteractionEvent wherein the texture can be requested to
> Update(), then you can avoid switching texture on and
> off:
> e.g., widget->AddObserver(vtkCommand::InteractionEvent, myCallback).
> If you are using a GUI element to move the widget,
> you can still force the update by:
> widget->InvokeEvent(vtkCommand::InteractionEvent).
>
> Normally, when the actor that combines the vtkPlaneSource
> and the vtkTexture is visible, the rendering pipeline mechanism
> takes care of updating the texture (and preceding filters) for you.
> When texture visibility is off, there is no visible actor
> (maybe just the outline) and so the widget's internal
> pipeline is not being updated.
>
> Dean
> _______________________________________________
> This is the private VTK discussion list.
> Please keep messages on-topic. Check the FAQ at: http://www.vtk.org/Wiki/VTK_FAQ
> Follow this link to subscribe/unsubscribe:
> http://www.vtk.org/mailman/listinfo/vtkusers
>



More information about the vtkusers mailing list