<br><div class="gmail_quote">On Fri, Jun 12, 2009 at 8:17 AM, vtklearny <span dir="ltr"><<a href="mailto:msjean@gmx.de">msjean@gmx.de</a>></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'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's output:<br><br> vtkSmartPointer<vtkPolyDataReader> reader = vtkSmartPointer<vtkPolyDataReader>::New();<br>
const char* filename="cube.vtk";<br> reader->SetFileName(filename);<br> reader->Update();<br> vtkPolyData* polydata=reader->GetOutput();<br><br>I think it gets done automatically when you use the next filter, but I'd suppose it's good practice to do it like this - can someone else let us know if that's wrong?<br>
<br>You can update the points without getting a new instance of the vtkPoints or "MappedPolyData" pointers, like this (operating directly on the original data):<br><br> vtkSmartPointer<vtkPolyDataReader> reader = vtkSmartPointer<vtkPolyDataReader>::New();<br>
const char* filename="cube.vtk";<br> reader->SetFileName(filename);<br> reader->Update();<br> vtkPolyData* polydata=reader->GetOutput();<br> <br> vtkPolyDataMapper *Mapper = vtkPolyDataMapper::New();<br>
Mapper->ScalarVisibilityOff();<br> Mapper->SetInput(polydata);<br><br> vtkPoints* Points=polydata->GetPoints();<br> unsigned int numOfMovedPoints=Points->GetNumberOfPoints();<br>//this just extends<br>
for (unsigned int i=0;i<numOfMovedPoints;i++)<br> {<br> double point[3];<br> Points->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->SetPoint(i,point);<br> }<br><br>I have removed everything relating to the normals. I'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>