Slicer 5.13
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
Loading...
Searching...
No Matches
vtkMRMLLayerDMScriptedPipelineBridge.h
Go to the documentation of this file.
1/*==============================================================================
2
3 Program: 3D Slicer
4
5 Copyright (c) Kitware SAS
6
7 See COPYRIGHT.txt
8 or http://www.slicer.org/copyright/copyright.txt for details.
9
10 Unless required by applicable law or agreed to in writing, software
11 distributed under the License is distributed on an "AS IS" BASIS,
12 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 See the License for the specific language governing permissions and
14 limitations under the License.
15
16 This file was originally developed by Thibault Pelletier, Kitware SAS,
17 and was partially funded by ANR grants ANR-22-CE45-0034 and ANR-18-RHUS-005.
18
19==============================================================================*/
20
21#ifndef __vtkMRMLLayerDMScriptedPipelineBridge_h
22#define __vtkMRMLLayerDMScriptedPipelineBridge_h
23
24#include "vtkSlicerLayerDMModuleMRMLDisplayableManagerExport.h"
25
27
28// VTK includes
29#include <vtkPython.h>
30
31class vtkSmartPyObject;
32
38class VTK_SLICER_LAYERDM_MODULE_MRMLDISPLAYABLEMANAGER_EXPORT vtkMRMLLayerDMScriptedPipelineBridge : public vtkMRMLLayerDMPipeline
39{
40public:
43 void PrintSelf(ostream& os, vtkIndent indent) override;
44
45 bool CanProcessInteractionEvent(vtkMRMLInteractionEventData* eventData, double& distance2) override;
46 vtkCamera* GetCustomCamera(unsigned int renderOrder) const override;
47 int GetMouseCursor() const override;
48 unsigned int GetRenderOrder() const override;
49 std::vector<unsigned int> GetRenderOrders() const override;
50 int GetWidgetState() const override;
51 void LoseFocus(vtkMRMLInteractionEventData* eventData) override;
52 void OnDefaultCameraModified(vtkCamera* camera) override;
53 void OnReferenceToDisplayNodeAdded(vtkMRMLNode* fromNode, const std::string& role) override;
54 void OnReferenceToDisplayNodeRemoved(vtkMRMLNode* fromNode, const std::string& role) override;
55 void OnRendererAdded(vtkRenderer* renderer) override;
56 void OnRendererRemoved(vtkRenderer* renderer) override;
58 void SetDisplayNode(vtkMRMLNode* displayNode) override;
59 void SetViewNode(vtkMRMLAbstractViewNode* viewNode) override;
60 void SetScene(vtkMRMLScene* scene) override;
61 void SetPipelineManager(vtkMRMLLayerDMPipelineManager* pipelineManager) override;
63 void UpdateFromMRML() override;
64 static PyObject* CastCallData(PyObject* object, int vtkType);
65
66protected:
69
70 void OnUpdate(vtkObject* obj, unsigned long eventId, void* callData) override;
71
72private:
73 PyObject* CallPythonMethod(const vtkSmartPyObject& pyArgs, const std::string& fName, bool decrementResult) const;
74 int CastToIntAndDecrement(PyObject* result) const;
75
76 PyObject* Object;
77};
78
79#endif
Abstract MRML node to represent a view. The class holds the properties common to any view type (3D,...
Class responsible for handling adding / updating / removing pipelines depending on nodes added / remo...
void OnUpdate(vtkObject *obj, unsigned long eventId, void *callData) override
void OnRendererRemoved(vtkRenderer *renderer) override
void OnRendererAdded(vtkRenderer *renderer) override
void OnReferenceToDisplayNodeRemoved(vtkMRMLNode *fromNode, const std::string &role) override
unsigned int GetRenderOrder() const override
bool CanProcessInteractionEvent(vtkMRMLInteractionEventData *eventData, double &distance2) override
bool ProcessInteractionEvent(vtkMRMLInteractionEventData *eventData) override
static PyObject * CastCallData(PyObject *object, int vtkType)
vtkCamera * GetCustomCamera(unsigned int renderOrder) const override
void SetViewNode(vtkMRMLAbstractViewNode *viewNode) override
void OnReferenceToDisplayNodeAdded(vtkMRMLNode *fromNode, const std::string &role) override
int GetWidgetState() const override
void SetDisplayNode(vtkMRMLNode *displayNode) override
void PrintSelf(ostream &os, vtkIndent indent) override
void SetPythonObject(PyObject *object)
std::vector< unsigned int > GetRenderOrders() const override
void SetScene(vtkMRMLScene *scene) override
static vtkMRMLLayerDMScriptedPipelineBridge * New()
int GetMouseCursor() const override
void OnDefaultCameraModified(vtkCamera *camera) override
void LoseFocus(vtkMRMLInteractionEventData *eventData) override
void SetPipelineManager(vtkMRMLLayerDMPipelineManager *pipelineManager) override
Abstract Superclass for all specific types of MRML nodes.
A set of MRML Nodes that supports serialization and undo/redo.
_object PyObject