[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

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
http://www.itis.ethz.ch



More information about the vtkusers mailing list