I have following variables:<br><br><br>I want to have points added dynamically on mouse click event and force the gaussian filter to create surface out of modified points and have it displayed. The commands like splatMapper->Update() or contour->Update() do not take effect. How should I force GaussianSplatter to recompute surface and redraw? <br>
<br>I store points in points like this:<br><br><br>
vtkPoints * points;<br>
vtkCellArray * vertices;<br>
vtkGaussianSplatter * splatter;<br>
vtkPolyData * pData;<br>
pData = vtkPolyData::New();<br>
pData->SetPoints(points);<br>
pData->SetVerts(vertices);<br><br>I use my own function that returns pointer to GaussianSplatter: vtkGaussianSplatter* GetGaussianSplatter() { return splatter }<br>My filters I have set up as following:<br><br>vtkContourFilter * contour;<br>
vtkPolyDataMapper *splatMapper;<br><br>contour = vtkContourFilter::New();<br> contour->SetInputConnection(this->sculpture->GetGaussianSplatter()->GetOutputPort());<br> contour->SetValue(0, 0.9);<br>
//contour->SetInput(sculpture->GetGaussianSplatter()->GetOutput());<br><br> splatMapper = vtkPolyDataMapper::New();<br> splatMapper->SetInput(contour->GetOutput());<br><br> splatActor = vtkActor::New();<br>
splatActor->SetMapper(splatMapper);<br> renderer->AddActor(splatActor);<br><br>This code does not work properly I have on mouse left down event:<br><br>for(int i=0;i<1000;i++)<br> {<br> double np[3];<br>
np[0] = rand()/RAND_MAX;<br> np[1] = rand()/RAND_MAX;<br> np[2] = rand()/RAND_MAX;<br> sculpture->AddPoint(np);<br> }<br><br>void Sculpture::AddPoint(double point[])<br>{<br> this->points->InsertNextPoint(point);<br>
this->vertices->InsertNextCell(1);<br> this->vertices->InsertCellPoint(0);<br>}<br><br><br>Thanks in advance,<br>Gregory<br>