Computer Assited Medical Intervention Tool Kit  version 3.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Public Slots | Public Member Functions | Private Slots | Private Member Functions | Private Attributes | List of all members
MeshClipping Class Reference

This action allows the user to clip several kinds of MeshComponents : vtkStructuredGridClip, vtkUnstructuredGridClip, vtkPolyData. More...

#include <MeshClipping.h>

+ Inheritance diagram for MeshClipping:

Public Slots

virtual ApplyStatus apply ()
 Method called when the action is applied. More...
 
- Public Slots inherited from camitk::Action
virtual 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...
 
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...
 
ApplyStatus trigger (QWidget *parent=NULL)
 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 (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...
 
virtual bool addParameter (Property *)
 Add a new parameter to the action, using the CamiTK property class. More...
 
bool getAutoUpdateProperties () const
 auto update properties More...
 
ComponentgetOutputComponent ()
 Returns the output Components in case of only one Component. More...
 
ComponentList getOutputComponents ()
 Returns the output Component(s) More...
 
virtual Q_INVOKABLE PropertygetProperty (QString name)
 Get a Property given its name. More...
 
void setAutoUpdateProperties (bool)
 are the properties to be udpated every time the user makes a change in the widget (default is false)? More...
 
void setInputComponent (Component *input)
 Specify the input Components in case of only one Component. 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...
 
virtual ~Action ()
 Destructor. More...
 
QAction * getQAction ()
 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...
 
ApplyStatus applyInPipeline ()
 This method encapsulates the apply() method. 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

void clipMesh (MeshComponent *mesh, vtkSmartPointer< vtkPlane > plane)
 Clips the mesh throughout the plane specified. More...
 
void customizeActionLayout ()
 Customizes the action viewer. 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...
 
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...
 
PlaneWidgetwidget
 Class which contains the widget (implements vtkCommand). More...
 

Additional Inherited Members

- Public Types inherited from camitk::Action
enum  ApplyStatus {
  SUCCESS, ERROR, WARNING, ABORTED,
  TRIGGERED
}
 describes what happened during the application of an algorithm (i.e. results of the apply method) More...
 
- 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...
 

Detailed Description

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.

Note
When a component is added/deleted, the action needs to be refreshed in order to take the modifications into account. This can easily be done by clicking the update button.

Constructor & Destructor Documentation

MeshClipping::MeshClipping ( ActionExtension )

The constructor.

virtual MeshClipping::~MeshClipping ( )
virtual

The destructor.

Member Function Documentation

virtual ApplyStatus MeshClipping::apply ( )
virtualslot

Method called when the action is applied.

void MeshClipping::changeAllComponents ( )
privateslot

Method called when the clip all components button is clicked.

void MeshClipping::changeSmoothing ( )
privateslot

Method called when the smooth button is clicked.

void MeshClipping::changeVisibility ( )
privateslot

Method called when the visibility button is clicked.

void MeshClipping::clipMesh ( MeshComponent mesh,
vtkSmartPointer< vtkPlane >  plane 
)
private

Clips the mesh throughout the plane specified.

void MeshClipping::customizeActionLayout ( )
private

Customizes the action viewer.

(i.e remove apply and revert buttons and adds the 4 specific buttons for meshclipping action).

virtual QWidget* MeshClipping::getWidget ( )
virtual

Method called when the action when the action is triggered (i.e. started).

Reimplemented from camitk::Action.

void MeshClipping::restoreMeshes ( )
privateslot

Method called when the restore button is clicked.

void MeshClipping::saveClippedMeshes ( )
privateslot

Method called when the saving button is clicked.

void MeshClipping::updateBox ( )
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).

Member Data Documentation

bool MeshClipping::allComponents
private

Controls which components are clipped : all opened components or only selected components.

double MeshClipping::limBounds[6]
private

Contains the clipping widget bounding box [xmin, xmax, ymin, ymax, zmin, zmax].

ComponentList MeshClipping::list
private

List of MeshComponent that are currently targeted by the clipping.

bool MeshClipping::planeVisibility
private

Controls the clipping widget visibility.

bool MeshClipping::save
private

Controls the saving of the clipped component.

bool MeshClipping::smoothing
private

Controls smooth or chiselled (raw) clipping.

PlaneWidget* MeshClipping::widget
private

Class which contains the widget (implements vtkCommand).


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