Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes

mitk::VtkInteractorCameraController Class Reference
[Navigation Control Classes]

vtk-based camera controller More...

#include <mitkVtkInteractorCameraController.h>

Inheritance diagram for mitk::VtkInteractorCameraController:
Inheritance graph
[legend]
Collaboration diagram for mitk::VtkInteractorCameraController:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 mitkClassMacro (VtkInteractorCameraController, CameraController)
vtkRenderWindowInteractor * GetVtkInteractor ()
 Returns the vtkRenderWindowInteractor used internally by this CameraController.
virtual void Resize (int w, int h)
 Implemented in sub-classes.
virtual void MousePressEvent (mitk::MouseEvent *)
 Implemented in sub-classes.
virtual void MouseReleaseEvent (mitk::MouseEvent *)
 Implemented in sub-classes.
virtual void MouseMoveEvent (mitk::MouseEvent *)
 Implemented in sub-classes.
virtual void KeyPressEvent (mitk::KeyEvent *)
 Implemented in sub-classes.
virtual void SetRenderer (const mitk::BaseRenderer *renderer)
 Set the BaseRenderer to be controlled by this vtk-based camera controller.

Static Public Member Functions

static Pointer New ()

Protected Member Functions

 VtkInteractorCameraController (const char *type=NULL)
 Default Constructor.
virtual ~VtkInteractorCameraController ()
 Default Destructor.

Protected Attributes

vtkRenderWindowInteractor * m_VtkInteractor

Detailed Description

vtk-based camera controller

Definition at line 33 of file mitkVtkInteractorCameraController.h.


Constructor & Destructor Documentation

mitk::VtkInteractorCameraController::VtkInteractorCameraController ( const char *  type = NULL ) [protected]

Default Constructor.

Definition at line 27 of file mitkVtkInteractorCameraController.cpp.

                                                                                 : CameraController(type), m_VtkInteractor(NULL)
{
  //m_VtkInteractor = vtkRenderWindowInteractor::New();
 
}
mitk::VtkInteractorCameraController::~VtkInteractorCameraController (  ) [protected, virtual]

Default Destructor.

Definition at line 33 of file mitkVtkInteractorCameraController.cpp.

{
  if(m_VtkInteractor!=NULL)
  {
    m_VtkInteractor->SetRenderWindow(NULL);
    m_VtkInteractor->Delete();
    m_VtkInteractor = NULL;
  }
}

Member Function Documentation

vtkRenderWindowInteractor * mitk::VtkInteractorCameraController::GetVtkInteractor (  )

Returns the vtkRenderWindowInteractor used internally by this CameraController.

Definition at line 260 of file mitkVtkInteractorCameraController.cpp.

{
  return m_VtkInteractor;
}
void mitk::VtkInteractorCameraController::KeyPressEvent ( mitk::KeyEvent  ) [virtual]

Implemented in sub-classes.

Reimplemented from mitk::CameraController.

Definition at line 201 of file mitkVtkInteractorCameraController.cpp.

References mitk::BS_ControlButton, mitk::BS_ShiftButton, mitk::Event::GetButtonState(), mitk::KeyEvent::GetDisplayPosition(), mitk::KeyEvent::GetText(), and MITK_INFO.

