<div dir="ltr">You should be adding your Imageactor to some renderWindow. So, try RenderWindow->Render().<br><br>Jothy<br><br><div class="gmail_quote">On Mon, Mar 29, 2010 at 3:07 PM, Dr. Philip Julian Broser <span dir="ltr"><<a href="mailto:philip.broser@doctors.net.uk">philip.broser@doctors.net.uk</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;"><div style="word-wrap: break-word;"><div>Dear VTK Users,</div><div><br></div><div>I am still struggling with updating the zslice in the vtkImageActor</div>
<div><br></div><div><br></div><div>I am visualising 3D Volume Data (tiff) using an vtkImageActor:</div><div><font face="Menlo" size="3"><span style="font-size: 11px;"><br></span></font></div><div><span style="font-family: Menlo; font-size: 11px;">vtkImageData *FaImage = (correctly loaded 3d volume data, see down below)</span></div>
<div><font face="Menlo" size="3"><span style="font-size: 11px;"><br></span></font></div><div style="margin: 0px;">vtkImageActor *ImageActor = vtkImageActor::New();</div><div><font face="Menlo" size="3"><span style="font-size: 11px;"><div style="margin: 0px;">
ImageActor->SetInput (FaImage); </div></span></font></div><div><div style="margin: 0px;">ImageActor->SetZSlice (<font color="#3d00db">2</font>);</div></div><div><br></div><div>The visualisation of the first Zslice works very well. </div>
<div><br></div><div>However my program visualizes 3D Volume MRI data and overlays it with vtk meshes of brain structures i.e. the thalmus.</div><div>To check that the structure in the vtk mesh was correctly segmented and localized I want to look at single z planes.</div>
<div>In order to be able to select different planes I have written a simple Event Class. </div><div>With every click of the mouse the image plane should shift by one pixel in z. </div><div>The first plane is always well visualised and the actor seems to be correctly initiated </div>
<div>but the plane is not updated when a event occurs even so the command SetZSlice is called with the new z value.</div><div><br></div><div>Does any body have an idea why the image actor is not updated?</div><div><br></div>
<div>Kind regards</div><div><br></div><div>Phil</div><div><br></div><div><br></div><div><div style="margin: 0px;"><span style="color: rgb(204, 0, 162);">class</span> myEventClass : <span style="color: rgb(204, 0, 162);">public</span> vtkCommand</div>
<div style="margin: 0px;">{</div><div style="margin: 0px; min-height: 13px;"><span style="white-space: pre;"> </span><br></div><div style="margin: 0px; min-height: 13px;"><br></div><div style="margin: 0px; min-height: 13px;">
<br></div><div style="margin: 0px;"><span style="white-space: pre;"> </span><span style="color: rgb(204, 0, 162);">virtual</span> <span style="color: rgb(204, 0, 162);">void</span> Execute<span style="white-space: pre;"> </span>( <span style="white-space: pre;"> </span>vtkObject * <span style="white-space: pre;"> </span>caller, <span style="color: rgb(204, 0, 162);">unsigned</span> <span style="color: rgb(204, 0, 162);">long</span> <span style="white-space: pre;"> </span>eventId, <span style="color: rgb(204, 0, 162);">void</span> * <span style="white-space: pre;"> </span>callData) <span style="white-space: pre;"> </span></div>
<div style="margin: 0px;"><span style="white-space: pre;"> </span>{</div><div style="margin: 0px;"><span style="white-space: pre;"> </span><span style="color: rgb(204, 0, 162);">int</span> max=ImageActor->GetWholeZMax<span style="white-space: pre;"> </span>( );</div>
<div style="margin: 0px;"><span style="white-space: pre;"> </span><span style="color: rgb(204, 0, 162);">int</span> min=ImageActor->GetWholeZMin<span style="white-space: pre;"> </span>( );</div><div style="margin: 0px; min-height: 13px;">
<br></div><div style="margin: 0px; min-height: 13px;"><br></div><div style="margin: 0px;"><span style="white-space: pre;"> </span><span style="color: rgb(204, 0, 162);">if</span> (dir==<span style="color: rgb(61, 0, 219);">0</span>)</div>
<div style="margin: 0px;"><span style="white-space: pre;"> </span>{</div><div style="margin: 0px;"><span style="white-space: pre;"> </span>z=z+<span style="color: rgb(61, 0, 219);">1</span>;</div><div style="margin: 0px;">
<span style="white-space: pre;"> </span><span style="color: rgb(204, 0, 162);">if</span> (z>max ) {z=max;dir=<span style="color: rgb(61, 0, 219);">1</span>;}</div><div style="margin: 0px;"><span style="white-space: pre;"> </span>}</div>
<div style="margin: 0px; color: rgb(204, 0, 162);"><span style="color: rgb(0, 0, 0);"><span style="white-space: pre;"> </span></span>else</div><div style="margin: 0px;"><span style="white-space: pre;"> </span>{</div><div style="margin: 0px;">
<span style="white-space: pre;"> </span>z=z-<span style="color: rgb(61, 0, 219);">1</span>;</div><div style="margin: 0px;"><span style="white-space: pre;"> </span><span style="color: rgb(204, 0, 162);">if</span> (z<min) {z=min;dir=<span style="color: rgb(61, 0, 219);">0</span>;}</div>
<div style="margin: 0px;"><span style="white-space: pre;"> </span>};</div><div style="margin: 0px; min-height: 13px;"><span style="white-space: pre;"> </span><br></div><div style="margin: 0px; min-height: 13px;"><span style="white-space: pre;"> </span><br>
</div><div style="margin: 0px;"><span style="white-space: pre;"> </span><b>ImageActor->SetZSlice (z);</b></div><div style="margin: 0px; min-height: 13px;"><span style="white-space: pre;"> </span><br></div><div style="margin: 0px; min-height: 13px;">
<span style="white-space: pre;"> </span><br></div><div style="margin: 0px;"><span style="white-space: pre;"> </span>cout << <span style="color: rgb(226, 3, 0);">"Current z Slice:"</span> << z << endl;</div>
<div style="margin: 0px;"><span style="white-space: pre;"> </span>};</div><div style="margin: 0px; min-height: 13px;"><span style="white-space: pre;"> </span><br></div><div style="margin: 0px; color: rgb(204, 0, 162);"><span style="color: rgb(0, 0, 0);"><span style="white-space: pre;"> </span></span>public<span style="color: rgb(0, 0, 0);">: </span></div>
<div style="margin: 0px;"><span style="white-space: pre;"> </span>myEventClass() {</div><div style="margin: 0px;"><span style="white-space: pre;"> </span>z=<span style="color: rgb(61, 0, 219);">0</span>;</div><div style="margin: 0px;">
<span style="white-space: pre;"> </span>dir=<span style="color: rgb(61, 0, 219);">0</span>; </div><div style="margin: 0px;"><span style="white-space: pre;"> </span>}<span style="white-space: pre;"> </span></div><div style="margin: 0px; min-height: 13px;">
<span style="white-space: pre;"> </span><br></div><div style="margin: 0px;"><span style="white-space: pre;"> </span><span style="color: rgb(204, 0, 162);">void</span> SetImageActor(vtkImageActor *iA) {ImageActor=iA;};</div>
<div style="margin: 0px;"><span style="white-space: pre;"> </span></div><div style="margin: 0px; min-height: 13px;"><span style="white-space: pre;"> </span><br></div><div style="margin: 0px; color: rgb(204, 0, 162);">private<span style="color: rgb(0, 0, 0);">:</span></div>
<div style="margin: 0px;"><span style="white-space: pre;"> </span>vtkImageActor *ImageActor;</div><div style="margin: 0px;"><span style="white-space: pre;"> </span><span style="color: rgb(204, 0, 162);">int</span> z;</div>
<div style="margin: 0px;"><span style="white-space: pre;"> </span><span style="color: rgb(204, 0, 162);">int</span> dir;</div><div style="margin: 0px;">};</div><div style="margin: 0px;"><br></div><div style="margin: 0px;">
<br></div><div style="margin: 0px;"><div style="margin: 0px;">vtkImageData (0x101022350)</div><div style="margin: 0px;"> Debug: Off</div><div style="margin: 0px;"> Modified Time: 554</div><div style="margin: 0px;"> Reference Count: 3</div>
<div style="margin: 0px;"> Registered Events: (none)</div><div style="margin: 0px;"> Source: (none)</div><div style="margin: 0px;"> Information: 0x1010224b0</div><div style="margin: 0px;"> Data Released: False</div><div style="margin: 0px;">
Global Release Data: Off</div><div style="margin: 0px;"> UpdateTime: 0</div><div style="margin: 0px;"> Release Data: Off</div><div style="margin: 0px;"> UpdateExtent: Not Initialized</div><div style="margin: 0px;"> RequestExactExtent: Off</div>
<div style="margin: 0px;"> Field Data:</div><div style="margin: 0px;"> Debug: Off</div><div style="margin: 0px;"> Modified Time: 456</div><div style="margin: 0px;"> Reference Count: 1</div><div style="margin: 0px;">
Registered Events: (none)</div><div style="margin: 0px;"> Number Of Arrays: 0</div><div style="margin: 0px;"> Number Of Components: 0</div><div style="margin: 0px;"> Number Of Tuples: 0</div><div style="margin: 0px;">
Number Of Points: 414720</div><div style="margin: 0px;"> Number Of Cells: 397100</div><div style="margin: 0px;"> Cell Data:</div><div style="margin: 0px;"> Debug: Off</div><div style="margin: 0px;"> Modified Time: 459</div>
<div style="margin: 0px;"> Reference Count: 1</div><div style="margin: 0px;"> Registered Events: (none)</div><div style="margin: 0px;"> Number Of Arrays: 0</div><div style="margin: 0px;"> Number Of Components: 0</div>
<div style="margin: 0px;"> Number Of Tuples: 0</div><div style="margin: 0px;"> Copy Tuple Flags: ( 1 1 1 1 1 0 1 )</div><div style="margin: 0px;"> Interpolate Flags: ( 1 1 1 1 1 0 0 )</div><div style="margin: 0px;">
Pass Through Flags: ( 1 1 1 1 1 1 1 )</div><div style="margin: 0px;"> Scalars: (none)</div><div style="margin: 0px;"> Vectors: (none)</div><div style="margin: 0px;"> Normals: (none)</div><div style="margin: 0px;">
TCoords: (none)</div><div style="margin: 0px;"> Tensors: (none)</div><div style="margin: 0px;"> GlobalIds: (none)</div><div style="margin: 0px;"> PedigreeIds: (none)</div><div style="margin: 0px;"> Point Data:</div>
<div style="margin: 0px;"> Debug: Off</div><div style="margin: 0px;"> Modified Time: 552</div><div style="margin: 0px;"> Reference Count: 1</div><div style="margin: 0px;"> Registered Events: (none)</div><div style="margin: 0px;">
Number Of Arrays: 1</div><div style="margin: 0px;"> Array 0 name = NULL</div><div style="margin: 0px;"> Number Of Components: 1</div><div style="margin: 0px;"> Number Of Tuples: 414720</div><div style="margin: 0px;">
Copy Tuple Flags: ( 1 1 1 1 1 0 1 )</div><div style="margin: 0px;"> Interpolate Flags: ( 1 1 1 1 1 0 0 )</div><div style="margin: 0px;"> Pass Through Flags: ( 1 1 1 1 1 1 1 )</div><div style="margin: 0px;"> Scalars: </div>
<div style="margin: 0px;"> Debug: Off</div><div style="margin: 0px;"> Modified Time: 452</div><div style="margin: 0px;"> Reference Count: 2</div><div style="margin: 0px;"> Registered Events: (none)</div>
<div style="margin: 0px;"> Name: (none)</div><div style="margin: 0px;"> Data type: unsigned char</div><div style="margin: 0px;"> Size: 414720</div><div style="margin: 0px;"> MaxId: 414719</div><div style="margin: 0px;">
NumberOfComponents: 1</div><div style="margin: 0px;"> Information: 0</div><div style="margin: 0px;"> Name: (none)</div><div style="margin: 0px;"> Number Of Components: 1</div><div style="margin: 0px;">
Number Of Tuples: 414720</div><div style="margin: 0px;"> Size: 414720</div><div style="margin: 0px;"> MaxId: 414719</div><div style="margin: 0px;"> LookupTable: (none)</div><div style="margin: 0px;"> Array: 0x101100000</div>
<div style="margin: 0px;"> Vectors: (none)</div><div style="margin: 0px;"> Normals: (none)</div><div style="margin: 0px;"> TCoords: (none)</div><div style="margin: 0px;"> Tensors: (none)</div><div style="margin: 0px;">
GlobalIds: (none)</div><div style="margin: 0px;"> PedigreeIds: (none)</div><div style="margin: 0px;"> Bounds: </div><div style="margin: 0px;"> Xmin,Xmax: (0, 237.5)</div><div style="margin: 0px;"> Ymin,Ymax: (0, 237.5)</div>
<div style="margin: 0px;"> Zmin,Zmax: (0, 110)</div><div style="margin: 0px;"> Compute Time: 0</div><div style="margin: 0px;"> ScalarType: 3</div><div style="margin: 0px;"> NumberOfScalarComponents: 1</div><div style="margin: 0px;">
Spacing: (2.5, 2.5, 2.5)</div><div style="margin: 0px;"> Origin: (0, 0, 0)</div><div style="margin: 0px;"> Dimensions: (96, 96, 45)</div><div style="margin: 0px;"> Increments: (0, 0, 0)</div><div style="margin: 0px;">
Extent: (0, 95, 0, 95, 0, 44)</div></div><div><font face="Menlo" size="3"><span style="font-size: 11px;"><br></span></font></div></div></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>