<table cellspacing="0" cellpadding="0" border="0" ><tr><td valign="top" style="font: inherit;">Hello Everyone<br>I am trying to get the location of a point picked by clicking the mouse on the render window. I tried to write a code for it. but nothing is happening. where will the locations of the picked point be displayed?<br><br>Pls Help<br>Rgds<br>Frency<br>Here is my code:-<br>#include &lt;iostream&gt;<br>#include &lt;fstream&gt;<br>#include &lt;string&gt;<br>#include "vtkTextProperty.h"<br>#include "vtkTextMapper.h"<br>#include "vtkInteractorStyleTrackballCamera.h"<br>int MouseMotion;<br>#include "vtkCallbackCommand.h"<br>#include "vtkImageImport.h"<br>#include "vtkRenderWindowInteractor.h"<br>#include "vtkRenderer.h"<br>#include "vtkRenderWindow.h"<br>#include "vtkContourFilter.h"<br>#include "vtkPolyDataNormals.h"<br>#include "vtkPolyDataMapper.h"<br>#include "vtkActor.h"<br>#include "vtkOutlineFilter.h"<br>#include "vtkCamera.h"<br>#include
 "vtkCommand.h"<br>#include "vtkCellPicker.h"<br>#include "vtkActor2D.h"<br>#include&nbsp; "vtkLabeledDataMapper.h"<br>vtkImageImport *Importer = vtkImageImport::New();<br>vtkContourFilter *skinExtractor = vtkContourFilter::New();<br>vtkPolyDataNormals *skinNormals = vtkPolyDataNormals::New();<br>vtkPolyDataMapper *skinMapper = vtkPolyDataMapper::New();<br>vtkActor *skin = vtkActor::New();<br>vtkRenderer *aRenderer = vtkRenderer::New();<br>vtkRenderWindow *renWin = vtkRenderWindow::New();<br>vtkCellPicker *picker = vtkCellPicker::New();<br><br>vtkActor2D *textActor;<br>vtkTextMapper *textMapper;<br>vtkRenderWindowInteractor *iren;<br><br>class PickCommand : public vtkCommand<br>{<br>public:<br><br>&nbsp;&nbsp;&nbsp; static PickCommand *New() { return new PickCommand; }<br>&nbsp;&nbsp;&nbsp; void Delete() { delete this; }<br><br>&nbsp;&nbsp;&nbsp; virtual void Execute(vtkObject *caller, unsigned long l, void *callData)<br>&nbsp;&nbsp;&nbsp;
 {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cout&lt;&lt;"this is it"&lt;&lt; endl;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (picker-&gt;GetCellId() &lt; 0 )<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; textActor-&gt;VisibilityOff();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; double selpt[3];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; picker-&gt;GetSelectionPoint(selpt);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; double x = selpt[0];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; double y = selpt[1];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; double
 pickPos[3];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; picker-&gt;GetPickPosition( pickPos );<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; double xp = pickPos[0];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; double yp = pickPos[1];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; double zp = pickPos[2];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cout&lt;&lt;zp&lt;&lt;endl;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; char text[120];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sprintf( text, "(%5.5f,&nbsp; %5.5f,&nbsp; %5.5f)", xp, yp, zp );<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; textMapper-&gt;SetInput( text );<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; textActor-&gt;SetPosition(10,
 10);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; textActor-&gt;VisibilityOn();<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; renWin-&gt;Render();<br>&nbsp;&nbsp;&nbsp; }<br>};<br><br><br><br>&nbsp;// No. of iterations to be done//<br>int x_max=54;<br>int y_max=47;<br>int z_max=63;<br>const int x_neigh=50000;<br>const int y_neigh=50000;<br>const int z_neigh=50000;<br>int count_vv;<br><br>//**reading image into an array**//<br><br>int x,y,z;<br><br><br>unsigned short* ImageArray= new unsigned short[x_max*y_max*z_max];<br><br>using namespace std;<br><br>//*****Main program starts****//<br>int main()<br><br>&nbsp;{<br><br><br>&nbsp;&nbsp; int x;<br>&nbsp;&nbsp; int y;<br>&nbsp;&nbsp; int z;<br><br>//**reading the .raw image into and array **//<br><br>&nbsp;&nbsp; ifstream inputFile;<br>&nbsp;&nbsp;
 inputFile.open("/home/owner/Desktop/iteration/15s.raw",ios::binary);<br>&nbsp;&nbsp;&nbsp;&nbsp; for(z=0; z&lt;z_max; z++)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(y=0; y&lt;y_max; y++)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(x=0; x&lt;x_max; x++)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; inputFile.read((char*) &amp;(ImageArray[z*x_max*y_max+y*x_max+x]),2);<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br><br><br><br>&nbsp;//** Create the renderer, the render window, and the
 interactor.**//<br>&nbsp;//** The renderer draws into the render window, the interactor keyboard-based interaction with the data within the render window.**//<br><br>//cout&lt;&lt;"this is it"&lt;&lt; endl;<br>&nbsp;&nbsp;&nbsp;&nbsp; renWin-&gt;AddRenderer(aRenderer);<br>&nbsp;&nbsp;&nbsp;&nbsp; vtkRenderWindowInteractor *iren = vtkRenderWindowInteractor::New();<br>&nbsp;&nbsp;&nbsp;&nbsp; iren-&gt;SetRenderWindow(renWin);<br><br>//**using image import class the inmage in the array is moved into the buffer**//<br><br>&nbsp;&nbsp;&nbsp;&nbsp; Importer-&gt;SetDataExtent(0, 53, 0, 46, 0,&nbsp; 62);<br>&nbsp;&nbsp;&nbsp;&nbsp; Importer-&gt;SetWholeExtent(0, 53, 0, 46, 0, 62);<br>&nbsp;&nbsp;&nbsp;&nbsp; Importer-&gt;SetDataSpacing(1.0,1.0,1.0);<br>&nbsp;&nbsp;&nbsp;&nbsp; Importer-&gt;SetNumberOfScalarComponents(1);<br>&nbsp;&nbsp;&nbsp;&nbsp; Importer-&gt;SetDataScalarTypeToUnsignedShort();<br>&nbsp;&nbsp;&nbsp;&nbsp;
 Importer-&gt;SetImportVoidPointer(ImageArray);<br>// An isosurface, or contour value of 100 is known to correspond to the<br>&nbsp; //inner surface. Once generated, a vtkPolyDataNormals filter is<br>&nbsp; // is used to create normals for smooth surface shading during rendering.<br><br>&nbsp;&nbsp;&nbsp;&nbsp; skinExtractor-&gt;SetInputConnection(Importer-&gt;GetOutputPort());<br>&nbsp;&nbsp;&nbsp;&nbsp; skinExtractor-&gt;SetValue(0,109);<br><br>&nbsp;&nbsp;&nbsp;&nbsp; vtkPolyDataNormals *skinNormals = vtkPolyDataNormals::New();<br>&nbsp;&nbsp;&nbsp;&nbsp; skinNormals-&gt;SetInputConnection(skinExtractor-&gt;GetOutputPort());<br>&nbsp;&nbsp;&nbsp;&nbsp; skinNormals-&gt;SetFeatureAngle(60);<br><br>&nbsp;&nbsp;&nbsp;&nbsp; skinMapper-&gt;SetInputConnection(skinNormals-&gt;GetOutputPort());<br>&nbsp;&nbsp;&nbsp;&nbsp; skinMapper-&gt;ScalarVisibilityOff();<br>&nbsp;&nbsp;&nbsp;&nbsp; skin-&gt;SetMapper(skinMapper);<br><br><br>&nbsp;&nbsp;&nbsp;
 vtkCallbackCommand *pickerCommand = vtkCallbackCommand::New();<br>&nbsp;&nbsp;&nbsp; PickCommand* pickObserver = PickCommand::New();<br><br><br>&nbsp;&nbsp;&nbsp; aRenderer-&gt;SetBackground(1.5, 1.5, 1.5);<br><br><br>&nbsp;&nbsp;&nbsp;&nbsp; vtkCamera *aCamera = vtkCamera::New();<br>&nbsp;&nbsp;&nbsp;&nbsp; aCamera-&gt;SetViewUp (0, 0, -1);<br>&nbsp;&nbsp;&nbsp;&nbsp; aCamera-&gt;SetPosition (0, 1, 0);<br>&nbsp;&nbsp;&nbsp;&nbsp; aCamera-&gt;SetFocalPoint (0, 0, 0);<br>&nbsp;&nbsp;&nbsp;&nbsp; aCamera-&gt;ComputeViewPlaneNormal();<br><br><br><br>&nbsp;&nbsp;&nbsp;&nbsp; aRenderer-&gt;AddActor(skin);<br>&nbsp;&nbsp;&nbsp;&nbsp; aRenderer-&gt;SetActiveCamera(aCamera);<br>&nbsp;&nbsp;&nbsp;&nbsp; aRenderer-&gt;ResetCamera ();<br>&nbsp;&nbsp;&nbsp;&nbsp; aCamera-&gt;Dolly(1.5);<br><br><br>//** defining the vtk windowinteractor**//<br>&nbsp;&nbsp;&nbsp;&nbsp; iren =vtkRenderWindowInteractor::New();<br>&nbsp;&nbsp;&nbsp;&nbsp;
 iren-&gt;SetRenderWindow(renWin);<br>&nbsp;&nbsp;&nbsp;&nbsp; renWin-&gt;Render();<br>&nbsp;&nbsp;&nbsp;&nbsp; renWin-&gt;SetSize(500, 500 );<br><br><br><br>&nbsp;&nbsp;&nbsp;&nbsp; iren-&gt;Initialize();<br><br><br>&nbsp;&nbsp;&nbsp;&nbsp; iren-&gt;Start();<br><br>//**delete all objects created previously to preventmemory leaks**//<br><br>picker-&gt;RemoveObserver( pickObserver );<br>&nbsp;picker-&gt;Delete();<br>&nbsp;&nbsp;&nbsp; textMapper-&gt;Delete();<br>&nbsp;&nbsp;&nbsp; textActor-&gt;Delete();<br>&nbsp;&nbsp;&nbsp; pickerCommand-&gt;Delete();<br>//&nbsp;&nbsp;&nbsp; style-&gt;Delete();<br><br>pickObserver-&gt;Delete();<br>inputFile.close();<br>&nbsp;&nbsp;&nbsp;&nbsp; //picker-&gt;Delete();<br>&nbsp;&nbsp;&nbsp;&nbsp; Importer-&gt;Delete();<br>&nbsp;&nbsp;&nbsp;&nbsp; skinExtractor-&gt;Delete();<br>&nbsp;&nbsp;&nbsp;&nbsp; skinMapper-&gt;Delete();<br>&nbsp;&nbsp;&nbsp;&nbsp; skin-&gt;Delete();<br>&nbsp;&nbsp;&nbsp;&nbsp;
 aCamera-&gt;Delete();<br>&nbsp;&nbsp;&nbsp;&nbsp; renWin-&gt;Delete();<br>&nbsp;&nbsp;&nbsp;&nbsp; aRenderer-&gt;Delete();<br>&nbsp; return 0;<br>&nbsp;}<br><br><br><br><br></td></tr></table><br>