Slicer  5.0
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
List of all members | Public Types | Public Slots | Public Member Functions | Protected Attributes
qSlicerSegmentEditorScriptedPaintEffect Class Reference

Scripted abstract effect for implementing paint effects in python. More...

#include <Modules/Loadable/Segmentations/EditorEffects/qSlicerSegmentEditorScriptedPaintEffect.h>

Inheritance diagram for qSlicerSegmentEditorScriptedPaintEffect:
Inheritance graph
[legend]
Collaboration diagram for qSlicerSegmentEditorScriptedPaintEffect:
Collaboration graph
[legend]

Public Types

typedef qSlicerSegmentEditorPaintEffect Superclass
 
- Public Types inherited from qSlicerSegmentEditorPaintEffect
typedef qSlicerSegmentEditorAbstractLabelEffect Superclass
 
- Public Types inherited from qSlicerSegmentEditorAbstractLabelEffect
typedef qSlicerSegmentEditorAbstractEffect Superclass
 
- Public Types inherited from qSlicerSegmentEditorAbstractEffect
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...
 
- Public Slots inherited from qSlicerSegmentEditorPaintEffect
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...
 
- Public Slots inherited from qSlicerSegmentEditorAbstractLabelEffect
void updateGUIFromMRML () override
 Update user interface from parameter set node. More...
 
void updateMRMLFromGUI () override
 Update parameter set node from user interface. More...
 
- Public Slots inherited from qSlicerSegmentEditorAbstractEffect
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...
 
qSlicerSegmentEditorAbstractEffectclone () 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) override
 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 PyObjectself () 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
 
- Public Member Functions inherited from qSlicerSegmentEditorPaintEffect
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
 
- Public Member Functions inherited from qSlicerSegmentEditorAbstractLabelEffect
 qSlicerSegmentEditorAbstractLabelEffect (QObject *parent=nullptr)
 
 ~qSlicerSegmentEditorAbstractLabelEffect () override
 
- Public Member Functions inherited from qSlicerSegmentEditorAbstractEffect
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 vtkOrientedImageDatadefaultModifierLabelmap ()
 
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 vtkOrientedImageDatamaskLabelmap ()
 
Q_INVOKABLE vtkOrientedImageDatamasterVolumeImageData ()
 
Q_INVOKABLE vtkOrientedImageDatamodifierLabelmap ()
 
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 vtkMRMLSegmentEditorNodeparameterSetNode ()
 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 vtkOrientedImageDatareferenceGeometryImage ()
 
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 vtkMRMLScenescene ()
 Get MRML scene (from parameter set node) More...
 
Q_INVOKABLE bool segmentationDisplayableInView (vtkMRMLAbstractViewNode *viewNode)
 
Q_INVOKABLE vtkOrientedImageDataselectedSegmentLabelmap ()
 
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
 
- Protected Attributes inherited from qSlicerSegmentEditorPaintEffect
QScopedPointer< qSlicerSegmentEditorPaintEffectPrivate > d_ptr
 
bool m_AlwaysErase
 
bool m_Erase
 Flag determining whether to paint or erase. More...
 
- Protected Attributes inherited from qSlicerSegmentEditorAbstractLabelEffect
QScopedPointer< qSlicerSegmentEditorAbstractLabelEffectPrivate > d_ptr
 
- Protected Attributes inherited from qSlicerSegmentEditorAbstractEffect
QScopedPointer< qSlicerSegmentEditorAbstractEffectPrivate > d_ptr
 
bool m_Active {false}
 
vtkWeakPointer< vtkSegmentm_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

- Properties inherited from qSlicerSegmentEditorPaintEffect
bool delayedPaint
 
double minimumPaintPointDistance
 
- Properties inherited from qSlicerSegmentEditorAbstractEffect
QString name
 
bool perSegment
 
bool requireSegments
 
bool showEffectCursorInSliceView
 
bool showEffectCursorInThreeDView
 
