<div>Thank you Bryan!</div><div><br></div>This code works on Ubuntu 9.04 with python2.6, VTK 5.0.4-1.1ubuntu1 and python-vtk 5.0.4-1.1ubuntu1! <div>I should have looked at the source for this method first as it is *much* more informative than the published documentation.</div>
<div>The reason I am attempting this using the 'older' wrappers etc. is that I want to use the standard packages available through Synaptic, so that users of my script (predominantly still running Ubuntu9.04 Jaunty) can run it with minimal effort installing/compiling additional packages.<br>
<div><div><br><div>Regarding CreateTimer; my understanding is that the default TimerDuration used by CreateTimer(int) is set to 10ms in the constructor of vtkRenderWindowInteractor. <br><div>However, I am unable to change the timer duration from this default setting since the TimerDuration attribute is not exposed in the class, and no get/set methods are provided.</div>
<div>I guess a hack would be to skip some callbacks to get a slower effective update rate, but what about a faster rate?</div><div>Any ideas on how the TimerDuration attribute could be modified? Surely it must be accessible somewhere.</div>
<div><br></div><div>Thanks again.</div><div><br></div><div>Fred</div><div><br><br><div class="gmail_quote">2010/1/8 Bryan P. Conrad <span dir="ltr"><<a href="mailto:conrabp@ortho.ufl.edu">conrabp@ortho.ufl.edu</a>></span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div lang="EN-US" link="blue" vlink="purple">
<div>
<p class="MsoNormal"><font size="2" color="navy" face="Arial"><span style="font-size:10.0pt;font-family:Arial;color:navy">Fred,</span></font></p>
<p class="MsoNormal"><font size="2" color="navy" face="Arial"><span style="font-size:10.0pt;font-family:Arial;color:navy">Yes the code runs on my machine, I am
using WinXP, Python 2.5 - vtk 5.4.0 (from pythonxy). I do not know much
about using timers since my first experience was yesterday, but I was able to
create a similar effect in python-vtk (5.0.4-1.1ubuntu) using the older CreateTimer,
DestroyTimer mechanism. The timer is created the first time with the
argument 0 (VTKXI_TIMER_FIRST) and reset in the callback function using 1 (VTKI_TIMER_UPDATE).
The duration of the timer is set by passing an argument when the vtkTimerCallback
class is initialized. As I mentioned, I am new at this so I am not sure
this is the best implementation, but this version seems to work with both vtk
5.4 and 5.0. </span></font></p>
<p class="MsoNormal"><font size="2" color="navy" face="Arial"><span style="font-size:10.0pt;font-family:Arial;color:navy"> </span></font></p>
<p class="MsoNormal"><font size="2" color="navy" face="Arial"><span style="font-size:10.0pt;font-family:Arial;color:navy"> </span></font></p>
<p class="MsoNormal"><font size="2" color="navy" face="Arial"><span style="font-size:10.0pt;font-family:Arial;color:navy"> </span></font></p>
<p class="MsoNormal" style="text-autospace:none"><font size="2" color="blue" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:blue">import</span></font><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:black"> vtk</span></font><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New""></span></font></p>
<p class="MsoNormal" style="text-autospace:none"><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:black"> </span></font><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New""></span></font></p>
<p class="MsoNormal" style="text-autospace:none"><font size="2" color="blue" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:blue">class</span></font><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:black"> <b><span style="font-weight:bold">vtkTimerCallback</span></b>():</span></font><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New""></span></font></p>
<p class="MsoNormal" style="text-autospace:none"><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:black"> </span></font><font size="2" color="blue" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:blue">def</span></font><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:black"> <b><span style="font-weight:bold">__init__</span></b>(<i><span style="font-style:italic">self</span></i>,duration,actor):</span></font><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New""></span></font></p>
<p class="MsoNormal" style="text-autospace:none"><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:black"> <i><span style="font-style:italic">self</span></i>.timer_count = </span></font><font size="2" color="maroon" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:maroon">0</span></font><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New""></span></font></p>
<p class="MsoNormal" style="text-autospace:none"><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:black"> <i><span style="font-style:italic">self</span></i>.duration = duration</span></font><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New""></span></font></p>
<p class="MsoNormal" style="text-autospace:none"><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:black"> <i><span style="font-style:italic">self</span></i>.actor = actor</span></font><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New""></span></font></p>
<p class="MsoNormal" style="text-autospace:none"><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:black"> </span></font><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New""></span></font></p>
<p class="MsoNormal" style="text-autospace:none"><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:black"> </span></font><font size="2" color="blue" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:blue">def</span></font><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:black"> <b><span style="font-weight:bold">execute</span></b>(<i><span style="font-style:italic">self</span></i>,obj,event):</span></font><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New""></span></font></p>
<p class="MsoNormal" style="text-autospace:none"><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:black"> iren = obj</span></font><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New""></span></font></p>
<p class="MsoNormal" style="text-autospace:none"><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:black"> </span></font><font size="2" color="blue" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:blue">if</span></font><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:black"> <i><span style="font-style:italic">self</span></i>.timer_count < <i><span style="font-style:italic">self</span></i>.duration:</span></font><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New""></span></font></p>
<p class="MsoNormal" style="text-autospace:none"><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:black"> </span></font><font size="2" color="blue" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:blue">print</span></font><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:black"> <i><span style="font-style:italic">self</span></i>.timer_count</span></font><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New""></span></font></p>
<p class="MsoNormal" style="text-autospace:none"><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:black"> <i><span style="font-style:italic">self</span></i>.actor.SetPosition(<i><span style="font-style:italic">self</span></i>.timer_count/</span></font><font size="2" color="maroon" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:maroon">100.0</span></font><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:black">, <i><span style="font-style:italic">self</span></i>.timer_count/</span></font><font size="2" color="maroon" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:maroon">100.0</span></font><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:black">,</span></font><font size="2" color="maroon" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:maroon">0</span></font><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:black">);</span></font><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New""></span></font></p>
<p class="MsoNormal" style="text-autospace:none"><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:black">
iren.CreateTimer(</span></font><font size="2" color="maroon" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:maroon">1</span></font><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:black">)</span></font><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New""></span></font></p>
<p class="MsoNormal" style="text-autospace:none"><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:black">
iren.GetRenderWindow().Render()</span></font><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New""></span></font></p>
<p class="MsoNormal" style="text-autospace:none"><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:black"> <i><span style="font-style:italic">self</span></i>.timer_count += </span></font><font size="2" color="maroon" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:maroon">1</span></font><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New""></span></font></p>
<p class="MsoNormal" style="text-autospace:none"><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:black"> </span></font><font size="2" color="blue" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:blue">else</span></font><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:black">:</span></font><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New""></span></font></p>
<p class="MsoNormal" style="text-autospace:none"><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:black"> iren.DestroyTimer()</span></font><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New""></span></font></p>
<div class="im">
<p class="MsoNormal" style="text-autospace:none"><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:black"> </span></font><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New""></span></font></p>
<p class="MsoNormal" style="text-autospace:none"><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:black"> </span></font><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New""></span></font></p>
<p class="MsoNormal" style="text-autospace:none"><font size="2" color="blue" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:blue">def</span></font><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:black"> <b><span style="font-weight:bold">main</span></b>():</span></font><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New""></span></font></p>
<p class="MsoNormal" style="text-autospace:none"><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:black"> </span></font><font size="2" color="silver" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:silver">#Create a sphere</span></font><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New""></span></font></p>
<p class="MsoNormal" style="text-autospace:none"><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:black"> sphereSource = vtk.vtkSphereSource()</span></font><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New""></span></font></p>
<p class="MsoNormal" style="text-autospace:none"><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:black"> sphereSource.SetCenter(</span></font><font size="2" color="maroon" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:maroon">0.0</span></font><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:black">, </span></font><font size="2" color="maroon" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:maroon">0.0</span></font><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:black">, </span></font><font size="2" color="maroon" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:maroon">0.0</span></font><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:black">)</span></font><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New""></span></font></p>
<p class="MsoNormal" style="text-autospace:none"><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:black"> sphereSource.SetRadius(</span></font><font size="2" color="maroon" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:maroon">5</span></font><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:black">)</span></font><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New""></span></font></p>
<p class="MsoNormal" style="text-autospace:none"><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:black"> </span></font><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New""></span></font></p>
<p class="MsoNormal" style="text-autospace:none"><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:black"> </span></font><font size="2" color="silver" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:silver">#Create a <u>mapper</u> and actor</span></font><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New""></span></font></p>
<p class="MsoNormal" style="text-autospace:none"><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:black"> mapper = vtk.vtkPolyDataMapper()</span></font><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New""></span></font></p>
<p class="MsoNormal" style="text-autospace:none"><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:black">
mapper.SetInputConnection(sphereSource.GetOutputPort())</span></font><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New""></span></font></p>
<p class="MsoNormal" style="text-autospace:none"><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:black"> actor = vtk.vtkActor()</span></font><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New""></span></font></p>
<p class="MsoNormal" style="text-autospace:none"><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:black"> actor.SetMapper(mapper)</span></font><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New""></span></font></p>
</div><p class="MsoNormal" style="text-autospace:none"><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:black"> prop = actor.GetProperty()</span></font><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New""></span></font></p>
<div class="im">
<p class="MsoNormal" style="text-autospace:none"><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:black"> </span></font><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New""></span></font></p>
<p class="MsoNormal" style="text-autospace:none"><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:black"> </span></font><font size="2" color="silver" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:silver"># Setup a renderer, render window, and <u>interactor</u></span></font><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New""></span></font></p>
<p class="MsoNormal" style="text-autospace:none"><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:black"> renderer = vtk.vtkRenderer()</span></font><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New""></span></font></p>
<p class="MsoNormal" style="text-autospace:none"><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:black"> renderWindow = vtk.vtkRenderWindow()</span></font><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New""></span></font></p>
<p class="MsoNormal" style="text-autospace:none"><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:black"> </span></font><font size="2" color="silver" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:silver">#renderWindow.SetWindowName("Test")</span></font><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New""></span></font></p>
<p class="MsoNormal" style="text-autospace:none"><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:black"> </span></font><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New""></span></font></p>
<p class="MsoNormal" style="text-autospace:none"><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:black"> renderWindow.AddRenderer(renderer);</span></font><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New""></span></font></p>
<p class="MsoNormal" style="text-autospace:none"><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:black"> renderWindowInteractor =
vtk.vtkRenderWindowInteractor()</span></font><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New""></span></font></p>
<p class="MsoNormal" style="text-autospace:none"><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:black"> renderWindowInteractor.SetRenderWindow(renderWindow)</span></font><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New""></span></font></p>
<p class="MsoNormal" style="text-autospace:none"><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:black"> </span></font><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New""></span></font></p>
<p class="MsoNormal" style="text-autospace:none"><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:black"> </span></font><font size="2" color="silver" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:silver">#Add the actor to the scene</span></font><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New""></span></font></p>
<p class="MsoNormal" style="text-autospace:none"><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:black"> renderer.AddActor(actor)</span></font><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New""></span></font></p>
<p class="MsoNormal" style="text-autospace:none"><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:black"> renderer.SetBackground(</span></font><font size="2" color="maroon" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:maroon">1</span></font><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:black">,</span></font><font size="2" color="maroon" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:maroon">1</span></font><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:black">,</span></font><font size="2" color="maroon" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:maroon">1</span></font><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:black">) </span></font><font size="2" color="silver" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:silver"># Background color white</span></font><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New""></span></font></p>
<p class="MsoNormal" style="text-autospace:none"><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:black"> </span></font><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New""></span></font></p>
<p class="MsoNormal" style="text-autospace:none"><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:black"> </span></font><font size="2" color="silver" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:silver">#Render and interact</span></font><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New""></span></font></p>
<p class="MsoNormal" style="text-autospace:none"><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:black"> renderWindow.Render()</span></font><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New""></span></font></p>
<p class="MsoNormal" style="text-autospace:none"><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:black"> </span></font><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New""></span></font></p>
</div><p class="MsoNormal" style="text-autospace:none"><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:black"> </span></font><font size="2" color="silver" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:silver"># Initialize must be called prior to creating timer events.</span></font><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New""></span></font></p>
<p class="MsoNormal" style="text-autospace:none"><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:black"> renderWindowInteractor.Initialize()</span></font><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New""></span></font></p>
<p class="MsoNormal" style="text-autospace:none"><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:black"> </span></font><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New""></span></font></p>
<p class="MsoNormal" style="text-autospace:none"><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:black"> </span></font><font size="2" color="silver" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:silver"># Sign up <u>callback</u> to receive TimerEvent</span></font><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New""></span></font></p>
<p class="MsoNormal" style="text-autospace:none"><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:black"> </span></font><font size="2" color="silver" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:silver"># The argument sets the timer duration and the actor to be
animated</span></font><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New""></span></font></p>
<p class="MsoNormal" style="text-autospace:none"><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:black"> cb = vtkTimerCallback(duration=</span></font><font size="2" color="maroon" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:maroon">250</span></font><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:black">, actor=actor) </span></font><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New""></span></font></p>
<p class="MsoNormal" style="text-autospace:none"><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:black"> renderWindowInteractor.AddObserver(</span></font><i><font size="2" color="#00aa00" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:#00AA00;font-style:italic">'TimerEvent'</span></font></i><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:black">, cb.execute)</span></font><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New""></span></font></p>
<p class="MsoNormal" style="text-autospace:none"><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:black"> renderWindowInteractor.CreateTimer(</span></font><font size="2" color="maroon" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:maroon">0</span></font><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:black">)</span></font><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New""></span></font></p>
<p class="MsoNormal" style="text-autospace:none"><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:black"> </span></font><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New""></span></font></p>
<p class="MsoNormal" style="text-autospace:none"><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:black"> </span></font><font size="2" color="silver" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:silver">#start the interaction and timer</span></font><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New""></span></font></p>
<div class="im">
<p class="MsoNormal" style="text-autospace:none"><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:black"> renderWindowInteractor.Start()</span></font><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New""></span></font></p>
<p class="MsoNormal" style="text-autospace:none"><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:black"> </span></font><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New""></span></font></p>
<p class="MsoNormal" style="text-autospace:none"><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:black"> </span></font><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New""></span></font></p>
<p class="MsoNormal" style="text-autospace:none"><font size="2" color="blue" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:blue">if</span></font><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:black"> __name__ == </span></font><i><font size="2" color="#00aa00" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:#00AA00;font-style:italic">'__main__'</span></font></i><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:black">:</span></font><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New""></span></font></p>
<p class="MsoNormal"><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New";color:black">
main()</span></font><font size="2" color="navy" face="Arial"><span style="font-size:10.0pt;font-family:Arial;color:navy"></span></font></p>
<p class="MsoNormal"><font size="2" color="navy" face="Arial"><span style="font-size:10.0pt;font-family:Arial;color:navy"> </span></font></p>
<p class="MsoNormal"><font size="2" color="navy" face="Arial"><span style="font-size:10.0pt;font-family:Arial;color:navy"> </span></font></p>
</div><div>
<div>
<div>
<p class="MsoNormal"><i><font size="4" color="#0000a0" face="Monotype Corsiva"><span style="font-size:14.0pt;font-family:"Monotype Corsiva";color:#0000A0;font-style:italic">-bryan</span></font></i></p>
</div>
</div>
</div>
<div>
<div class="MsoNormal" align="center" style="text-align:center"><font size="3" face="Times New Roman"><span style="font-size:12.0pt">
<hr size="2" width="100%" align="center">
</span></font></div>
<p class="MsoNormal"><b><font size="2" face="Tahoma"><span style="font-size:10.0pt;font-family:Tahoma;font-weight:bold">From:</span></font></b><font size="2" face="Tahoma"><span style="font-size:10.0pt;font-family:Tahoma">
<a href="mailto:vtkusers-bounces@vtk.org" target="_blank">vtkusers-bounces@vtk.org</a> [mailto:<a href="mailto:vtkusers-bounces@vtk.org" target="_blank">vtkusers-bounces@vtk.org</a>] <b><span style="font-weight:bold">On Behalf Of </span></b>Fred Pauling<br>
<b><span style="font-weight:bold">Sent:</span></b> Thursday, January 07, 2010
2:10 AM<br>
<b><span style="font-weight:bold">To:</span></b> <a href="mailto:vtkusers@vtk.org" target="_blank">vtkusers@vtk.org</a><br>
<b><span style="font-weight:bold">Subject:</span></b> Re: [vtkusers] Basic
Animation Code</span></font></p>
</div><div><div></div><div class="h5">
<p class="MsoNormal"><font size="3" face="Times New Roman"><span style="font-size:12.0pt"> </span></font></p>
<p class="MsoNormal"><font size="3" face="Times New Roman"><span style="font-size:12.0pt">Hi Bryan,</span></font></p>
<div>
<p class="MsoNormal"><font size="3" face="Times New Roman"><span style="font-size:12.0pt"> </span></font></p>
</div>
<div>
<p class="MsoNormal"><font size="3" face="Times New Roman"><span style="font-size:12.0pt">Have you been able to run your Python example?</span></font></p>
</div>
<div>
<p class="MsoNormal"><font size="3" face="Times New Roman"><span style="font-size:12.0pt">I ask this because the latest stable release of python-vtk
(5.0.4-1.1ubuntu) does not include a binding for the CreateRepeatingTimer
method of the vtkRenderWindowInteractor class.</span></font></p>
</div>
<div>
<p class="MsoNormal"><font size="3" face="Times New Roman"><span style="font-size:12.0pt">If you can run it, how did you manage to find/create the bindings for
this method?</span></font></p>
</div>
<div>
<p class="MsoNormal"><font size="3" face="Times New Roman"><span style="font-size:12.0pt">If you can't, can you suggest how one could work around this lack of
functionality to set a repeating timer in Python?</span></font></p>
</div>
<div>
<p class="MsoNormal"><font size="3" face="Times New Roman"><span style="font-size:12.0pt"> </span></font></p>
</div>
<div>
<p class="MsoNormal"><font size="3" face="Times New Roman"><span style="font-size:12.0pt">Cheers, </span></font></p>
</div>
<div>
<p class="MsoNormal"><font size="3" face="Times New Roman"><span style="font-size:12.0pt">Fred.</span></font></p>
</div>
</div></div></div>
</div>
</blockquote></div><br></div></div></div></div></div>