<br><div class="gmail_quote">On Fri, Jun 12, 2009 at 8:17 AM, vtklearny <span dir="ltr">&lt;<a href="mailto:msjean@gmx.de">msjean@gmx.de</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>
Hello there,<br>
<br>
I just have started learning about vtk.<br>
Please have a look at this code and tell me what I&#39;m doing wrong here.<br>
Thanks a lot<br>
<br>
vtkLearny<br>
<br>
<br>
Objectives:<br>
1. load *.vtk //works<br>
2. install normalFilter //computes normal data<br>
3. change point data //works<br>
4. filter update (recompute normals)// seems not to work<br>
5. render //only original data is shown,not even points moved<br>
6. enjoy the look in wireframe and surface mode  //far from it<br>
-------------------------------------<br></blockquote></div><br>Your first few lines seem a bit odd to me. I generally update the reader before I get it&#39;s output:<br><br>    vtkSmartPointer&lt;vtkPolyDataReader&gt; reader = vtkSmartPointer&lt;vtkPolyDataReader&gt;::New();<br>
    const char* filename=&quot;cube.vtk&quot;;<br>    reader-&gt;SetFileName(filename);<br>    reader-&gt;Update();<br>    vtkPolyData* polydata=reader-&gt;GetOutput();<br><br>I think it gets done automatically when you use the next filter, but I&#39;d suppose it&#39;s good practice to do it like this - can someone else let us know if that&#39;s wrong?<br>
<br>You can update the points without getting a new instance of the vtkPoints or &quot;MappedPolyData&quot; pointers, like this (operating directly on the original data):<br><br>    vtkSmartPointer&lt;vtkPolyDataReader&gt; reader = vtkSmartPointer&lt;vtkPolyDataReader&gt;::New();<br>
    const char* filename=&quot;cube.vtk&quot;;<br>    reader-&gt;SetFileName(filename);<br>    reader-&gt;Update();<br>    vtkPolyData* polydata=reader-&gt;GetOutput();<br>    <br>    vtkPolyDataMapper *Mapper = vtkPolyDataMapper::New();<br>
    Mapper-&gt;ScalarVisibilityOff();<br>    Mapper-&gt;SetInput(polydata);<br><br>    vtkPoints* Points=polydata-&gt;GetPoints();<br>        unsigned int numOfMovedPoints=Points-&gt;GetNumberOfPoints();<br>//this just extends<br>
        for (unsigned int i=0;i&lt;numOfMovedPoints;i++)<br>    {<br>                           double point[3];<br>               Points-&gt;GetPoint(i,point);<br>        point[0] = point[0] * 1.6;<br>        point[1] = point[1] * 0.8;<br>
        point[2] = point[2] * 0.91;<br>               Points-&gt;SetPoint(i,point);<br>        }<br><br>I have removed everything relating to the normals. I&#39;m not sure how you are expecting to see the normals in this example? Maybe you can be a bit more clear on what you expect to see at each step?<br>
<br clear="all">Thanks,<br><br>David<br>