<font color="#008000" size="2"><font color="#008000" size="2">
<div>
<p style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class="MsoNormal"><span style="FONT-FAMILY: &#39;Times New Roman&#39;,&#39;serif&#39;; FONT-SIZE: 12pt; mso-fareast-font-family: &#39;Times New Roman&#39;; mso-fareast-language: EN-GB"><font color="#000000">Dear all,</font></span></p>

<p style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 6pt" class="MsoNormal"><span style="FONT-FAMILY: &#39;Times New Roman&#39;,&#39;serif&#39;; FONT-SIZE: 12pt; mso-fareast-font-family: &#39;Times New Roman&#39;; mso-fareast-language: EN-GB"><font color="#000000">I am trying to display a volume and inserting a sphere once the left button of the mouse is clicked.</font></span></p>

<p style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 6pt" class="MsoNormal"><span style="FONT-FAMILY: &#39;Times New Roman&#39;,&#39;serif&#39;; FONT-SIZE: 12pt; mso-fareast-font-family: &#39;Times New Roman&#39;; mso-fareast-language: EN-GB"><font color="#000000">My code is as bellow which is just a modification of one code I’ve found in vtk mailing list.</font></span></p>

<p style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 6pt" class="MsoNormal"><span style="FONT-FAMILY: &#39;Times New Roman&#39;,&#39;serif&#39;; FONT-SIZE: 12pt; mso-fareast-font-family: &#39;Times New Roman&#39;; mso-fareast-language: EN-GB"><font color="#000000">The output of my code is not as I have expected: I got only the spheres on the click but the input volume in which I want to insert the sphere is not displayed. </font></span></p>

<p style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 6pt" class="MsoNormal"><span style="FONT-FAMILY: &#39;Times New Roman&#39;,&#39;serif&#39;; FONT-SIZE: 12pt; mso-fareast-font-family: &#39;Times New Roman&#39;; mso-fareast-language: EN-GB"><font color="#000000">Can someone point me on what is wrong in my code as I am newbie to vtk and I need really your help? </font></span></p>

<p style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 6pt" class="MsoNormal"><span style="FONT-FAMILY: &#39;Times New Roman&#39;,&#39;serif&#39;; FONT-SIZE: 12pt; mso-fareast-font-family: &#39;Times New Roman&#39;; mso-fareast-language: EN-GB"><font color="#000000">Thank you in advance for your time.</font></span></p>

<p style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 6pt" class="MsoNormal"><span style="FONT-FAMILY: &#39;Times New Roman&#39;,&#39;serif&#39;; FONT-SIZE: 12pt; mso-fareast-font-family: &#39;Times New Roman&#39;; mso-fareast-language: EN-GB"><font color="#000000">Anna</font></span></p>
 </div>
