[vtkusers] How to really delete cells?

Corinne Tith cocoricore at gmail.com
Wed Jul 29 08:33:34 EDT 2009


Dominik,

I know cells are not removed because i tried something like:
*my_polyData->GetNumberOfCells(**); // returns 100 cells
for(int i = 1; i < 10; i++)
    my_polyData->GetPointData()->**GetArray(0)->SetTuple1(i,10);  //  part
of my volume color changes
for(int i = 1; i < 50; i++)
    my_polyData->DeleteCell(i);
my_polyData->**RemovedDeletedCells();
my_polyData>GetNumberOfCells()**; // returns 50 cells*

It seems ok, but on surface/wireframe mode, my volume is the same (except
for the color).

Moreover, I coded a method that color my surface by following connected
points. Some cells are not connected, even if I use ConnectivityFilter.

Stephane,
I tried your suggestion of ShallowCopy and I get a black screen. I think I
understand what you mean.

Maybe I should implement my own filter.
Thanks a lot for your help
Corinne




2009/7/28 Dominik Szczerba <dominik at itis.ethz.ch>

> Well ConnectivityFilter should do this job for you - no need for extra cell
> removal by foot.
>
> -- Dominik
>
> Stephane PLOIX wrote:
>
>>
>> my_polyData is at the end of a pipeline. Each time you Update it (which is
>> done at each frame if you render it), it is reset to the output of the
>> previous filter.
>> If you want to break the dependency chain, you have to insert a
>> ShallowCopy :
>> output = my_vtkPolyDataConnectivityFilter->GetOutput();
>> my_polyData = vtkPolyData::New();
>> my_polyData ->ShallowCopy(output);
>> ...
>> and remeber to call my_polyData ->Delete() later.
>>
>> But the best way would be to implement a filter that does the job to
>> remove some cells, so that your pipeline is still connected.
>>
>> Stephane
>>
>>
>>
>>
>> *cocoricore at gmail.com*
>> Envoyé par : vtkusers-bounces at vtk.org
>>
>> 28/07/2009 15:47
>>
>>
>> A
>>        dominik at itis.ethz.ch
>> cc
>>        vtkusers at vtk.org
>> Objet
>>        Re: [vtkusers] How to really delete cells?
>>
>>
>>
>>
>>
>>
>>
>>
>> No change.
>>
>> 2009/7/28 Dominik Szczerba < dominik at itis.ethz.ch <mailto:
>> dominik at itis.ethz.ch> >
>> And what does calling ->Update() ?
>>
>> Corinne Tith wrote:
>> Thanks for your help. I tried to put your code after
>> my_polyData->RemoveDeletedCells();
>> Unfortunately It doesn't work.
>> I tried to delete lot of cells, they are never really removed.
>>
>> My VTK version is 5.2, does it matter?
>>
>>
>> 2009/7/28 Dominik Szczerba < dominik at itis.ethz.ch <mailto:
>> dominik at itis.ethz.ch> <mailto: dominik at itis.ethz.ch <mailto:
>> dominik at itis.ethz.ch> >>
>>
>>
>>
>>   my_polyData->Modified()
>>
>>   Corinne Tith wrote:
>>
>>       Hi all,
>>
>>       I get a polydata volume with a vtkContourFilter and a
>>       vtkWindowSincPolyDataFilter.
>>       Some cells are not connected to the largest volume. They seem to
>>       be 'on' the mesh but have no vertice in common.
>>
>>       I tried the filters vtkCleanPolyData and
>>       vtkPolyDataConnectivityFilter, but most of my unconnected cells
>>       are not removed.
>>       Finally, I tried to delete them 'manually', but nothing happens.
>>
>>       How can I really remove my unconnected cells?
>>
>>       Any help is appreciated, thanks!
>>
>>
>>       // generate my volume
>>
>>   my_vtkWindowSincPolyDataFilter->SetInputConnection(my_vtkContourFilter->GetOutputPort());
>>
>>       // no effect on my cells
>>
>>   my_vtkCleanPolyData->SetInputConnection(my_vtkWindowSincPolyDataFilter->GetOutputPort());
>>
>>       my_vtkCleanPolyData->PointMergingOn();
>>
>>   my_vtkPolyDataConnectivityFilter->SetInputConnection(my_vtkContourFilter->GetOutputPort());
>>
>> my_vtkPolyDataConnectivityFilter->SetExtractionModeToLargestRegion();
>>       // manual remove
>>       my_vtkPolyDataConnectivityFilter->Update();
>>       my_polyData = my_vtkPolyDataConnectivityFilter->GetOutput();
>>       for(int i = 0; i < n; i++){
>>             my_polyData->DeleteCell(cellsToRemove[i]);
>>       }
>>       my_polyData->RemoveDeletedCells();
>>
>>
>>
>>   ------------------------------------------------------------------------
>>
>>       _______________________________________________
>>       Powered by www.kitware.com <http://www.kitware.com/> <
>> http://www.kitware.com <http://www.kitware.com/> >
>>
>>
>>       Visit other Kitware open-source projects at
>>        http://www.kitware.com/opensource/opensource.html <
>> http://www.kitware.com/opensource/opensource.html>
>>
>>       Please keep messages on-topic and check the VTK FAQ at:
>>        http://www.vtk.org/Wiki/VTK_FAQ <http://www.vtk.org/Wiki/VTK_FAQ>
>>
>>       Follow this link to subscribe/unsubscribe:
>>        http://www.vtk.org/mailman/listinfo/vtkusers <
>> http://www.vtk.org/mailman/listinfo/vtkusers>
>>
>>
>>
>>
>> _______________________________________________
>> Powered by www.kitware.com
>>
>> Visit other Kitware open-source projects at
>> http://www.kitware.com/opensource/opensource.html
>>
>> Please keep messages on-topic and check the VTK FAQ at:
>> http://www.vtk.org/Wiki/VTK_FAQ
>>
>> Follow this link to subscribe/unsubscribe:
>> http://www.vtk.org/mailman/listinfo/vtkusers
>>
>>
>> ------------------------------------------------------------------------
>>
>> _______________________________________________
>> Powered by www.kitware.com
>>
>> Visit other Kitware open-source projects at
>> http://www.kitware.com/opensource/opensource.html
>>
>> Please keep messages on-topic and check the VTK FAQ at:
>> http://www.vtk.org/Wiki/VTK_FAQ
>>
>> Follow this link to subscribe/unsubscribe:
>> http://www.vtk.org/mailman/listinfo/vtkusers
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20090729/e1e543d0/attachment.htm>


More information about the vtkusers mailing list