Would this still work?
vtkNew<vtkPolyData> pd;
somefilter->SetInputData(pd);
Requiring using .GetPointer()
for vtkNew’d smart pointers was terrible and we should not bring it back. Maybe we need to introduce a new type, which would store a pointer inside privately but it could only be accessed by assigning it to a smart pointer (vtkSmartPointer or vtkNew). This type would only be used for returning a value from factory methods.