[vtkusers] Why delete points set after SetPoints leads to bug
    Jana Sefcikova 
    neollie at gmail.com
       
    Sat May 26 08:46:43 EDT 2012
    
    
  
Dear users,
I had implemented a function for programable filter . Inside function I am
deleting already assigned point set but it leads to "Bad access".
If I do not delete them, there is no problem.
Could someone explain me, why deletion is problem. I do not understand when
data are fully copied after assignement and when are only passed by
reference.
My code:
void filter_function(void* arguments)
{
    std::cout << "cos" << std::endl;
    vtkProgrammableFilter* programmableFilter =
    static_cast<vtkProgrammableFilter*>(arguments);
    vtkPoints* inPts = programmableFilter->GetPolyDataInput()->GetPoints();
    vtkIdType numPts = inPts->GetNumberOfPoints();
    vtkSmartPointer<vtkPoints> newPts =
    vtkSmartPointer<vtkPoints>::New();
    newPts->SetNumberOfPoints(numPts);
    for(vtkIdType i = 0; i < numPts; i++)
    {
        double p[3];
        inPts->GetPoint(i, p);
        if (i == 0 ){ cout << "first point = [" << p[0] << "," << p[1] <<
"," << p[2] << "]"<<endl; }
        double p_new[3];
        p_new[0] = p[0];
        p_new[1] = p[1];
        p_new[2] = cos(p[0]);
        newPts->SetPoint(i, p_new);
        // Delete p_new ?
    }
    programmableFilter->GetPolyDataOutput()->CopyStructure
(programmableFilter->GetPolyDataInput());
    programmableFilter->GetPolyDataOutput()->SetPoints(newPts);
    //newPts->Delete(); // Lead to BUG
}
vtkSmartPointer<vtkProgrammableFilter> filter = vtkSmartPointer<
vtkProgrammableFilter>::New();
filter->SetExecuteMethod(filter_function, filter);
Thanks in advance.
Jana
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20120526/aaff0cc3/attachment.htm>
    
    
More information about the vtkusers
mailing list