MantisBT - ParaView
View Issue Details
0010127ParaViewFeaturepublic2010-01-12 15:062016-08-12 09:57
David Doria 
Zhanping Liu 
normalminorN/A
closedmoved 
Development 
 
0010127: vtkAppendPolyData doesn't allow polydata's with only points (no cells) to be appended
I wanted to change line 239 of vtkAppendPolyData.cxx from
  if ( numPts < 1 || numCells < 1 )
to
  if ( numPts == 0 )

to allow polydata's which only contain points to be appended to each other.

I checked in this change (1.105) to vtkAppendPolyData.cxx. The VTK tests passed, but some Paraview test failed:

514 - pvcs.RectilinearFractal (Failed)
584 - pvcrs.RectilinearFractal (Failed)

so I reverted my change.

These tests only fail if Paraview is built with PARAVIEW_USE_MPI ON.

Can someone take a look at why these tests are failing and recommit the new functionality?
No tags attached.
Issue History
2010-01-12 15:06David DoriaNew Issue
2010-01-12 18:07David DoriaNote Added: 0019108
2010-04-27 16:06Utkarsh AyachitStatusbacklog => tabled
2010-04-27 16:06Utkarsh AyachitAssigned To => Zhanping Liu
2011-06-16 13:10Zack GalbreathCategoryFeature Request => Feature
2016-08-12 09:57Kitware RobotNote Added: 0037765
2016-08-12 09:57Kitware RobotStatusexpired => closed
2016-08-12 09:57Kitware RobotResolutionopen => moved

Notes
(0019108)
David Doria   
2010-01-12 18:07   
David E DeMarle quickly looked at this and offered a place to start:

In ParaView, when running in client/server/parallel, each process's
renderable vtkPolyData get serialized and shipped, then received by
the server's root node. The root node combines them all together into
one big renderable vtkPolyData with the vtkAppendPolyData filter
before either rendering them or shipping them to the client to render.
In client only mode the filter isn't involved, so the test works in
the client only version of this same test.

In any case vtkAppendPolyData always appends geometry but it only
keeps data arrays if all of it's input vtkPolyData's have them in
common. (It says so in the doxygen :)) It has to do something like
that because it can not make up arbitrary invalid values when some
arrays are missing on some inputs.

In this test, one of the vtkPolyData's normally ends up with points
but not cells and gets ignored. Your change makes that vtkPolyData
survive longer. Since it lacks cells, it also lacks cell data arrays.
The filter then strip all cell data arrays from the output. Afterward,
the test actually fails when it tries to color the result by a
particular cell data array.

To fix it, the celldata array appending logic in vtkAppendPolyData
will have to ignore inputs that have no arrays.
(0037765)
Kitware Robot   
2016-08-12 09:57   
Resolving issue as `moved`.

This issue tracker is no longer used. Further discussion of this issue may take place in the current ParaView Issues page linked in the banner at the top of this page.