Program Listing for File vtkMRMLLayerDMPythonUtil.h
↰ Return to documentation for file (MRML/vtkMRMLLayerDMPythonUtil.h)
#pragma once
#include "vtkSlicerLayerDMModuleMRMLExport.h"
// VTK includes
#include <vtkObject.h>
#include <vtkPython.h>
#include <vtkPythonUtil.h>
#include <vtkSmartPyObject.h>
// STD includes
#include <string>
#include <vector>
class VTK_SLICER_LAYERDM_MODULE_MRML_EXPORT vtkMRMLLayerDMPythonUtil : public vtkObject
{
public:
static vtkMRMLLayerDMPythonUtil* New();
vtkTypeMacro(vtkMRMLLayerDMPythonUtil, vtkObject);
static PyObject* ToPyObject(vtkObjectBase* obj);
static PyObject* ToPyObject(unsigned long value);
static PyObject* ToPyObject(const std::string& value);
static PyObject* RawPtrToPython(void* ptr);
static vtkSmartPyObject ToPyArgs(const std::vector<PyObject*>& pyObjs);
static vtkSmartPyObject ToPyArgs(vtkObjectBase* obj);
static vtkSmartPyObject ToPyArgs(vtkObject* obj, unsigned long eventId, void* callData);
static PyObject* CastCallData(PyObject* object, int vtkType);
static PyObject* CallPythonMethod(PyObject* object, const vtkSmartPyObject& pyArgs, const std::string& fName);
static PyObject* CallPythonObject(PyObject* object, const vtkSmartPyObject& pyArgs);
static void SetPythonObject(PyObject** destObject, PyObject* object);
static void DeletePythonObject(PyObject** destObject);
static bool IsValidPythonContext();
static std::string FormatExceptionTraceback();
static void PrintErrorTraceback(const vtkObject* object, const std::string& errorMsg);
static std::string GetObjectStr(PyObject* object);
protected:
vtkMRMLLayerDMPythonUtil();
~vtkMRMLLayerDMPythonUtil() override;
};