Medical Imaging Interaction Toolkit  2016.11.0
Medical Imaging Interaction Toolkit
mitkNavigationDataSource.h
Go to the documentation of this file.
1 /*===================================================================
2 
3 The Medical Imaging Interaction Toolkit (MITK)
4 
5 Copyright (c) German Cancer Research Center,
6 Division of Medical and Biological Informatics.
7 All rights reserved.
8 
9 This software is distributed WITHOUT ANY WARRANTY; without
10 even the implied warranty of MERCHANTABILITY or FITNESS FOR
11 A PARTICULAR PURPOSE.
12 
13 See LICENSE.txt or http://www.mitk.org for details.
14 
15 ===================================================================*/
16 
17 
18 #ifndef MITKNAVIGATIONDATASOURCE_H_HEADER_INCLUDED_
19 #define MITKNAVIGATIONDATASOURCE_H_HEADER_INCLUDED_
20 
21 #include <itkProcessObject.h>
22 #include "mitkNavigationData.h"
23 #include "mitkPropertyList.h"
24 #include "MitkIGTExports.h"
25 
26 // Microservices
27 #include <mitkServiceInterface.h>
28 #include <usServiceRegistration.h>
29 
30 namespace mitk {
31 
42  class MITKIGT_EXPORT NavigationDataSource : public itk::ProcessObject
43  {
44  public:
45  mitkClassMacroItkParent(NavigationDataSource, itk::ProcessObject);
46 
50  itkGetMacro(Name,std::string);
51 
55  itkSetMacro(Name,std::string);
56 
60  NavigationData* GetOutput(void);
61 
65  NavigationData* GetOutput(DataObjectPointerArraySizeType idx);
66 
70  NavigationData* GetOutput(const std::string& navDataName);
71 
77  DataObjectPointerArraySizeType GetOutputIndex(std::string navDataName);
78 
83  virtual void RegisterAsMicroservice();
84 
88  virtual void UnRegisterMicroservice();
89 
94  std::string GetMicroserviceID();
95 
99  static const std::string US_INTERFACE_NAME;
100  static const std::string US_PROPKEY_DEVICENAME;
101  static const std::string US_PROPKEY_ID;
102  static const std::string US_PROPKEY_ISACTIVE; //NOT IMPLEMENTED YET!
103 
109  virtual void GraftNthOutput(unsigned int idx, itk::DataObject *graft);
110 
116  virtual void GraftOutput(itk::DataObject *graft);
117 
124  virtual itk::DataObject::Pointer MakeOutput ( DataObjectPointerArraySizeType idx ) override;
125 
132  virtual itk::DataObject::Pointer MakeOutput(const DataObjectIdentifierType &name) override;
133 
142  virtual void SetParameters(const mitk::PropertyList*){};
143 
157  virtual mitk::PropertyList::ConstPointer GetParameters() const;
158 
162  virtual void Freeze();
163 
165  virtual void UnFreeze();
166 
168  itkGetMacro(IsFrozen,bool);
169 
170 
171  protected:
173  virtual ~NavigationDataSource();
174 
175  std::string m_Name;
176 
178 
179 
180  private:
181  us::ServiceRegistration<Self> m_ServiceRegistration;
182  };
183 } // namespace mitk
184 // This is the microservice declaration. Do not meddle!
185 MITK_DECLARE_SERVICE_INTERFACE(mitk::NavigationDataSource, "org.mitk.services.NavigationDataSource")
186 #endif /* MITKNAVIGATIONDATASOURCE_H_HEADER_INCLUDED_ */
itk::SmartPointer< Self > Pointer
Navigation Data.
DataCollection - Class to facilitate loading/accessing structured data.
Key-value list holding instances of BaseProperty.
static const std::string US_PROPKEY_ID
static const std::string US_INTERFACE_NAME
These Constants are used in conjunction with Microservices.
#define mitkClassMacroItkParent(className, SuperClassName)
Definition: mitkCommon.h:53
static const std::string US_PROPKEY_ISACTIVE
virtual void SetParameters(const mitk::PropertyList *)
Set all filter parameters as the PropertyList p.
static const std::string US_PROPKEY_DEVICENAME
MITK_DECLARE_SERVICE_INTERFACE(mitk::ISimulationService,"org.mitk.ISimulationService")