<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html; charset=ISO-8859-1"
 http-equiv="Content-Type">
  <title></title>
</head>
<body bgcolor="#ffffff" text="#000000">
<br>
<blockquote
 cite="mid:AANLkTi=Eadi4pGaWstZDMZkOz-_jVVa6-68wzDbDxg7H@mail.gmail.com"
 type="cite">
  <div dir="ltr"><span class="Apple-style-span"
 style="font-family: arial,sans-serif; font-size: 13px; border-collapse: collapse;">
  <div><span class="Apple-style-span"
 style="font-family: arial,sans-serif; font-size: 13px; border-collapse: collapse;"><br>
  </span></div>
  <div>I think, the same code should work fine if you use a 1D double
array instead of 2D.</div>
  <div><br>
  </div>
  <div>Prathamesh</div>
  <div><span class="Apple-style-span"
 style="font-family: arial,sans-serif; font-size: 13px; border-collapse: collapse;"><br>
  </span></div>
  <br>
  </span></div>
</blockquote>
<br>
Prathamesh,<br>
<br>
Thank you very much for your response; this is greatly appreciated!&nbsp; I
tried changing my example code to use a 1D double array, but I still
receive a similar result.&nbsp; The window that is displayed by VTK shows
only "garbage" data.&nbsp; The rendered data appears as a series of white
lines which I believe to be indicative of uninitialized memory.<br>
<br>
What am I doing wrong with my example code?&nbsp; Perhaps I am not utilizing
the SetWholeExtent() and SetDataExtent() functions properly?&nbsp; Might
there be another way to display the matrix?<br>
<br>
Here is the example function that I am now attempting to run.&nbsp; What I
now do is copy the data into a 1D array before passing it into the
SetImportVoidPointer() function:<br>
<br>
void test_VTK()<br>
{<br>
&nbsp;&nbsp;&nbsp; std::string fileName = "M.txt";<br>
&nbsp;&nbsp;&nbsp; double deltax = 1.0e-3;<br>
&nbsp;&nbsp;&nbsp; double deltay = 1.0e-3;<br>
&nbsp;&nbsp;&nbsp; int Nx = 1000;<br>
&nbsp;&nbsp;&nbsp; int Ny = 1000;<br>
&nbsp;&nbsp;&nbsp; int PML_num = 20;<br>
<br>
&nbsp;&nbsp;&nbsp; int Nxp = Nx + 2 * PML_num;<br>
&nbsp;&nbsp;&nbsp; int Nyp = Ny + 2 * PML_num;<br>
<br>
&nbsp;&nbsp;&nbsp; TNT::Array2D&lt;double&gt; M(Nxp, Nyp);<br>
&nbsp;&nbsp;&nbsp; //double **pm;<br>
&nbsp;&nbsp;&nbsp; load_matrix( fileName, &amp;M );<br>
<br>
&nbsp;&nbsp;&nbsp; vtkSmartPointer&lt;vtkImageImport&gt; import =<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; vtkSmartPointer&lt;vtkImageImport&gt;::New();<br>
<br>
&nbsp;&nbsp;&nbsp; // copy into 1D Array<br>
&nbsp;&nbsp;&nbsp; std::cout &lt;&lt; "Copying data " &lt;&lt; std::endl;<br>
&nbsp;&nbsp;&nbsp; int num = Nxp * Nyp;<br>
&nbsp;&nbsp;&nbsp; TNT::Array1D&lt;double&gt; pm(num);<br>
&nbsp;&nbsp;&nbsp; std::cout &lt;&lt; "Have now created the matrix" &lt;&lt; std::endl;<br>
&nbsp;&nbsp;&nbsp; int counter = 0;<br>
&nbsp;&nbsp;&nbsp; for(int i = 0; i &lt; Nxp; i++)<br>
&nbsp;&nbsp;&nbsp; {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; for(int j = 0; j &lt; Nyp; j++)<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; pm[counter++] = M[i][j];<br>
<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp; std::cout &lt;&lt; "Finishing copying data" &lt;&lt; std::endl;<br>
<br>
&nbsp;&nbsp;&nbsp; import-&gt;SetImportVoidPointer((void*)pm);<br>
&nbsp;&nbsp;&nbsp; import-&gt;SetWholeExtent(0,Nxp,0,Nyp,0,0);<br>
&nbsp;&nbsp;&nbsp; import-&gt;SetDataExtent(0,Nxp,0,Nyp,0,0);<br>
<br>
&nbsp;&nbsp;&nbsp; //vtkSmartPointer&lt;vtkImageData&gt; data =<br>
&nbsp;&nbsp;&nbsp; //&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; vtkSmartPointer&lt;vtkImageData&gt;::New();<br>
&nbsp;&nbsp;&nbsp; //data-&gt;setDimensions( 1040, 1040, 0 );<br>
<br>
&nbsp;&nbsp;&nbsp; vtkSmartPointer&lt;vtkLookupTable&gt; lookupTable =<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; vtkSmartPointer&lt;vtkLookupTable&gt;::New();<br>
<br>
&nbsp;&nbsp;&nbsp; vtkSmartPointer&lt;vtkScalarBarActor&gt; colorbar =<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; vtkSmartPointer&lt;vtkScalarBarActor&gt;::New();<br>
<br>
&nbsp;&nbsp;&nbsp; // add a colorbar<br>
&nbsp;&nbsp;&nbsp; lookupTable-&gt;SetNumberOfColors(9344);<br>
&nbsp;&nbsp;&nbsp; lookupTable-&gt;SetTableRange(0,10);<br>
&nbsp;&nbsp;&nbsp; lookupTable-&gt;ForceBuild();<br>
<br>
&nbsp;&nbsp;&nbsp; colorbar-&gt;SetLookupTable(lookupTable);<br>
&nbsp;&nbsp;&nbsp; colorbar-&gt;SetWidth(0.05);<br>
&nbsp;&nbsp;&nbsp; colorbar-&gt;SetPosition(0.95, 0.1);<br>
&nbsp;&nbsp;&nbsp; colorbar-&gt;SetLabelFormat("%.3g");<br>
&nbsp;&nbsp;&nbsp; colorbar-&gt;PickableOff();<br>
&nbsp;&nbsp;&nbsp; colorbar-&gt;VisibilityOn();<br>
<br>
&nbsp;&nbsp;&nbsp; //std::string bunny = "633px-Bunny.jpg";<br>
<br>
&nbsp;&nbsp;&nbsp; //read the image<br>
&nbsp;&nbsp;&nbsp; //vtkSmartPointer&lt;vtkJPEGReader&gt; jPEGReader =<br>
&nbsp;&nbsp;&nbsp; //&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; vtkSmartPointer&lt;vtkJPEGReader&gt;::New();<br>
&nbsp;&nbsp;&nbsp; //jPEGReader-&gt;SetFileName ( bunny.c_str() );<br>
&nbsp;&nbsp;&nbsp; //jPEGReader-&gt;Update();<br>
<br>
&nbsp;&nbsp;&nbsp; vtkSmartPointer&lt;vtkImageViewer2&gt; viewer =<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;vtkSmartPointer&lt;vtkImageViewer2&gt;::New();<br>
&nbsp;&nbsp;&nbsp; viewer-&gt;SetInput(import-&gt;GetOutput());<br>
&nbsp;&nbsp;&nbsp; viewer-&gt;SetInput( import-&gt;GetOutput() );<br>
<br>
&nbsp;&nbsp;&nbsp; //setup renderer<br>
&nbsp;&nbsp;&nbsp; vtkSmartPointer&lt;vtkRenderer&gt; renderer =<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vtkSmartPointer&lt;vtkRenderer&gt;::New();<br>
&nbsp;&nbsp;&nbsp; renderer-&gt;AddActor ( viewer-&gt;GetImageActor() );<br>
&nbsp;&nbsp;&nbsp; renderer-&gt;AddActor(colorbar);<br>
&nbsp;&nbsp;&nbsp; renderer-&gt;ResetCamera();<br>
<br>
&nbsp;&nbsp;&nbsp; //setup render window<br>
&nbsp;&nbsp;&nbsp; vtkSmartPointer&lt;vtkRenderWindow&gt; renderWindow =<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vtkSmartPointer&lt;vtkRenderWindow&gt;::New();<br>
&nbsp;&nbsp;&nbsp; renderWindow-&gt;AddRenderer ( renderer );<br>
<br>
&nbsp;&nbsp;&nbsp; //setup render window interactor<br>
&nbsp;&nbsp;&nbsp; vtkSmartPointer&lt;vtkRenderWindowInteractor&gt;
renderWindowInteractor =<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vtkSmartPointer&lt;vtkRenderWindowInteractor&gt;::New();<br>
&nbsp;&nbsp;&nbsp; vtkSmartPointer&lt;vtkInteractorStyleImage&gt; style =<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vtkSmartPointer&lt;vtkInteractorStyleImage&gt;::New();<br>
<br>
&nbsp;&nbsp;&nbsp; renderWindowInteractor-&gt;SetInteractorStyle( style );<br>
<br>
&nbsp;&nbsp;&nbsp; //render and start interaction<br>
&nbsp;&nbsp;&nbsp; renderWindowInteractor-&gt;SetRenderWindow ( renderWindow );<br>
&nbsp;&nbsp;&nbsp; renderWindowInteractor-&gt;Initialize();<br>
&nbsp;&nbsp;&nbsp; renderWindowInteractor-&gt;Start();<br>
<br>
<br>
} // end function<br>
<br>
</body>
</html>