00001 /*========================================================================= 00002 00003 Program: Medical Imaging & Interaction Toolkit 00004 Language: C++ 00005 Date: $Date: 2010-03-31 16:40:27 +0200 (Mi, 31 Mrz 2010) $ 00006 Version: $Revision: 21975 $ 00007 00008 Copyright (c) German Cancer Research Center, Division of Medical and 00009 Biological Informatics. All rights reserved. 00010 See MITKCopyright.txt or https://www.mitk.org/copyright.html for details. 00011 00012 This software is distributed WITHOUT ANY WARRANTY; without even 00013 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00014 PURPOSE. See the above copyright notices for more information. 00015 00016 =========================================================================*/ 00017 00018 #include "mitkSpaceNavigatorActivator.h" 00019 00020 #include <mitkGlobalinteraction.h> 00021 #include <mitkEventMapper.h> 00022 00023 #include <mitkSpaceNavigatorAddOn.h> 00024 00025 mitk::SpaceNavigatorActivator::SpaceNavigatorActivator() 00026 : m_IsRegistered(false), m_Controller(mitk::SpaceNavigatorVtkCameraController::New()) 00027 { 00028 } 00029 00030 bool mitk::SpaceNavigatorActivator::RegisterInputDevice() 00031 { 00032 if(!this->m_IsRegistered) 00033 { 00034 mitk::GlobalInteraction::GetInstance()->AddListener(m_Controller); 00035 mitk::EventMapper* eventMapper(mitk::GlobalInteraction::GetInstance()->GetEventMapper()); 00036 if (eventMapper != NULL) 00037 { 00038 eventMapper->AddEventMapperAddOn(mitk::SpaceNavigatorAddOn::GetInstance()); 00039 this->m_IsRegistered = true; 00040 } 00041 else 00042 { 00043 return false; 00044 } 00045 } 00046 return true; 00047 } 00048 00049 bool mitk::SpaceNavigatorActivator::UnRegisterInputDevice() 00050 { 00051 if(this->m_IsRegistered) 00052 { 00053 mitk::GlobalInteraction::GetInstance()->RemoveListener(m_Controller); 00054 mitk::EventMapper* eventMapper(mitk::GlobalInteraction::GetInstance()->GetEventMapper()); 00055 00056 if(eventMapper != NULL) 00057 { 00058 eventMapper->RemoveEventMapperAddOn(mitk::SpaceNavigatorAddOn::GetInstance()); 00059 this->m_IsRegistered = false; 00060 } 00061 else 00062 { 00063 return false; 00064 } 00065 } 00066 return true; 00067 }