Remove/Deprecate certain array types

Upon working a lot on VTK arrays, i am trying to understand whether we need certain array types.

The arrays in question are

  1. (read/write) vtkScaledSOADataArrayTemplate (0 VTK filter usages),
  2. (read only) vtkCompositeArray (5 VTK filter usages),
  3. (read only) vtkIndexedArray (6 VTK filter usages),
  4. (read only) vtkStdFunctionArray (0 VTK filter usages)
  5. (read only) vtkAngularPeriodicDataArray (1 VTK filter usages)

I know these arrays may be cool, but do we really need them? And does their existence justify the added complexity in VTK?

The complexity being, they need to be considered

  1. When dispatching, otherwise they always fall back to vtkDataArray and be slow.
  2. When exposing them in python as numpy array because the from_buffer is not really working on non AOS arrays
  3. When building their instantiations for all value types
  4. When maintaining the VTK code base after the funding that added them runs out.

If you have any hard feelings about any of them and/or you absolutely need them, please speak up otherwise these might be deprecated.

+1

can you clarify what the (in/out) and (in only) mean?

Done.

Very useful but fairly recent addition, I expect usage to rise.

vtkAngularPeriodicDataArray

Old implementation but still very useful for the one specific filter that uses it. Whatever you do, this filter should keep working without allocating memory. The details of the underlying array doesnt matter, the filter do.

vtkStdFunctionArray

It looks like this one was not adopted as I expected it to be, I’ll check in internal code if it is used.

FWIW, I don’t use any of those array types.