I've created an application that contains a QVTKWidget linked to a
vtkImageViewer2. Alterations to the vtkImageData before initializing
the vtkImageViewer2 are visible as soon as I call viewer->Render(),
but any changes I make later do not appear until I click inside the
widget. In fact, this happens even if I run the exact same sequence of
methods to make a new vtkImageViewer2 (as below). Is this a result of
the QVTKWidget caching the image data, and if so, how can I make it
update? Thanks!<br>
<br>==================<br><br> gridData = vtkImageData::New();<br><br>// etc.<br><br> gridData-><div id=":114" class="ii gt">SetScalarTypeToFloat();<br> gridData->AllocateScalars();<br> gridData->GetPointData()->GetScalars()->FillComponent(0,0);<br>
<br><br>// The vtkImageData *gridData is modified via calls to SetScalarComponent...<br><br>
gridData->SetScalarComponentFromDouble((int)pos[0],(int)pos[1],0,0,intensity);<br><br> viewer = vtkImageViewer2::New();<br> viewer->SetInput(gridData);<br> viewer->SetupInteractor(this->ui->qvtkWidget->GetInteractor());<br>
viewer->SetRenderWindow(this->ui->qvtkWidget->GetRenderWindow());<br> viewer->Render();<br><br>// ... and the modified image is displayed correctly.<br><br>// But if the vtkImageData *gridData is further modified via calls to SetScalarComponent...<br>
<br> gridData->SetScalarComponentFromDouble((int)pos[0],(int)pos[1],0,0,intensity);<br><br>
viewer = vtkImageViewer2::New();<br> viewer->SetInput(gridData);<br> viewer->SetupInteractor(this->ui->qvtkWidget->GetInteractor());<br> viewer->SetRenderWindow(this->ui->qvtkWidget->GetRenderWindow());<br>
viewer->Render();<br><br>// ...the new changes are still not visible until I click the image.<br><br>===================<br><br>-Garrett Larson</div>