Slicer  4.8
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
qSlicerSegmentEditorScriptedEffect.h
Go to the documentation of this file.
1 /*==============================================================================
2 
3  Program: 3D Slicer
4 
5  Copyright (c) Laboratory for Percutaneous Surgery (PerkLab)
6  Queen's University, Kingston, ON, Canada. All Rights Reserved.
7 
8  See COPYRIGHT.txt
9  or http://www.slicer.org/copyright/copyright.txt for details.
10 
11  Unless required by applicable law or agreed to in writing, software
12  distributed under the License is distributed on an "AS IS" BASIS,
13  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  See the License for the specific language governing permissions and
15  limitations under the License.
16 
17  This file was originally developed by Csaba Pinter, PerkLab, Queen's University
18  and was supported through the Applied Cancer Research Unit program of Cancer Care
19  Ontario with funds provided by the Ontario Ministry of Health and Long-Term Care
20 
21 ==============================================================================*/
22 
23 #ifndef __qSlicerSegmentEditorScriptedEffect_h
24 #define __qSlicerSegmentEditorScriptedEffect_h
25 
26 // Segmentations Editor Effects includes
28 
29 #include "qSlicerSegmentationsEditorEffectsExport.h"
30 
31 // Forward Declare PyObject*
32 #ifndef PyObject_HEAD
33 struct _object;
34 typedef _object PyObject;
35 #endif
36 class qSlicerSegmentEditorScriptedEffectPrivate;
37 
46 class Q_SLICER_SEGMENTATIONS_EFFECTS_EXPORT qSlicerSegmentEditorScriptedEffect
48 {
49  Q_OBJECT
50 
51 public:
53  qSlicerSegmentEditorScriptedEffect(QObject* parent = NULL);
55 
56  Q_INVOKABLE QString pythonSource()const;
57 
60  Q_INVOKABLE bool setPythonSource(const QString newPythonSource);
61 
63  Q_INVOKABLE PyObject* self() const;
64 
67  virtual void setName(QString name);
68 
70  virtual void setPerSegment(bool perSegment);
71 
72 // API: Methods that are to be reimplemented in the effect subclasses
73 public:
75  virtual QIcon icon();
76 
78  virtual const QString helpText()const;
79 
82 
84  virtual void activate();
85 
87  virtual void deactivate();
88 
90  virtual void setupOptionsFrame();
91 
93  virtual QCursor createCursor(qMRMLWidget* viewWidget);
94 
99  virtual bool processInteractionEvents(vtkRenderWindowInteractor* callerInteractor, unsigned long eid, qMRMLWidget* viewWidget);
100 
105  virtual void processViewNodeEvents(vtkMRMLAbstractViewNode* callerViewNode, unsigned long eid, qMRMLWidget* viewWidget);
106 
108  virtual void setMRMLDefaults();
109 
111  virtual void referenceGeometryChanged();
113  virtual void masterVolumeNodeChanged();
115  virtual void layoutChanged();
117  virtual void interactionNodeModified(vtkMRMLInteractionNode* interactionNode);
118 
119 public slots:
121  virtual void updateGUIFromMRML();
122 
124  virtual void updateMRMLFromGUI();
125 
126 protected:
127  QScopedPointer<qSlicerSegmentEditorScriptedEffectPrivate> d_ptr;
128 
129 private:
130  Q_DECLARE_PRIVATE(qSlicerSegmentEditorScriptedEffect);
131  Q_DISABLE_COPY(qSlicerSegmentEditorScriptedEffect);
132 };
133 
134 #endif
virtual void interactionNodeModified(vtkMRMLInteractionNode *interactionNode)
virtual bool processInteractionEvents(vtkRenderWindowInteractor *callerInteractor, unsigned long eid, qMRMLWidget *viewWidget)
virtual Q_INVOKABLE const QString helpText() const
Get help text for effect to be displayed in the help box.
Abstract class for segment editor effects.
qSlicerSegmentEditorAbstractEffect Superclass
virtual Q_INVOKABLE void deactivate()
Abstract MRML node to represent a view. The class holds the properties common to any view type (3D...
virtual QCursor createCursor(qMRMLWidget *viewWidget)
Create a cursor customized for the given effect, potentially for each view.
Base class for any widget that requires a MRML Scene.
Definition: qMRMLWidget.h:35
Scripted abstract effect for implementing segment editor effects in python.
virtual void setPerSegment(bool perSegment)
virtual qSlicerSegmentEditorAbstractEffect * clone()=0
Clone editor effect. Override to return a new instance of the effect sub-class.
virtual void processViewNodeEvents(vtkMRMLAbstractViewNode *callerViewNode, unsigned long eid, qMRMLWidget *viewWidget)
virtual QIcon icon()
Get icon for effect to be displayed in segment editor.
virtual void setName(QString name)
_object PyObject
virtual void layoutChanged()
Simple mechanism to let the effects know that the layout has changed.
virtual Q_INVOKABLE void activate()
QScopedPointer< qSlicerSegmentEditorScriptedEffectPrivate > d_ptr