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().
:
1.7.2