00001 /*========================================================================= 00002 00003 Program: Medical Imaging & Interaction Toolkit 00004 Language: C++ 00005 Date: $Date$ 00006 Version: $Revision$ 00007 00008 Copyright (c) German Cancer Research Center, Division of Medical and 00009 Biological Informatics. All rights reserved. 00010 See MITKCopyright.txt or http://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 00019 #ifndef BASECONTROLLER_H_HEADER_INCLUDED_C1E745A3 00020 #define BASECONTROLLER_H_HEADER_INCLUDED_C1E745A3 00021 00022 #include "mitkCommon.h" 00023 #include "mitkStepper.h" 00024 #include "mitkStateMachine.h" 00025 #include <itkObjectFactory.h> 00026 00027 namespace mitk { 00028 00029 class BaseRenderer; 00030 00031 //##Documentation 00032 //## @brief Baseclass for renderer slice-/camera-control 00033 //## 00034 //## Tells the render (subclass of BaseRenderer) which slice (subclass 00035 //## SliceNavigationController) or from which direction (subclass 00036 //## CameraController) it has to render. Contains two Stepper for stepping 00037 //## through the slices or through different camera views (e.g., for the 00038 //## creation of a movie around the data), respectively, and through time, if 00039 //## there is 3D+t data. 00040 //## @note not yet implemented 00041 //## @ingroup NavigationControl 00042 class MITK_CORE_EXPORT BaseController : public StateMachine 00043 { 00044 public: 00046 mitkClassMacro(BaseController, StateMachine); 00047 itkNewMacro(Self); 00048 00050 mitkNewMacro1Param(Self, const char *); 00051 00052 //##Documentation 00053 //## @brief Get the Stepper through the slices 00054 mitk::Stepper* GetSlice(); 00055 00056 //##Documentation 00057 //## @brief Get the Stepper through the time 00058 mitk::Stepper* GetTime(); 00059 00060 protected: 00064 BaseController(const char * type = NULL); 00065 00069 virtual ~BaseController(); 00070 00071 //## @brief Stepper through the time 00072 Stepper::Pointer m_Time; 00073 //## @brief Stepper through the slices 00074 Stepper::Pointer m_Slice; 00075 00076 unsigned long m_LastUpdateTime; 00077 }; 00078 00079 } // namespace mitk 00080 00081 #endif /* BASECONTROLLER_H_HEADER_INCLUDED_C1E745A3 */