[vtkusers] Cell data in a vtkPolyData object

Clinton Stimpson clinton at elemtech.com
Fri Aug 27 10:25:38 EDT 2004


Ok, there was more to it than I thought.  Thanks for the warning.
Thanks,
Clint

Sander Niemeijer wrote:

> Yes I have tried this.
>
> If you do this when you've added your mixed typed cells in random 
> order you will end up with a reordered list of cells. And if you add 
> your cells in the appropriate order (vertex/line/poly/strip) then a 
> BuildCells() will have no apparent effect.
>
> If you look at the implementation of the vtkPolyData class you will 
> see that vtkPolyData::InsertNextCell() performs the same 
> this->Cells->InsertNextCell() calls that vtkPolyData::BuildCells() 
> uses. So as long as you call your vtkPolyData::InsertNextCell() in the 
> right order you will do the same as vtkPolyData::BuildCells().
>
> Just for clarification, let me restate the problems I'm having:
>
> 1) Adding mixed typed cells in random order to a vtkPolyData object 
> can have all kinds of nasty side effects because the ordering of cells 
> can be changed while scalar data that you associate with these cells 
> doesn't get reordered! According to John this is known behavior, but 
> the fact that this kind of behavior is not documented anywhere, makes 
> this a bug in my opinion (either the class documentation should make 
> this behavior explicit, or the vtkPolyData class should allow adding 
> cells in a mixed ordering and KEEP that ordering).
>
> 2) Even if you add cells in the right order to a vtkPolyData object 
> you will still get problems when you use a scalar color lookup table 
> with a vtkPolyDataMapper2D (see my other e-mail in this thread). As 
> far as I can see this is due to the vtkOpenGLPolyDataMapper2D class 
> handling the cell types in a different order. If this is indeed the 
> case then even VTK internally does not keep to this fixed ordering of 
> cell types in the vtkPolyData object.
>
> So as far as I can see, there IS a problem. And given the complexity, 
> I think it will take quite some time before we can see this problem 
> fixed properly. The easiest solution now would probably be to 'fix' 
> the vtkOpenGLPolyDataMapper2D class and to add the behavior about the 
> ordering to the vtkPolyData class documentation.
>
> Best regards,
> Sander
>
> On vrijdag, aug 27, 2004, at 14:42 Europe/Amsterdam, Clinton Stimpson 
> wrote:
>
>>
>> Did you ever try calling vtkPolyData::BuildCells() after you modify the
>> cells in the vtkCellArray's that a vtkPolyData references?
>>
>> Clint
>
>
>




More information about the vtkusers mailing list