Computer Assited Medical Intervention Tool Kit  version 3.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
MeshClipping.h
Go to the documentation of this file.
1 /*****************************************************************************
2  * $CAMITK_LICENCE_BEGIN$
3  *
4  * CamiTK - Computer Assisted Medical Intervention ToolKit
5  * (c) 2001-2014 UJF-Grenoble 1, CNRS, TIMC-IMAG UMR 5525 (GMCAO)
6  *
7  * Visit http://camitk.imag.fr for more information
8  *
9  * This file is part of CamiTK.
10  *
11  * CamiTK is free software: you can redistribute it and/or modify
12  * it under the terms of the GNU Lesser General Public License version 3
13  * only, as published by the Free Software Foundation.
14  *
15  * CamiTK is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18  * GNU Lesser General Public License version 3 for more details.
19  *
20  * You should have received a copy of the GNU Lesser General Public License
21  * version 3 along with CamiTK. If not, see <http://www.gnu.org/licenses/>.
22  *
23  * $CAMITK_LICENCE_END$
24  ****************************************************************************/
25 
26 #ifndef MESH_CLIPPING_H
27 #define MESH_CLIPPING_H
28 
29 //-- Specific action stuffs
30 #include "PlaneWidget.h"
31 
32 //-- Core stuffs
33 #include <Action.h>
34 #include <MeshComponent.h>
35 
36 // VTK stuffs
37 #include <vtkSmartPointer.h>
38 #include <vtkPlane.h>
39 
60 class MeshClipping : public camitk::Action {
61  Q_OBJECT
62 
63 public:
66 
68  virtual ~MeshClipping();
69 
71  virtual QWidget *getWidget();
72 
73 public slots:
75  virtual ApplyStatus apply();
76 
77 private:
81  void customizeActionLayout();
82 
84  void clipMesh(MeshComponent *mesh, vtkSmartPointer<vtkPlane> plane);
85 
88 
91 
93  bool smoothing;
94 
97 
100 
102  bool save;
103 
105  double limBounds[6];
106 
107 private slots:
108 
112  void updateBox();
113 
115  void restoreMeshes();
116 
118  void changeAllComponents();
119 
121  void changeSmoothing();
122 
124  void changeVisibility();
125 
127  void saveClippedMeshes();
128 
129 
130 };
131 
132 #endif // MESH_CLIPPING_H
void saveClippedMeshes()
Method called when the saving button is clicked.
MeshClipping(ActionExtension *)
The constructor.
virtual ~MeshClipping()
The destructor.
virtual ApplyStatus apply()
Method called when the action is applied.
bool allComponents
Controls which components are clipped : all opened components or only selected components.
Definition: MeshClipping.h:96
Action class is an abstract class that enables you to build a action (generally on a component)...
Definition: Action.h:184
void changeSmoothing()
Method called when the smooth button is clicked.
void updateBox()
Method called when the update button is clicked re-calculates the widget box size when new components...
This action allows the user to clip several kinds of MeshComponents : vtkStructuredGridClip, vtkUnstructuredGridClip, vtkPolyData.
Definition: MeshClipping.h:60
void clipMesh(MeshComponent *mesh, vtkSmartPointer< vtkPlane > plane)
Clips the mesh throughout the plane specified.
Basic component to manage any kind of mesh.
Definition: MeshComponent.h:44
bool planeVisibility
Controls the clipping widget visibility.
Definition: MeshClipping.h:99
void changeVisibility()
Method called when the visibility button is clicked.
void restoreMeshes()
Method called when the restore button is clicked.
CAMITK_API QList< Component * > ComponentList
A list of Component.
Definition: CamiTKAPI.h:87
This class describes what is a generic Action extension.
Definition: ActionExtension.h:61
bool smoothing
Controls smooth or chiselled (raw) clipping.
Definition: MeshClipping.h:93
This class implements a VTK implicit plane in the CamiTK application.
Definition: PlaneWidget.h:40
double limBounds[6]
Contains the clipping widget bounding box [xmin, xmax, ymin, ymax, zmin, zmax].
Definition: MeshClipping.h:105
void customizeActionLayout()
Customizes the action viewer.
ApplyStatus
describes what happened during the application of an algorithm (i.e. results of the apply method) ...
Definition: Action.h:196
bool save
Controls the saving of the clipped component.
Definition: MeshClipping.h:102
void changeAllComponents()
Method called when the clip all components button is clicked.
ComponentList list
List of MeshComponent that are currently targeted by the clipping.
Definition: MeshClipping.h:87
PlaneWidget * widget
Class which contains the widget (implements vtkCommand).
Definition: MeshClipping.h:90
virtual QWidget * getWidget()
Method called when the action when the action is triggered (i.e. started).