Updating vtkPointInterpolator

Hi,

I am using the vtkPointInterpolator to interpolate the scalars of some points onto a surface.

vtkSmartPointer<vtkDoubleArray> scalars = vtkSmartPointer<vtkDoubleArray>::New();
scalars->SetName("sca");
scalars->SetNumberOfTuples(100);

for (int i = 0; i < 100; i ++)
{
 scalars ->SetTuple1(i, static_cast<float>(rand()) /static_cast<float>(RAND_MAX)*5.0);
}

vtkSmartPointer<vtkPolyData> pd = vtkSmartPointer<vtkPolyData>::New();
pd->SetPoints(POINTS);     // 100 points
pd->GetPointData()->SetScalars(scalars);
pd->GetPointData()->SetActiveScalars("sca");

vtkSmartPointer<vtkGaussianKernel> kernel = vtkSmartPointer<vtkGaussianKernel>::New();
kernel->SetSharpness(2);
kernel->SetRadius(25);

vtkSmartPointer<vtkPointInterpolator> point_interpolator = vtkSmartPointer<vtkPointInterpolator>::New();
point_interpolator->SetInputData(surface->GetPolyData());
point_interpolator->SetSourceData(pd);
point_interpolator->SetKernel(kernel);
point_interpolator->SetNullPointsStrategyToNullValue();
point_interpolator->Update();

surface->GetPolyData()->GetPointData()->GetScalars()->DeepCopy(point_interpolator->GetOutput()->GetPointData()->GetScalars());

I am running this code in a loop whereby the scalar values change. Nevertheless, vtkPointInterpolator always outputs the interpolated scalars which correspond to the first run.

Can someone explain me how to update this filter in order to perform a periodic interpolation?

Thank you.

Is it possible to include the loop you mentioned in the code pasted above?