{
    MITK_INFO<<"Called KeyPressEvent() in VtkInteractorCameraController. Seems to be obsolete after QVTK restructuring (bug #1503, bug #954)"<<std::endl;
  if(m_VtkInteractor)
  {
    if (!m_VtkInteractor->GetEnabled())
    {
      return;
    }
    int ctrl  = ke->GetButtonState() & BS_ControlButton;
    int shift = ke->GetButtonState() & BS_ShiftButton;
#if ((VTK_MAJOR_VERSION>4) || ((VTK_MAJOR_VERSION==4) && (VTK_MINOR_VERSION>=2)))
    Point2D p(ke->GetDisplayPosition());
    m_VtkInteractor->SetEventInformationFlipY(p[0], p[1], ctrl, shift, tolower(ke->GetText()[0]), 1, ke->GetText());
    m_VtkInteractor->InvokeEvent(vtkCommand::KeyPressEvent, NULL);
    m_VtkInteractor->InvokeEvent(vtkCommand::CharEvent, NULL);
#else
    m_VtkInteractor->InteractorStyle->OnChar(ctrl, shift, (char)ke->ascii(), ke->count());
#endif
  }
}
mitk::VtkInteractorCameraController::mitkClassMacro ( VtkInteractorCameraController  ,
CameraController   
)
void mitk::VtkInteractorCameraController::MouseMoveEvent ( mitk::MouseEvent  ) [virtual]

Implemented in sub-classes.

Reimplemented from mitk::CameraController.

Definition at line 161 of file mitkVtkInteractorCameraController.cpp.

References mitk::BS_ControlButton, mitk::BS_ShiftButton, mitk::Event::GetButtonState(), mitk::DisplayPositionEvent::GetDisplayPosition(), int(), and MITK_INFO.

{
  MITK_INFO<<"Called MouseMoveEvent() in VtkInteractorCameraController. Seems to be obsolete after QVTK restructuring (bug #1503, bug #954)"<<std::endl;
  if(m_VtkInteractor)
  {
    if (!m_VtkInteractor->GetEnabled())
    {
      return;
    }
    int ctrl  = me->GetButtonState() & BS_ControlButton;
    int shift = me->GetButtonState() & BS_ShiftButton;
#if ((VTK_MAJOR_VERSION>4) || ((VTK_MAJOR_VERSION==4) && (VTK_MINOR_VERSION>=2)))
    int xp = (int)me->GetDisplayPosition()[0];
    int yp = (int)me->GetDisplayPosition()[1];
    m_VtkInteractor->SetEventInformationFlipY(xp, yp, ctrl, shift);
    m_VtkInteractor->InvokeEvent(vtkCommand::MouseMoveEvent, NULL);
#else
    if (!m_VtkInteractor->MouseInWindow &&
        ((me->GetDisplayPosition().x >= 0) && (me->GetDisplayPosition().x < m_VtkInteractor->Size[0]) && (me->GetDisplayPosition().y >= 0) && (me->GetDisplayPosition().y < m_VtkInteractor->Size[1])))
    {
      m_VtkInteractor->InteractorStyle->OnEnter(ctrl, shift,
          me->GetDisplayPosition().x, m_VtkInteractor->Size[1] - me->GetDisplayPosition().y - 1);
      m_VtkInteractor->MouseInWindow = 1;
    }

    if (m_VtkInteractor->MouseInWindow &&
        ((me->GetDisplayPosition().x < 0) || (me->GetDisplayPosition().x >= m_VtkInteractor->Size[0]) || (me->GetDisplayPosition().y < 0) || (me->GetDisplayPosition().y >= m_VtkInteractor->Size[1])))
    {
      m_VtkInteractor->InteractorStyle->OnLeave(ctrl, shift,
          me->GetDisplayPosition().x, m_VtkInteractor->Size[1] - me->GetDisplayPosition().y - 1);
      m_VtkInteractor->MouseInWindow = 0;
    }

    m_VtkInteractor->InteractorStyle->OnMouseMove(ctrl, shift,
        me->GetDisplayPosition().x, m_VtkInteractor->Size[1] - me->GetDisplayPosition().y - 1);
#endif

  }
}
void mitk::VtkInteractorCameraController::MousePressEvent ( mitk::MouseEvent  ) [virtual]

Implemented in sub-classes.

Reimplemented from mitk::CameraController.

Definition at line 49 of file mitkVtkInteractorCameraController.cpp.

References mitk::BS_ControlButton, mitk::BS_LeftButton, mitk::BS_MidButton, mitk::BS_RightButton, mitk::BS_ShiftButton, mitk::Event::GetButton(), mitk::Event::GetButtonState(), mitk::DisplayPositionEvent::GetDisplayPosition(), int(), and MITK_INFO.

