Skip to content
  • Lucas Gandel's avatar
    Fix reslice cursor widget interactions and testing · 89e6de45
    Lucas Gandel authored
    1. Fix cursor center drifting in other views when rotating, by preserving
      the offset between the camera focal point and the reslice cursor center.
    
    2. Fix cursor rotating in other views when rotating. The camera view up is
      aligned to the reslice cursor view up, but only when the representation
      is modified.
    
    3. Allow camera spinning by synchronizing the reslice cursor view up with
      the camera view up on each render.
    
    4. Fix testing. The widget was not rendered because the input data was
      released. Force the representation to wireframe to make sure reslice axes
      are rendered until a proper fix is found. Add mouse interactions to make
      sure the still behavior is preserved is other views.
    
    The approach for 2. and 3. works as follow:
    - When the reslice cursor is modified, the camera view up is locked to the
      reslice cursor view up (2.)
    - At the end of BuildRepresentation, the reslice cursor view up is locked
      to the camera view up (3.). This will either assign the same value as in
      2. if the representation was modified, or apply the modified camera view
      up to the representation if the rendering was triggered from other
      interactions than the widget, e.g. camera spinning.
    - To make sure the representation is not modified every frame, we must add
      a check when computing the vtkResliceCursorActor hole width.
    89e6de45