[vtkusers] Animation without polling?

Guido Rodriguez guidorodriguez1952 at hotmail.com
Fri Sep 11 03:57:34 EDT 2009


Mark, thank you.
I have found an example, how vtkAnimationCues and vtkAnimationScenes can be used, at http://www.vtk.org/pipermail/vtkusers/2005-April/079340.html. I didn't know these animation classes before, and find them very helpful.

But for the specific problem, how to run an animation parallel to listening to mouse/key events, I don't see how this helps, yet.
The example above starts animation with
  scene->Play();
How can this coexist with a call to vtkRenderWindowInteractor::Start()?
Both calls run their own event loop, the one handling animation events, the other handling interaction events.

I'm looking forward to your more detailed information.

Regards,
Guido

> Date: Thu, 10 Sep 2009 17:06:39 +0100
> Subject: Re: [vtkusers] Animation without polling?
> From: mark.gooding at gmail.com
> To: guidorodriguez1952 at hotmail.com
> CC: vtkusers at vtk.org
> 
> you shouldn't have to write a complete vtkRenderWindowInteractor, just
> add an observe to handle AnimationCueTickEvents
> 
> http://www.vtk.org/doc/nightly/html/classvtkCommand.html
> 
> i'll try to send you more detailed information later. I don't have my
> software which did animation to hand right now.
> 
> Mark
> 
> 
> 2009/9/10 Guido Rodriguez <guidorodriguez1952 at hotmail.com>:
> > Dear VTK users/developers,
> > I ask for guidance, how animated visualization is done right with VTK. What
> > I have in mind is an application which calculates, let's say, a temperature
> > field, which changes in time. Whenever the field is completely calculated
> > for the next time step, the visualization should be updated. In parallel,
> > the user should be able to work with the mouse/key controls to rotate the
> > view, zoom, interact with 3D widgets, etc.
> >
> > The obvious way would be to run VTK in one thread, and the calculation in
> > another. Each finished calculation step would notify VTK to update. But it
> > doesn't work like this. At least not with the X windows system. When I call
> > some pipeline's Update() function from a different thread, I get an "invalid
> > thread access".
> >
> > Next attempt. I implement an event buffer, which is written to by the
> > calculation thread, and which is read from by the VTK thread. This works
> > like a charm. Now VTK can check whether an update is necessary and get the
> > required data from the event buffer. But _when_ does VTK check for updates?
> > I can't seem to find a solution which sets VTK to sleep until either a
> > mouse/key event happens or until the calculation thread releases some lock,
> > simply because any VTK callback waiting for notification from a different
> > thread would stop VTK from reacting to mouse/key events during this period.
> >
> > The only solution I can see is to add a timer event like every 10 ms, which
> > checks the event buffer for updates. This works, but is it recommended?
> > Threading libraries have introduced locks and notification to avoid the
> > overhead from polling at interactive rates for events that may occur only
> > every few seconds. How can good multithreading programming styles be applied
> > to VTK?
> >
> > I hope the problem is clear. Can a different thread trigger pipeline updates
> > under X windows? Or do I have to write my own vtkRenderWindowInteractor?
> >
> > Regards,
> > Guido
> > ________________________________
> > With Windows Live, you can organize, edit, and share your photos.
> > _______________________________________________
> > Powered by www.kitware.com
> >
> > Visit other Kitware open-source projects at
> > http://www.kitware.com/opensource/opensource.html
> >
> > Please keep messages on-topic and check the VTK FAQ at:
> > http://www.vtk.org/Wiki/VTK_FAQ
> >
> > Follow this link to subscribe/unsubscribe:
> > http://www.vtk.org/mailman/listinfo/vtkusers
> >
> >

_________________________________________________________________
Share your memories online with anyone you want.
http://www.microsoft.com/middleeast/windows/windowslive/products/photos-share.aspx?tab=1
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20090911/105c7789/attachment.htm>


More information about the vtkusers mailing list