- Static Public Member Functions inherited from qSlicerSegmentEditorAbstractLabelEffect
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 Public Member Functions inherited from qSlicerSegmentEditorAbstractEffect
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 vtkMRMLAbstractViewNodeviewNode (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...
 

Detailed Description

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.

Member Typedef Documentation

◆ Superclass

Definition at line 55 of file qSlicerSegmentEditorScriptedPaintEffect.h.

Constructor & Destructor Documentation

◆ qSlicerSegmentEditorScriptedPaintEffect()

qSlicerSegmentEditorScriptedPaintEffect::qSlicerSegmentEditorScriptedPaintEffect ( QObject *  parent = nullptr)

◆ ~qSlicerSegmentEditorScriptedPaintEffect()

qSlicerSegmentEditorScriptedPaintEffect::~qSlicerSegmentEditorScriptedPaintEffect ( )
override

Member Function Documentation

◆ activate()

void qSlicerSegmentEditorScriptedPaintEffect::activate ( )
overridevirtual

Perform actions to activate the effect (show options frame, etc.)

Reimplemented from qSlicerSegmentEditorAbstractEffect.

◆ clone()

qSlicerSegmentEditorAbstractEffect* qSlicerSegmentEditorScriptedPaintEffect::clone ( )
overridevirtual

Clone editor effect. Override to return a new instance of the effect sub-class.

Reimplemented from qSlicerSegmentEditorPaintEffect.

◆ createCursor()

QCursor qSlicerSegmentEditorScriptedPaintEffect::createCursor ( qMRMLWidget viewWidget)
overridevirtual

Create a cursor customized for the given effect, potentially for each view.

Reimplemented from qSlicerSegmentEditorAbstractEffect.

◆ deactivate()

void qSlicerSegmentEditorScriptedPaintEffect::deactivate ( )
overridevirtual

Perform actions to deactivate the effect (hide options frame, destroy actors, etc.)

Reimplemented from qSlicerSegmentEditorPaintEffect.

◆ helpText()

const QString qSlicerSegmentEditorScriptedPaintEffect::helpText ( ) const
overridevirtual

Get help text for effect to be displayed in the help box.

Reimplemented from qSlicerSegmentEditorPaintEffect.

◆ icon()

QIcon qSlicerSegmentEditorScriptedPaintEffect::icon ( )
overridevirtual

Get icon for effect to be displayed in segment editor.

Reimplemented from qSlicerSegmentEditorPaintEffect.

◆ layoutChanged()

void qSlicerSegmentEditorScriptedPaintEffect::layoutChanged ( )
overridevirtual

Simple mechanism to let the effects know that the layout has changed.

Reimplemented from qSlicerSegmentEditorAbstractEffect.

◆ masterVolumeNodeChanged()

void qSlicerSegmentEditorScriptedPaintEffect::masterVolumeNodeChanged ( )
overridevirtual

Simple mechanism to let the effects know that master volume has changed.

Reimplemented from qSlicerSegmentEditorAbstractLabelEffect.

◆ paintApply()

void qSlicerSegmentEditorScriptedPaintEffect::paintApply ( qMRMLWidget viewWidget)
overridevirtual

Paint labelmap.

Reimplemented from qSlicerSegmentEditorPaintEffect.

◆ pythonSource()

Q_INVOKABLE QString qSlicerSegmentEditorScriptedPaintEffect::pythonSource ( ) const

◆ referenceGeometryChanged()

void qSlicerSegmentEditorScriptedPaintEffect::referenceGeometryChanged ( )
overridevirtual

Simple mechanism to let the effects know that reference geometry change has changed.

Reimplemented from qSlicerSegmentEditorPaintEffect.

◆ self()

Q_INVOKABLE PyObject* qSlicerSegmentEditorScriptedPaintEffect::self ( ) const

Convenience method allowing to retrieve the associated scripted instance.

◆ setMRMLDefaults()

void qSlicerSegmentEditorScriptedPaintEffect::setMRMLDefaults ( )
overridevirtual

Set default parameters in the parameter MRML node.

Reimplemented from qSlicerSegmentEditorPaintEffect.

◆ setName()

void qSlicerSegmentEditorScriptedPaintEffect::setName ( QString  name)
overridevirtual

Set the name property value.

See also
name

Reimplemented from qSlicerSegmentEditorAbstractEffect.

◆ setPythonSource()

Q_INVOKABLE bool qSlicerSegmentEditorScriptedPaintEffect::setPythonSource ( const QString  newPythonSource)

Set python source for the implemented effect

Parameters
newPythonSourcePython file path

◆ setupOptionsFrame()

void qSlicerSegmentEditorScriptedPaintEffect::setupOptionsFrame ( )
overridevirtual

Create options frame widgets, make connections, and add them to the main options frame using.

See also
addOptionsWidget

Reimplemented from qSlicerSegmentEditorPaintEffect.

◆ updateGUIFromMRML

void qSlicerSegmentEditorScriptedPaintEffect::updateGUIFromMRML ( )
overrideslot

Update user interface from parameter set node.

◆ updateMRMLFromGUI

void qSlicerSegmentEditorScriptedPaintEffect::updateMRMLFromGUI ( )
overrideslot

Update parameter set node from user interface.

Member Data Documentation

◆ d_ptr

QScopedPointer<qSlicerSegmentEditorScriptedPaintEffectPrivate> qSlicerSegmentEditorScriptedPaintEffect::d_ptr
protected

Definition at line 116 of file qSlicerSegmentEditorScriptedPaintEffect.h.


The documentation for this class was generated from the following file: