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

mitk::DisplayVectorInteractor Class Reference
[Interaction Classes]

Interactor for displaying different slices in orthogonal views. This includes the interaction of Zooming and Panning. More...

#include <mitkDisplayVectorInteractor.h>

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

List of all members.

Public Types

typedef DisplayVectorInteractor Self
typedef StateMachine Superclass
typedef itk::SmartPointer< SelfPointer
typedef itk::SmartPointer
< const Self
ConstPointer

Public Member Functions

virtual const char * GetClassName () const
virtual void ExecuteOperation (Operation *operation)
 Method derived from OperationActor to recieve and execute operations.

Static Public Member Functions

static Pointer New (const char *_arga, OperationActor *_argb)

Protected Member Functions

 DisplayVectorInteractor (const char *type, mitk::OperationActor *destination=NULL)
 Default Constructor.
virtual ~DisplayVectorInteractor ()
 Default Destructor.
virtual bool ExecuteAction (Action *action, mitk::StateEvent const *stateEvent)
 Method derived from StateMachine to implement the own actions.

Detailed Description

Interactor for displaying different slices in orthogonal views. This includes the interaction of Zooming and Panning.

Definition at line 36 of file mitkDisplayVectorInteractor.h.


Member Typedef Documentation

typedef itk::SmartPointer<const Self> mitk::DisplayVectorInteractor::ConstPointer

Reimplemented from mitk::StateMachine.

Definition at line 39 of file mitkDisplayVectorInteractor.h.

typedef itk::SmartPointer<Self> mitk::DisplayVectorInteractor::Pointer

Reimplemented from mitk::StateMachine.

Definition at line 39 of file mitkDisplayVectorInteractor.h.

Reimplemented from mitk::StateMachine.

Definition at line 39 of file mitkDisplayVectorInteractor.h.

Reimplemented from mitk::StateMachine.

Definition at line 39 of file mitkDisplayVectorInteractor.h.


Constructor & Destructor Documentation

mitk::DisplayVectorInteractor::DisplayVectorInteractor ( const char *  type,
mitk::OperationActor destination = NULL 
) [protected]

Default Constructor.

Definition at line 157 of file mitkDisplayVectorInteractor.cpp.

  : mitk::StateMachine(type), m_Sender(NULL), m_Destination(destination)
{
  m_StartDisplayCoordinate.Fill(0);
  m_LastDisplayCoordinate.Fill(0);
  m_CurrentDisplayCoordinate.Fill(0);

  if(m_Destination==NULL)
    m_Destination=this;
}
mitk::DisplayVectorInteractor::~DisplayVectorInteractor (  ) [protected, virtual]

Default Destructor.

Definition at line 169 of file mitkDisplayVectorInteractor.cpp.

{
}

Member Function Documentation

bool mitk::DisplayVectorInteractor::ExecuteAction ( Action action,
mitk::StateEvent const *  stateEvent 
) [protected, virtual]

Method derived from StateMachine to implement the own actions.

Reimplemented from mitk::StateMachine.

Definition at line 53 of file mitkDisplayVectorInteractor.cpp.

References mitk::AcFINISHMOVE, mitk::AcINITMOVE, mitk::AcINITZOOM, mitk::AcMOVE, mitk::AcSENDCOORDINATES, mitk::AcZOOM, mitk::Action::GetActionId(), mitk::BaseRenderer::GetDisplayGeometry(), mitk::DisplayPositionEvent::GetDisplayPosition(), mitk::StateEvent::GetEvent(), mitk::DisplayGeometry::GetOriginInMM(), mitk::Event::GetSender(), mitk::OpMOVE, mitk::OpSENDCOORDINATES, and mitk::OpZOOM.

{
  bool ok=false;
  
  const DisplayPositionEvent* posEvent=dynamic_cast<const DisplayPositionEvent*>(stateEvent->GetEvent());
  if(posEvent==NULL) return false;

  int actionId = action->GetActionId();
  //initzoom and initmove is the same!
  if (actionId == AcINITZOOM)
    actionId = AcINITMOVE;
  switch(actionId)
  {
  //case 0:
  //  {
  //    DisplayCoordinateOperation* doOp = new mitk::DisplayCoordinateOperation(OpTEST,  posEvent->GetSender(), posEvent->GetDisplayPosition(), posEvent->GetDisplayPosition(), posEvent->GetDisplayPosition());
  //    if (m_UndoEnabled)  //write to UndoMechanism
  //    {
  //      DisplayCoordinateOperation* undoOp = new DisplayCoordinateOperation(OpTEST, m_Sender, m_StartDisplayCoordinate, m_LastDisplayCoordinate, m_CurrentDisplayCoordinate);
  //      
  //      
  //      OperationEvent *operationEvent = new OperationEvent(this, doOp, undoOp);
  //      m_UndoController->SetOperationEvent(operationEvent);
  //    }
  //    
  //    //execute the Operation
  //    m_Destination->ExecuteOperation(doOp);
  //    ok = true;
  //    break;
  //  }
  case AcSENDCOORDINATES:
    {
      DisplayCoordinateOperation* doOp = new mitk::DisplayCoordinateOperation(OpSENDCOORDINATES,  posEvent->GetSender(), posEvent->GetDisplayPosition(), posEvent->GetDisplayPosition(), posEvent->GetDisplayPosition());
      m_Destination->ExecuteOperation(doOp);
      ok = true;
      break;
    }
  case AcINITMOVE:
    {
      m_Sender=posEvent->GetSender();

      mitk::Vector2D origin = m_Sender->GetDisplayGeometry()->GetOriginInMM();
       double scaleFactorMMPerDisplayUnit = m_Sender->GetDisplayGeometry()->GetScaleFactorMMPerDisplayUnit();

      m_StartDisplayCoordinate=posEvent->GetDisplayPosition();
      m_LastDisplayCoordinate=posEvent->GetDisplayPosition();
      m_CurrentDisplayCoordinate=posEvent->GetDisplayPosition();
      m_StartCoordinateInMM=mitk::Point2D( ( origin+m_StartDisplayCoordinate.GetVectorFromOrigin()*scaleFactorMMPerDisplayUnit ).GetDataPointer() );
      ok = true;
      break;
    }
  case AcMOVE:
    {
      DisplayCoordinateOperation* doOp = new DisplayCoordinateOperation(OpMOVE,  m_Sender, m_StartDisplayCoordinate, m_CurrentDisplayCoordinate, posEvent->GetDisplayPosition());
      //make Operation
      m_LastDisplayCoordinate=m_CurrentDisplayCoordinate;
      m_CurrentDisplayCoordinate=posEvent->GetDisplayPosition();
      
      //execute the Operation
      m_Destination->ExecuteOperation(doOp);
      ok = true;
      break;
    }
  case AcFINISHMOVE:
    {
      if (m_UndoEnabled)  //write to UndoMechanism
      {
        DisplayCoordinateOperation* doOp = new mitk::DisplayCoordinateOperation(OpMOVE,  m_Sender, m_StartDisplayCoordinate, m_StartDisplayCoordinate, posEvent->GetDisplayPosition());
        DisplayCoordinateOperation* undoOp = new mitk::DisplayCoordinateOperation(OpMOVE,  posEvent->GetSender(), posEvent->GetDisplayPosition(), posEvent->GetDisplayPosition(), m_StartDisplayCoordinate);
        
        OperationEvent *operationEvent = new OperationEvent(m_Destination, doOp, undoOp, "Move view");
        m_UndoController->SetOperationEvent(operationEvent);
      }
      ok = true;
      break;
    }
  case AcZOOM:
    {
      DisplayCoordinateOperation* doOp = new DisplayCoordinateOperation(OpZOOM,  m_Sender, m_StartDisplayCoordinate, m_LastDisplayCoordinate, posEvent->GetDisplayPosition(),m_StartCoordinateInMM);
      
      if (m_UndoEnabled)  //write to UndoMechanism
      {
        DisplayCoordinateOperation* undoOp = new mitk::DisplayCoordinateOperation(OpZOOM,  posEvent->GetSender(), posEvent->GetDisplayPosition(), posEvent->GetDisplayPosition(), m_LastDisplayCoordinate);
        
        OperationEvent *operationEvent = new OperationEvent(m_Destination, doOp, undoOp, "Zoom view");
        m_UndoController->SetOperationEvent(operationEvent);
      }
      //make Operation
      m_LastDisplayCoordinate=m_CurrentDisplayCoordinate;
      m_CurrentDisplayCoordinate=posEvent->GetDisplayPosition();
      //MITK_INFO << m_CurrentDisplayCoordinate << std::endl;
      
      //execute the Operation
      m_Destination->ExecuteOperation(doOp);
      ok = true;
      break;
    }
  default:
    ok = false;
    break;
  }
  return ok;
}
void mitk::DisplayVectorInteractor::ExecuteOperation ( Operation operation ) [virtual]

Method derived from OperationActor to recieve and execute operations.

Reimplemented from mitk::StateMachine.

Definition at line 28 of file mitkDisplayVectorInteractor.cpp.

{
  /*DisplayCoordinateOperation* dcOperation = static_cast<DisplayCoordinateOperation*>(operation);
  if(dcOperation==NULL) return;
  
  switch(operation->GetOperationType())
  {
  case OpSELECTPOINT:
    m_Sender=dcOperation->GetRenderer();
    m_StartDisplayCoordinate=dcOperation->GetStartDisplayCoordinate();
    m_LastDisplayCoordinate=dcOperation->GetLastDisplayCoordinate();
    m_CurrentDisplayCoordinate=dcOperation->GetCurrentDisplayCoordinate();
//    MITK_INFO << m_CurrentDisplayCoordinate << std::endl;
    
    MITK_INFO<<"Message from DisplayVectorInteractor.cpp::ExecuteOperation() : "
      << "StartDisplayCoordinate:" <<     m_StartDisplayCoordinate 
      << "LastDisplayCoordinate:" <<      m_LastDisplayCoordinate 
      << "CurrentDisplayCoordinate:" <<   m_CurrentDisplayCoordinate 
      << std::endl;
    
    break;
  }*/
  
}
virtual const char* mitk::DisplayVectorInteractor::GetClassName (  ) const [virtual]

Reimplemented from mitk::StateMachine.

static Pointer mitk::DisplayVectorInteractor::New ( const char *  _arga,
OperationActor _argb 
) [inline, static]

Definition at line 40 of file mitkDisplayVectorInteractor.h.

Referenced by QmitkStdMultiWidget::InitializeWidget().

:

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