<div dir="ltr">You should be adding your Imageactor to some renderWindow. So, try RenderWindow-&gt;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">&lt;<a href="mailto:philip.broser@doctors.net.uk">philip.broser@doctors.net.uk</a>&gt;</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-&gt;SetInput (FaImage); </div></span></font></div><div><div style="margin: 0px;">ImageActor-&gt;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-&gt;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-&gt;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&gt;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&lt;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-&gt;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 &lt;&lt; <span style="color: rgb(226, 3, 0);">&quot;Current z Slice:&quot;</span> &lt;&lt; z &lt;&lt; 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>