[vtkusers] QVTKWidget + volume misbehavior

Dominik Szczerba dominik at itis.ethz.ch
Wed Nov 12 13:58:36 EST 2008

I traced the problem down to vtkOpenGLRenderer (being called by 
Render()). It is calling this->UpdateGeometry() which in turn sets my 
image's spacing (to the old one!).

1) Why should rendering change the rendered object?
2) Am I not missing something more than image->Modified() here? I tried 
UpdateInformation() etc. manually with the same result: resetting the 
spacing to an old (wrong) one.

I believe this is a bug, am just wondering how to pose it for a most 
efficient fix.


Dominik Szczerba wrote:
> I am doing something as trivial as:
>     // record existing spacing
>     image->GetSpacing(old_spacing);
>     // modify it
>     image->SetSpacing(new_spacing);
>     image->Modified();
>     // refresh display
>     vtkWidget->GetRenderWindow()->Render();
>     // debug
>     image->GetSpacing(current_spacing);
> which behaves correctly, with current_spacing = new_spacing and my 
> outline actor responding to the changes.
> The moment I call:
>     ren1->AddVolume(volume); // volume is representation of image
> I can properly see my volume only before calling Render(): 
> current_spacing gets reset back to old_spacing right after.
> 1) Am I doing something obviously wrong (like I am not allowed to modify 
> a registered volume)
> 2) What is caching the original image properties and why?
> Thanks for any hints,
> Dominik

Dominik Szczerba, PhD
Computational Physics Group
IT'IS Foundation

More information about the vtkusers mailing list