![]() |
Slicer
4.11
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
|
Scripted abstract effect for implementing paint effects in python. More...
#include <Modules/Loadable/Segmentations/EditorEffects/qSlicerSegmentEditorScriptedPaintEffect.h>
Public Types | |
typedef qSlicerSegmentEditorPaintEffect | Superclass |
![]() | |
typedef qSlicerSegmentEditorAbstractLabelEffect | Superclass |
![]() | |
typedef qSlicerSegmentEditorAbstractEffect | Superclass |
![]() | |
enum | ConfirmationResult { NotConfirmed, ConfirmedWithoutDialog, ConfirmedWithDialog } |
enum | ModificationMode { ModificationModeSet, ModificationModeAdd, ModificationModeRemove, ModificationModeRemoveAll } |
typedef QObject | Superclass |
Public Slots | |
void | updateGUIFromMRML () override |
Update user interface from parameter set node. More... | |
void | updateMRMLFromGUI () override |
Update parameter set node from user interface. More... | |
![]() | |
void | setDelayedPaint (bool delayed) |
void | setMinimumPaintPointDistance (double dist) |
void | updateGUIFromMRML () override |
Update user interface from parameter set node. More... | |
void | updateMRMLFromGUI () override |
Update parameter set node from user interface. More... | |
![]() | |
void | updateGUIFromMRML () override |
Update user interface from parameter set node. More... | |
void | updateMRMLFromGUI () override |
Update parameter set node from user interface. More... | |
![]() | |
virtual void | updateGUIFromMRML ()=0 |
virtual void | updateMRMLFromGUI ()=0 |
Public Member Functions | |
void | activate () override |
Perform actions to activate the effect (show options frame, etc.) More... | |
qSlicerSegmentEditorAbstractEffect * | clone () override |
Clone editor effect. Override to return a new instance of the effect sub-class. More... | |
QCursor | createCursor (qMRMLWidget *viewWidget) override |
Create a cursor customized for the given effect, potentially for each view. More... | |
void | deactivate () override |
Perform actions to deactivate the effect (hide options frame, destroy actors, etc.) More... | |
const QString | helpText () const override |
Get help text for effect to be displayed in the help box. More... | |
QIcon | icon () override |
Get icon for effect to be displayed in segment editor. More... | |
void | layoutChanged () override |
Simple mechanism to let the effects know that the layout has changed. More... | |
void | masterVolumeNodeChanged () override |
Simple mechanism to let the effects know that master volume has changed. More... | |
void | paintApply (qMRMLWidget *viewWidget) |
Paint labelmap. More... | |
Q_INVOKABLE QString | pythonSource () const |
qSlicerSegmentEditorScriptedPaintEffect (QObject *parent=nullptr) | |
void | referenceGeometryChanged () override |
Simple mechanism to let the effects know that reference geometry change has changed. More... | |
Q_INVOKABLE PyObject * | self () const |
Convenience method allowing to retrieve the associated scripted instance. More... | |
void | setMRMLDefaults () override |
Set default parameters in the parameter MRML node. More... | |
void | setName (QString name) override |
Q_INVOKABLE bool | setPythonSource (const QString newPythonSource) |
void | setupOptionsFrame () override |
Create options frame widgets, make connections, and add them to the main options frame using. More... | |
~qSlicerSegmentEditorScriptedPaintEffect () override | |
![]() | |
Q_INVOKABLE void | clearBrushes () |
Q_INVOKABLE bool | delayedPaint () |
If enabled then segmentation is only modified when the mouse button is released. More... | |
Q_INVOKABLE double | minimumPaintPointDistance () |
Q_INVOKABLE QList< int > | paintBrushesIntoLabelmap (vtkOrientedImageData *labelmap, qMRMLWidget *viewWidget) |
Q_INVOKABLE QFrame * | paintOptionsFrame () |
bool | processInteractionEvents (vtkRenderWindowInteractor *callerInteractor, unsigned long eid, qMRMLWidget *viewWidget) override |
void | processViewNodeEvents (vtkMRMLAbstractViewNode *callerViewNode, unsigned long eid, qMRMLWidget *viewWidget) override |
qSlicerSegmentEditorPaintEffect (QObject *parent=nullptr) | |
Q_INVOKABLE void | setColorSmudgeCheckboxVisible (bool show) |
~qSlicerSegmentEditorPaintEffect () override | |
![]() | |
qSlicerSegmentEditorAbstractLabelEffect (QObject *parent=nullptr) | |
~qSlicerSegmentEditorAbstractLabelEffect () override | |
![]() | |
virtual Q_INVOKABLE bool | active () |
Returns true if the effect is currently active (activated and has not deactivated since then) More... | |
Q_INVOKABLE void | addActor2D (qMRMLWidget *viewWidget, vtkActor2D *actor) |
Q_INVOKABLE void | addActor3D (qMRMLWidget *viewWidget, vtkProp3D *actor) |
Q_INVOKABLE QWidget * | addLabeledOptionsWidget (QString label, QWidget *newOptionsWidget) |
Q_INVOKABLE QWidget * | addLabeledOptionsWidget (QString label, QLayout *newOptionsWidget) |
Q_INVOKABLE void | addOptionsWidget (QWidget *newOptionsWidget) |
Q_INVOKABLE void | addOptionsWidget (QLayout *newOptionsWidget) |
Q_INVOKABLE bool | commonParameterDefined (QString name) |
Returns true if the common parameter is already defined. More... | |
Q_INVOKABLE int | confirmCurrentSegmentVisible () |
Q_INVOKABLE void | cursorOff (qMRMLWidget *viewWidget) |
Turn off cursor and save cursor to restore later. More... | |
Q_INVOKABLE void | cursorOn (qMRMLWidget *viewWidget) |
Restore saved cursor. More... | |
Q_INVOKABLE vtkOrientedImageData * | defaultModifierLabelmap () |
Q_INVOKABLE double | doubleParameter (QString name) |
Convenience function to get double parameter. More... | |
Q_INVOKABLE int | integerParameter (QString name) |
Convenience function to get integer parameter. More... | |
virtual void | interactionNodeModified (vtkMRMLInteractionNode *interactionNode) |
Q_INVOKABLE vtkOrientedImageData * | maskLabelmap () |
Q_INVOKABLE vtkOrientedImageData * | masterVolumeImageData () |
Q_INVOKABLE vtkOrientedImageData * | modifierLabelmap () |
virtual Q_INVOKABLE void | modifySegmentByLabelmap (vtkMRMLSegmentationNode *segmentationNode, const char *segmentID, vtkOrientedImageData *modifierLabelmap, ModificationMode modificationMode, bool bypassMasking=false) |
virtual Q_INVOKABLE void | modifySegmentByLabelmap (vtkMRMLSegmentationNode *segmentationNode, const char *segmentID, vtkOrientedImageData *modifierLabelmap, ModificationMode modificationMode, const int modificationExtent[6], bool bypassMasking=false) |
virtual Q_INVOKABLE void | modifySelectedSegmentByLabelmap (vtkOrientedImageData *modifierLabelmap, ModificationMode modificationMode, const int modificationExtent[6], bool bypassMasking=false) |
virtual Q_INVOKABLE void | modifySelectedSegmentByLabelmap (vtkOrientedImageData *modifierLabelmap, ModificationMode modificationMode, bool bypassMasking=false) |
virtual Q_INVOKABLE void | modifySelectedSegmentByLabelmap (vtkOrientedImageData *modifierLabelmap, ModificationMode modificationMode, QList< int > extent, bool bypassMasking=false) |
virtual QString | name () const |
Get name of effect. More... | |
Q_INVOKABLE QFrame * | optionsFrame () |
Get effect options frame. More... | |
Q_INVOKABLE QFormLayout * | optionsLayout () |
Get layout of options frame. More... | |
Q_INVOKABLE QString | parameter (QString name) |
Get effect or common parameter from effect parameter set node. More... | |
Q_INVOKABLE bool | parameterDefined (QString name) |
Returns true if the effect-specific parameter is already defined. More... | |
Q_INVOKABLE vtkMRMLSegmentEditorNode * | parameterSetNode () |
Get segment editor parameter set node. More... | |
virtual bool | perSegment () const |
Get flag indicating whether effect operates on segments (true) or the whole segmentation (false). More... | |
qSlicerSegmentEditorAbstractEffect (QObject *parent=nullptr) | |
Q_INVOKABLE vtkOrientedImageData * | referenceGeometryImage () |
Q_INVOKABLE void | removeActor2D (qMRMLWidget *viewWidget, vtkActor2D *actor) |
Remove actor from the renderer of the widget. More... | |
Q_INVOKABLE void | removeActor3D (qMRMLWidget *viewWidget, vtkProp3D *actor) |
Remove actor from the renderer of the widget. More... | |
virtual bool | requireSegments () const |
If this property is set to true then this effect is enabled only when the segmentation has segment(s) in it. More... | |
Q_INVOKABLE void | saveStateForUndo () |
Q_INVOKABLE vtkMRMLScene * | scene () |
Get MRML scene (from parameter set node) More... | |
Q_INVOKABLE bool | segmentationDisplayableInView (vtkMRMLAbstractViewNode *viewNode) |
Q_INVOKABLE vtkOrientedImageData * | selectedSegmentLabelmap () |
Q_INVOKABLE void | selectEffect (QString effectName) |
void | setCallbackSlots (QObject *receiver, const char *selectEffectSlot, const char *updateVolumeSlot, const char *saveStateForUndoSlot) |
Q_INVOKABLE void | setCommonParameter (QString name, QString value) |
Q_INVOKABLE void | setCommonParameter (QString name, int value) |
Convenience function to set integer common parameter. More... | |
Q_INVOKABLE void | setCommonParameter (QString name, double value) |
Convenience function to set double common parameter. More... | |
Q_INVOKABLE void | setCommonParameterDefault (QString name, QString value) |
Q_INVOKABLE void | setCommonParameterDefault (QString name, int value) |
Q_INVOKABLE void | setCommonParameterDefault (QString name, double value) |
Q_INVOKABLE void | setParameter (QString name, QString value) |
Q_INVOKABLE void | setParameter (QString name, int value) |
Q_INVOKABLE void | setParameter (QString name, double value) |
Q_INVOKABLE void | setParameterDefault (QString name, QString value) |
Q_INVOKABLE void | setParameterDefault (QString name, int value) |
Q_INVOKABLE void | setParameterDefault (QString name, double value) |
Q_INVOKABLE void | setParameterSetNode (vtkMRMLSegmentEditorNode *node) |
Set segment editor parameter set node. More... | |
virtual void | setPerSegment (bool perSegment) |
virtual void | setRequireSegments (bool requireSegments) |
If this property is set to true then this effect is enabled only when the segmentation has segment(s) in it. More... | |
void | setShowEffectCursorInSliceView (bool show) |
void | setShowEffectCursorInThreeDView (bool show) |
void | setVolumes (vtkOrientedImageData *alignedMasterVolume, vtkOrientedImageData *modifierLabelmap, vtkOrientedImageData *maskLabelmap, vtkOrientedImageData *selectedSegmentLabelmap, vtkOrientedImageData *referenceGeometryImage) |
Called by the editor widget. More... | |
bool | showEffectCursorInSliceView () |
bool | showEffectCursorInThreeDView () |
~qSlicerSegmentEditorAbstractEffect () override | |
Protected Attributes | |
QScopedPointer< qSlicerSegmentEditorScriptedPaintEffectPrivate > | d_ptr |
![]() | |
QScopedPointer< qSlicerSegmentEditorPaintEffectPrivate > | d_ptr |
bool | m_AlwaysErase |
bool | m_Erase |
Flag determining whether to paint or erase. More... | |
![]() | |
QScopedPointer< qSlicerSegmentEditorAbstractLabelEffectPrivate > | d_ptr |
![]() | |
QScopedPointer< qSlicerSegmentEditorAbstractEffectPrivate > | d_ptr |
bool | m_Active {false} |
vtkWeakPointer< vtkSegment > | m_AlreadyConfirmedSegmentVisible |
double | m_EraseValue {0.0} |
double | m_FillValue {1.0} |
QString | m_Name |
Name of the effect. More... | |
bool | m_PerSegment {true} |
bool | m_RequireSegments {true} |
bool | m_ShowEffectCursorInSliceView {true} |
bool | m_ShowEffectCursorInThreeDView {false} |
Additional Inherited Members | |
![]() | |
bool | delayedPaint |
double | minimumPaintPointDistance |
![]() | |
QString | name |
bool | perSegment |
bool | requireSegments |
bool | showEffectCursorInSliceView |
bool | showEffectCursorInThreeDView |
![]() | |
static Q_INVOKABLE void | appendImage (vtkOrientedImageData *inputImage, vtkOrientedImageData *appendedImage) |
Append image onto image. Resamples appended image and saves result in input image. More... | |
static Q_INVOKABLE void | appendPolyMask (vtkOrientedImageData *input, vtkPolyData *polyData, qMRMLSliceWidget *sliceWidget, vtkMRMLSegmentationNode *segmentationNode=nullptr) |
Rasterize a poly data onto the input image into the slice view. More... | |
static Q_INVOKABLE void | createMaskImageFromPolyData (vtkPolyData *polyData, vtkOrientedImageData *outputMask, qMRMLSliceWidget *sliceWidget) |
Create a slice view screen space (2D) mask image for the given polydata. More... | |
static Q_INVOKABLE void | imageToWorldMatrix (vtkMRMLVolumeNode *node, vtkMatrix4x4 *ijkToRas) |
static Q_INVOKABLE void | imageToWorldMatrix (vtkOrientedImageData *image, vtkMRMLSegmentationNode *node, vtkMatrix4x4 *ijkToRas) |
![]() | |
static Q_INVOKABLE void | applyImageMask (vtkOrientedImageData *input, vtkOrientedImageData *mask, double fillValue, bool notMask=false) |
static Q_INVOKABLE void | forceRender (qMRMLWidget *viewWidget) |
static QPoint | rasToXy (double ras[3], qMRMLSliceWidget *sliceWidget) |
Convert RAS position to XY in-slice position. More... | |
static Q_INVOKABLE QPoint | rasToXy (QVector3D ras, qMRMLSliceWidget *sliceWidget) |
Convert RAS position to XY in-slice position, python accessor method. More... | |
static Q_INVOKABLE vtkRenderer * | renderer (qMRMLWidget *viewWidget) |
Get renderer for view widget. More... | |
static Q_INVOKABLE vtkRenderWindow * | renderWindow (qMRMLWidget *viewWidget) |
Get render window for view widget. More... | |
static Q_INVOKABLE void | scheduleRender (qMRMLWidget *viewWidget) |
static Q_INVOKABLE double | sliceSpacing (qMRMLSliceWidget *sliceWidget) |
static Q_INVOKABLE vtkMRMLAbstractViewNode * | viewNode (qMRMLWidget *viewWidget) |
Get node for view widget. More... | |
static void | xyToIjk (QPoint xy, int outputIjk[3], qMRMLSliceWidget *sliceWidget, vtkOrientedImageData *image, vtkMRMLTransformNode *parentTransform=nullptr) |
Convert XY in-slice position to image IJK position. More... | |
static void | xyToIjk (double xy[2], int outputIjk[3], qMRMLSliceWidget *sliceWidget, vtkOrientedImageData *image, vtkMRMLTransformNode *parentTransform=nullptr) |
Convert XY in-slice position to image IJK position. More... | |
static Q_INVOKABLE QVector3D | xyToIjk (QPoint xy, qMRMLSliceWidget *sliceWidget, vtkOrientedImageData *image, vtkMRMLTransformNode *parentTransform=nullptr) |
Convert XY in-slice position to image IJK position, python accessor method. More... | |
static void | xyToRas (QPoint xy, double outputRas[3], qMRMLSliceWidget *sliceWidget) |
Convert XY in-slice position to RAS position. More... | |
static void | xyToRas (double xy[2], double outputRas[3], qMRMLSliceWidget *sliceWidget) |
Convert XY in-slice position to RAS position. More... | |
static Q_INVOKABLE QVector3D | xyToRas (QPoint xy, qMRMLSliceWidget *sliceWidget) |
Convert XY in-slice position to RAS position, python accessor method. More... | |
static void | xyzToIjk (double inputXyz[3], int outputIjk[3], qMRMLSliceWidget *sliceWidget, vtkOrientedImageData *image, vtkMRMLTransformNode *parentTransform=nullptr) |
Convert XYZ slice view position to image IJK position,. More... | |
static Q_INVOKABLE QVector3D | xyzToIjk (QVector3D inputXyz, qMRMLSliceWidget *sliceWidget, vtkOrientedImageData *image, vtkMRMLTransformNode *parentTransform=nullptr) |
Convert XYZ slice view position to image IJK position, python accessor method,. More... | |
static void | xyzToRas (double inputXyz[3], double outputRas[3], qMRMLSliceWidget *sliceWidget) |
static Q_INVOKABLE QVector3D | xyzToRas (QVector3D inputXyz, qMRMLSliceWidget *sliceWidget) |
Convert XYZ slice view position to RAS position, python accessor method. More... | |
Scripted abstract effect for implementing paint effects in python.
This class provides an interface to paint effects implemented in python. Paint effects are a subtype of general effects that operate on a subregion of the segment defined by brush strokes.
USAGE: Subclass AbstractScriptedSegmentEditorPaintEffect in EditorEffects/Python subfolder, and register effect by creating this class and setting python source to implemented effect subclass. One example is the DrawEffect.
Definition at line 49 of file qSlicerSegmentEditorScriptedPaintEffect.h.
Definition at line 55 of file qSlicerSegmentEditorScriptedPaintEffect.h.
qSlicerSegmentEditorScriptedPaintEffect::qSlicerSegmentEditorScriptedPaintEffect | ( | QObject * | parent = nullptr | ) |
|
override |
|
overridevirtual |
Perform actions to activate the effect (show options frame, etc.)
Reimplemented from qSlicerSegmentEditorAbstractEffect.
|
overridevirtual |
Clone editor effect. Override to return a new instance of the effect sub-class.
Reimplemented from qSlicerSegmentEditorPaintEffect.
|
overridevirtual |
Create a cursor customized for the given effect, potentially for each view.
Reimplemented from qSlicerSegmentEditorAbstractEffect.
|
overridevirtual |
Perform actions to deactivate the effect (hide options frame, destroy actors, etc.)
Reimplemented from qSlicerSegmentEditorPaintEffect.
|
overridevirtual |
Get help text for effect to be displayed in the help box.
Reimplemented from qSlicerSegmentEditorPaintEffect.
|
overridevirtual |
Get icon for effect to be displayed in segment editor.
Reimplemented from qSlicerSegmentEditorPaintEffect.
|
overridevirtual |
Simple mechanism to let the effects know that the layout has changed.
Reimplemented from qSlicerSegmentEditorAbstractEffect.
|
overridevirtual |
Simple mechanism to let the effects know that master volume has changed.
Reimplemented from qSlicerSegmentEditorAbstractLabelEffect.
|
virtual |
Paint labelmap.
Reimplemented from qSlicerSegmentEditorPaintEffect.
Q_INVOKABLE QString qSlicerSegmentEditorScriptedPaintEffect::pythonSource | ( | ) | const |
|
overridevirtual |
Simple mechanism to let the effects know that reference geometry change has changed.
Reimplemented from qSlicerSegmentEditorPaintEffect.
Q_INVOKABLE PyObject* qSlicerSegmentEditorScriptedPaintEffect::self | ( | ) | const |
Convenience method allowing to retrieve the associated scripted instance.
|
overridevirtual |
Set default parameters in the parameter MRML node.
Reimplemented from qSlicerSegmentEditorPaintEffect.
|
overridevirtual |
Q_INVOKABLE bool qSlicerSegmentEditorScriptedPaintEffect::setPythonSource | ( | const QString | newPythonSource | ) |
Set python source for the implemented effect
newPythonSource | Python file path |
|
overridevirtual |
Create options frame widgets, make connections, and add them to the main options frame using.
Reimplemented from qSlicerSegmentEditorPaintEffect.
|
overrideslot |
Update user interface from parameter set node.
|
overrideslot |
Update parameter set node from user interface.
|
protected |
Definition at line 115 of file qSlicerSegmentEditorScriptedPaintEffect.h.