<div dir="ltr">Thank you David,<br><br>I have several questions regarding your answer, I would very appreciate it if you could answer any further information:<br><br>this is my code: <br><br>//the first function calculates normals to a member type <br>

void angleCalc::generateNormals(<div dir="ltr">vtkPolyData *polydata)<br>{<br>    m_normalGenerator-&gt;SetInput(polydata);<br>    m_normalGenerator-&gt;ComputePointNormalsOn();<br>    m_normalGenerator-&gt;ComputeCellNormalsOff();<br>
    m_normalGenerator-&gt;Update();<br>
}<br><br>//second function returns the normal at a specific idx from the polydata<br>double* angleCalc::getNormal(vtkIdType idx)<br>{    <br>    double arr[3];<br>    arr[0] = m_normalGenerator-&gt;GetOutput()-&gt;GetPointData()-&gt;GetComponent(idx,0);<br>

    arr[1] = m_normalGenerator-&gt;GetOutput()-&gt;GetPointData()-&gt;GetComponent(idx,1);<br>    arr[2] = m_normalGenerator-&gt;GetOutput()-&gt;GetPointData()-&gt;GetComponent(idx,2);<br>    return arr;<br>}<br><br>questions:<br>

-------------<br>1. why the following window of vtk appears with this massage ?<br>      &quot;vtkFieldData::GetComponent was deprecated for vtk 5.2 and will be removed &quot;<br>2. what&#39;s the difference between calculating cell/point normals?<br>

<br>3. regarding the vtkXMLPolyDataWriter:<br>      - why the .vtp represents in 3d Glyphse arrows in the<u> same direction</u> as the surface and not in the orthogonal plane as supposed to be? (image attached)   </div><div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div class="h5"> <br></div></div></div></blockquote><div><br>Many Thanks!<br>Best,<br>Hila <br></div>
<blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div><div class="h5">
<br><div class="gmail_quote">On Mon, Mar 12, 2012 at 4:43 PM, David Doria <span dir="ltr">&lt;<a href="mailto:daviddoria@gmail.com" target="_blank">daviddoria@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div>On Sun, Mar 11, 2012 at 2:10 PM, Hila Hiler &lt;<a href="mailto:hilahiler@gmail.com" target="_blank">hilahiler@gmail.com</a>&gt; wrote:<br>
&gt; Hi David,<br>
&gt;<br>
&gt; I&#39;ll try to explain again:<br>
&gt;<br>
&gt; How I can calculate the normal at a specific point (id) on polydata.<br>
&gt; I&#39;d like to visualize that normal too, so how to write that normal (as an<br>
&gt; arrow)?<br>
&gt;<br>
&gt; this is what I use, but it doesn&#39;t write the normals:<br>
&gt; void generateNormals(vtkPolyData* polydata)<br>
&gt; {<br>
&gt;<br>
&gt;     // Generate normals<br>
&gt;     vtkSmartPointer&lt;vtkPolyDataNormals&gt; normalGenerator =<br>
&gt; vtkSmartPointer&lt;vtkPolyDataNormals&gt;::New();<br>
&gt;     normalGenerator-&gt;SetInput(polydata);<br>
&gt;<br>
&gt;     normalGenerator-&gt;ComputePointNormalsOn();<br>
&gt;     normalGenerator-&gt;ComputeCellNormalsOff();<br>
&gt;     normalGenerator-&gt;Update();<br>
&gt;<br>
&gt;     polydata = normalGenerator-&gt;GetOutput();<br>
&gt;<br>
&gt;     vtkPolyDataWriter* writer = vtkPolyDataWriter::New();<br>
&gt;     writer-&gt;SetInput(polydata);<br>
&gt;     writer-&gt;SetFileName(&quot;normals.vtk&quot;);<br>
&gt;     writer-&gt;Write();<br>
&gt;<br>
&gt; }<br>
<br>
</div>You should use vtkXMLPolyDataWriter instead of vtkPolyDataWriter to<br>
write vtp files instead of vtk files. Also, the normals should be<br>
written to the file automatically. You just need to be sure to display<br>
them. If you are using ParaView (or even your own viewer using VTK) to<br>
view the file you can use the Glyph filter to draw arrows at each<br>
point in the direction of the normal at that point.<br>
<span><font color="#888888"><br>
David<br>
</font></span></blockquote></div><br></div></div></div>
</blockquote></div><br></div>