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 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 00019 #ifndef MITKCOORDINATESUPPLIER_H 00020 #define MITKCOORDINATESUPPLIER_H 00021 00022 #include "mitkCommon.h" 00023 #include "mitkStateMachine.h" 00024 #include "mitkVector.h" 00025 00026 namespace mitk { 00027 00028 class Operation; 00029 class OperationActor; 00030 00031 //##Documentation 00032 //## @brief Interactor 00033 //## 00034 //## sends a Point, that can be processed in its own OperationActor 00035 //## @ingroup Interaction 00036 class MITK_CORE_EXPORT CoordinateSupplier : public StateMachine 00037 { 00038 public: 00039 mitkClassMacro(CoordinateSupplier, StateMachine); 00040 mitkNewMacro2Param(Self, const char*, OperationActor*); 00041 00042 itkGetConstReferenceMacro(CurrentPoint, Point3D); 00043 00044 protected: 00045 //##Documentation 00046 //## @brief Constructor with needed arguments 00047 //## @param type: string, that describes the StateMachine-Scheme to take from all SM (see XML-File) 00048 //## @param operationActor: the Data, operations (+ points) are send to 00049 CoordinateSupplier(const char * type, OperationActor* operationActor); 00050 00051 ~CoordinateSupplier(); 00052 00053 //##Documentation 00054 //## @brief executes the actions that are sent to this statemachine 00055 //## derived from StateMachine 00056 virtual bool ExecuteAction(Action* action, mitk::StateEvent const* stateEvent); 00057 00058 private: 00059 OperationActor* m_Destination; 00060 Point3D m_OldPoint; 00061 Point3D m_CurrentPoint; 00062 }; 00063 00064 } // namespace mitk 00065 00066 #endif /* MITKCOORDINATESUPPLIER_H */