Program Listing for File vtkMRMLLayerDMScriptedPipelineBridge.h
↰ Return to documentation for file (MRMLDM/vtkMRMLLayerDMScriptedPipelineBridge.h)
#pragma once
#include "vtkSlicerLayerDMModuleMRMLDisplayableManagerExport.h"
#include "vtkMRMLLayerDMPipelineI.h"
// VTK includes
#include <vtkPython.h>
class vtkSmartPyObject;
class VTK_SLICER_LAYERDM_MODULE_MRMLDISPLAYABLEMANAGER_EXPORT vtkMRMLLayerDMScriptedPipelineBridge : public vtkMRMLLayerDMPipelineI
{
public:
static vtkMRMLLayerDMScriptedPipelineBridge* New();
vtkTypeMacro(vtkMRMLLayerDMScriptedPipelineBridge, vtkMRMLLayerDMPipelineI);
bool CanProcessInteractionEvent(vtkMRMLInteractionEventData* eventData, double& distance2) override;
vtkCamera* GetCustomCamera() const override;
int GetMouseCursor() const override;
unsigned int GetRenderOrder() const override;
int GetWidgetState() const override;
void LoseFocus(vtkMRMLInteractionEventData* eventData) override;
void OnDefaultCameraModified(vtkCamera* camera) override;
void OnReferenceToDisplayNodeAdded(vtkMRMLNode* fromNode, const std::string& role) override;
void OnReferenceToDisplayNodeRemoved(vtkMRMLNode* fromNode, const std::string& role) override;
void OnRendererAdded(vtkRenderer* renderer) override;
void OnRendererRemoved(vtkRenderer* renderer) override;
bool ProcessInteractionEvent(vtkMRMLInteractionEventData* eventData) override;
void SetDisplayNode(vtkMRMLNode* displayNode) override;
void SetViewNode(vtkMRMLAbstractViewNode* viewNode) override;
void SetScene(vtkMRMLScene* scene) override;
void SetPipelineManager(vtkMRMLLayerDMPipelineManager* pipelineManager) override;
void SetPythonObject(PyObject* object);
void UpdatePipeline() override;
static PyObject* CastCallData(PyObject* object, int vtkType);
protected:
vtkMRMLLayerDMScriptedPipelineBridge();
~vtkMRMLLayerDMScriptedPipelineBridge() override;
void OnUpdate(vtkObject* obj, unsigned long eventId, void* callData) override;
private:
PyObject* CallPythonMethod(const vtkSmartPyObject& pyArgs, const std::string& fName, bool decrementResult) const;
int CastToIntAndDecrement(PyObject* result) const;
PyObject* m_object;
};