<div> </div>
<div> </div>
<div>// displaying a sphere in a volume on a mouse click</div></font></font><font size="2">
<p></p></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">#include</font></font><font size="2"> </font><font color="#a31515" size="2"><font color="#a31515" size="2">&lt;vtkRenderWindow.h&gt;</font></font><font size="2">
<p></p></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">#include</font></font><font size="2"> </font><font color="#a31515" size="2"><font color="#a31515" size="2">&lt;vtkRenderWindowInteractor.h&gt;</font></font><font size="2">
<p></p></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">#include</font></font><font size="2"> </font><font color="#a31515" size="2"><font color="#a31515" size="2">&lt;vtkRenderer.h&gt;</font></font><font size="2">
<p></p></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">#include</font></font><font size="2"> </font><font color="#a31515" size="2"><font color="#a31515" size="2">&lt;vtkSphereSource.h&gt;</font></font><font size="2">
<p></p></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">#include</font></font><font size="2"> </font><font color="#a31515" size="2"><font color="#a31515" size="2">&lt;vtkPolyDataMapper.h&gt;</font></font><font size="2">
<p></p></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">#include</font></font><font size="2"> </font><font color="#a31515" size="2"><font color="#a31515" size="2">&lt;vtkActor.h&gt;</font></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">
<p>#include</p></font></font><font size="2"> </font><font color="#a31515" size="2"><font color="#a31515" size="2">&lt;vtkSmartPointer.h&gt;</font></font><font size="2">
<p></p></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">#include</font></font><font size="2"> </font><font color="#a31515" size="2"><font color="#a31515" size="2">&lt;vtkPointPicker.h&gt;</font></font><font size="2">
<p></p></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">#include</font></font><font size="2"> </font><font color="#a31515" size="2"><font color="#a31515" size="2">&lt;vtkCamera.h&gt;</font></font><font size="2">
<p></p></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">#include</font></font><font size="2"> </font><font color="#a31515" size="2"><font color="#a31515" size="2">&lt;vtkInteractorStyleTrackballCamera.h&gt;</font></font><font size="2">
<p></p></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">#include</font></font><font size="2"> </font><font color="#a31515" size="2"><font color="#a31515" size="2">&lt;vtkObjectFactory.h&gt;</font></font><font size="2">
<p></p></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">#include</font></font><font size="2"> </font><font color="#a31515" size="2"><font color="#a31515" size="2">&lt;vtkCoordinate.h&gt;</font></font><font size="2">
<p></p></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">#include</font></font><font size="2"> </font><font color="#a31515" size="2"><font color="#a31515" size="2">&lt;vtkProperty.h&gt;</font></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">
<p>#include</p></font></font><font size="2"> </font><font color="#a31515" size="2"><font color="#a31515" size="2">&lt;vtkImageDataGeometryFilter.h&gt;</font></font><font color="#008000" size="2"><font color="#008000" size="2">
<p>///</p></font></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">
<p>#include</p></font></font><font size="2"> </font><font color="#a31515" size="2"><font color="#a31515" size="2">&lt;iostream&gt;</font></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">
<p>#include</p></font></font><font size="2"> </font><font color="#a31515" size="2"><font color="#a31515" size="2">&lt;fstream&gt;</font></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">
<p>#include</p></font></font><font size="2"> </font><font color="#a31515" size="2"><font color="#a31515" size="2">&quot;itkImage.h&quot;</font></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">
<p>#include</p></font></font><font size="2"> </font><font color="#a31515" size="2"><font color="#a31515" size="2">&quot;itkImageFileReader.h&quot;</font></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">
<p>#include</p></font></font><font size="2"> </font><font color="#a31515" size="2"><font color="#a31515" size="2">&quot;itkImageFileWriter.h&quot;</font></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">
<p>#include</p></font></font><font size="2"> </font><font color="#a31515" size="2"><font color="#a31515" size="2">&quot;itkVTKImageExport.h&quot;</font></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">
<p>#include</p></font></font><font size="2"> </font><font color="#a31515" size="2"><font color="#a31515" size="2">&quot;itkVTKImageImport.h&quot;</font></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">
<p>#include</p></font></font><font size="2"> </font><font color="#a31515" size="2"><font color="#a31515" size="2">&quot;itkRescaleIntensityImageFilter.h&quot;</font></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">
<p>#include</p></font></font><font size="2"> </font><font color="#a31515" size="2"><font color="#a31515" size="2">&quot;vtkImageImport.h&quot;</font></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">
<p>#include</p></font></font><font size="2"> </font><font color="#a31515" size="2"><font color="#a31515" size="2">&quot;vtkImageExport.h&quot;</font></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">
<p>#include</p></font></font><font size="2"> </font><font color="#a31515" size="2"><font color="#a31515" size="2">&quot;vtkVolumeRayCastCompositeFunction.h&quot;</font></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">
<p>#include</p></font></font><font size="2"> </font><font color="#a31515" size="2"><font color="#a31515" size="2">&quot;vtkVolume.h&quot;</font></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">
<p>#include</p></font></font><font size="2"> </font><font color="#a31515" size="2"><font color="#a31515" size="2">&quot;vtkVolumeProperty.h&quot;</font></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">
<p>#include</p></font></font><font size="2"> </font><font color="#a31515" size="2"><font color="#a31515" size="2">&quot;vtkPiecewiseFunction.h&quot;</font></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">
<p>#include</p></font></font><font size="2"> </font><font color="#a31515" size="2"><font color="#a31515" size="2">&quot;vtkFixedPointVolumeRayCastMapper.h&quot;</font></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">
<p>#include</p></font></font><font size="2"> </font><font color="#a31515" size="2"><font color="#a31515" size="2">&quot;vtkColorTransferFunction.h&quot;</font></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">
<p>#include</p></font></font><font size="2"> </font><font color="#a31515" size="2"><font color="#a31515" size="2">&quot;vtkRenderer.h&quot;</font></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">
<p>#include</p></font></font><font size="2"> </font><font color="#a31515" size="2"><font color="#a31515" size="2">&quot;vtkRenderWindow.h&quot;</font></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">
<p>#include</p></font></font><font size="2"> </font><font color="#a31515" size="2"><font color="#a31515" size="2">&quot;vtkRenderWindowInteractor.h&quot;</font></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">
<p>#include</p></font></font><font size="2"> </font><font color="#a31515" size="2"><font color="#a31515" size="2">&quot;vtkInteractorStyleTrackballCamera.h&quot;</font></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">
<p>#include</p></font></font><font size="2"> </font><font color="#a31515" size="2"><font color="#a31515" size="2">&quot;vtkVolumeRayCastMapper.h&quot;</font></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">
<p>#include</p></font></font><font size="2"> </font><font color="#a31515" size="2"><font color="#a31515" size="2">&quot;vtkCamera.h&quot;</font></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">
<p>#include</p></font></font><font size="2"> </font><font color="#a31515" size="2"><font color="#a31515" size="2">&lt;vtkVolumePicker.h&gt;</font></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">
<p>#include</p></font></font><font size="2"> </font><font color="#a31515" size="2"><font color="#a31515" size="2">&lt;vtkSmartPointer.h&gt;</font></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">
<p>#include</p></font></font><font size="2"> </font><font color="#a31515" size="2"><font color="#a31515" size="2">&lt;vtkRendererCollection.h&gt;</font></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">
<p>#include</p></font></font><font size="2"> </font><font color="#a31515" size="2"><font color="#a31515" size="2">&lt;vtkSphereSource.h&gt;</font></font><font color="#008000" size="2"><font color="#008000" size="2">
<p>// new</p></font></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">
<p>#include</p></font></font><font size="2"> </font><font color="#a31515" size="2"><font color="#a31515" size="2">&lt;vtkSphereSource.h&gt;</font></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">
<p>#include</p></font></font><font size="2"> </font><font color="#a31515" size="2"><font color="#a31515" size="2">&lt;vtkPolyDataMapper.h&gt;</font></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">
<p>#include</p></font></font><font size="2"> </font><font color="#a31515" size="2"><font color="#a31515" size="2">&lt;vtkActor.h&gt;</font></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">
<p>#include</p></font></font><font size="2"> </font><font color="#a31515" size="2"><font color="#a31515" size="2">&lt;vtkSmartPointer.h&gt;</font></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">
<p>#include</p></font></font><font size="2"> </font><font color="#a31515" size="2"><font color="#a31515" size="2">&lt;vtkPointPicker.h&gt;</font></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">
<p>#include</p></font></font><font size="2"> </font><font color="#a31515" size="2"><font color="#a31515" size="2">&lt;vtkInteractorStyleTrackballCamera.h&gt;</font></font><font size="2"> </font><font color="#0000ff" size="2"><font color="#0000ff" size="2">
<p>#include</p></font></font><font size="2"> </font><font color="#a31515" size="2"><font color="#a31515" size="2">&lt;vtkObjectFactory.h&gt;</font></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">
<p>#include</p></font></font><font size="2"> </font><font color="#a31515" size="2"><font color="#a31515" size="2">&lt;vtkCoordinate.h&gt;</font></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">
<p>#include</p></font></font><font size="2"> </font><font color="#a31515" size="2"><font color="#a31515" size="2">&lt;vtkProperty.h&gt;
<p></p></font></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">
<p>typedef</p></font></font><font size="2"> </font><font color="#0000ff" size="2"><font color="#0000ff" size="2">float</font></font><font size="2"> PixelType; </font><font color="#0000ff" size="2"><font color="#0000ff" size="2">
<p>const</p></font></font><font size="2"> </font><font color="#0000ff" size="2"><font color="#0000ff" size="2">unsigned</font></font><font size="2"> </font><font color="#0000ff" size="2"><font color="#0000ff" size="2">int</font></font><font size="2"> Dimension = 3; </font><font color="#0000ff" size="2"><font color="#0000ff" size="2">
<p>typedef</p></font></font><font size="2"> itk::Image&lt; PixelType, Dimension &gt; ImageType;
<p>ImageType::SpacingType gVoxelSpacing;</p></font><font color="#008000" size="2"><font color="#008000" size="2">
<p>// This function will connect the given itk::VTKImageExport filter to the given vtkImageImport filter.</p></font></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">
<p>template</p></font></font><font size="2"> &lt;</font><font color="#0000ff" size="2"><font color="#0000ff" size="2">typename</font></font><font size="2"> ITK_Exporter, </font><font color="#0000ff" size="2"><font color="#0000ff" size="2">typename</font></font><font size="2"> VTK_Importer&gt;</font><font color="#0000ff" size="2"><font color="#0000ff" size="2">
<p>void</p></font></font><font size="2"> ConnectPipelines(ITK_Exporter exporter, VTK_Importer* importer)
<p>{</p>
<p>importer-&gt;SetUpdateInformationCallback(exporter-&gt;GetUpdateInformationCallback());</p>
<p>importer-&gt;SetPipelineModifiedCallback(exporter-&gt;GetPipelineModifiedCallback());</p>
<p>importer-&gt;SetWholeExtentCallback(exporter-&gt;GetWholeExtentCallback());</p>
<p>importer-&gt;SetSpacingCallback(exporter-&gt;GetSpacingCallback());</p>
<p>importer-&gt;SetOriginCallback(exporter-&gt;GetOriginCallback());</p>
<p>importer-&gt;SetScalarTypeCallback(exporter-&gt;GetScalarTypeCallback());</p>
<p>importer-&gt;SetNumberOfComponentsCallback(exporter-&gt;GetNumberOfComponentsCallback());</p>
<p>importer-&gt;SetPropagateUpdateExtentCallback(exporter-&gt;GetPropagateUpdateExtentCallback());</p>
<p>importer-&gt;SetUpdateDataCallback(exporter-&gt;GetUpdateDataCallback());</p>
<p>importer-&gt;SetDataExtentCallback(exporter-&gt;GetDataExtentCallback());</p>
<p>importer-&gt;SetBufferPointerCallback(exporter-&gt;GetBufferPointerCallback());</p>
<p>importer-&gt;SetCallbackUserData(exporter-&gt;GetCallbackUserData());</p>
<p>}</p>
<p></p></font><font color="#008000" size="2"><font color="#008000" size="2">// Define interaction style</font></font><font size="2">
<p></p></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">class</font></font><font size="2"> MouseInteractorStyle : </font><font color="#0000ff" size="2"><font color="#0000ff" size="2">public</font></font><font size="2"> vtkInteractorStyleTrackballCamera
<p>{</p>
<p></p></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">public</font></font><font size="2">:
<p></p></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">static</font></font><font size="2"> MouseInteractorStyle* New();
<p>vtkTypeRevisionMacro(MouseInteractorStyle, vtkInteractorStyleTrackballCamera);</p>
<p></p></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">virtual</font></font><font size="2"> </font><font color="#0000ff" size="2"><font color="#0000ff" size="2">void</font></font><font size="2"> OnLeftButtonDown()
<p>{</p>
<p>cout &lt;&lt; </p></font><font color="#a31515" size="2"><font color="#a31515" size="2">&quot;Pressed left mouse button.&quot;</font></font><font size="2"> &lt;&lt; endl;
<p></p></font><font color="#008000" size="2"><font color="#008000" size="2">// forward events</font></font><font size="2">
<p></p></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">double</font></font><font size="2"> x = </font><font color="#0000ff" size="2"><font color="#0000ff" size="2">this</font></font><font size="2">-&gt;Interactor-&gt;GetEventPosition()[0];
<p></p></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">double</font></font><font size="2"> y = </font><font color="#0000ff" size="2"><font color="#0000ff" size="2">this</font></font><font size="2">-&gt;Interactor-&gt;GetEventPosition()[1];
<p>cout &lt;&lt; x &lt;&lt; </p></font><font color="#a31515" size="2"><font color="#a31515" size="2">&quot; &quot;</font></font><font size="2"> &lt;&lt; y &lt;&lt; endl;
<p>vtkSmartPointer&lt;vtkCoordinate&gt; coordinate = vtkSmartPointer&lt;vtkCoordinate&gt;::New();</p>
<p>coordinate-&gt;SetCoordinateSystemToDisplay();</p>
<p>coordinate-&gt;SetValue(x,y);</p>
<p></p></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">double</font></font><font size="2"> *pt = </font><font color="#0000ff" size="2"><font color="#0000ff" size="2">new</font></font><font size="2"> </font><font color="#0000ff" size="2"><font color="#0000ff" size="2">double</font></font><font size="2">[3];
<p>pt = coordinate-&gt;GetComputedWorldValue(render);</p>
<p>cout &lt;&lt; pt[0] &lt;&lt; </p></font><font color="#a31515" size="2"><font color="#a31515" size="2">&quot; &quot;</font></font><font size="2"> &lt;&lt;pt[1] &lt;&lt; </font><font color="#a31515" size="2"><font color="#a31515" size="2">&quot; &quot;</font></font><font size="2"> &lt;&lt; pt[2] &lt;&lt; endl;
<p>vtkCamera *camera = render-&gt;GetActiveCamera();</p>
<p></p></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">double</font></font><font size="2"> *n = </font><font color="#0000ff" size="2"><font color="#0000ff" size="2">new</font></font><font size="2"> </font><font color="#0000ff" size="2"><font color="#0000ff" size="2">double</font></font><font size="2">[2];
<p>n = camera-&gt;GetClippingRange();</p>
<p>cout &lt;&lt; </p></font><font color="#a31515" size="2"><font color="#a31515" size="2">&quot;Cuureent n[0] &quot;</font></font><font size="2"> &lt;&lt; n[0]&lt;&lt; endl;
<p>vtkSmartPointer&lt;vtkSphereSource&gt; sphereSource = vtkSmartPointer&lt;vtkSphereSource&gt;::New();</p>
<p>sphereSource-&gt;SetCenter(pt[0],pt[1],pt[2]*1*n[0]);</p>
<p>sphereSource-&gt;SetRadius(0.01);</p>
<p>sphereSource-&gt;Update();</p>
<p>vtkSmartPointer&lt;vtkPolyDataMapper&gt; mapper = vtkSmartPointer&lt;vtkPolyDataMapper&gt;::New();</p>
<p>mapper-&gt;SetInputConnection(sphereSource-&gt;GetOutputPort());</p>
<p>vtkSmartPointer&lt;vtkActor&gt; actor = vtkSmartPointer&lt;vtkActor&gt;::New();</p>
<p>actor-&gt;SetMapper(mapper);</p>
<p></p>
<p>render-&gt;AddActor(actor);</p>
<p>actor-&gt;GetProperty()-&gt;SetColor(1,0,0);</p>
<p></p></font><font color="#008000" size="2"><font color="#008000" size="2">//render-&gt;ResetCamera();</font></font><font size="2">
<p></p></font><font color="#008000" size="2"><font color="#008000" size="2">//render-&gt;ResetCameraClippingRange();</font></font><font size="2">
<p>render-&gt;GetRenderWindow()-&gt;GetInteractor()-&gt;Render();</p>
<p></p></font><font color="#008000" size="2"><font color="#008000" size="2">// vtkInteractorStyleTrackballCamera::OnLeftButtonDown();</font></font><font size="2">
<p>}</p>
<p></p></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">virtual</font></font><font size="2"> </font><font color="#0000ff" size="2"><font color="#0000ff" size="2">void</font></font><font size="2"> OnMiddleButtonDown()
<p>{</p>
<p>cout &lt;&lt; </p></font><font color="#a31515" size="2"><font color="#a31515" size="2">&quot;Pressed middle mouse button.&quot;</font></font><font size="2"> &lt;&lt; endl;
<p></p></font><font color="#008000" size="2"><font color="#008000" size="2">// forward events</font></font><font size="2">
<p></p></font><font color="#008000" size="2"><font color="#008000" size="2">//vtkInteractorStyleTrackballCamera::OnMiddleButtonDown();</font></font><font size="2">
<p>}</p>
<p></p></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">virtual</font></font><font size="2"> </font><font color="#0000ff" size="2"><font color="#0000ff" size="2">void</font></font><font size="2"> OnRightButtonDown()
<p>{</p>
<p>cout &lt;&lt; </p></font><font color="#a31515" size="2"><font color="#a31515" size="2">&quot;Pressed right mouse button.&quot;</font></font><font size="2"> &lt;&lt; endl;
<p></p></font><font color="#008000" size="2"><font color="#008000" size="2">// forward events</font></font><font size="2">
<p>vtkInteractorStyleTrackballCamera::OnRightButtonDown();</p>
<p>}</p>
<p></p></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">virtual</font></font><font size="2"> </font><font color="#0000ff" size="2"><font color="#0000ff" size="2">void</font></font><font size="2"> OnRightButtonUp()
<p>{</p>
<p>vtkCamera *camera = render-&gt;GetActiveCamera();</p>
<p>camera-&gt;SetClippingRange(1,30);</p>
<p>vtkInteractorStyleTrackballCamera::OnRightButtonUp();</p>
<p>}</p>
<p>vtkSmartPointer&lt;vtkRenderer&gt; render;</p>
<p>};</p>
<p>vtkCxxRevisionMacro(MouseInteractorStyle, </p></font><font color="#a31515" size="2"><font color="#a31515" size="2">&quot;$Revision: 1.1 $&quot;</font></font><font size="2">);
<p>vtkStandardNewMacro(MouseInteractorStyle);</p>
<p></p>
<p></p>
<p></p></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">int</font></font><font size="2"> main ( </font><font color="#0000ff" size="2"><font color="#0000ff" size="2">int</font></font><font size="2"> argc, </font><font color="#0000ff" size="2"><font color="#0000ff" size="2">char</font></font><font size="2">* argv[] )
<p>{</p>
<p></p>
<p></p></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">typedef</font></font><font size="2"> itk::ImageFileReader&lt; ImageType &gt; ReaderType;
<p></p></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">typedef</font></font><font size="2"> itk::ImageFileWriter &lt;ImageType&gt; WriterType;
<p>ReaderType::Pointer reader = ReaderType::New(); </p>
<p>WriterType::Pointer writer = WriterType::New(); </p>
<p>reader-&gt;SetFileName(</p></font><font color="#a31515" size="2"><font color="#a31515" size="2">&quot;MyVolume.hdr&quot;</font></font><font size="2">);
<p></p></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">try</font></font><font size="2">
<p>{</p>
<p>reader-&gt;Update(); </p>
<p></p></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">const</font></font><font size="2"> ImageType::SizeType imageSize =reader-&gt;GetOutput()-&gt;GetLargestPossibleRegion().GetSize();
<p>std::cout &lt;&lt; </p></font><font color="#a31515" size="2"><font color="#a31515" size="2">&quot;ImageSize= &quot;</font></font><font size="2">;
<p>std::cout &lt;&lt; imageSize[0] &lt;&lt; </p></font><font color="#a31515" size="2"><font color="#a31515" size="2">&quot;, &quot;</font></font><font size="2"> &lt;&lt; imageSize[1] &lt;&lt; </font><font color="#a31515" size="2"><font color="#a31515" size="2">&quot;, &quot;</font></font><font size="2"> &lt;&lt; imageSize[2] &lt;&lt; std::endl;
<p>gVoxelSpacing =reader-&gt;GetOutput()-&gt;GetSpacing();</p>
<p>std::cout &lt;&lt; </p></font><font color="#a31515" size="2"><font color="#a31515" size="2">&quot;Spacing= &quot;</font></font><font size="2">;
<p>std::cout &lt;&lt; gVoxelSpacing[0] &lt;&lt; </p></font><font color="#a31515" size="2"><font color="#a31515" size="2">&quot;, &quot;</font></font><font size="2"> &lt;&lt; gVoxelSpacing[1] &lt;&lt; </font><font color="#a31515" size="2"><font color="#a31515" size="2">&quot;, &quot;</font></font><font size="2"> &lt;&lt; gVoxelSpacing[2] &lt;&lt; std::endl;
<p>}</p>
<p></p></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">catch</font></font><font size="2">( itk::ExceptionObject &amp; err )
<p>{</p>
<p>std::cerr &lt;&lt; </p></font><font color="#a31515" size="2"><font color="#a31515" size="2">&quot;ExceptionObject caught !&quot;</font></font><font size="2"> &lt;&lt; std::endl;
<p>std::cerr &lt;&lt; err &lt;&lt; std::endl;</p>
<p></p></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">return</font></font><font size="2"> EXIT_FAILURE;
<p>} </p>
<p></p>
<p></p></font><font color="#008000" size="2"><font color="#008000" size="2">// convert from float to unsigned short since vtkVolumeRayCastMapper Cannot volume render data of type float, only unsigned char or unsigned short.</font></font><font size="2">
<p></p></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">typedef</font></font><font size="2"> </font><font color="#0000ff" size="2"><font color="#0000ff" size="2">unsigned</font></font><font size="2"> </font><font color="#0000ff" size="2"><font color="#0000ff" size="2">short</font></font><font size="2"> DisplayPixelType; </font><font color="#008000" size="2"><font color="#008000" size="2">// Display Pixel = 16bit</font></font><font size="2">
<p></p></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">typedef</font></font><font size="2"> itk::Image&lt; DisplayPixelType, Dimension &gt; DisplayImageType; </font><font color="#008000" size="2"><font color="#008000" size="2">// define DisplayImageType</font></font><font size="2">
<p></p></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">typedef</font></font><font size="2"> itk::RescaleIntensityImageFilter&lt;ImageType, DisplayImageType &gt; FilterType;
<p>FilterType::Pointer filter = FilterType::New();</p>
<p>filter-&gt;SetOutputMinimum( 0 );</p>
<p>filter-&gt;SetOutputMaximum( 20000 );</p>
<p>filter-&gt;SetInput( reader-&gt;GetOutput() );</p>
<p></p>
<p></p></font><font color="#008000" size="2"><font color="#008000" size="2">// Create the vtkImageImport and connect it to the itk::VTKImageExport instance.</font></font><font size="2">
<p></p></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">typedef</font></font><font size="2"> itk::VTKImageExport&lt; DisplayImageType &gt; ExportFilterType;
<p>ExportFilterType::Pointer itkExporter = ExportFilterType::New(); </p>
<p>itkExporter-&gt;SetInput( filter-&gt;GetOutput() ); </p>
<p>vtkImageImport* vtkImporter = vtkImageImport::New(); </p>
<p>ConnectPipelines(itkExporter, vtkImporter);</p>
<p></p>
<p></p></font><font color="#008000" size="2"><font color="#008000" size="2">// Convert the vtkImageData to a vtkPolydata</font></font><font size="2">
<p>vtkSmartPointer&lt;vtkImageDataGeometryFilter&gt; imageDataGeometryFilter = vtkSmartPointer&lt;vtkImageDataGeometryFilter&gt;::New();</p>
<p>imageDataGeometryFilter-&gt;SetInputConnection(vtkImporter-&gt;GetOutputPort());</p>
<p>imageDataGeometryFilter-&gt;Update();</p>
<p></p>
<p></p>
<p></p></font><font color="#008000" size="2"><font color="#008000" size="2">//rendering --------------------------------------------------</font></font><font size="2">
<p>vtkSmartPointer&lt;vtkRenderer&gt; renderer = vtkSmartPointer&lt;vtkRenderer&gt;::New();</p>
<p>renderer-&gt;SetBackground(1,1,1); </p></font><font color="#008000" size="2"><font color="#008000" size="2">// Background color white</font></font><font size="2">
<p>vtkSmartPointer&lt;vtkRenderWindow&gt; renderWindow = vtkSmartPointer&lt;vtkRenderWindow&gt;::New();</p>
<p>renderWindow-&gt;AddRenderer(renderer);</p>
<p>renderWindow-&gt;SetSize(500,500);</p>
<p>vtkSmartPointer&lt;vtkRenderWindowInteractor&gt; renderWindowInteractor = vtkSmartPointer&lt;vtkRenderWindowInteractor&gt;::New();</p>
<p>renderWindowInteractor-&gt;SetRenderWindow ( renderWindow );</p>
<p>vtkSmartPointer&lt;MouseInteractorStyle&gt; style = vtkSmartPointer&lt;MouseInteractorStyle&gt;::New();</p>
<p>renderWindowInteractor-&gt;SetInteractorStyle( style );</p>
<p>style-&gt;render = renderer;</p>
<p>renderWindowInteractor-&gt;Initialize();</p>
<p>renderer-&gt;ResetCamera();</p>
<p></p></font><font color="#008000" size="2"><font color="#008000" size="2">//renderer-&gt;ResetCameraClippingRange();</font></font><font size="2">
<p>renderWindow-&gt;Render();</p>
<p>vtkCamera *camera = renderer-&gt;GetActiveCamera();</p>
<p>camera-&gt;SetClippingRange(1,30);</p>
<p></p></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">double</font></font><font size="2"> *n = </font><font color="#0000ff" size="2"><font color="#0000ff" size="2">new</font></font><font size="2"> </font><font color="#0000ff" size="2"><font color="#0000ff" size="2">double</font></font><font size="2">[2];
<p>n = camera-&gt;GetClippingRange();</p>
<p>vtkSmartPointer&lt;vtkCoordinate&gt; coordinate = vtkSmartPointer&lt;vtkCoordinate&gt;::New();</p>
<p>coordinate-&gt;SetCoordinateSystemToDisplay();</p>
<p>coordinate-&gt;SetValue(250,147);</p>
<p></p></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">double</font></font><font size="2"> *pt = </font><font color="#0000ff" size="2"><font color="#0000ff" size="2">new</font></font><font size="2"> </font><font color="#0000ff" size="2"><font color="#0000ff" size="2">double</font></font><font size="2">[3];
<p>pt = coordinate-&gt;GetComputedWorldValue(renderer);</p>
<p>cout &lt;&lt; pt[0] &lt;&lt; </p></font><font color="#a31515" size="2"><font color="#a31515" size="2">&quot; &quot;</font></font><font size="2"> &lt;&lt;pt[1] &lt;&lt; </font><font color="#a31515" size="2"><font color="#a31515" size="2">&quot; &quot;</font></font><font size="2"> &lt;&lt; pt[2] &lt;&lt; endl;
<p></p>
<p>vtkSmartPointer&lt;vtkPolyDataMapper&gt; mapper = vtkSmartPointer&lt;vtkPolyDataMapper&gt;::New();</p>
<p></p>
<p></p></font><font color="#008000" size="2"><font color="#008000" size="2">/* vtkSmartPointer&lt;vtkSphereSource&gt; sphereSource = vtkSmartPointer&lt;vtkSphereSource&gt;::New();
<p>sphereSource-&gt;SetCenter(pt[0],pt[1],pt[2]*1*n[0]);</p>
<p>sphereSource-&gt;SetRadius(0.1);</p>
<p>sphereSource-&gt;Update();</p>
<p>mapper-&gt;SetInputConnection(sphereSource-&gt;GetOutputPort());*/</p></font></font><font size="2">
<p>mapper-&gt;SetInputConnection(imageDataGeometryFilter-&gt;GetOutputPort());</p>
<p>vtkSmartPointer&lt;vtkActor&gt; actor = vtkSmartPointer&lt;vtkActor&gt;::New();</p>
<p>actor-&gt;SetMapper(mapper);</p>
<p>renderer-&gt;AddActor(actor);</p>
<p>renderWindowInteractor-&gt;Start();</p>
<p></p></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">return</font></font><font size="2"> EXIT_SUCCESS;
<p>}</p></font>