{
  MITK_INFO<<"Called MousePressEvent() in VtkInteractorCameraController. Seems to be obsolete after QVTK restructuring (bug #1503, bug #954)"<<std::endl;
  if(m_VtkInteractor)
  {
    if (!m_VtkInteractor->GetEnabled())
    {
      return;
    }
    int ctrl  = me->GetButtonState() & BS_ControlButton;
    int shift = me->GetButtonState() & BS_ShiftButton;
#if ((VTK_MAJOR_VERSION>4) || ((VTK_MAJOR_VERSION==4) && (VTK_MINOR_VERSION>=2)))
    int xp = (int)me->GetDisplayPosition()[0];
    int yp = (int)me->GetDisplayPosition()[1];
    m_VtkInteractor->SetEventInformationFlipY(xp, yp, ctrl, shift);

    switch (me->GetButton())
    {
    case BS_LeftButton:
      m_VtkInteractor->InvokeEvent(vtkCommand::LeftButtonPressEvent,NULL);
      break;
    case BS_MidButton:
      m_VtkInteractor->InvokeEvent(vtkCommand::MiddleButtonPressEvent,NULL);
      break;
    case BS_RightButton:
      m_VtkInteractor->InvokeEvent(vtkCommand::RightButtonPressEvent,NULL);
      break;
    default:
      return;
    }
#else
    if(me->GetButton() & BS_LeftButton)
    {
      //    SetCapture(wnd);
      m_VtkInteractor->InteractorStyle->OnLeftButtonDown(ctrl, shift,
          me->GetDisplayPosition().x, m_VtkInteractor->Size[1] - me->GetDisplayPosition().y - 1);
    }
    else
      if(me->button() & BS_MidButton)
      {
        //    SetCapture(wnd);
        m_VtkInteractor->InteractorStyle->OnMiddleButtonDown(ctrl, shift,
            me->GetDisplayPosition().x, m_VtkInteractor->Size[1] - me->GetDisplayPosition().y - 1);
      }
      else
        if(me->button() & BS_RightButton)
        {
          //    SetCapture(wnd);
          m_VtkInteractor->InteractorStyle->OnRightButtonDown(ctrl, shift,
              me->GetDisplayPosition().x, m_VtkInteractor->Size[1] - me->GetDisplayPosition().y - 1);
        }
#endif

  }
}
void mitk::VtkInteractorCameraController::MouseReleaseEvent ( mitk::MouseEvent  ) [virtual]

Implemented in sub-classes.

Reimplemented from mitk::CameraController.

Definition at line 105 of file mitkVtkInteractorCameraController.cpp.

References mitk::BS_ControlButton, mitk::BS_LeftButton, mitk::BS_MidButton, mitk::BS_RightButton, mitk::BS_ShiftButton, mitk::Event::GetButton(), mitk::Event::GetButtonState(), mitk::DisplayPositionEvent::GetDisplayPosition(), int(), and MITK_INFO.

{
  MITK_INFO<<"Called MouseReleaseEvent() in VtkInteractorCameraController. Seems to be obsolete after QVTK restructuring (bug #1503, bug #954)"<<std::endl;
  if(m_VtkInteractor)
  {
    if (!m_VtkInteractor->GetEnabled())
    {
      return;
    }
    int ctrl  = me->GetButtonState() & BS_ControlButton;
    int shift = me->GetButtonState() & BS_ShiftButton;
#if ((VTK_MAJOR_VERSION>4) || ((VTK_MAJOR_VERSION==4) && (VTK_MINOR_VERSION>=2)))
    int xp = (int)me->GetDisplayPosition()[0];
    int yp = (int)me->GetDisplayPosition()[1];
    m_VtkInteractor->SetEventInformationFlipY(xp, yp, ctrl, shift);

    switch (me->GetButton())
    {
    case BS_LeftButton:
      m_VtkInteractor->InvokeEvent(vtkCommand::LeftButtonReleaseEvent,NULL);
      break;
    case BS_MidButton:
      m_VtkInteractor->InvokeEvent(vtkCommand::MiddleButtonReleaseEvent,NULL);
      break;
    case BS_RightButton:
      m_VtkInteractor->InvokeEvent(vtkCommand::RightButtonReleaseEvent,NULL);
      break;
    default:
      return;
    }
#else
    if(me->button() & BS_LeftButton)
    {
      m_VtkInteractor->InteractorStyle->OnLeftButtonUp(ctrl, shift,
          me->GetDisplayPosition().x, m_VtkInteractor->Size[1] - me->GetDisplayPosition().y - 1);
      //ReleaseCapture( );
    }
    else
      if(me->button() & BS_MidButton)
      {
        m_VtkInteractor->InteractorStyle->OnMiddleButtonUp(ctrl, shift,
            me->GetDisplayPosition().x, m_VtkInteractor->Size[1] - me->GetDisplayPosition().y - 1);
        //ReleaseCapture( );
      }
      else
        if(me->button() & BS_RightButton)
        {
          m_VtkInteractor->InteractorStyle->OnRightButtonUp(ctrl, shift,
              me->GetDisplayPosition().x, m_VtkInteractor->Size[1] - me->GetDisplayPosition().y - 1);
          //ReleaseCapture( );
        }
#endif

  }
}
static Pointer mitk::VtkInteractorCameraController::New (  ) [static]

Reimplemented from mitk::BaseController.

void mitk::VtkInteractorCameraController::Resize ( int  w,
int  h 
) [virtual]

Implemented in sub-classes.

Reimplemented from mitk::CameraController.

Definition at line 43 of file mitkVtkInteractorCameraController.cpp.

{
  if(m_VtkInteractor)
    m_VtkInteractor->SetSize(w, h);
}
void mitk::VtkInteractorCameraController::SetRenderer ( const mitk::BaseRenderer renderer ) [virtual]

Set the BaseRenderer to be controlled by this vtk-based camera controller.

Definition at line 223 of file mitkVtkInteractorCameraController.cpp.

References mitk::BaseRenderer::GetVtkRenderer().

{
  Superclass::SetRenderer(renderer);
  if (renderer)
  {
    // CHG 11-07: QVTK-Widget comes along with vtkRenderWindow and vtkRenWinInteractor, therefore do not 
    // generate a new one any more
    m_VtkInteractor = renderer->GetVtkRenderer()->GetRenderWindow()->GetInteractor();
    m_VtkInteractor->SetRenderWindow(renderer->GetVtkRenderer()->GetRenderWindow());
    // Enable possibility to (mouse-)interact with the renderer
    m_VtkInteractor->Enable();
    m_VtkInteractor->Register(NULL);
  }

  /*  VtkRenderWindowInteractor* windowInteractor =
      dynamic_cast<VtkRenderWindowInteractor*>(m_VtkInteractor);
    if (windowInteractor == NULL)
    {
      itkWarningMacro(<< "renderwindow is not an mitk::VtkRenderWindow");
    }
    else
    {
      windowInteractor->SetMitkRenderer(const_cast<mitk::BaseRenderer*>(this->GetRenderer()));
    }
    m_VtkInteractor->Initialize();
   
    m_VtkInteractor->SetRenderWindow(renderer->GetVtkRenderWindow());
   
  }
  else
  {
    m_VtkInteractor->SetRenderWindow(NULL);
    m_VtkInteractor->Delete();
    m_VtkInteractor = NULL;
  }*/
}

Member Data Documentation

vtkRenderWindowInteractor* mitk::VtkInteractorCameraController::m_VtkInteractor [protected]

Definition at line 66 of file mitkVtkInteractorCameraController.h.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines