Interactor for displaying different slices in orthogonal views. This includes the interaction of Zooming and Panning. More...
#include <mitkDisplayVectorInteractor.h>
Public Types | |
typedef DisplayVectorInteractor | Self |
typedef StateMachine | Superclass |
typedef itk::SmartPointer< Self > | Pointer |
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. |
Interactor for displaying different slices in orthogonal views. This includes the interaction of Zooming and Panning.
Definition at line 36 of file mitkDisplayVectorInteractor.h.
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.
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] |
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().
: