<div class="gmail_quote">On Thu, Mar 4, 2010 at 10:41 AM, Marius Erdt <span dir="ltr">&lt;<a href="mailto:marius.erdt@gmx.de">marius.erdt@gmx.de</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Hi vtk-users,<br>
<br>
I&#39;ve got a function that should recompute the normals of a vtkPolyData. However, if I try to delete the input poly by calling Delete and assign the output of the filter to its variable, the program chrashes.<br>
<br>
void computeNormals( vtkPolyData* &amp;poly ){<br>
<br>
    vtkPolyDataNormals* normalsGen = vtkPolyDataNormals::New();<br>
    normalsGen-&gt;SetInput( poly );<br>
    normalsGen-&gt;Update();<br>
<br>
    poly-&gt;Delete();<br>
    poly = NULL;<br>
    poly = vtkPolyData::New();<br>
    poly-&gt;DeepCopy( normalsGen-&gt;GetOutput() );<br>
<br>
    normalsGen-&gt;Delete();<br>
}<br>
<br>
The codes works if I don&#39;t delete the input PolyData. However, then I got a memory leak since the data of the original poly is not released.<br>
<br>
Does anyone knows a solution?<br>
<br>
Thanks,<br>
Marius<br><br></blockquote><div class="gmail_quote"><br></div><div class="gmail_quote">What happens if you do:</div><div class="gmail_quote"><br></div>void computeNormals( vtkPolyData* &amp;poly )</div><div class="gmail_quote">
{<br><br>   vtkSmartPointer&lt;vtkPolyDataNormals&gt; normalsGen = </div><div class="gmail_quote">     vtkSmartPointer&lt;vtkPolyDataNormals&gt;::New();<br>   normalsGen-&gt;SetInput( poly );<br>   normalsGen-&gt;Update();<br>
<br>   poly-&gt;ShallowCopy(normalsGen-&gt;GetOutput() <br>}</div><div class="gmail_quote"><br></div><div class="gmail_quote">?</div>