<table cellspacing="0" cellpadding="0" border="0" ><tr><td valign="top" style="font: inherit;">Hello everyone<br>i am working on a dataset(.raw). i am importing the dataset using imageimport function. I am able to visualize the dataset on the renderwindow. after that i try to invoke some key press events. Like if i press "y" half the dataset should become blank and then when i press "m" one fourth of the dataset should become blank. All this should happend on the same window one after the other.&nbsp; In my program what happens is, If i press "y" then half the dataset goes blank, but when i try to press"m" after i press "y" nothing happens. What i want is on the same renderwindow when i press "y" half the dataset should go blank and then when i press"m" again on the same window the dataset should reduce by one fourth.<br>Please help me <br>Thanks <br>Frency Varghese<br><br>here is my code<br>#include &lt;iostream&gt;<br>#include
 &lt;fstream&gt;<br>#include &lt;string&gt;<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 "vtkImageFlip.h"<br>//#include "vtkInteractorStyle.h"<br>#include "vtkCommand.h"<br>#include "vtkInteractorStyleUser.h"<br>#include "vtkDataObject.h"<br>using namespace std;<br>&nbsp;&nbsp; const int x_max=54;<br>&nbsp;&nbsp; const int y_max=47;<br>&nbsp;&nbsp; const int z_max=63;<br><br>unsigned char* p= new unsigned char[x_max*y_max*z_max];<br>vtkImageImport *Importer = vtkImageImport::New();<br>&nbsp;&nbsp;&nbsp;&nbsp; vtkRenderer *aRenderer = vtkRenderer::New();<br>&nbsp; vtkRenderWindow *renWin = vtkRenderWindow::New();<br>vtkContourFilter *skinExtractor =
 vtkContourFilter::New();<br>vtkPolyDataNormals *skinNormals = vtkPolyDataNormals::New();<br>&nbsp;vtkPolyDataMapper *skinMapper = vtkPolyDataMapper::New();<br>&nbsp;vtkActor *skin = vtkActor::New();<br>vtkCamera *aCamera = vtkCamera::New();<br>vtkImageImport *Importer1 = vtkImageImport::New();<br>&nbsp;&nbsp;&nbsp;&nbsp; vtkRenderer *aRenderer1 = vtkRenderer::New();<br>&nbsp; vtkRenderWindow *renWin1 = vtkRenderWindow::New();<br>vtkContourFilter *skinExtractor1 = vtkContourFilter::New();<br>vtkPolyDataNormals *skinNormals1 = vtkPolyDataNormals::New();<br>&nbsp;vtkPolyDataMapper *skinMapper1 = vtkPolyDataMapper::New();<br>&nbsp;vtkActor *skin1 = vtkActor::New();<br>vtkCamera *aCamera1 = vtkCamera::New();<br>vtkRenderWindowInteractor *iren1 = vtkRenderWindowInteractor::New();<br>class vtkMyCallback : public vtkCommand<br>{<br>public:<br>&nbsp; static vtkMyCallback *New()<br>&nbsp;&nbsp;&nbsp; { return new vtkMyCallback;}<br>&nbsp; void
 Delete()<br>&nbsp;&nbsp;&nbsp; { delete this; }<br>&nbsp; virtual void Execute(vtkObject *caller, unsigned long, void*)<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int x,y,z;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int index;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vtkRenderWindowInteractor *iren1= reinterpret_cast&lt;vtkRenderWindowInteractor*&gt;(caller);<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; char key = *(iren1-&gt;GetKeySym());<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (key=='y')<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(z=0; z&lt;z_max; z++)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(y=0; y&lt;y_max; y++)<br>&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; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; index=(z*x_max*y_max+y*x_max+x);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (z&lt;z_max/2)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; p[index]=0;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // char key = *(iren1-&gt;GetKeySym());<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (key=='m')<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(z=0; z&lt;z_max; z++)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(y=0; y&lt;y_max;
 y++)<br>&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; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; index=(z*x_max*y_max+y*x_max+x);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (z&lt;z_max/4)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; p[index]=0;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (key=='o')<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(z=0; z&lt;z_max; z++)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 for(y=0; y&lt;y_max; y++)<br>&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; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; index=(z*x_max*y_max+y*x_max+x);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (z&lt;z_max/3)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; p[index]=0;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br><br>}<br>cout &lt;&lt; "Deleted the array" &lt;&lt;
 endl;<br><br>Importer1-&gt;Update();<br>skinExtractor1-&gt;Update();<br>skinNormals1-&gt;Update();<br>skinMapper1-&gt;Update();<br>skinExtractor1-&gt;SetInputConnection(Importer-&gt;GetOutputPort());<br>skin1-&gt;SetMapper(skinMapper1);<br>renWin1-&gt;Render();<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp; if (key=='n') {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cout &lt;&lt; "you chose no" &lt;&lt; endl;<br>&nbsp; cout &lt;&lt; " test value of the array " &lt;&lt; (int) p[68000] &lt;&lt; endl;<br>&nbsp; }<br>}<br>};<br><br>int main()<br>&nbsp;{<br>&nbsp;&nbsp; int x;<br>&nbsp;&nbsp; int y;<br>&nbsp;&nbsp; int z;<br>unsigned char* p1= new unsigned char[x_max*y_max*z_max];<br>&nbsp;&nbsp; ifstream inputFile;<br>&nbsp;&nbsp; inputFile.open("/home/owner/Desktop/iteration/15s.raw",ios::binary);<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(z=0; z&lt;z_max; z++)<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; for(y=0; y&lt;y_max; y++)<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; for(x=0; x&lt;x_max; x++)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; inputFile.read((char*) &amp;(p[z*x_max*y_max+y*x_max+x]),1);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; inputFile.read((char*) &amp;(p1[z*x_max*y_max+y*x_max+x]),1);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp; }<br><br><br>&nbsp;&nbsp;&nbsp; renWin-&gt;AddRenderer(aRenderer);<br>&nbsp;&nbsp;&nbsp; vtkRenderWindowInteractor *iren = vtkRenderWindowInteractor::New();<br>&nbsp;&nbsp;&nbsp;
 iren-&gt;SetRenderWindow(renWin);<br><br>Importer-&gt;SetDataExtent(0, 53, 0, 46, 0,&nbsp; 62);<br>Importer-&gt;SetWholeExtent(0, 53, 0, 46, 0, 62);<br>Importer-&gt;SetDataSpacing(1.0,1.0,1.0);<br>Importer-&gt;SetNumberOfScalarComponents(1);<br>Importer-&gt;SetDataScalarTypeToUnsignedChar();<br>Importer-&gt;SetImportVoidPointer(p);<br><br>&nbsp;&nbsp;&nbsp; skinExtractor-&gt;SetInputConnection(Importer-&gt;GetOutputPort());<br>&nbsp;&nbsp; skinExtractor-&gt;SetValue(0,100);<br><br>&nbsp;&nbsp; skinNormals-&gt;SetInputConnection(skinExtractor-&gt;GetOutputPort());<br>&nbsp;&nbsp; skinNormals-&gt;SetFeatureAngle(60);<br><br>&nbsp;&nbsp;&nbsp; skinMapper-&gt;SetInputConnection(skinNormals-&gt;GetOutputPort());<br>&nbsp;&nbsp;&nbsp; skinMapper-&gt;ScalarVisibilityOff();<br><br>&nbsp;&nbsp; skin-&gt;SetMapper(skinMapper);<br><br>&nbsp;&nbsp;&nbsp; aCamera-&gt;SetViewUp (0, 0, -1);<br>&nbsp;&nbsp;&nbsp; aCamera-&gt;SetPosition (0, 1, 0);<br>&nbsp;&nbsp;&nbsp;
 aCamera-&gt;SetFocalPoint (0, 0, 0);<br>&nbsp;&nbsp;&nbsp; aCamera-&gt;ComputeViewPlaneNormal();<br><br>&nbsp; aRenderer-&gt;AddActor(skin);<br>&nbsp; aRenderer-&gt;SetActiveCamera(aCamera);<br>&nbsp; aRenderer-&gt;ResetCamera ();<br>&nbsp; aCamera-&gt;Dolly(1.5);<br> iren =vtkRenderWindowInteractor::New();<br>&nbsp;iren-&gt;SetRenderWindow(renWin);<br>&nbsp;renWin-&gt;Render();<br>&nbsp;renWin-&gt;SetSize( 500, 500 );<br><br>&nbsp; iren-&gt;Initialize();<br><br>&nbsp;iren-&gt;Start();<br><br>vtkMyCallback *callback = vtkMyCallback::New();<br>&nbsp; iren1-&gt;AddObserver(vtkCommand::CharEvent, callback);<br><br>Importer1-&gt;SetDataExtent(0, 53, 0, 46, 0,&nbsp; 62);<br>Importer1-&gt;SetWholeExtent(0, 53, 0, 46, 0, 62);<br>Importer1-&gt;SetDataSpacing(1.0,1.0,1.0);<br>Importer1-&gt;SetNumberOfScalarComponents(1);<br>Importer1-&gt;SetDataScalarTypeToUnsignedChar();<br>Importer1-&gt;SetImportVoidPointer(p);<br><br>&nbsp;
 renWin1-&gt;AddRenderer(aRenderer1);<br><br>&nbsp;&nbsp;&nbsp; iren1-&gt;SetRenderWindow(renWin1);<br>&nbsp;&nbsp;&nbsp; skinExtractor1-&gt;SetInputConnection(Importer1-&gt;GetOutputPort());<br>&nbsp;&nbsp; skinExtractor1-&gt;SetValue(0,100);<br><br>&nbsp;&nbsp; skinNormals1-&gt;SetInputConnection(skinExtractor1-&gt;GetOutputPort());<br>&nbsp;&nbsp; skinNormals1-&gt;SetFeatureAngle(60);<br><br>&nbsp;&nbsp;&nbsp; skinMapper1-&gt;SetInputConnection(skinNormals1-&gt;GetOutputPort());<br>&nbsp;&nbsp;&nbsp; skinMapper1-&gt;ScalarVisibilityOff();<br><br>&nbsp;&nbsp; skin1-&gt;SetMapper(skinMapper1);<br><br>&nbsp;&nbsp;&nbsp; aCamera1-&gt;SetViewUp (0, 0, -1);<br>&nbsp;&nbsp;&nbsp; aCamera1-&gt;SetPosition (0, 1, 0);<br>&nbsp;&nbsp;&nbsp; aCamera1-&gt;SetFocalPoint (0, 0, 0);<br>&nbsp;&nbsp;&nbsp; aCamera1-&gt;ComputeViewPlaneNormal();<br><br>&nbsp; aRenderer1-&gt;AddActor(skin1);<br>&nbsp; aRenderer1-&gt;SetActiveCamera(aCamera1);<br>&nbsp;
 aRenderer1-&gt;ResetCamera ();<br>&nbsp; aCamera1-&gt;Dolly(1.5);<br> <br>iren =vtkRenderWindowInteractor::New();<br>&nbsp;iren-&gt;SetRenderWindow(renWin);<br>&nbsp;renWin1-&gt;Render();<br>&nbsp;renWin1-&gt;SetSize( 500, 500 );<br><br>&nbsp; iren1-&gt;Initialize();<br>&nbsp;iren1-&gt;Start();<br><br>&nbsp; inputFile.close();<br>&nbsp; Importer-&gt;Delete();<br>&nbsp; skinExtractor-&gt;Delete();<br>&nbsp; skinMapper-&gt;Delete();<br>&nbsp; skin-&gt;Delete();<br>&nbsp; aCamera-&gt;Delete();<br>&nbsp; iren-&gt;Delete();<br>&nbsp; renWin-&gt;Delete();<br>&nbsp; aRenderer-&gt;Delete();<br>&nbsp; skinExtractor1-&gt;Delete();<br>&nbsp; skinMapper1-&gt;Delete();<br>&nbsp; skin1-&gt;Delete();<br>&nbsp; aCamera1-&gt;Delete();<br>&nbsp; iren1-&gt;Delete();<br>&nbsp; renWin1-&gt;Delete();<br>&nbsp; aRenderer1-&gt;Delete();<br>&nbsp; Importer1-&gt;Delete();<br>&nbsp;&nbsp;&nbsp; return 0;<br>}<br><br></td></tr></table><br>