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

mitk::CameraRotationController Class Reference

#include <mitkCameraRotationController.h>

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

List of all members.

Public Member Functions

 mitkClassMacro (CameraRotationController, BaseController)
 mitkNewMacro1Param (Self, const char *)
void RotateCamera ()
void AcquireCamera ()
void SetRenderWindow (vtkRenderWindow *renWin)
virtual bool ExecuteAction (Action *action, mitk::StateEvent const *stateEvent)
 Method called in HandleEvent after Statechange.

Static Public Member Functions

static Pointer New ()

Protected Member Functions

 CameraRotationController (const char *type=NULL)
virtual ~CameraRotationController ()

Detailed Description

Definition at line 30 of file mitkCameraRotationController.h.


Constructor & Destructor Documentation

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

Definition at line 28 of file mitkCameraRotationController.cpp.

References mitk::BaseController::m_Slice, New(), and RotateCamera().

  : BaseController(type), m_LastStepperValue(180), m_Camera(NULL), m_RenderWindow(NULL)
{
  m_Slice->SetAutoRepeat(true);
  m_Slice->SetSteps(360);
  m_Slice->SetPos(180);

  itk::SimpleMemberCommand<CameraRotationController>::Pointer sliceStepperChangedCommand, timeStepperChangedCommand;
  sliceStepperChangedCommand = itk::SimpleMemberCommand<CameraRotationController>::New();
  sliceStepperChangedCommand->SetCallbackFunction(this, &CameraRotationController::RotateCamera);

  m_Slice->AddObserver(itk::ModifiedEvent(), sliceStepperChangedCommand);
}
mitk::CameraRotationController::~CameraRotationController (  ) [protected, virtual]

Definition at line 42 of file mitkCameraRotationController.cpp.

{
}

Member Function Documentation

void mitk::CameraRotationController::AcquireCamera (  )

Definition at line 64 of file mitkCameraRotationController.cpp.

References mitk::BaseRenderer::GetInstance(), and mitk::BaseRenderer::GetVtkRenderer().

{
  BaseRenderer* renderer = mitk::BaseRenderer::GetInstance(m_RenderWindow);

  const mitk::VtkPropRenderer *propRenderer = dynamic_cast<const mitk::VtkPropRenderer * >( renderer );
  if (propRenderer) 
  { 
    // get vtk renderer
    vtkRenderer* vtkrenderer = propRenderer->GetVtkRenderer();
    if (vtkrenderer) 
    { 
      // get vtk camera
      vtkCamera* vtkcam = vtkrenderer->GetActiveCamera();
      if (vtkcam) 
      { 
        // vtk smart pointer handling
        if (!m_Camera)
        {
          m_Camera = vtkcam;
          m_Camera->Register( NULL );
        }
        else
        {
          m_Camera->UnRegister( NULL );
          m_Camera = vtkcam;
          m_Camera->Register( NULL );
        }
      }
    }
  }
}
bool mitk::CameraRotationController::ExecuteAction ( Action action,
mitk::StateEvent const *  stateEvent 
) [virtual]

Method called in HandleEvent after Statechange.

look up which object method is associated to the given action and call the method

Each statechange has actions, which can be assigned by it's number. If you are developing a new statemachine, declare all your operations here and send them to Undo-Controller and to the Data. Object- and group-EventId can also be accessed through static methods from OperationEvent

Reimplemented from mitk::StateMachine.

Definition at line 96 of file mitkCameraRotationController.cpp.

{
  return false;
}
mitk::CameraRotationController::mitkClassMacro ( CameraRotationController  ,
BaseController   
)
mitk::CameraRotationController::mitkNewMacro1Param ( Self  ,
const char *   
)

Method for creation through New

Reimplemented from mitk::BaseController.

static Pointer mitk::CameraRotationController::New (  ) [static]
void mitk::CameraRotationController::RotateCamera (  )

Definition at line 46 of file mitkCameraRotationController.cpp.

References mitk::RenderingManager::GetInstance(), and mitk::RenderingManager::RequestUpdate().

Referenced by CameraRotationController().

{
  if (!m_Camera)
  {
    this->AcquireCamera();
  }

  if (m_Camera)
  {
    int newStepperValue = m_Slice->GetPos();
    m_Camera->Azimuth( m_LastStepperValue - newStepperValue );
    m_LastStepperValue = newStepperValue;
    //const_cast< RenderWindow* >(m_RenderWindow)->RequestUpdate(); // TODO does not work with movie generator!
    mitk::RenderingManager::GetInstance()->RequestUpdate(m_RenderWindow);
    //m_MultiWidget->RequestUpdate();
  }
}
void mitk::CameraRotationController::SetRenderWindow ( vtkRenderWindow *  renWin ) [inline]

Definition at line 40 of file mitkCameraRotationController.h.

  {
    m_RenderWindow = renWin;
  }

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