Fix issues with VTK / VTK-m array conversion#
Changed the VTK to VTK-m array conversion routines to use
ArrayHandleRuntimeVec and ArrayHandleRecombineVec. These are new
features of VTK-m that allow you to specify an array with the tuple size
specified at runtime. This change improves several specific things.
Fixes a bug when importing an array of “odd” tuple size (not 1, 2, 3, 4, 6, or 9). It was creating arrays of size one less than the actual size.
Avoids using
ArrayHandleGroupVecVariable, which is supported by fewer VTK-m filters.The VTK-m
ArrayHandlenow manages a reference back to the VTK array, so theArrayHandlewill continue to work even if the original VTK array is “deleted.” This makes the code safer.Unifies the implementation of the array conversion among number of components to avoid issues with surprise tuple sizes.
Revamped vtkmDataArray to support general array types. This makes it more efficient to pass data from VTK-m to VTK when unified memory is not available.