Medical Imaging Interaction Toolkit  2023.12.00
Medical Imaging Interaction Toolkit
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
mitkIPythonService.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 (DKFZ)
6 All rights reserved.
7 
8 Use of this source code is governed by a 3-clause BSD license that can be
9 found in the LICENSE file.
10 
11 ============================================================================*/
12 #ifndef mitkIPythonService_h
13 #define mitkIPythonService_h
14 
15 // mitk
16 #include <mitkImage.h>
17 #include <mitkSurface.h>
18 #include <MitkPythonExports.h>
19 
20 //for microservices
21 #include <mitkServiceInterface.h>
22 
23 #include <vector>
24 
25 
26 class ctkAbstractPythonManager;
27 
28 namespace mitk
29 {
35  {
36  std::string m_Name;
37  std::string m_Type;
38  std::string m_Value;
39  };
40 
46  {
47  public:
48  virtual void CommandExecuted(const std::string& pythonCommand) = 0;
49  };
50 
56  class MITKPYTHON_EXPORT IPythonService
57  {
58  public:
62  static const int SINGLE_LINE_COMMAND = 0;
66  static const int MULTI_LINE_COMMAND = 1;
70  static const int EVAL_COMMAND = 2;
71 
75  virtual std::string Execute( const std::string& pythonCommand, int commandType = SINGLE_LINE_COMMAND ) = 0;
78  virtual void ExecuteScript( const std::string& pathToPythonScript ) = 0;
81  virtual bool PythonErrorOccured() const = 0;
84  virtual std::vector<PythonVariable> GetVariableStack() const = 0;
87  virtual bool DoesVariableExist(const std::string& name) const = 0;
90  virtual std::string GetVariable(const std::string& name) const = 0;
93  virtual void AddPythonCommandObserver( PythonCommandObserver* observer ) = 0;
96  virtual void RemovePythonCommandObserver( PythonCommandObserver* observer ) = 0;
102  virtual void NotifyObserver( const std::string& command ) = 0;
103 
106  virtual bool IsSimpleItkPythonWrappingAvailable() = 0;
111  virtual bool CopyToPythonAsSimpleItkImage( mitk::Image* image, const std::string& varName ) = 0;
115  virtual mitk::Image::Pointer CopySimpleItkImageFromPython( const std::string& varName ) = 0;
116 
119  virtual bool IsOpenCvPythonWrappingAvailable() = 0;
122  virtual bool CopyToPythonAsCvImage( mitk::Image* image, const std::string& varName ) = 0;
125  virtual mitk::Image::Pointer CopyCvImageFromPython( const std::string& varName ) = 0;
126 
129  virtual bool IsVtkPythonWrappingAvailable() = 0;
132  virtual bool CopyToPythonAsVtkPolyData( mitk::Surface* surface, const std::string& varName ) = 0;
135  virtual mitk::Surface::Pointer CopyVtkPolyDataFromPython( const std::string& varName ) = 0;
136 
138  virtual ctkAbstractPythonManager* GetPythonManager() = 0;
139 
142  virtual ~IPythonService(); // leer in mitkIPythonService.cpp implementieren
143 
144  // force us module loading by linking
145  static std::string ForceLoadModule();
146 
147  virtual void AddRelativeSearchDirs(std::vector< std::string > dirs) = 0;
148 
149  virtual void AddAbsoluteSearchDirs(std::vector< std::string > dirs) = 0;
150  };
151 }
152 
153 MITK_DECLARE_SERVICE_INTERFACE(mitk::IPythonService, "org.mitk.services.IPythonService")
154 
155 #endif
mitkImage.h
mitkServiceInterface.h
mitk::IPythonService
Definition: mitkIPythonService.h:56
mitk::PythonCommandObserver::CommandExecuted
virtual void CommandExecuted(const std::string &pythonCommand)=0
mitk::PythonCommandObserver
Definition: mitkIPythonService.h:45
mitk::Image
Image class for storing images.
Definition: mitkImage.h:69
itk::SmartPointer< Self >
mitk::Surface
Class for storing surfaces (vtkPolyData).
Definition: mitkSurface.h:28
mitk
Find image slices visible on a given plane.
Definition: RenderingTests.dox:1
mitkSurface.h
mitk::PythonVariable::m_Type
std::string m_Type
Definition: mitkIPythonService.h:37
mitk::PythonVariable::m_Value
std::string m_Value
Definition: mitkIPythonService.h:38
mitk::PythonVariable::m_Name
std::string m_Name
Definition: mitkIPythonService.h:36
MITK_DECLARE_SERVICE_INTERFACE
#define MITK_DECLARE_SERVICE_INTERFACE(IFace, IId)
Definition: mitkServiceInterface.h:26
mitk::PythonVariable
Definition: mitkIPythonService.h:34