Computer Assisted Medical Intervention Tool Kit version 6.0
 
Loading...
Searching...
No Matches
camitk::Action Class Referenceabstract

Action class is an abstract class that enables you to build a action (generally an algorithm that works on specific data, i.e. More...

#include <Action.h>

Inherits QObject, and camitk::InterfacePersistence.

Inherited by AboutAction, AnglesAndTranslationAction, AnisotropicDiffusion, AppendMeshes, CannyEdgeDetection, CenterMesh, ChangeColor, ChangeLanguage, CleanPolyData, ClearSelectionAction, CloseAction, CloseAllAction, ComputeCurvatures, ComputeNormals, ConnectedComponents, CreateSC, Decimation, Derivative, ExportAsMDL, ExtractEdges, ExtractSelection, ExtractSurface, FillWithPoints, GaussianFilter, GenerateModel, GradientMagnitude, GradientMagnitudeRecursiveGaussian, GridTopology, ICPRegistration, ImageLutAction, ImageReconstructionAction, InitImagerAction, InvertMesh, Laplacian, LaplacianRecursiveGaussian, LaplacianSharpening, LoadTextureFromBMP, LoadTransformation, LoggerParameters, ManualThreshold, MeanFilter, MedianFilter, MergeMeshes, MeshClipping, MeshPicking, MeshProjection, MeshQuality, MeshToImageStencil, MorphologicalOperators, MultiPicking, OpenAction, OpenFile, OpenWorkspaceFile, OtsuFilter, PMLExplorerAction, PixelColorChanger, QuitAction, RegionGrowing, RemoveLastInstantiatedAction, RenderingOption, ReorientImage, ResampleAction, RigidTransform, SaveAction, SaveAllAction, SaveAsAction, SaveDisplacementFromTransformation, SaveWorkspace, SelectLastInstantiatedAction, SetPathToTestData, Show3DViewer, ShowAllViewers, ShowArbitrarySliceIn3D, ShowArbitraryViewer, ShowAxialSliceIn3D, ShowAxialViewer, ShowCoronalSliceIn3D, ShowCoronalViewer, ShowImageIn3D, ShowSagittalSliceIn3D, ShowSagittalViewer, SimpleElastixRegistrationAction, SimulationDialog, SingleAcquisition2DAction, SingleAcquisition3DAction, SmoothFilter, SobelEdgeDetection, SphereTopology, StartImaging2DAction, StartImaging3DAction, StopImaging2DAction, StopImaging3DAction, ToggleConsoleAction, VolumeRenderingAction, WarpOut, and camitk::HotPlugAction.

+ Collaboration diagram for camitk::Action:

Public Types

enum  ApplyStatus {
  SUCCESS , ERROR , WARNING , ABORTED ,
  TRIGGERED
}
 describes what happened during the application of an algorithm (i.e. results of the apply method) More...
 

Public Slots

virtual camitk::Action::ApplyStatus apply ()=0
 This method is called when the action has to be applied on the target list (get the target lists using getTargets()) It calls the algorithm of your action on the target list of components.
 
camitk::Action::ApplyStatus applyAndRegister ()
 This method is called whenever the action has to be applied on the target list (like the apply()) method AND registered within the application history of actions.
 
camitk::Action::ApplyStatus trigger (QWidget *parent=nullptr)
 This method triggers the action.
 

Public Member Functions

 Action (ActionExtension *)
 Default Constructor: the ActionExtension is needed.
 
 ~Action () override
 Destructor.
 
Generic action getters

These methods can not be redefined in subclasses.

virtual QAction * getQAction (Component *target=nullptr)
 Get the corresponding QAction.
 
QString getName () const
 get the name of the action
 
QString getDescription () const
 the description of the action
 
QString getComponentClassName () const
 the name of the component class that can be used by this action
 
QString getFamily () const
 the name of the family in which this action is associated
 
QString getExtensionName () const
 the name of the extension in the family in which this action is associated
 
QStringList getTag () const
 the name of the tag called this action
 
bool getEmbedded () const
 argument use to know if the widget is embedded or not
 
Method specific to an action.
virtual QWidget * getWidget ()
 This method has to be redefined in your Action only if:
 
void setDefaultWidgetButtonVisibility (bool)
 if false then the apply/revert buttons are shown
 
void setDefaultWidgetApplyButtonText (QString)
 modify the "Apply" button text
 
virtual QPixmap getIcon ()
 the icon to personalize the action (no icon by default)
 
const ComponentList getTargets () const
 the currently selected and valid (regarding the component property) components, for which this action is called
 
void updateTargets ()
 update the target list using the currently selected components
 
Property management

auto update properties

bool getAutoUpdateProperties () const
 
void setAutoUpdateProperties (bool)
 are the properties to be updated every time the user makes a change in the widget (default is false)?
 
virtual Q_INVOKABLE camitk::PropertygetProperty (QString name)
 Get a Property given its name.
 
virtual QVariant getParameterValue (const QString &name) const
 get the parameter QVariant (same as property(const char*)) but check if it exists first.
 
virtual bool setParameterValue (const QString &name, QVariant newValue)
 set the parameter QVariant value (same as setProperty(const char*, newValue)) but check if it exists first.
 
virtual QString getParameterValueAsString (const QString &name) const
 utility method to get the parameter value as a QString (useful to print the value to log for instance) This method uses Property class to translate the value to a QString
 
virtual bool addParameter (Property *)
 Add a new parameter to the action, using the CamiTK property class.
 
InterfacePersistence
virtual QVariant toVariant () const override
 
virtual void fromVariant (const QVariant &) override
 Load data from a QVariant to initialize the current object.
 
virtual QUuid getUuid () const override
 Get the unique ID of the action.
 
virtual bool setUuid (QUuid) override
 Set the unique ID of the action.
 
- Public Member Functions inherited from camitk::InterfacePersistence
virtual ~InterfacePersistence ()=default
 

Static Public Member Functions

static QString getStatusAsString (ApplyStatus)
 

Protected Member Functions

const ActionExtensiongetExtension () const
 get the extension as const
 
void refreshApplication ()
 convenient method to call from the user code to refresh all the application This is equivalent to call Application::refresh()
 

Generic action attributes setters

These methods can not be redefined in subclasses but have to be used to ensure name/description uniqueness among CamiTK.

QWidget * actionWidget
 the action widget
 
void setName (QString name)
 
void setDescription (QString description)
 the description of the action
 
void setComponentClassName (QString componentClassName)
 set the name of the component class that can be used by this action
 
void setFamily (QString family)
 the name of the family in which this action is associated
 
void addTag (QString tag)
 add a tag to the tags list of this action
 
void setEmbedded (bool isEmbedded)
 set the embedded property (an action is embedded by default, unless specified otherwise by explicitly calling this method with false)
 
void setIcon (QPixmap)
 set the Pixmap
 

Pipeline execution of the Action

ApplyStatus applyInPipeline ()
 This method encapsulates the apply() method.
 
void setInputComponents (ComponentList inputs)
 Specify the input Component(s) Only applyInPipeline() should be called with this method (maybe apply), but not trigger() as its first intruction is to clear the target components list !!!
 
void setInputComponent (Component *input)
 Specify the input Components in case of only one Component.
 
ComponentList getOutputComponents ()
 Returns the output Component(s)
 
ComponentgetOutputComponent ()
 Returns the output Components in case of only one Component.
 

Detailed Description

Action class is an abstract class that enables you to build a action (generally an algorithm that works on specific data, i.e.

a specific component).

To write an new action extension, at least two classes have to be reimplemented to enable the action: ActionExtension + Action. All the plugin mechanism is simplified thanks to CamiTK extension files (a JSON file containing all the information to generate the glue between your code and CamiTK).

Overview

This is the list of attributes you need to consider when creating a new action

  • name: name of the action;
  • description: tag used to describe the action (also used for tooltip and whatsThis of the corresponding QAction);
  • componentClassName: the name of the component class on which this action can be applied or "" (default) for generic actions. It determines on which type of component your action can be applied. Generic actions are action that have an empty component class name. Therefore generic actions can be called to generate/synthetize data or initialize resources.
  • family: families of actions allows one to group different actions of the same kind under one name;
  • tags: tags is a list of words used to define an action. These words can be used to find an action.
  • gui: either "Default Action GUI" (the action uses a default widget, instance of ActionWidget), "No GUI" or "Custom GUI" (you need to create the action's gui widget)
  • notEmbedded: this boolean defines if the gui widget is embedded in a given parent widget / action widget container (true by default) or not
  • icon: the icon used for the visually distinguish the action (used by the corresponding QAction)
Note
An Action has a corresponding QAction, see getQAction(), that makes it easy to trigger an action from any Qt GUI (menus, toolbar, push buttons...). You can also call your action programmatically from any other code.

If the component class name is not empty, the action is using the currently selected components of the given type (class name). If the component class name is empty, the action does not need any input.

Using CamiTK extension file

Using CamiTK extension file simplifies the creation and modification of actions. When using a CamiTK extension file, the extension generator will generate a initial .cpp file that you just have to fill in with your source code.

These are the five methods you need to consider for customization:

  • init() is called when the action is loaded by the extension manager (i.e., when the action is instantiated). This is where all instance wide initialization should be done
  • process() is called when the user presses the "Apply" button. This is the main code for the action, where things are done
  • targetDefined() is called when the target of the action are defined (i.e., when the action is triggered). It is generally used to update the action GUI
  • parameterChanged() is called when a parameter value has changed. Similarly to targetDefined() it can be used to update the action GUI
  • (optional) getUI() if the developer wants to have a custom GUI, this is where she/he should instantiate the corresponding widget(s)

You can call refreshApplication() in order to force the viewers to refresh.

Action Parameters

Action parameters are automatically created from the CamiTK extension files. Each parameter is defined as a Qt dynamic property. In your C++ code it is strongly recommended to use:

  • getParameterValue("My Parameter") to get the value as a QVariant (you can they use toString(), toBool(), toDouble()... depending on the type of "My Parameter")
  • setParameterValue("My Parameter", newValue) to set the value of a parameter programmatically (newValue must be a QVariant or of type that can be converted to a QVariant)
  • getParameterValueAsString("My Parameter") to get a string representation of the value of "My Parameter"

Default GUI, Custom GUI or no GUI?

An Action generally is used to wrap an algorithm in CamiTK. If this algorithm has parameters, it is very easy to get these parameters accessible to the user through the ActionWidget. These parameters are in fact defined as Qt dynamic properties.

The default widget is an instance of ActionWidget. If ActionWidget does not correspond to what you need, just declare your action as having a Custom Widget You will then need to create a new class inheriting from QWidget, or directly from ActionWidget.

These are the use cases for using the default behaviour (i.e. an instance of ActionWidget):

  • your action has some parameters and you need the user to review the default or modify their values before the action is applied,
  • or your action has no parameters but you still want the user to be applied only if/when the user click on an apply button.

ActionWidget should be good enough in most of the cases. The default widget contains a description, a reminder of the current target component names, and an ObjectController with an Apply/Revert buttons that allows you to edit/modify properties. Use setDefaultWidgetButtonVisibility() to change the visibility of the Apply/Revert buttons and setDefaultWidgetApplyButtonText() to change the apply button text.

When an action has no GUI triggering the action will directly call process()

Note
The recommended architecture is for the action widget to call the action's apply method. The widget should only manage user interaction.

Underlying triggering and applying an action mechanism

Two steps have to be considered when using an action:

  • Step 1, trigger(): the action is either directly applied (if it does not have any GUI) or it's GUI is shown (using getWidget())
  • Step 2, apply(): only the action algorithm is applied, i.e., the data are processed

The targets can have changed between the time the action is first triggered and the time the action is applied. getWidget() is always called when the targets are updated. Therefore whenever getWidget() is called, you should make sure to update the the action GUI consequently. getTargets() is always updated in trigger() and available.

Note
trigger() and apply() are public slots. They can be called either directly (classic C++ method invocation) or by connecting them to a QWidget signal.

When an action is triggered (e.g., by right clicking in the context menu), the following algorithm applies, see trigger():

  • 1. Prepare targetComponents (available with getTargets()): only select the compatible components from the selected components
  • 2. If the action is embedded, get the widget and show it in a parent/container (if parent is not specified, show it in the action viewer)
  • 3. If the action in not embedded, show it as a dialog
  • 4. If the action does not have any widget, directly call apply()

This means that, if there is a widget, the action algorithm is controlled by the action widget, i.e. apply() is not called by trigger() but should be called by one of the action widget's button.

If ActionWidget is not what your need, a typical getUI() method should use the lazy instantiation pattern to instantiate MyVerySpecialActionWidget the first time it is called, and call the MyVerySpecialActionWidget instance's updateTargets() method for any subsequent calls. Something like:

QWidget *MyAction::getUI() {
// build or update the widget
if (!myWidget)
myWidget = new MyVerySpecialActionWidget(this);
else
// MyVerySpecialActionWidget should have an update() method
myWidget->update();
return myWidget;
}

But of course you can also use any kind of widget you like. ActionWidget is just defining a default widget for an action. If your action does not have any GUI/parameters, add a getWidget() and return nullptr.

By default the properties/parameters are automatically updated when the user change the default widget, they are updated only when the user click on the apply button of the default widget. The setAutoUpdateProperties(true) to automatically called. Use parameterChanged() to perform some action when a parameter was changed byt the user.

By default the action's widget is embedded. If you do not want to embed your action's widget, modify the "notEmbedded" parameter. When embedded, the parent widget has to be given at triggered time (i.e. getUI() is called during trigger). If there is no parent given for an embedded action, then the action is embedded in the ActionViewer by default.

The method apply() must be implemented in your Action.

Note
at any moment, the selected components on which the action needs to be applied are available by getTargets(). targetComponents is filtered so that it only contains compatible components (i.e., instances of getComponent()).
About registering your action in the history of the application. Consider registering your action within the application's history once applied. The history of action features a stack of processed action. The application's history of actions allows one to export the saved actions as an XML file for scripting or replaying it. To do so, implement the apply() method in your code, then launch the method applyAndRegister(), which simply wraps the apply() method with the preProcess() and postProcess() methods. You may also connect a SIGNAL to it, as the applyAndRegister() method is a Qt SLOT.

Creating a pipeline of actions

A pipeline of actions is a state machine where each state stands for an action with inputs and output components. The transitions between the states are done by processing the state's action (i.e. by calling the corresponding action's apply() method). Interpreting an pipeline of action is simpler than simply executing the action since the user doesn't need to manually set the inputs and outputs of each action (it is done automatically). If you are willing to write such a pipeline, simply implements the apply() method of each of your action and called the applyInPipeline() (instead of simply apply()). The method applyInPipeline() performs some pre- and post-processing around the method apply(). It has to be used within a pipeline (a chain of actions) where setInputComponents() and getOutputComponents() are needed. preProcessInPipeline() only selects the right components, and postProcess() sets output components and record history.

See also
RenderingOption For a simple example of an embedded action
RigidTransform For a simple example of a non-embedded action
ChangeColor For a simple example of an action with no widget (but with a GUI)

Member Enumeration Documentation

◆ ApplyStatus

describes what happened during the application of an algorithm (i.e. results of the apply method)

Enumerator
SUCCESS 

everything went according to plan

ERROR 

apply() failed : an error occurred (usually it means that the apply() was interrupted)

WARNING 

some (partial) error occurred during the application of the algorithm

ABORTED 

the action was aborted before completion

TRIGGERED 

the action was triggered only, but not applied

Constructor & Destructor Documentation

◆ Action()

camitk::Action::Action ( ActionExtension extension)

Default Constructor: the ActionExtension is needed.

References actionWidget.

◆ ~Action()

camitk::Action::~Action ( )
override

Destructor.

Member Function Documentation

◆ addParameter()

bool camitk::Action::addParameter ( Property prop)
virtual

Add a new parameter to the action, using the CamiTK property class.

If the parameter already exist, it will just change its value.

Note
The action takes ownership of the Property instance.
Returns
false if the Qt Meta Object property was added by this method (otherwise the property was already defined and true is returned if it was successfully updated)

Referenced by AnglesAndTranslationAction::AnglesAndTranslationAction(), AnisotropicDiffusion::AnisotropicDiffusion(), AppendMeshes::AppendMeshes(), CannyEdgeDetection::CannyEdgeDetection(), CenterMesh::CenterMesh(), ChangeLanguage::ChangeLanguage(), CleanPolyData::CleanPolyData(), ComputeCurvatures::ComputeCurvatures(), ConnectedComponents::ConnectedComponents(), CreateSC::CreateSC(), Decimation::Decimation(), Derivative::Derivative(), FillWithPoints::FillWithPoints(), GaussianFilter::GaussianFilter(), GenerateModel::GenerateModel(), GradientMagnitudeRecursiveGaussian::GradientMagnitudeRecursiveGaussian(), GridTopology::GridTopology(), ICPRegistration::ICPRegistration(), ImageReconstructionAction::ImageReconstructionAction(), Laplacian::Laplacian(), LaplacianRecursiveGaussian::LaplacianRecursiveGaussian(), ManualThreshold::ManualThreshold(), MeanFilter::MeanFilter(), MedianFilter::MedianFilter(), MeshProjection::MeshProjection(), MeshToImageStencil::MeshToImageStencil(), MorphologicalOperators::MorphologicalOperators(), OpenFile::OpenFile(), OpenWorkspaceFile::OpenWorkspaceFile(), OtsuFilter::OtsuFilter(), PixelColorChanger::PixelColorChanger(), RenderingOption::RenderingOption(), ReorientImage::ReorientImage(), ResampleAction::ResampleAction(), SimpleElastixRegistrationAction::SimpleElastixRegistrationAction(), SmoothFilter::SmoothFilter(), SobelEdgeDetection::SobelEdgeDetection(), SphereTopology::SphereTopology(), VolumeRenderingAction::VolumeRenderingAction(), and WarpOut::WarpOut().

+ Here is the caller graph for this function:

◆ addTag()

void camitk::Action::addTag ( QString  tag)
protected

add a tag to the tags list of this action

Referenced by AboutAction::AboutAction(), AnglesAndTranslationAction::AnglesAndTranslationAction(), AnisotropicDiffusion::AnisotropicDiffusion(), CannyEdgeDetection::CannyEdgeDetection(), CenterMesh::CenterMesh(), ChangeColor::ChangeColor(), ChangeLanguage::ChangeLanguage(), CleanPolyData::CleanPolyData(), ClearSelectionAction::ClearSelectionAction(), CloseAction::CloseAction(), CloseAllAction::CloseAllAction(), ComputeCurvatures::ComputeCurvatures(), ComputeNormals::ComputeNormals(), ConnectedComponents::ConnectedComponents(), CreateSC::CreateSC(), Decimation::Decimation(), Derivative::Derivative(), ExtractEdges::ExtractEdges(), ExtractSelection::ExtractSelection(), ExtractSurface::ExtractSurface(), FillWithPoints::FillWithPoints(), GaussianFilter::GaussianFilter(), GenerateModel::GenerateModel(), GradientMagnitude::GradientMagnitude(), GradientMagnitudeRecursiveGaussian::GradientMagnitudeRecursiveGaussian(), GridTopology::GridTopology(), camitk::HotPlugAction::HotPlugAction(), ICPRegistration::ICPRegistration(), ImageLutAction::ImageLutAction(), ImageReconstructionAction::ImageReconstructionAction(), InvertMesh::InvertMesh(), Laplacian::Laplacian(), LaplacianRecursiveGaussian::LaplacianRecursiveGaussian(), LaplacianSharpening::LaplacianSharpening(), LoadTransformation::LoadTransformation(), LoggerParameters::LoggerParameters(), ManualThreshold::ManualThreshold(), MeanFilter::MeanFilter(), MedianFilter::MedianFilter(), MergeMeshes::MergeMeshes(), MeshClipping::MeshClipping(), MeshPicking::MeshPicking(), MeshProjection::MeshProjection(), MeshQuality::MeshQuality(), MeshToImageStencil::MeshToImageStencil(), MorphologicalOperators::MorphologicalOperators(), MultiPicking::MultiPicking(), OpenAction::OpenAction(), OpenFile::OpenFile(), OpenWorkspaceFile::OpenWorkspaceFile(), OtsuFilter::OtsuFilter(), PixelColorChanger::PixelColorChanger(), PMLExplorerAction::PMLExplorerAction(), QuitAction::QuitAction(), RegionGrowing::RegionGrowing(), RemoveLastInstantiatedAction::RemoveLastInstantiatedAction(), RenderingOption::RenderingOption(), ReorientImage::ReorientImage(), RigidTransform::RigidTransform(), SaveAction::SaveAction(), SaveAllAction::SaveAllAction(), SaveAsAction::SaveAsAction(), SaveDisplacementFromTransformation::SaveDisplacementFromTransformation(), SaveWorkspace::SaveWorkspace(), SelectLastInstantiatedAction::SelectLastInstantiatedAction(), SetPathToTestData::SetPathToTestData(), Show3DViewer::Show3DViewer(), ShowAllViewers::ShowAllViewers(), ShowArbitrarySliceIn3D::ShowArbitrarySliceIn3D(), ShowArbitraryViewer::ShowArbitraryViewer(), ShowAxialSliceIn3D::ShowAxialSliceIn3D(), ShowAxialViewer::ShowAxialViewer(), ShowCoronalSliceIn3D::ShowCoronalSliceIn3D(), ShowCoronalViewer::ShowCoronalViewer(), ShowImageIn3D::ShowImageIn3D(), ShowSagittalSliceIn3D::ShowSagittalSliceIn3D(), ShowSagittalViewer::ShowSagittalViewer(), SimpleElastixRegistrationAction::SimpleElastixRegistrationAction(), SmoothFilter::SmoothFilter(), SobelEdgeDetection::SobelEdgeDetection(), SphereTopology::SphereTopology(), ToggleConsoleAction::ToggleConsoleAction(), VolumeRenderingAction::VolumeRenderingAction(), and WarpOut::WarpOut().

◆ apply

virtual camitk::Action::ApplyStatus camitk::Action::apply ( )
pure virtualslot

This method is called when the action has to be applied on the target list (get the target lists using getTargets()) It calls the algorithm of your action on the target list of components.

Note
it should never be empty!
if you wish to call your action and register it within the application history, prefer using the
See also
Action::applyAndRegister() method
Returns
The status of the apply method.

Referenced by QuitAction::apply(), applyAndRegister(), and applyInPipeline().

+ Here is the caller graph for this function:

◆ applyAndRegister

Action::ApplyStatus camitk::Action::applyAndRegister ( )
slot

This method is called whenever the action has to be applied on the target list (like the apply()) method AND registered within the application history of actions.

Note
This is the default behaviour of applying and action. The application's history of actions allows one to export the saved actions as an XML file for scripting or replaying it.
Returns
The status of the apply method.

References ABORTED, apply(), CAMITK_TRACE, getComponentClassName(), and getStatusAsString().

Referenced by trigger().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ applyInPipeline()

Action::ApplyStatus camitk::Action::applyInPipeline ( )

This method encapsulates the apply() method.

It has to be called within a pipeline (a chain of actions), where a script or another program calls setInputComponents() and/or getOutputComponents. It is not needed in the case of graphical interface which trigger the Action's widget and applies the action on selected components. When there is no GUI, preProcessInPipeline() and postProcessInPipeline() methods select the right component(s). As the method apply() is called between preProcessInPipeline() and postProcessInPipeline(), the returned value is the returned value of apply().

References ABORTED, apply(), CAMITK_TRACE, getComponentClassName(), and getStatusAsString().

Referenced by ActionState::applyAction(), SaveActionState::applyAction(), and WorkspaceExtension::open().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ fromVariant()

void camitk::Action::fromVariant ( const QVariant &  variant)
overridevirtual

Load data from a QVariant to initialize the current object.

Implements camitk::InterfacePersistence.

◆ getAutoUpdateProperties()

bool camitk::Action::getAutoUpdateProperties ( ) const

◆ getComponentClassName()

QString camitk::Action::getComponentClassName ( ) const
inline

the name of the component class that can be used by this action

Referenced by applyAndRegister(), applyInPipeline(), camitk::ActionWidget::showInfo(), and trigger().

+ Here is the caller graph for this function:

◆ getDescription()

QString camitk::Action::getDescription ( ) const
inline

the description of the action

References description.

Referenced by getQAction(), and camitk::ActionWidget::showInfo().

+ Here is the caller graph for this function:

◆ getEmbedded()

bool camitk::Action::getEmbedded ( ) const
inline

argument use to know if the widget is embedded or not

◆ getExtension()

const ActionExtension * camitk::Action::getExtension ( ) const
protected

get the extension as const

Referenced by camitk::CppHotPlugAction::update().

+ Here is the caller graph for this function:

◆ getExtensionName()

QString camitk::Action::getExtensionName ( ) const

the name of the extension in the family in which this action is associated

References camitk::ActionExtension::getName().

Referenced by camitk::Application::registerAllActions().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getFamily()

QString camitk::Action::getFamily ( ) const
inline

the name of the family in which this action is associated

Referenced by camitk::ActionWidget::showInfo().

+ Here is the caller graph for this function:

◆ getIcon()

QPixmap camitk::Action::getIcon ( )
virtual

the icon to personalize the action (no icon by default)

Referenced by camitk::ActionWidget::ActionWidget(), getQAction(), and camitk::ActionWidget::showInfo().

+ Here is the caller graph for this function:

◆ getName()

QString camitk::Action::getName ( ) const
inline

◆ getOutputComponent()

Component * camitk::Action::getOutputComponent ( )

Returns the output Components in case of only one Component.

◆ getOutputComponents()

ComponentList camitk::Action::getOutputComponents ( )

Returns the output Component(s)

Referenced by ActionState::applyAction().

+ Here is the caller graph for this function:

◆ getParameterValue()

◆ getParameterValueAsString()

QString camitk::Action::getParameterValueAsString ( const QString &  name) const
virtual

utility method to get the parameter value as a QString (useful to print the value to log for instance) This method uses Property class to translate the value to a QString

References getParameterValue(), and camitk::Property::getValueAsString().

+ Here is the call graph for this function:

◆ getProperty()

Property * camitk::Action::getProperty ( QString  name)
virtual

Get a Property given its name.

Parameters
namethe property name
Returns
nullptr if the name does not match any property name
See also
Property

Referenced by ManualThreshold::getWidget(), ResampleAction::getWidget(), and SimpleElastixRegistrationAction::getWidget().

+ Here is the caller graph for this function:

◆ getQAction()

QAction * camitk::Action::getQAction ( Component target = nullptr)
virtual

Get the corresponding QAction.

The corresponding QAction has its triggered() signal connected to the trigger() slot of the action. It shares the action icon (as the QAction's icon) and name (as the QAction's text). It also use the descriptions of the action for the tooltip/whatsThis text.

To add a shortcut, simply call getQAction()->setShortcut(..) in the action constructor. To make this shortcut available for any windows of the application, call getQAction()->setShortcutContext(Qt::ApplicationShortcut);

Override this method if your action can be toggled on/off (for instance an action that modifies the visibility of a component). This method is called in the Component class to build the component's action menu.

Reimplemented in ShowArbitrarySliceIn3D, ShowAxialSliceIn3D, ShowCoronalSliceIn3D, ShowImageIn3D, ShowSagittalSliceIn3D, and VolumeRenderingAction.

References getDescription(), getIcon(), getName(), and trigger().

Referenced by ToggleConsoleAction::apply(), ClearSelectionAction::ClearSelectionAction(), CloseAction::CloseAction(), MedicalImageViewer::getMenu(), ShowArbitrarySliceIn3D::getQAction(), ShowAxialSliceIn3D::getQAction(), ShowCoronalSliceIn3D::getQAction(), ShowImageIn3D::getQAction(), ShowSagittalSliceIn3D::getQAction(), VolumeRenderingAction::getQAction(), camitk::InteractiveViewer::getToolBar(), ToggleConsoleAction::getWidget(), camitk::MainWindow::MainWindow(), OpenAction::OpenAction(), OpenFile::OpenFile(), QuitAction::QuitAction(), SaveAction::SaveAction(), SaveAsAction::SaveAsAction(), MMLComponent::setSelected(), PMLComponent::setSelected(), camitk::MainWindow::show(), Show3DViewer::Show3DViewer(), ShowAllViewers::ShowAllViewers(), ShowArbitraryViewer::ShowArbitraryViewer(), ShowAxialViewer::ShowAxialViewer(), ShowCoronalViewer::ShowCoronalViewer(), ShowSagittalViewer::ShowSagittalViewer(), and ToggleConsoleAction::ToggleConsoleAction().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getStatusAsString()

QString camitk::Action::getStatusAsString ( ApplyStatus  status)
static
Returns
the QString equivalent of the given status

References ABORTED, ERROR, SUCCESS, TRIGGERED, and WARNING.

Referenced by ActionState::applyAction(), SaveActionState::applyAction(), applyAndRegister(), and applyInPipeline().

+ Here is the caller graph for this function:

◆ getTag()

QStringList camitk::Action::getTag ( ) const
inline

the name of the tag called this action

Referenced by camitk::ActionWidget::showInfo().

+ Here is the caller graph for this function:

◆ getTargets()

const ComponentList camitk::Action::getTargets ( ) const

the currently selected and valid (regarding the component property) components, for which this action is called

Referenced by AnisotropicDiffusion::apply(), CannyEdgeDetection::apply(), ConnectedComponents::apply(), Derivative::apply(), GaussianFilter::apply(), GradientMagnitude::apply(), GradientMagnitudeRecursiveGaussian::apply(), Laplacian::apply(), LaplacianRecursiveGaussian::apply(), LaplacianSharpening::apply(), MeanFilter::apply(), MedianFilter::apply(), MorphologicalOperators::apply(), SobelEdgeDetection::apply(), ManualThreshold::apply(), OtsuFilter::apply(), RegionGrowing::apply(), GenerateModel::apply(), CreateSC::apply(), CloseAction::apply(), SaveAction::apply(), SaveAsAction::apply(), ResampleAction::apply(), PixelColorChanger::apply(), ImageReconstructionAction::apply(), ReorientImage::apply(), InitImagerAction::apply(), SingleAcquisition2DAction::apply(), SingleAcquisition3DAction::apply(), StartImaging2DAction::apply(), StartImaging3DAction::apply(), StopImaging2DAction::apply(), StopImaging3DAction::apply(), ChangeColor::apply(), ComputeNormals::apply(), ExtractSelection::apply(), MeshPicking::apply(), MeshToImageStencil::apply(), RenderingOption::apply(), AppendMeshes::apply(), CleanPolyData::apply(), ComputeCurvatures::apply(), Decimation::apply(), ExportAsMDL::apply(), ExtractEdges::apply(), ExtractSurface::apply(), FillWithPoints::apply(), ICPRegistration::apply(), InvertMesh::apply(), LoadTextureFromBMP::apply(), MergeMeshes::apply(), SaveDisplacementFromTransformation::apply(), SmoothFilter::apply(), WarpOut::apply(), MeshProjection::apply(), ShowArbitrarySliceIn3D::apply(), ShowAxialSliceIn3D::apply(), ShowCoronalSliceIn3D::apply(), ShowImageIn3D::apply(), ShowSagittalSliceIn3D::apply(), CenterMesh::apply(), MeshQuality::apply(), RigidTransform::apply(), LoadTransformation::apply(), RegionGrowing::apply(), MeshQuality::computeMeasure(), CreateSC::event(), camitk::ActionWidget::getTargetLabel(), ManualThreshold::getWidget(), RegionGrowing::getWidget(), SimulationDialog::getWidget(), CreateSC::getWidget(), PMLExplorerAction::getWidget(), AnglesAndTranslationAction::getWidget(), ImageLutAction::getWidget(), ResampleAction::getWidget(), MultiPicking::getWidget(), RenderingOption::getWidget(), MeshProjection::getWidget(), SimpleElastixRegistrationAction::getWidget(), ShowImageIn3D::getWidget(), VolumeRenderingAction::getWidget(), CenterMesh::getWidget(), and RigidTransform::getWidget().

◆ getUuid()

QUuid camitk::Action::getUuid ( ) const
overridevirtual

Get the unique ID of the action.

Implements camitk::InterfacePersistence.

◆ getWidget()

QWidget * camitk::Action::getWidget ( )
virtual

This method has to be redefined in your Action only if:

  • you do not have any widget to control your action (i.e. getWidget() will have to return nullptr),
  • you do not use the default ActionWidget but another one.

In the second case, it is strongly recommended to have a code similar to this:

QWidget *MyAction::getWidget() {
// build or update the widget
if (!myWidget)
myWidget = new MyVerySpecialActionWidget(this);
else
// MyVerySpecialActionWidget should have an update() method
myWidget->update();
return myWidget;
}

The update() method in MyVerySpecialActionWidget is used in case the selection has changed since the last time the widget was shown (a change in the selection often means the targets or the parameter values have changed, the UI should be refreshed as well).

Reimplemented in ConnectedComponents, ManualThreshold, OtsuFilter, RegionGrowing, GenerateModel, CreateSC, PMLExplorerAction, ClearSelectionAction, RemoveLastInstantiatedAction, SelectLastInstantiatedAction, SetPathToTestData, CloseAction, CloseAllAction, OpenAction, OpenFile, OpenWorkspaceFile, QuitAction, SaveAction, SaveAllAction, SaveAsAction, SaveWorkspace, AboutAction, ChangeLanguage, LoggerParameters, ToggleConsoleAction, AnglesAndTranslationAction, ImageLutAction, ResampleAction, MultiPicking, PixelColorChanger, ReorientImage, Show3DViewer, ShowAllViewers, ShowArbitraryViewer, ShowAxialViewer, ShowCoronalViewer, ShowSagittalViewer, ChangeColor, MeshPicking, RenderingOption, ExportAsMDL, LoadTextureFromBMP, MeshClipping, SaveDisplacementFromTransformation, MeshProjection, SimpleElastixRegistrationAction, ShowArbitrarySliceIn3D, ShowAxialSliceIn3D, ShowCoronalSliceIn3D, ShowImageIn3D, ShowSagittalSliceIn3D, CenterMesh, MeshQuality, RigidTransform, LoadTransformation, camitk::CppHotPlugAction, and camitk::HotPlugAction.

References actionWidget.

Referenced by CenterMesh::apply(), ConnectedComponents::getWidget(), ManualThreshold::getWidget(), OtsuFilter::getWidget(), CreateSC::getWidget(), ResampleAction::getWidget(), PixelColorChanger::getWidget(), RenderingOption::getWidget(), MeshClipping::getWidget(), MeshProjection::getWidget(), SimpleElastixRegistrationAction::getWidget(), CenterMesh::getWidget(), camitk::CppHotPlugAction::getWidget(), ActionState::onEntry(), and trigger().

+ Here is the caller graph for this function:

◆ refreshApplication()

void camitk::Action::refreshApplication ( )
protected

convenient method to call from the user code to refresh all the application This is equivalent to call Application::refresh()

References camitk::TransformationManager::cleanupFramesAndTransformations(), and camitk::Application::refresh().

Referenced by ConnectedComponents::apply(), OtsuFilter::apply(), CreateSC::apply(), ClearSelectionAction::apply(), RemoveLastInstantiatedAction::apply(), SelectLastInstantiatedAction::apply(), CloseAllAction::apply(), PixelColorChanger::apply(), ImageReconstructionAction::apply(), Show3DViewer::apply(), ShowAllViewers::apply(), ShowArbitraryViewer::apply(), ShowAxialViewer::apply(), ShowCoronalViewer::apply(), ShowSagittalViewer::apply(), ComputeNormals::apply(), ExtractSelection::apply(), GridTopology::apply(), SphereTopology::apply(), AppendMeshes::apply(), CleanPolyData::apply(), ComputeCurvatures::apply(), Decimation::apply(), ExtractEdges::apply(), ExtractSurface::apply(), FillWithPoints::apply(), ICPRegistration::apply(), MergeMeshes::apply(), MeshClipping::apply(), WarpOut::apply(), MeshProjection::apply(), ShowArbitrarySliceIn3D::apply(), ShowAxialSliceIn3D::apply(), ShowCoronalSliceIn3D::apply(), ShowImageIn3D::apply(), ShowSagittalSliceIn3D::apply(), VolumeRenderingAction::apply(), CenterMesh::apply(), MeshProjection::event(), trigger(), and MeshProjection::updateCuttingPlane().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setAutoUpdateProperties()

void camitk::Action::setAutoUpdateProperties ( bool  autoUpdateProperties)

are the properties to be updated every time the user makes a change in the widget (default is false)?

References actionWidget.

Referenced by AnglesAndTranslationAction::AnglesAndTranslationAction(), CreateSC::CreateSC(), camitk::HotPlugAction::HotPlugAction(), MeshProjection::MeshProjection(), PixelColorChanger::PixelColorChanger(), ActionState::setAction(), and SimpleElastixRegistrationAction::SimpleElastixRegistrationAction().

+ Here is the caller graph for this function:

◆ setComponentClassName()

void camitk::Action::setComponentClassName ( QString  componentClassName)
protected

set the name of the component class that can be used by this action

Referenced by AboutAction::AboutAction(), AnglesAndTranslationAction::AnglesAndTranslationAction(), AnisotropicDiffusion::AnisotropicDiffusion(), AppendMeshes::AppendMeshes(), CannyEdgeDetection::CannyEdgeDetection(), CenterMesh::CenterMesh(), ChangeColor::ChangeColor(), ChangeLanguage::ChangeLanguage(), CleanPolyData::CleanPolyData(), ClearSelectionAction::ClearSelectionAction(), CloseAction::CloseAction(), CloseAllAction::CloseAllAction(), ComputeCurvatures::ComputeCurvatures(), ComputeNormals::ComputeNormals(), ConnectedComponents::ConnectedComponents(), CreateSC::CreateSC(), Decimation::Decimation(), Derivative::Derivative(), ExportAsMDL::ExportAsMDL(), ExtractEdges::ExtractEdges(), ExtractSelection::ExtractSelection(), ExtractSurface::ExtractSurface(), FillWithPoints::FillWithPoints(), GaussianFilter::GaussianFilter(), GenerateModel::GenerateModel(), GradientMagnitude::GradientMagnitude(), GradientMagnitudeRecursiveGaussian::GradientMagnitudeRecursiveGaussian(), GridTopology::GridTopology(), camitk::HotPlugAction::HotPlugAction(), ICPRegistration::ICPRegistration(), ImageLutAction::ImageLutAction(), ImageReconstructionAction::ImageReconstructionAction(), InitImagerAction::InitImagerAction(), InvertMesh::InvertMesh(), Laplacian::Laplacian(), LaplacianRecursiveGaussian::LaplacianRecursiveGaussian(), LaplacianSharpening::LaplacianSharpening(), LoadTextureFromBMP::LoadTextureFromBMP(), LoadTransformation::LoadTransformation(), LoggerParameters::LoggerParameters(), ManualThreshold::ManualThreshold(), MeanFilter::MeanFilter(), MedianFilter::MedianFilter(), MergeMeshes::MergeMeshes(), MeshClipping::MeshClipping(), MeshPicking::MeshPicking(), MeshProjection::MeshProjection(), MeshQuality::MeshQuality(), MeshToImageStencil::MeshToImageStencil(), MorphologicalOperators::MorphologicalOperators(), MultiPicking::MultiPicking(), OpenAction::OpenAction(), OpenFile::OpenFile(), OpenWorkspaceFile::OpenWorkspaceFile(), OtsuFilter::OtsuFilter(), PixelColorChanger::PixelColorChanger(), PMLExplorerAction::PMLExplorerAction(), QuitAction::QuitAction(), RegionGrowing::RegionGrowing(), RemoveLastInstantiatedAction::RemoveLastInstantiatedAction(), RenderingOption::RenderingOption(), ReorientImage::ReorientImage(), ResampleAction::ResampleAction(), RigidTransform::RigidTransform(), SaveAction::SaveAction(), SaveAllAction::SaveAllAction(), SaveAsAction::SaveAsAction(), SaveDisplacementFromTransformation::SaveDisplacementFromTransformation(), SaveWorkspace::SaveWorkspace(), SelectLastInstantiatedAction::SelectLastInstantiatedAction(), SetPathToTestData::SetPathToTestData(), Show3DViewer::Show3DViewer(), ShowAllViewers::ShowAllViewers(), ShowArbitrarySliceIn3D::ShowArbitrarySliceIn3D(), ShowArbitraryViewer::ShowArbitraryViewer(), ShowAxialSliceIn3D::ShowAxialSliceIn3D(), ShowAxialViewer::ShowAxialViewer(), ShowCoronalSliceIn3D::ShowCoronalSliceIn3D(), ShowCoronalViewer::ShowCoronalViewer(), ShowImageIn3D::ShowImageIn3D(), ShowSagittalSliceIn3D::ShowSagittalSliceIn3D(), ShowSagittalViewer::ShowSagittalViewer(), SimpleElastixRegistrationAction::SimpleElastixRegistrationAction(), SimulationDialog::SimulationDialog(), SingleAcquisition2DAction::SingleAcquisition2DAction(), SingleAcquisition3DAction::SingleAcquisition3DAction(), SmoothFilter::SmoothFilter(), SobelEdgeDetection::SobelEdgeDetection(), SphereTopology::SphereTopology(), StartImaging2DAction::StartImaging2DAction(), StartImaging3DAction::StartImaging3DAction(), StopImaging2DAction::StopImaging2DAction(), StopImaging3DAction::StopImaging3DAction(), ToggleConsoleAction::ToggleConsoleAction(), VolumeRenderingAction::VolumeRenderingAction(), and WarpOut::WarpOut().

◆ setDefaultWidgetApplyButtonText()

void camitk::Action::setDefaultWidgetApplyButtonText ( QString  text)

modify the "Apply" button text

References actionWidget.

◆ setDefaultWidgetButtonVisibility()

void camitk::Action::setDefaultWidgetButtonVisibility ( bool  visible)

if false then the apply/revert buttons are shown

References actionWidget.

◆ setDescription()

void camitk::Action::setDescription ( QString  description)
protected

the description of the action

References description.

Referenced by AboutAction::AboutAction(), AnglesAndTranslationAction::AnglesAndTranslationAction(), AnisotropicDiffusion::AnisotropicDiffusion(), AppendMeshes::AppendMeshes(), CannyEdgeDetection::CannyEdgeDetection(), CenterMesh::CenterMesh(), ChangeColor::ChangeColor(), ChangeLanguage::ChangeLanguage(), CleanPolyData::CleanPolyData(), ClearSelectionAction::ClearSelectionAction(), CloseAction::CloseAction(), CloseAllAction::CloseAllAction(), ComputeCurvatures::ComputeCurvatures(), ComputeNormals::ComputeNormals(), ConnectedComponents::ConnectedComponents(), CreateSC::CreateSC(), Decimation::Decimation(), Derivative::Derivative(), ExportAsMDL::ExportAsMDL(), ExtractEdges::ExtractEdges(), ExtractSelection::ExtractSelection(), ExtractSurface::ExtractSurface(), FillWithPoints::FillWithPoints(), GaussianFilter::GaussianFilter(), GenerateModel::GenerateModel(), GradientMagnitude::GradientMagnitude(), GradientMagnitudeRecursiveGaussian::GradientMagnitudeRecursiveGaussian(), GridTopology::GridTopology(), camitk::HotPlugAction::HotPlugAction(), ICPRegistration::ICPRegistration(), ImageLutAction::ImageLutAction(), ImageReconstructionAction::ImageReconstructionAction(), InitImagerAction::InitImagerAction(), InvertMesh::InvertMesh(), Laplacian::Laplacian(), LaplacianRecursiveGaussian::LaplacianRecursiveGaussian(), LaplacianSharpening::LaplacianSharpening(), LoadTextureFromBMP::LoadTextureFromBMP(), LoadTransformation::LoadTransformation(), LoggerParameters::LoggerParameters(), ManualThreshold::ManualThreshold(), MeanFilter::MeanFilter(), MedianFilter::MedianFilter(), MergeMeshes::MergeMeshes(), MeshClipping::MeshClipping(), MeshPicking::MeshPicking(), MeshProjection::MeshProjection(), MeshQuality::MeshQuality(), MeshToImageStencil::MeshToImageStencil(), MorphologicalOperators::MorphologicalOperators(), MultiPicking::MultiPicking(), OpenAction::OpenAction(), OpenFile::OpenFile(), OpenWorkspaceFile::OpenWorkspaceFile(), OtsuFilter::OtsuFilter(), PixelColorChanger::PixelColorChanger(), PMLExplorerAction::PMLExplorerAction(), QuitAction::QuitAction(), RegionGrowing::RegionGrowing(), RemoveLastInstantiatedAction::RemoveLastInstantiatedAction(), RenderingOption::RenderingOption(), ReorientImage::ReorientImage(), ResampleAction::ResampleAction(), RigidTransform::RigidTransform(), SaveAction::SaveAction(), SaveAllAction::SaveAllAction(), SaveAsAction::SaveAsAction(), SaveDisplacementFromTransformation::SaveDisplacementFromTransformation(), SaveWorkspace::SaveWorkspace(), SelectLastInstantiatedAction::SelectLastInstantiatedAction(), SetPathToTestData::SetPathToTestData(), Show3DViewer::Show3DViewer(), ShowAllViewers::ShowAllViewers(), ShowArbitrarySliceIn3D::ShowArbitrarySliceIn3D(), ShowArbitraryViewer::ShowArbitraryViewer(), ShowAxialSliceIn3D::ShowAxialSliceIn3D(), ShowAxialViewer::ShowAxialViewer(), ShowCoronalSliceIn3D::ShowCoronalSliceIn3D(), ShowCoronalViewer::ShowCoronalViewer(), ShowImageIn3D::ShowImageIn3D(), ShowSagittalSliceIn3D::ShowSagittalSliceIn3D(), ShowSagittalViewer::ShowSagittalViewer(), SimpleElastixRegistrationAction::SimpleElastixRegistrationAction(), SimulationDialog::SimulationDialog(), SingleAcquisition2DAction::SingleAcquisition2DAction(), SingleAcquisition3DAction::SingleAcquisition3DAction(), SmoothFilter::SmoothFilter(), SobelEdgeDetection::SobelEdgeDetection(), SphereTopology::SphereTopology(), StartImaging2DAction::StartImaging2DAction(), StartImaging3DAction::StartImaging3DAction(), StopImaging2DAction::StopImaging2DAction(), StopImaging3DAction::StopImaging3DAction(), ToggleConsoleAction::ToggleConsoleAction(), VolumeRenderingAction::VolumeRenderingAction(), and WarpOut::WarpOut().

◆ setEmbedded()

void camitk::Action::setEmbedded ( bool  isEmbedded)
protected

◆ setFamily()

void camitk::Action::setFamily ( QString  family)
protected

the name of the family in which this action is associated

Referenced by AboutAction::AboutAction(), AnglesAndTranslationAction::AnglesAndTranslationAction(), AnisotropicDiffusion::AnisotropicDiffusion(), AppendMeshes::AppendMeshes(), CannyEdgeDetection::CannyEdgeDetection(), CenterMesh::CenterMesh(), ChangeColor::ChangeColor(), ChangeLanguage::ChangeLanguage(), CleanPolyData::CleanPolyData(), ClearSelectionAction::ClearSelectionAction(), CloseAction::CloseAction(), CloseAllAction::CloseAllAction(), ComputeCurvatures::ComputeCurvatures(), ComputeNormals::ComputeNormals(), ConnectedComponents::ConnectedComponents(), CreateSC::CreateSC(), Decimation::Decimation(), Derivative::Derivative(), ExportAsMDL::ExportAsMDL(), ExtractEdges::ExtractEdges(), ExtractSelection::ExtractSelection(), ExtractSurface::ExtractSurface(), FillWithPoints::FillWithPoints(), GaussianFilter::GaussianFilter(), GenerateModel::GenerateModel(), GradientMagnitude::GradientMagnitude(), GradientMagnitudeRecursiveGaussian::GradientMagnitudeRecursiveGaussian(), GridTopology::GridTopology(), camitk::HotPlugAction::HotPlugAction(), ICPRegistration::ICPRegistration(), ImageLutAction::ImageLutAction(), ImageReconstructionAction::ImageReconstructionAction(), InitImagerAction::InitImagerAction(), InvertMesh::InvertMesh(), Laplacian::Laplacian(), LaplacianRecursiveGaussian::LaplacianRecursiveGaussian(), LaplacianSharpening::LaplacianSharpening(), LoadTextureFromBMP::LoadTextureFromBMP(), LoadTransformation::LoadTransformation(), LoggerParameters::LoggerParameters(), ManualThreshold::ManualThreshold(), MeanFilter::MeanFilter(), MedianFilter::MedianFilter(), MergeMeshes::MergeMeshes(), MeshClipping::MeshClipping(), MeshPicking::MeshPicking(), MeshProjection::MeshProjection(), MeshQuality::MeshQuality(), MeshToImageStencil::MeshToImageStencil(), MorphologicalOperators::MorphologicalOperators(), MultiPicking::MultiPicking(), OpenAction::OpenAction(), OpenFile::OpenFile(), OpenWorkspaceFile::OpenWorkspaceFile(), OtsuFilter::OtsuFilter(), PixelColorChanger::PixelColorChanger(), PMLExplorerAction::PMLExplorerAction(), QuitAction::QuitAction(), RegionGrowing::RegionGrowing(), RemoveLastInstantiatedAction::RemoveLastInstantiatedAction(), RenderingOption::RenderingOption(), ReorientImage::ReorientImage(), ResampleAction::ResampleAction(), RigidTransform::RigidTransform(), SaveAction::SaveAction(), SaveAllAction::SaveAllAction(), SaveAsAction::SaveAsAction(), SaveDisplacementFromTransformation::SaveDisplacementFromTransformation(), SaveWorkspace::SaveWorkspace(), SelectLastInstantiatedAction::SelectLastInstantiatedAction(), SetPathToTestData::SetPathToTestData(), Show3DViewer::Show3DViewer(), ShowAllViewers::ShowAllViewers(), ShowArbitrarySliceIn3D::ShowArbitrarySliceIn3D(), ShowArbitraryViewer::ShowArbitraryViewer(), ShowAxialSliceIn3D::ShowAxialSliceIn3D(), ShowAxialViewer::ShowAxialViewer(), ShowCoronalSliceIn3D::ShowCoronalSliceIn3D(), ShowCoronalViewer::ShowCoronalViewer(), ShowImageIn3D::ShowImageIn3D(), ShowSagittalSliceIn3D::ShowSagittalSliceIn3D(), ShowSagittalViewer::ShowSagittalViewer(), SimpleElastixRegistrationAction::SimpleElastixRegistrationAction(), SimulationDialog::SimulationDialog(), SingleAcquisition2DAction::SingleAcquisition2DAction(), SingleAcquisition3DAction::SingleAcquisition3DAction(), SmoothFilter::SmoothFilter(), SobelEdgeDetection::SobelEdgeDetection(), SphereTopology::SphereTopology(), StartImaging2DAction::StartImaging2DAction(), StartImaging3DAction::StartImaging3DAction(), StopImaging2DAction::StopImaging2DAction(), StopImaging3DAction::StopImaging3DAction(), ToggleConsoleAction::ToggleConsoleAction(), VolumeRenderingAction::VolumeRenderingAction(), and WarpOut::WarpOut().

◆ setIcon()

◆ setInputComponent()

void camitk::Action::setInputComponent ( Component input)

Specify the input Components in case of only one Component.

References camitk::Component::isInstanceOf().

Referenced by camitk::Application::save().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setInputComponents()

void camitk::Action::setInputComponents ( ComponentList  inputs)

Specify the input Component(s) Only applyInPipeline() should be called with this method (maybe apply), but not trigger() as its first intruction is to clear the target components list !!!

Referenced by SaveActionState::applyAction(), and ActionState::onEntry().

+ Here is the caller graph for this function:

◆ setName()

void camitk::Action::setName ( QString  name)
protected

set the name of the action class

Referenced by AboutAction::AboutAction(), AnglesAndTranslationAction::AnglesAndTranslationAction(), AnisotropicDiffusion::AnisotropicDiffusion(), AppendMeshes::AppendMeshes(), CannyEdgeDetection::CannyEdgeDetection(), CenterMesh::CenterMesh(), ChangeColor::ChangeColor(), ChangeLanguage::ChangeLanguage(), CleanPolyData::CleanPolyData(), ClearSelectionAction::ClearSelectionAction(), CloseAction::CloseAction(), CloseAllAction::CloseAllAction(), ComputeCurvatures::ComputeCurvatures(), ComputeNormals::ComputeNormals(), ConnectedComponents::ConnectedComponents(), CreateSC::CreateSC(), Decimation::Decimation(), Derivative::Derivative(), ExportAsMDL::ExportAsMDL(), ExtractEdges::ExtractEdges(), ExtractSelection::ExtractSelection(), ExtractSurface::ExtractSurface(), FillWithPoints::FillWithPoints(), GaussianFilter::GaussianFilter(), GenerateModel::GenerateModel(), GradientMagnitude::GradientMagnitude(), GradientMagnitudeRecursiveGaussian::GradientMagnitudeRecursiveGaussian(), GridTopology::GridTopology(), camitk::HotPlugAction::HotPlugAction(), ICPRegistration::ICPRegistration(), ImageLutAction::ImageLutAction(), ImageReconstructionAction::ImageReconstructionAction(), InitImagerAction::InitImagerAction(), InvertMesh::InvertMesh(), Laplacian::Laplacian(), LaplacianRecursiveGaussian::LaplacianRecursiveGaussian(), LaplacianSharpening::LaplacianSharpening(), LoadTextureFromBMP::LoadTextureFromBMP(), LoadTransformation::LoadTransformation(), LoggerParameters::LoggerParameters(), ManualThreshold::ManualThreshold(), MeanFilter::MeanFilter(), MedianFilter::MedianFilter(), MergeMeshes::MergeMeshes(), MeshClipping::MeshClipping(), MeshPicking::MeshPicking(), MeshProjection::MeshProjection(), MeshQuality::MeshQuality(), MeshToImageStencil::MeshToImageStencil(), MorphologicalOperators::MorphologicalOperators(), MultiPicking::MultiPicking(), OpenAction::OpenAction(), OpenFile::OpenFile(), OpenWorkspaceFile::OpenWorkspaceFile(), OtsuFilter::OtsuFilter(), PixelColorChanger::PixelColorChanger(), PMLExplorerAction::PMLExplorerAction(), QuitAction::QuitAction(), RegionGrowing::RegionGrowing(), RemoveLastInstantiatedAction::RemoveLastInstantiatedAction(), RenderingOption::RenderingOption(), ReorientImage::ReorientImage(), ResampleAction::ResampleAction(), RigidTransform::RigidTransform(), SaveAction::SaveAction(), SaveAllAction::SaveAllAction(), SaveAsAction::SaveAsAction(), SaveDisplacementFromTransformation::SaveDisplacementFromTransformation(), SaveWorkspace::SaveWorkspace(), SelectLastInstantiatedAction::SelectLastInstantiatedAction(), SetPathToTestData::SetPathToTestData(), Show3DViewer::Show3DViewer(), ShowAllViewers::ShowAllViewers(), ShowArbitrarySliceIn3D::ShowArbitrarySliceIn3D(), ShowArbitraryViewer::ShowArbitraryViewer(), ShowAxialSliceIn3D::ShowAxialSliceIn3D(), ShowAxialViewer::ShowAxialViewer(), ShowCoronalSliceIn3D::ShowCoronalSliceIn3D(), ShowCoronalViewer::ShowCoronalViewer(), ShowImageIn3D::ShowImageIn3D(), ShowSagittalSliceIn3D::ShowSagittalSliceIn3D(), ShowSagittalViewer::ShowSagittalViewer(), SimpleElastixRegistrationAction::SimpleElastixRegistrationAction(), SimulationDialog::SimulationDialog(), SingleAcquisition2DAction::SingleAcquisition2DAction(), SingleAcquisition3DAction::SingleAcquisition3DAction(), SmoothFilter::SmoothFilter(), SobelEdgeDetection::SobelEdgeDetection(), SphereTopology::SphereTopology(), StartImaging2DAction::StartImaging2DAction(), StartImaging3DAction::StartImaging3DAction(), StopImaging2DAction::StopImaging2DAction(), StopImaging3DAction::StopImaging3DAction(), ToggleConsoleAction::ToggleConsoleAction(), VolumeRenderingAction::VolumeRenderingAction(), and WarpOut::WarpOut().

◆ setParameterValue()

bool camitk::Action::setParameterValue ( const QString &  name,
QVariant  newValue 
)
virtual

set the parameter QVariant value (same as setProperty(const char*, newValue)) but check if it exists first.

If the parameter was not declared using addParameter, this methods prints an error message and returns false

References CAMITK_WARNING.

Referenced by CenterMesh::apply(), SimpleElastixRegistrationAction::event(), ConnectedComponents::getWidget(), ManualThreshold::getWidget(), OtsuFilter::getWidget(), AnglesAndTranslationAction::getWidget(), ResampleAction::getWidget(), RenderingOption::getWidget(), SimpleElastixRegistrationAction::getWidget(), VolumeRenderingAction::getWidget(), CenterMesh::getWidget(), VolumeRenderingWidget::load(), WorkspaceExtension::open(), CamiTKExtensionEditor::registerClicked(), AnglesAndTranslationAction::resetTransform(), OpenFile::selectFile(), OpenWorkspaceFile::selectFile(), AnglesAndTranslationAction::updateTranslation(), and VolumeRenderingWidget::visibilityToggled().

+ Here is the caller graph for this function:

◆ setUuid()

bool camitk::Action::setUuid ( QUuid  id)
overridevirtual

Set the unique ID of the action.

Warning
This value can only be set once, to avoid the UUID changing for an object
Returns
The returns true if the value was set, false if it was not (meaning it already has a valid value)

Implements camitk::InterfacePersistence.

◆ toVariant()

QVariant camitk::Action::toVariant ( ) const
overridevirtual

Convert all data from the object to a QVariant (usually a QVariantMap)

Implements camitk::InterfacePersistence.

◆ trigger

Action::ApplyStatus camitk::Action::trigger ( QWidget *  parent = nullptr)
slot

This method triggers the action.

The parent widget is used if the action is embedded, see class description for more information about the algorithm. This method cannot be redefined in inherited class.

References applyAndRegister(), CAMITK_WARNING, ERROR, getComponentClassName(), getWidget(), refreshApplication(), camitk::Application::setTriggeredAction(), TRIGGERED, and updateTargets().

Referenced by getQAction(), and CamiTKExtensionEditor::registerClicked().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ updateTargets()

void camitk::Action::updateTargets ( )

update the target list using the currently selected components

References camitk::Application::getSelectedComponents().

Referenced by trigger().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Member Data Documentation

◆ actionWidget


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