Deprecate classes/functions that use vtkAbstractArray::GetVoidPointer()#

Several classes and methods have been deprecated to further reduce the usage of vtkAbstractArray::GetVoidPointer().

  1. vtkSMPContourGrid has been deprecated. Use vtkContourFilter instead.

  2. vtkSMPMergePoints has been deprecated. Use vtkStaticPointLocator instead.

  3. vtkSMPMergePolyDataHelper has been deprecated. Use vtkAppendPolyData instead.

  4. vtkPoints(2D)::GetVoidPointer() have been deprecated. Use vtkPoints(2D)::GetData() along with vtkArrayDispatch instead.

  5. vtkGenericDataArray::GetPointer() has been deprecated. Use vtkArrayDispatch and vtk::DataArray(Tuple/Value)Range instead.

  6. vtk(Array/Points)Portal have been deprecated because they are no longer needed.

  7. vtkAbstractArray::ExportToVoidPointer() has been deprecated. Use DeepCopy with an vtkAOSDataArrayTemplate instead.

  8. vtkAbstractArray::NewIterator() along with vtkArrayIterator, vtkBitArrayIterator, vtkArrayIteratorTemplate have been deprecated. Use vtk::DataArrayValueRange or the array directly instead.

  9. vtkAbstractArray:WriterToVoidPointer() has been deprecated. Use vtkAOSDataArrayTemplate::WriterPointer() or vtkAbstractArray::SetNumberOf[Values/Tuples]() instead

  10. vtkVoidArray has been deprecated because it is no longer needed.

  11. vtkScaledSOADataArrayTemplate has been deprecated because it is no longer needed.

  12. vtk(Angular)PeriodicDataArray have been deprecated because they are no longer needed since vtkAngularPeriodicFilter generates an implicit array using an internally defined backend.

  13. vtkStdFunctionArray has been deprecated because it is no longer needed.

Additionally, to further reduce the usage of vtkAbstractArray::GetVoidPointer(), vtk::DataArray(Value/Tuple)Range have been extended to support all concrete vtkAbstractArray subclasses, including vtkBitArray, vtkStringArray, and vtkVariantArray. This was accomplished by adding (Set/Get)Typed(Component/Tuple), GetVariantArray, and ShallowCopy methods to these classes, and change their implementation so that they use vtkBuffer internally, instead of raw pointers, so that their implementation is similar to vtkAOSDataArrayTemplate.

Finally, all vtkGenericDataArray subclasses (except vtkAOSDataArrayTemplate) now have a GetVoidPointer() method which warns you when you use it because it performs a deep-copy internally. To that end, vtkSOADataArrayTemplate no longer converts to vtkAOSDataArrayTemplate when GetVoidPointer() is called.