Computer Assited Medical Intervention Tool Kit  version 4.1
ReorientImage.h
Go to the documentation of this file.
1 /*****************************************************************************
2  * $CAMITK_LICENCE_BEGIN$
3  *
4  * CamiTK - Computer Assisted Medical Intervention ToolKit
5  * (c) 2001-2018 Univ. Grenoble Alpes, 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 REORIENTIMAGE_H
27 #define REORIENTIMAGE_H
28 
29 // Include Action.h to be able to inherit from Action
30 #include <Action.h>
31 // Include ui_ReorientImage.h to be able to declare an instance of Ui::ReorientImage
32 #include "ui_ReorientImage.h"
33 
34 class vtkTransform;
35 class vtkAnnotatedCubeActor;
36 namespace camitk {
37 class Geometry;
38 class ImageComponent;
39 class InteractiveViewer;
40 }
41 
42 class ReorientImage : public camitk::Action {
43  Q_OBJECT
44 
45 public:
48 
50  virtual ~ReorientImage();
51 
53  virtual QWidget* getWidget();
54 
55  void showApplyButton(bool show);
56 
57 public slots:
59  virtual ApplyStatus apply();
60 
61  virtual void rcsChanged(const QString index);
62 
63  virtual void modelChanged(bool displayMaleModel);
64 
65 private:
67  void initDialog();
68 
70  void buildGeometries();
71 
72  void buildAxes();
73  void buildCube();
74  void buildTransforms();
75 
76  void initInternalViewer();
77 
78  void setAxesOrientation(const QString orientation);
79 
81 
84 
86  Ui::ReorientImage ui;
87 
89  QDialog* dialog;
90 
92  vtkSmartPointer<vtkAxesActor> axes;
93 
95  vtkSmartPointer<vtkAnnotatedCubeActor> annotatedCube;
96 
97  vtkSmartPointer<vtkTransform> orientationTransform;
98  // The cube should not rotate, just translate...
99  vtkSmartPointer<vtkTransform> orientationCubeTransform;
100 
101  vtkSmartPointer<vtkTransform> cubeTransform;
102  vtkSmartPointer<vtkTransform> axesTransform;
103 
107 
108 
109  QMap<QChar, QString> lettersMeaning;
110 
111 // camitk::ImageComponent * img;
112 
113 };
114 
115 #endif // REORIENTIMAGE_H
camitk::ImageOrientationHelper::RIP
X: Right to Left, Y: Inferior to Superiror, Z: Posterior to Anterior.
Definition: ImageOrientationHelper.h:59
camitk::ImageOrientationHelper::IRA
Definition: ImageOrientationHelper.h:73
IMeaning
static const QString IMeaning
Definition: ReorientImage.cpp:68
camitk::ImageComponent::replaceImageData
virtual void replaceImageData(vtkSmartPointer< vtkImageData > anImageData, bool copy=false, ImageOrientationHelper::PossibleImageOrientations initialOrientation=ImageOrientationHelper::RAI)
Replaces the current image volume by the one given in parameters.
Definition: ImageComponent.cpp:428
ReorientImage::internalViewer
camitk::InteractiveViewer * internalViewer
Definition: ReorientImage.h:79
camitk::Action::setFamily
void setFamily(QString family)
the name of the family in which this action is associated
Definition: Action.cpp:128
camitk::Component::getTransform
const vtkSmartPointer< vtkTransform > getTransform() const override
Get the transformation with respect to the parent frame.
Definition: sdk/libraries/core/component/Component.cpp:665
ReorientImage::getWidget
virtual QWidget * getWidget()
this method creates and returns the widget containing the user interface for the action
Definition: ReorientImage.cpp:240
ReorientImage::modelBoundingBox
camitk::Geometry * modelBoundingBox
Definition: ReorientImage.h:103
CAMITK_WARNING
#define CAMITK_WARNING(MSG)
Log for warning verbosity (the most common one) Will appear by default.
Definition: Log.h:261
camitk::Component::setParentFrame
void setParentFrame(InterfaceFrame *frame, bool keepTransform=true) override
Set the parent frame and update or not its transform during the parent transition.
Definition: sdk/libraries/core/component/Component.cpp:637
camitk::ImageOrientationHelper::PIL
Definition: ImageOrientationHelper.h:71
camitk::Geometry
A 3D representation of a vtkPointSet to be displayed in a InteractiveViewer, this class implements th...
Definition: Geometry.h:125
camitk::InteractiveViewer::getWidget
QWidget * getWidget(QWidget *parent) override
get the InteractiveViewer widget (QTreeWidget).
Definition: InteractiveViewer.cpp:367
LMeaning
static const QString LMeaning
Definition: ReorientImage.cpp:65
camitk::ImageOrientationHelper::SPL
Definition: ImageOrientationHelper.h:80
camitk::Action::SUCCESS
everything went according to plan
Definition: Action.h:245
camitk::Geometry::setRenderingModes
void setRenderingModes(const RenderingModes rMode)
Set the actor associated to a rendering mode visible or not.
Definition: Geometry.h:237
ReorientImage::rcsChanged
virtual void rcsChanged(const QString index)
Definition: ReorientImage.cpp:209
camitk::Action::ABORTED
the action was aborted before completion
Definition: Action.h:248
camitk::Action::ApplyStatus
ApplyStatus
Definition: Action.h:244
camitk::Action::setName
void setName(QString name)
Definition: Action.cpp:112
ReorientImage::apply
virtual ApplyStatus apply()
method called when the action is applied
Definition: ReorientImage.cpp:251
camitk::Action::setComponent
void setComponent(QString component)
the name of the component class that can be used by this action
Definition: Action.cpp:123
camitk::ImageOrientationHelper::LPI
Definition: ImageOrientationHelper.h:63
ReorientImage::buildCube
void buildCube()
Definition: ReorientImage.cpp:409
camitk::ImageOrientationHelper::IAL
Definition: ImageOrientationHelper.h:75
camitk::InteractiveViewer::setHighlightMode
virtual void setHighlightMode(InteractiveViewer::HighlightMode)
Set the current highlighting mode.
Definition: InteractiveViewer.cpp:1962
camitk::InterfaceFrame::setFrameVisibility
virtual void setFrameVisibility(Viewer *viewer, bool visible)=0
Set the Component Frame visible for a given viewer.
camitk::ImageComponent
The manager of the Image Volume data. An image volume data has no concrete 3D representation,...
Definition: ImageComponent.h:72
camitk::Action::getTargets
const ComponentList getTargets() const
the currently selected and valid (regarding the component property) components, for which this action...
Definition: Action.cpp:158
camitk::InteractiveViewer::getRendererWidget
RendererWidget * getRendererWidget()
return interactiveViewer RendererWidget
Definition: InteractiveViewer.h:294
Action.h
camitk::ImageOrientationHelper::SRP
Definition: ImageOrientationHelper.h:77
camitk::ImageOrientationHelper::ILP
Definition: ImageOrientationHelper.h:74
ReorientImage::process
ApplyStatus process(camitk::ImageComponent *image)
Actually perform the image transformation.
Definition: ReorientImage.cpp:264
ReorientImage::femaleModel
camitk::Geometry * femaleModel
Definition: ReorientImage.h:105
ReorientImage::lettersMeaning
QMap< QChar, QString > lettersMeaning
Definition: ReorientImage.h:108
camitk::InteractiveViewer
InteractiveViewer is used to view 3D objects and slices (anything that provides either a InterfaceBit...
Definition: InteractiveViewer.h:139
ReorientImage::cubeTransform
vtkSmartPointer< vtkTransform > cubeTransform
Definition: ReorientImage.h:100
ReorientImage::ReorientImage
ReorientImage(camitk::ActionExtension *)
the constructor
Definition: ReorientImage.cpp:72
camitk::Property
This class describes a property that can be used in components and actions or any class that needs to...
Definition: Property.h:312
ReorientImage::modelChanged
virtual void modelChanged(bool displayMaleModel)
Definition: ReorientImage.cpp:222
camitk::Action::addTag
void addTag(QString tag)
add a tag to the tags list of this action
Definition: Action.cpp:133
camitk::Geometry::getActor
vtkSmartPointer< vtkActor > getActor(const RenderingModes) override
Return the actor representing this representation mode (return NULL if hightlight mode is Hidden).
Definition: Geometry.cpp:265
Log.h
ReorientImage::maleModel
camitk::Geometry * maleModel
Definition: ReorientImage.h:104
ReorientImage::axes
vtkSmartPointer< vtkAxesActor > axes
axes actor
Definition: ReorientImage.h:91
ReorientImage::dialog
QDialog * dialog
the dialog
Definition: ReorientImage.h:88
MeshComponent.h
camitk::ImageOrientationHelper::PSR
Definition: ImageOrientationHelper.h:72
camitk::Action
Action class is an abstract class that enables you to build a action (generally on a component)....
Definition: Action.h:228
ReorientImage::~ReorientImage
virtual ~ReorientImage()
Destructor.
Definition: ReorientImage.cpp:119
camitk::ImageOrientationHelper::ARS
Definition: ImageOrientationHelper.h:65
camitk::ImageOrientationHelper::RSA
etc.
Definition: ImageOrientationHelper.h:61
camitk::Geometry::setColor
void setColor(const double, const double, const double) override
Set an (r,g,b) color to all representation modes, without changing the opacity.
Definition: Geometry.cpp:586
Property.h
ReorientImage::initDialog
void initDialog()
initialize the dialog
Definition: ReorientImage.cpp:133
SMeaning
static const QString SMeaning
Definition: ReorientImage.cpp:69
camitk::axeYTextProp
vtkSmartPointer< vtkTextProperty > axeYTextProp
Definition: RendererWidget.cpp:561
camitk::ImageOrientationHelper::SLA
Definition: ImageOrientationHelper.h:78
camitk::InteractiveViewer::refresh
void refresh(Viewer *whoIsAsking=nullptr) override
Refresh the display.
Definition: InteractiveViewer.cpp:526
VtkMeshUtil::vtkToGeometry
static camitk::Geometry * vtkToGeometry(std::string vtkFileName)
Static method that could be used from anywhere to translate a vtk file to a Geometry instance.
Definition: VtkMeshUtil.cpp:44
camitk::acProp
vtkSmartPointer< vtkProperty > acProp
Definition: RendererWidget.cpp:598
ReorientImage
Definition: ReorientImage.h:41
camitk::RIGHT_DOWN
World axes are seen so that x points to the right, y points downward.
Definition: RendererWidget.h:164
camitk::ImageOrientationHelper::SAR
Definition: ImageOrientationHelper.h:79
VtkMeshUtil.h
camitk::Action::setDescription
void setDescription(QString description)
the description of the action
Definition: Action.cpp:118
camitk::ImageOrientationHelper::LAS
Definition: ImageOrientationHelper.h:62
camitk::axeZTextProp
vtkSmartPointer< vtkTextProperty > axeZTextProp
Definition: RendererWidget.cpp:568
camitk::ImageOrientationHelper::RPS
X: Right to Left, Y: Posterior to Anterior, Z: Superior to Inferior.
Definition: ImageOrientationHelper.h:57
camitk::transform
vtkSmartPointer< vtkTransform > transform
Definition: RendererWidget.cpp:593
ReorientImage::axesTransform
vtkSmartPointer< vtkTransform > axesTransform
Definition: ReorientImage.h:101
camitk::InterfaceFrame::getParentFrame
virtual InterfaceFrame * getParentFrame() const =0
Get the parent frame.
camitk::ImageOrientationHelper::RAI
Direct Orientations X: Right to Left, Y: Anterior to Posterior, Z: Inferior to Superiror.
Definition: ImageOrientationHelper.h:55
AMeaning
static const QString AMeaning
Definition: ReorientImage.cpp:66
ReorientImage.h
camitk::Action::addParameter
virtual bool addParameter(Property *)
Add a new parameter to the action, using the CamiTK property class.
Definition: Action.cpp:416
PMeaning
static const QString PMeaning
Definition: ReorientImage.cpp:67
camitk::ActionExtension
This class describes what is a generic Action extension. To add a ActionExtension to CamiTK core,...
Definition: ActionExtension.h:80
camitk::axeXTextProp
vtkSmartPointer< vtkTextProperty > axeXTextProp
Definition: RendererWidget.cpp:547
camitk::ImageComponent::getImageData
vtkSmartPointer< vtkImageData > getImageData() const
get the image volume managed by this Component
Definition: ImageComponent.h:103
camitk::ImageOrientationHelper::LIA
Definition: ImageOrientationHelper.h:64
ImageOrientationHelper.h
InteractiveViewer.h
camitk::ImageOrientationHelper::IPR
Definition: ImageOrientationHelper.h:76
ReorientImage::orientationCubeTransform
vtkSmartPointer< vtkTransform > orientationCubeTransform
Definition: ReorientImage.h:98
ReorientImage::buildTransforms
void buildTransforms()
Definition: ReorientImage.cpp:488
ReorientImage::setAxesOrientation
void setAxesOrientation(const QString orientation)
Definition: ReorientImage.cpp:511
camitk::refresh
void refresh()
refresh the display
camitk::InterfaceFrame::setTransform
virtual void setTransform(vtkSmartPointer< vtkTransform > transform)=0
Set the current input frame position (according to its parent Frame)
camitk::InteractiveViewer::toggleCopyright
void toggleCopyright(bool)
show/hide the copyright in 3D
Definition: InteractiveViewer.cpp:2060
Core.h
ReorientImage::orientationTransform
vtkSmartPointer< vtkTransform > orientationTransform
Definition: ReorientImage.h:96
ReorientImage::buildAxes
void buildAxes()
Definition: ReorientImage.cpp:371
RMeaning
static const QString RMeaning
Definition: ReorientImage.cpp:64
camitk::ImageOrientationHelper::AIR
Definition: ImageOrientationHelper.h:67
camitk::ImageOrientationHelper::ALI
Definition: ImageOrientationHelper.h:66
camitk::ImageOrientationHelper::PRI
Definition: ImageOrientationHelper.h:69
camitk::ImageOrientationHelper::PLS
Definition: ImageOrientationHelper.h:70
ReorientImage::showApplyButton
void showApplyButton(bool show)
Definition: ReorientImage.cpp:179
ReorientImage::initInternalViewer
void initInternalViewer()
Definition: ReorientImage.cpp:184
camitk::ImageOrientationHelper::PossibleImageOrientations
PossibleImageOrientations
For each axis (x, y or z), 6 possibilities:
Definition: ImageOrientationHelper.h:52
ImageComponent.h
ReorientImage::buildGeometries
void buildGeometries()
Build Geometries.
Definition: ReorientImage.cpp:454
ReorientImage::annotatedCube
vtkSmartPointer< vtkAnnotatedCubeActor > annotatedCube
annotated cube actor
Definition: ReorientImage.h:94
camitk
Definition: Action.cpp:36
ReorientImage::ui
Ui::ReorientImage ui
the Qt Gui
Definition: ReorientImage.h:85
camitk::ImageOrientationHelper::ASL
Definition: ImageOrientationHelper.h:68