Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #include "mitkDisplayPositionEvent.h"
00020 #include "mitkBaseRenderer.h"
00021
00022 mitk::DisplayPositionEvent::DisplayPositionEvent(
00023 mitk::BaseRenderer *sender, int type, int button, int buttonState, int key,
00024 const mitk::Point2D& displPosition )
00025 : Event( sender, type, button, buttonState, key ),
00026 m_DisplayPosition( displPosition ),
00027 m_WorldPositionIsSet( false ),
00028 m_PickedObjectIsSet( false )
00029 {
00030 }
00031
00032 const mitk::Point3D& mitk::DisplayPositionEvent::GetWorldPosition() const
00033 {
00034
00035 if ( m_WorldPositionIsSet )
00036 return m_WorldPosition;
00037
00038 assert( m_Sender != NULL );
00039
00040 m_Sender->PickWorldPoint( m_DisplayPosition, m_WorldPosition );
00041
00042 m_WorldPositionIsSet = true;
00043
00044 return m_WorldPosition;
00045 }
00046
00047 mitk::DataNode *mitk::DisplayPositionEvent::GetPickedObjectNode() const
00048 {
00049
00050 if ( m_PickedObjectIsSet )
00051 {
00052 return m_PickedObjectNode;
00053 }
00054
00055 assert( m_Sender != NULL );
00056
00057 m_PickedObjectNode = m_Sender->PickObject( m_DisplayPosition, m_WorldPosition );
00058
00059 m_PickedObjectIsSet = true;
00060 m_WorldPositionIsSet = true;
00061
00062 return m_PickedObjectNode;
00063 }
00064
00065 mitk::BaseData *mitk::DisplayPositionEvent::GetPickedObject() const
00066 {
00067 mitk::DataNode *node = this->GetPickedObjectNode();
00068
00069 if ( node != NULL )
00070 {
00071 return node->GetData();
00072 }
00073 else
00074 {
00075 return NULL;
00076 }
00077 }