<html dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style id="owaParaStyle" type="text/css">
<!--
p
        {margin-top:0;
        margin-bottom:0}
-->
P {margin-top:0;margin-bottom:0;}</style>
</head>
<body ocsi="0" fpstyle="1">
<div style="direction: ltr;font-family: Tahoma;color: #000000;font-size: 10pt;"><br>
Jorge,<br>
I managed, with help from a few other sources, to get that idea written into python. It's exactly what i need, thanks again!<br>
<br>
Greg,<br>
Here is a piece of python code in which you can move an object within the renderer and get/write its position ( this helps me because i can move to the point whose coordinates i am wondering about, thereby figuring its location ). I don't know if this helps
 you, but you were asking about it...<br>
<br>
import vtk<br>
<br>
def main():<br>
<br>
&nbsp;&nbsp;&nbsp; # -- Jorge Perez's advice, following right after std setup block below, <br>
&nbsp;&nbsp;&nbsp; # combined with insights about the main tool, vtkFixedSizeHandleRepresentation3D, from<br>
&nbsp;&nbsp;&nbsp; # http://vtk.org/gitweb?p=VTK.git;a=blob;f=Interaction/Widgets/Testing/Cxx/TestFixedSizeHandleRepresentation3D.Cxx&nbsp;&nbsp;&nbsp;&nbsp;
<br>
<br>
&nbsp;&nbsp;&nbsp; # -- std setup part -- <br>
&nbsp;&nbsp;&nbsp; ren=vtk.vtkRenderer()<br>
&nbsp;&nbsp;&nbsp; # -- add here whatever objects you like to this renderer,<br>
&nbsp;&nbsp;&nbsp; #&nbsp;&nbsp;&nbsp; or proceed with an empty scenery and place only the<br>
&nbsp;&nbsp;&nbsp; #&nbsp;&nbsp;&nbsp; movable handle.<br>
<br>
&nbsp;&nbsp;&nbsp; windowSize=(800,800)<br>
&nbsp;&nbsp;&nbsp; title=&quot;whatever title here&quot;<br>
&nbsp;&nbsp;&nbsp; <br>
&nbsp;&nbsp;&nbsp; renWind=vtk.vtkRenderWindow()<br>
&nbsp;&nbsp;&nbsp; renWind.SetWindowName( title )<br>
&nbsp;&nbsp;&nbsp; renWind.AddRenderer( ren )<br>
&nbsp;&nbsp;&nbsp; renWind.SetSize( windowSize[0], windowSize[1] )<br>
&nbsp;&nbsp;&nbsp; <br>
&nbsp;&nbsp;&nbsp; iren=vtk.vtkRenderWindowInteractor()<br>
&nbsp;&nbsp;&nbsp; iren.SetRenderWindow( renWind )<br>
&nbsp;&nbsp;&nbsp; <br>
&nbsp;&nbsp;&nbsp; style=vtk.vtkInteractorStyleTrackballCamera()<br>
&nbsp;&nbsp;&nbsp; iren.SetInteractorStyle( style )<br>
&nbsp;&nbsp;&nbsp; # -- end std things, before display --<br>
&nbsp;&nbsp;&nbsp; <br>
&nbsp;&nbsp;&nbsp; # -----------------------------------------------<br>
&nbsp;&nbsp;&nbsp; # -- main part, after all other components ( not<br>
&nbsp;&nbsp;&nbsp; #&nbsp;&nbsp;&nbsp; included ) have been added to the renderer,<br>
&nbsp;&nbsp;&nbsp; #&nbsp;&nbsp;&nbsp; we place the movable handle and define a <br>
&nbsp;&nbsp;&nbsp; #&nbsp;&nbsp;&nbsp; call-back function object to report location<br>
&nbsp;&nbsp;&nbsp; # -----------------------------------------------<br>
&nbsp;&nbsp;&nbsp; rep=vtk.vtkFixedSizeHandleRepresentation3D()<br>
&nbsp;&nbsp;&nbsp; rep.SetHandleSizeInPixels( 10 )<br>
&nbsp;&nbsp;&nbsp; rep.GetProperty().SetColor( (0.4,0,0) ) <br>
&nbsp;&nbsp;&nbsp; rep.SetWorldPosition( (0,0,0) )<br>
&nbsp;&nbsp;&nbsp; <br>
&nbsp;&nbsp;&nbsp; widget=vtk.vtkHandleWidget()<br>
&nbsp;&nbsp;&nbsp; widget.SetInteractor( renWind.GetInteractor() )<br>
&nbsp;&nbsp;&nbsp; widget.SetDefaultRenderer( ren )<br>
&nbsp;&nbsp;&nbsp; widget.SetRepresentation( rep )<br>
<br>
&nbsp;&nbsp;&nbsp; # -- here we need the callback function object, like 'mcbk' at line<br>
&nbsp;&nbsp;&nbsp; #&nbsp;&nbsp;&nbsp; 628-631 in the C&#43;&#43; example ( see Execute() defined at lines<br>
&nbsp;&nbsp;&nbsp; #&nbsp;&nbsp;&nbsp; 566-577, which needs to know about rep. ) <br>
&nbsp;&nbsp;&nbsp; #&nbsp;&nbsp;&nbsp; A simple python class to serve this purpose is used below<br>
&nbsp;&nbsp;&nbsp; hcb=HandleCallback( rep )<br>
&nbsp;&nbsp;&nbsp; widget.AddObserver( 'InteractionEvent', hcb)<br>
&nbsp;&nbsp;&nbsp; widget.On()<br>
<br>
&nbsp;&nbsp;&nbsp; # -- start the show --<br>
&nbsp;&nbsp;&nbsp; iren.Initialize()<br>
&nbsp;&nbsp;&nbsp; iren.Start() <br>
<br>
&nbsp;&nbsp;&nbsp; return <br>
&nbsp;&nbsp;&nbsp; <br>
<br>
class HandleCallback():<br>
&nbsp;&nbsp;&nbsp; def __init__(self, rep):<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.rep=rep<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print &quot;HandleCallback obj built&quot;<br>
&nbsp;&nbsp;&nbsp; def __call__(self, obj, ev):<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; loc=self.rep.GetWorldPosition()<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print &quot;left at: ( %7.2f , %7.2f, %7.2f )&quot; % ( loc )<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return<br>
&nbsp;&nbsp;&nbsp; <br>
<br>
main() <br>
<br>
<br>
<br>
<div style="font-family: Times New Roman; color: #000000; font-size: 16px">
<hr tabindex="-1">
<div style="direction: ltr;" id="divRpF256229"><font color="#000000" face="Tahoma" size="2"><b>From:</b> vtkusers-bounces@vtk.org [vtkusers-bounces@vtk.org] on behalf of Podariu, Silviu [spodariu@unmc.edu]<br>
<b>Sent:</b> Thursday, December 19, 2013 8:07 PM<br>
<b>To:</b> Jorge Perez<br>
<b>Cc:</b> vtkusers@vtk.org<br>
<b>Subject:</b> Re: [vtkusers] location of movable component<br>
</font><br>
</div>
<div></div>
<div>
<div style="direction:ltr; font-family:Tahoma; color:#000000; font-size:10pt"><br>
<font size="2">Thank you Jorge,<br>
<br>
I have been trying to convert the Tcl to Python; still working on it...&nbsp; :)<br>
<br>
Silviu<br>
</font><br>
<div style="font-family:Times New Roman; color:#000000; font-size:16px">
<hr tabindex="-1">
<div id="divRpF661" style="direction:ltr"><font color="#000000" face="Tahoma" size="2"><b>From:</b> Jorge Perez [josp.jorge@gmail.com]<br>
<b>Sent:</b> Monday, December 16, 2013 3:46 AM<br>
<b>To:</b> Podariu, Silviu<br>
<b>Cc:</b> vtkusers@vtk.org<br>
<b>Subject:</b> Re: [vtkusers] location of movable component<br>
</font><br>
</div>
<div></div>
<div>
<div dir="ltr">
<div>Hi, you can use vtkHandleWidget<br>
<br>
<a href="http://www.vtk.org/doc/nightly/html/classvtkHandleWidget.html#details" target="_blank">http://www.vtk.org/doc/nightly/html/classvtkHandleWidget.html#details</a><br>
<br>
</div>
below is a simple example in Tcl, the position is printed in standard output.<br>
<br>
package require vtk<br>
package require vtkinteraction<br>
<br>
# this proc will be invoked during widget interaction<br>
proc OnInteraction { r } {<br>
&nbsp; set pos [$r GetWorldPosition]<br>
&nbsp; puts &quot;pos = $pos&quot;<br>
}<br>
<br>
vtkTkRenderWidget .tkrw<br>
::vtk::bind_tk_render_widget .tkrw<br>
<br>
set renWin [.tkrw GetRenderWindow]<br>
<br>
vtkRenderer ren<br>
ren SetBackground 0.0 0.4 0.5<br>
<br>
$renWin AddRenderer ren<br>
<br>
# create the widget representation<br>
vtkFixedSizeHandleRepresentation3D rep<br>
rep SetHandleSizeInPixels 10<br>
[rep GetProperty] SetColor 1 0 0<br>
rep SetWorldPosition 0 0 0<br>
<br>
# create the widget<br>
vtkHandleWidget widget<br>
widget SetInteractor [$renWin GetInteractor]<br>
widget SetDefaultRenderer ren<br>
widget SetRepresentation rep<br>
# add the interaction observer<br>
widget AddObserver InteractionEvent {OnInteraction rep}<br>
after idle {widget On}<br>
<br>
pack .tkrw -fill both -expand yes<br>
<br>
</div>
<div class="gmail_extra"><br>
<br>
<div class="gmail_quote">2013/12/13 Podariu, Silviu <span dir="ltr">&lt;<a href="mailto:spodariu@unmc.edu" target="_blank">spodariu@unmc.edu</a>&gt;</span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex; border-left:1px #ccc solid; padding-left:1ex">
<div>
<div style="direction:ltr; font-size:10pt; font-family:Tahoma"><br>
Hello,<br>
<br>
Is there a way of adding a little component in space ( point, sphere, cube ), which can be moved interactively ( with the mouse/arrows/keys ) and whose location at any time can be displayed in the terminal ( or on the renderer window itself )?<br>
<br>
Thanks,<br>
Silviu<br>
<br>
<br>
</div>
<br>
The information in this e-mail may be privileged and confidential, intended only for the use of the addressee(s) above. Any unauthorized use or disclosure of this information is prohibited. If you have received this e-mail by mistake, please delete it and immediately
 contact the sender. </div>
<br>
_______________________________________________<br>
Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
<br>
Visit other Kitware open-source projects at <a href="http://www.kitware.com/opensource/opensource.html" target="_blank">
http://www.kitware.com/opensource/opensource.html</a><br>
<br>
Please keep messages on-topic and check the VTK FAQ at: <a href="http://www.vtk.org/Wiki/VTK_FAQ" target="_blank">
http://www.vtk.org/Wiki/VTK_FAQ</a><br>
<br>
Follow this link to subscribe/unsubscribe:<br>
<a href="http://www.vtk.org/mailman/listinfo/vtkusers" target="_blank">http://www.vtk.org/mailman/listinfo/vtkusers</a><br>
<br>
</blockquote>
</div>
<br>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>