This action allows the user to clip several kinds of MeshComponents : vtkStructuredGridClip, vtkUnstructuredGridClip, vtkPolyData. More...
#include <MeshClipping.h>
Public Slots | |
virtual camitk::Action::ApplyStatus | apply () |
Method called when the action is applied. More... | |
virtual void | meshDeleted () |
specific slot called when the mesh currently clipped is deleted More... | |
Public Slots inherited from camitk::Action | |
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. More... | |
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. More... | |
camitk::Action::ApplyStatus | trigger (QWidget *parent=nullptr) |
This method triggers the action. More... | |
Public Member Functions | |
virtual QWidget * | getWidget () |
Method called when the action when the action is triggered (i.e. started). More... | |
MeshClipping (camitk::ActionExtension *) | |
The constructor. More... | |
virtual | ~MeshClipping () |
The destructor. More... | |
Public Member Functions inherited from camitk::Action | |
Action (ActionExtension *) | |
Default Constructor: the ActionExtension is needed. More... | |
~Action () override | |
Destructor. More... | |
virtual QAction * | getQAction (Component *target=nullptr) |
Get the corresponding QAction. More... | |
QString | getName () const |
get the name of the action More... | |
QString | getDescription () const |
the description of the action More... | |
QString | getComponent () const |
the name of the component class that can be used by this action More... | |
QString | getFamily () const |
the name of the family in which this action is associated More... | |
QString | getExtensionName () const |
the name of the extension in the family in which this action is associated More... | |
QStringList | getTag () const |
the name of the tag called this action More... | |
bool | getEmbedded () const |
argument use to know if the widget is embedded or not More... | |
virtual QPixmap | getIcon () |
the icon to personalize the action (no icon by default) More... | |
const ComponentList | getTargets () const |
the currently selected and valid (regarding the component property) components, for which this action is called More... | |
void | updateTargets () |
update the target list using the currently selected components More... | |
bool | getAutoUpdateProperties () const |
void | setAutoUpdateProperties (bool) |
are the properties to be udpated every time the user makes a change in the widget (default is false)? More... | |
virtual Q_INVOKABLE camitk::Property * | getProperty (QString name) |
Get a Property given its name. More... | |
virtual bool | addParameter (Property *) |
Add a new parameter to the action, using the CamiTK property class. More... | |
void | applyTargetPosition (Component *input, Component *target) |
Change the target frame according to the default frame policy regarding the input's one. More... | |
void | applyTargetPosition (Component *input, Component *target, Application::TargetPositionningPolicy policy) |
Change the target frame according to a given frame policy regarding the input's one. More... | |
ApplyStatus | applyInPipeline () |
This method encapsulates the apply() method. More... | |
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 !!! More... | |
void | setInputComponent (Component *input) |
Specify the input Components in case of only one Component. More... | |
ComponentList | getOutputComponents () |
Returns the output Component(s) More... | |
Component * | getOutputComponent () |
Returns the output Components in case of only one Component. More... | |
Private Slots | |
void | changeAllComponents () |
Method called when the clip all components button is clicked. More... | |
void | changeSmoothing () |
Method called when the smooth button is clicked. More... | |
void | changeVisibility () |
Method called when the visibility button is clicked. More... | |
void | restoreMeshes () |
Method called when the restore button is clicked. More... | |
void | saveClippedMeshes () |
Method called when the saving button is clicked. More... | |
void | updateBox () |
Method called when the update button is clicked re-calculates the widget box size when new components are added or deleted (i.e increases or dicreases the box size according to the scene bounds). More... | |
Private Member Functions | |
ApplyStatus | clipMesh (camitk::MeshComponent *mesh, vtkSmartPointer< vtkPlane > plane) |
Clips the mesh throughout the plane specified and return the ApplyStatus. More... | |
void | customizeActionLayout () |
Customizes the action viewer. More... | |
void | updateBox (bool refreshViewer) |
update the dimension of the vtk plane widget More... | |
Private Attributes | |
bool | allComponents |
Controls which components are clipped : all opened components or only selected components. More... | |
double | limBounds [6] |
Contains the clipping widget bounding box [xmin, xmax, ymin, ymax, zmin, zmax]. More... | |
camitk::ComponentList | list |
List of MeshComponent that are currently targeted by the clipping. More... | |
bool | planeVisibility |
Controls the clipping widget visibility. More... | |
bool | save |
Controls the saving of the clipped component. More... | |
bool | smoothing |
Controls smooth or chiselled (raw) clipping. More... | |
PlaneWidget * | widget |
Class which contains the widget (implements vtkCommand). More... | |
Additional Inherited Members | |
Public Types inherited from camitk::Action | |
enum | ApplyStatus { SUCCESS, ERROR, WARNING, ABORTED, TRIGGERED } |
Static Public Member Functions inherited from camitk::Action | |
static QString | getStatusAsString (ApplyStatus) |
Protected Member Functions inherited from camitk::Action | |
void | setName (QString name) |
void | setDescription (QString description) |
the description of the action More... | |
void | setComponent (QString component) |
the name of the component class that can be used by this action More... | |
void | setFamily (QString family) |
the name of the family in which this action is associated More... | |
void | addTag (QString tag) |
add a tag to the tags list of this action More... | |
void | setEmbedded (bool isEmbedded) |
set the embedded property (an action is embedded by default, unless specified otherwise by explicitly calling this method with false) More... | |
void | setIcon (QPixmap) |
set the Pixmap More... | |
Protected Attributes inherited from camitk::Action | |
QWidget * | actionWidget |
the action widget More... | |
This action allows the user to clip several kinds of MeshComponents : vtkStructuredGridClip, vtkUnstructuredGridClip, vtkPolyData.
This action allows 2 clipping modes :
This action uses a vtkImplicitPlaneWidget which can be either hidden or visible thanks to the related button in the action viewer.
This action can also restore the clipped meshes to their former "unclipped" state thanks to the restore Meshes button. Basically, when you're done using the clipping tool, you can, for example, restore the initial unclipped meshes and hide the plane before switching to another action.
Saving a clipped component can be done by clicking the dedicated button.
MeshClipping::MeshClipping | ( | camitk::ActionExtension * | extension | ) |
The constructor.
References camitk::Action::addTag(), allComponents, planeVisibility, save, camitk::Action::setComponent(), camitk::Action::setDescription(), camitk::Action::setFamily(), camitk::Action::setName(), smoothing, and widget.
|
virtual |
The destructor.
References widget.
|
virtualslot |
Method called when the action is applied.
References allComponents, clipMesh(), camitk::Component::isInstanceOf(), camitk::Component::isSelected(), list, meshDeleted(), PlaneWidget::planeWidget, camitk::refresh(), save, camitk::Action::SUCCESS, and widget.
Referenced by changeAllComponents(), changeSmoothing(), and saveClippedMeshes().
|
privateslot |
Method called when the clip all components button is clicked.
References allComponents, apply(), camitk::Component::getDataPort, list, and camitk::InterfaceGeometry::setDataConnection().
Referenced by customizeActionLayout().
|
privateslot |
Method called when the smooth button is clicked.
References apply(), and smoothing.
Referenced by customizeActionLayout().
|
privateslot |
Method called when the visibility button is clicked.
References planeVisibility, and camitk::refresh().
Referenced by customizeActionLayout().
|
private |
Clips the mesh throughout the plane specified and return the ApplyStatus.
References camitk::Action::ABORTED, CAMITK_WARNING, camitk::Component::getDataPort, camitk::Component::getName(), camitk::InterfaceGeometry::getPointSet(), save, camitk::InterfaceGeometry::setDataConnection(), smoothing, and camitk::Action::SUCCESS.
Referenced by apply().
|
private |
Customizes the action viewer.
(i.e remove apply and revert buttons and adds the 4 specific buttons for meshclipping action).
References camitk::Action::actionWidget, changeAllComponents(), changeSmoothing(), changeVisibility(), restoreMeshes(), saveClippedMeshes(), camitk::ActionWidget::setButtonVisibility(), and updateBox().
Referenced by getWidget().
|
virtual |
Method called when the action when the action is triggered (i.e. started).
Reimplemented from camitk::Action.
References customizeActionLayout(), camitk::InteractiveViewer::getBounds(), camitk::InteractiveViewer::getRendererWidget(), limBounds, planeVisibility, PlaneWidget::planeWidget, updateBox(), and widget.
|
virtualslot |
specific slot called when the mesh currently clipped is deleted
References PlaneWidget::planeWidget, and widget.
Referenced by apply().
|
privateslot |
Method called when the restore button is clicked.
References camitk::Component::getDataPort, list, camitk::refresh(), and camitk::InterfaceGeometry::setDataConnection().
Referenced by customizeActionLayout().
|
privateslot |
Method called when the saving button is clicked.
Referenced by customizeActionLayout().
|
privateslot |
Method called when the update button is clicked re-calculates the widget box size when new components are added or deleted (i.e increases or dicreases the box size according to the scene bounds).
Referenced by customizeActionLayout(), and getWidget().
|
private |
update the dimension of the vtk plane widget
refreshViewer | refresh all the application viewers only if this is true |
References camitk::Component::getBounds(), limBounds, list, PlaneWidget::planeWidget, camitk::refresh(), and widget.
|
private |
Controls which components are clipped : all opened components or only selected components.
Referenced by apply(), changeAllComponents(), and MeshClipping().
|
private |
Contains the clipping widget bounding box [xmin, xmax, ymin, ymax, zmin, zmax].
Referenced by getWidget(), and updateBox().
|
private |
List of MeshComponent that are currently targeted by the clipping.
Referenced by apply(), changeAllComponents(), restoreMeshes(), and updateBox().
|
private |
Controls the clipping widget visibility.
Referenced by changeVisibility(), getWidget(), and MeshClipping().
|
private |
Controls the saving of the clipped component.
Referenced by apply(), clipMesh(), MeshClipping(), and saveClippedMeshes().
|
private |
Controls smooth or chiselled (raw) clipping.
Referenced by changeSmoothing(), clipMesh(), and MeshClipping().
|
private |
Class which contains the widget (implements vtkCommand).
Referenced by apply(), getWidget(), MeshClipping(), meshDeleted(), updateBox(), and ~MeshClipping().