Public Types | Public Member Functions | Protected Member Functions | Protected Attributes

mitk::CameraController Class Reference
[Navigation Control Classes]

controls the camera used by the associated BaseRenderer More...

#include <mitkCameraController.h>

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

List of all members.

Public Types

enum  StandardView {
  ANTERIOR, POSTERIOR, SINISTER, DEXTER,
  CRANIAL, CAUDAL
}

Public Member Functions

 mitkClassMacro (CameraController, BaseController)
 mitkNewMacro1Param (Self, const char *)
virtual void SetRenderer (BaseRenderer *_arg)
virtual void SetZoomFactor (double _arg)
virtual const BaseRendererGetRenderer () const
virtual double GetZoomFactor () const
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 SetViewToAnterior ()
virtual void SetViewToPosterior ()
virtual void SetViewToSinister ()
virtual void SetViewToDexter ()
virtual void SetViewToCranial ()
virtual void SetViewToCaudal ()
virtual void SetStandardView (StandardView view)

Protected Member Functions

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

Protected Attributes

const BaseRendererm_Renderer
double m_ZoomFactor
 zoom factor used for the standard view camera

Detailed Description

controls the camera used by the associated BaseRenderer

Subclass of BaseController. Controls the camera used by the associated BaseRenderer.

Definition at line 36 of file mitkCameraController.h.


Member Enumeration Documentation

Enumerator:
ANTERIOR 
POSTERIOR 
SINISTER 
DEXTER 
CRANIAL 
CAUDAL 

Definition at line 39 of file mitkCameraController.h.


Constructor & Destructor Documentation

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

Default Constructor.

Definition at line 28 of file mitkCameraController.cpp.

                                                        : BaseController(type), m_Renderer(NULL), m_ZoomFactor(1.0)
{}
mitk::CameraController::~CameraController (  ) [protected, virtual]

Default Destructor.

Definition at line 32 of file mitkCameraController.cpp.

{}

Member Function Documentation

virtual const BaseRenderer* mitk::CameraController::GetRenderer (  ) const [virtual]
virtual double mitk::CameraController::GetZoomFactor (  ) const [virtual]
void mitk::CameraController::KeyPressEvent ( mitk::KeyEvent  ) [virtual]

Implemented in sub-classes.

Reimplemented in mitk::VtkInteractorCameraController.

Definition at line 52 of file mitkCameraController.cpp.

{}
mitk::CameraController::mitkClassMacro ( CameraController  ,
BaseController   
)
mitk::CameraController::mitkNewMacro1Param ( Self  ,
const char *   
)

Method for creation through New

Reimplemented from mitk::BaseController.

void mitk::CameraController::MouseMoveEvent ( mitk::MouseEvent  ) [virtual]

Implemented in sub-classes.

Reimplemented in mitk::VtkInteractorCameraController.

Definition at line 48 of file mitkCameraController.cpp.

Referenced by mitk::ConferenceEventMapper::MapEvent().

{}
void mitk::CameraController::MousePressEvent ( mitk::MouseEvent  ) [virtual]

Implemented in sub-classes.

Reimplemented in mitk::VtkInteractorCameraController.

Definition at line 40 of file mitkCameraController.cpp.

Referenced by mitk::ConferenceEventMapper::MapEvent().

{}
void mitk::CameraController::MouseReleaseEvent ( mitk::MouseEvent  ) [virtual]

Implemented in sub-classes.

Reimplemented in mitk::VtkInteractorCameraController.

Definition at line 44 of file mitkCameraController.cpp.

Referenced by mitk::ConferenceEventMapper::MapEvent().

{}
void mitk::CameraController::Resize ( int  w,
int  h 
) [virtual]

Implemented in sub-classes.

Reimplemented in mitk::VtkInteractorCameraController.

Definition at line 36 of file mitkCameraController.cpp.

{}
virtual void mitk::CameraController::SetRenderer ( BaseRenderer _arg ) [virtual]
void mitk::CameraController::SetStandardView ( StandardView  view ) [virtual]

Definition at line 92 of file mitkCameraController.cpp.

References mitk::DataStorage::ComputeBoundingBox(), mitk::BaseRenderer::GetVtkRenderer(), and mitk::RenderingManager::RequestUpdateAll().

{
  const mitk::VtkPropRenderer* glRenderer = dynamic_cast<const mitk::VtkPropRenderer*>(m_Renderer);
  if (glRenderer == NULL)
    return;
  vtkRenderer* vtkRenderer = glRenderer->GetVtkRenderer();
  assert (vtkRenderer);

  mitk::BoundingBox::Pointer bb;
  mitk::DataStorage* ds = m_Renderer->GetDataStorage();
  if (ds != NULL)
    bb = ds->ComputeBoundingBox();
  else
    return;

  mitk::Point3D middle = bb->GetCenter();
  vtkRenderer->GetActiveCamera()->SetFocalPoint(middle[0], middle[1], middle[2]);
  switch(view)
  {
  case ANTERIOR:
  case POSTERIOR:
  case SINISTER:
  case DEXTER:
    vtkRenderer->GetActiveCamera()->SetViewUp(0,0,1);
    break;
  case CRANIAL:
  case CAUDAL:
    vtkRenderer->GetActiveCamera()->SetViewUp(0,-1,0);
  }
  switch(view)
  {
  case ANTERIOR:
    vtkRenderer->GetActiveCamera()->SetPosition(middle[0],-100000,middle[2]);
    break;
  case POSTERIOR:
    vtkRenderer->GetActiveCamera()->SetPosition(middle[0],+100000,middle[2]);
    break;
  case SINISTER:
    vtkRenderer->GetActiveCamera()->SetPosition(+100000,middle[1],middle[2]);
    break;
  case DEXTER:
    vtkRenderer->GetActiveCamera()->SetPosition(-100000,middle[1],middle[2]);
    break;
  case CRANIAL:
    vtkRenderer->GetActiveCamera()->SetPosition(middle[0],middle[1],100000);
    break;
  case CAUDAL:
    vtkRenderer->GetActiveCamera()->SetPosition(middle[0],middle[1],-100000);
    break;
  }
  vtkRenderer->ResetCamera();
  double *cameraPosition = vtkRenderer->GetActiveCamera()->GetPosition();
  switch(view)
  {
  case ANTERIOR:
  case POSTERIOR:
    vtkRenderer->GetActiveCamera()->SetPosition(cameraPosition[0],cameraPosition[1] / m_ZoomFactor,cameraPosition[2]);
    break;

  case SINISTER:
  case DEXTER:
    vtkRenderer->GetActiveCamera()->SetPosition(cameraPosition[0] / m_ZoomFactor,cameraPosition[1],cameraPosition[2]);
    break;

  case CRANIAL:
  case CAUDAL:
    vtkRenderer->GetActiveCamera()->SetPosition(cameraPosition[0],cameraPosition[1],cameraPosition[2] / m_ZoomFactor);
    break;
  }
  vtkRenderer->ResetCameraClippingRange();

  mitk::RenderingManager* rm = m_Renderer->GetRenderingManager();
  rm->RequestUpdateAll();
}
void mitk::CameraController::SetViewToAnterior (  ) [virtual]

Definition at line 56 of file mitkCameraController.cpp.

void mitk::CameraController::SetViewToCaudal (  ) [virtual]

Definition at line 86 of file mitkCameraController.cpp.

{
  this->SetStandardView(CAUDAL);
}
void mitk::CameraController::SetViewToCranial (  ) [virtual]

Definition at line 80 of file mitkCameraController.cpp.

void mitk::CameraController::SetViewToDexter (  ) [virtual]

Definition at line 74 of file mitkCameraController.cpp.

{
  this->SetStandardView(DEXTER);
}
void mitk::CameraController::SetViewToPosterior (  ) [virtual]

Definition at line 62 of file mitkCameraController.cpp.

void mitk::CameraController::SetViewToSinister (  ) [virtual]

Definition at line 68 of file mitkCameraController.cpp.

virtual void mitk::CameraController::SetZoomFactor ( double  _arg ) [virtual]

Member Data Documentation

Definition at line 84 of file mitkCameraController.h.

zoom factor used for the standard view camera

Definition at line 86 of file mitkCameraController.h.


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