[vtkusers] Animation without polling?

Mark Gooding mark.gooding at gmail.com
Sun Sep 13 11:25:54 EDT 2009


Looking at my code, it appears I added a timer using the windows
CWnd::SetTimer, which was caught by my extension of the
vtkInteractorStyle overiding the interactorStyle's OnTimer function.

Mark

2009/9/13 Guido Rodriguez <guidorodriguez1952 at hotmail.com>:
> Dear Mark,
> I'd really appreciate if you send more detailed information.
>
> I can't figure out how to make a vtkRenderWindowInteractor receive
> AnimationCueTickEvents. I did add an observer, but from browsing the sources
> it seems that vtkRenderWindowInteractor does not event make an attempt to
> handle AnimationCueTickEvents.
>
> The story is a different one, if I make a vtkAnimationCue observe
> AnimationCueTickEvents. Those events are perfectly handled, but the
> interactivity is lost. Could you make clear, possibly with a code example,
> what you meant by adding an observer to vtkRenderWindowInteractor to handle
> AnimationCueTickEvents?
>
> 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 anyone you want.



More information about the vtkusers mailing list