26#ifndef IMAGE_COMPONENT_H
27#define IMAGE_COMPONENT_H
35#include <vtkPolyData.h>
36#include <vtkSmartPointer.h>
37#include <vtkImageData.h>
38#include <vtkTransform.h>
39#include <vtkImageFlip.h>
40#include <vtkWindowLevelLookupTable.h>
41#include <vtkMatrix4x4.h>
49class QStandardItemModel;
56class SingleImageComponent;
57class ArbitrarySingleImageComponent;
101 void setSelected(
const bool b,
const bool recursive =
false)
override;
112 CAMITK_API_DEPRECATED(
"Please use setVisibility(QString viewerName, bool) instead")
virtual void setVisibility(
Viewer*,
bool)
override;
116 virtual void setVisibility(QString,
bool)
override;
119 QString getImageName()
const;
120 void setImageName(
const QString&);
124 return originalImageData;
132 vtkSmartPointer<vtkImageData> getImageDataWithFrameTransform();
136 return initialOrientation;
143 void pixelPicked(
double x,
double y,
double z)
override;
147 void getLastPixelPicked(
int* x,
int* y,
int* z);
151 void getLastPointPickedImageCoords(
double* x,
double* y,
double* z);
155 void getLastPointPickedWorldCoords(
double* x,
double* y,
double* z);
162 int getNumberOfColors()
const override;
165 double getMinColor()
const;
168 double getMaxColor()
const;
173 int getActualNumberOfColors()
const;
176 double getActualMinColor()
const;
179 double getActualMaxColor()
const;
182 int getNumberOfSlices()
const override;
185 virtual void setLut(vtkSmartPointer<vtkWindowLevelLookupTable> lookupTable);
188 virtual vtkSmartPointer<vtkWindowLevelLookupTable> getLut();
218 void updateProperty(QString, QVariant)
override;
221 unsigned int getNumberOfPropertyWidget()
override;
224 QWidget* getPropertyWidgetAt(
unsigned int i)
override;
228 return rotationMatrix;
241 void setImageData(vtkSmartPointer<vtkImageData> anImageData,
244 vtkSmartPointer<vtkMatrix4x4> initialTransformMatrix =
nullptr);
268 void initImageProperties();
274 void initLookupTable();
277 void buildImageComponents();
280 void updateImageComponents();
287 void update3DViewer();
291 vtkSmartPointer<vtkPolyData> getBoundingBox();
313 vtkSmartPointer<vtkWindowLevelLookupTable>
lut;
316 double currentPixelPicked[3];
#define CAMITK_API_DEPRECATED(X)
Definition: CamiTKAPI.h:94
#define CAMITK_API
Definition: CamiTKAPI.h:49
This Component manages the specific case of arbitrary orientation of a sub-component of the image com...
Definition: ArbitrarySingleImageComponent.h:65
A Component represents something that could be included in the explorer view, the interactive 3D view...
Definition: sdk/libraries/core/component/Component.h:302
The manager of the Image Volume data.
Definition: ImageComponent.h:77
QStandardItemModel * model
Model to display data.
Definition: ImageComponent.h:325
QTableView * selectionView
Tab displaying data selected point in the property explorer.
Definition: ImageComponent.h:322
SingleImageComponent * sagittalSlices
the sagittal slices representation (all intelligence is delegated to a Slice class instance)
Definition: ImageComponent.h:300
vtkSmartPointer< vtkImageData > getImageData() const override
get the image volume managed by this Component
Definition: ImageComponent.h:123
SingleImageComponent * coronalSlices
the coronal slices representation (all intelligence is delegated to a Slice class instance)
Definition: ImageComponent.h:303
void initRepresentation() override
the concrete building of the 3D objects (Slice/Geometry): none in this case!
Definition: ImageComponent.h:271
vtkSmartPointer< vtkTransform > initialImageDataTransform
The initial transform to the vtkImageData.
Definition: ImageComponent.h:333
const vtkSmartPointer< vtkMatrix4x4 > getRotationMatrix()
Definition: ImageComponent.h:227
ArbitrarySingleImageComponent * arbitrarySlices
the arbitrary slices representation (all intelligence is delegated to a Slice class instance)
Definition: ImageComponent.h:306
MeshComponent * volumeRenderingChild
When an action computes volume rendering for an image, it stores the corresponding actor as a prop of...
Definition: ImageComponent.h:310
ImageOrientationHelper::PossibleImageOrientations getInitialOrientation() const
Get the initial image orientation.
Definition: ImageComponent.h:135
vtkSmartPointer< vtkMatrix4x4 > rotationMatrix
The rotation matrix, that might have been altered by the user Will be saved in header file informatio...
Definition: ImageComponent.h:343
vtkSmartPointer< vtkWindowLevelLookupTable > lut
the current lookup table
Definition: ImageComponent.h:313
SingleImageComponent * axialSlices
the axial slices representation (all intelligence is delegated to a Slice class instance)
Definition: ImageComponent.h:297
vtkSmartPointer< vtkImageData > originalImageData
the core Image Volume that is managed here
Definition: ImageComponent.h:294
ImageOrientationHelper::PossibleImageOrientations initialOrientation
Initial image orientation.
Definition: ImageComponent.h:328
vtkSmartPointer< vtkTransform > initialFrameTransform
The initial frame of the image at opening.
Definition: ImageComponent.h:339
PossibleImageOrientations
For each axis (x, y or z), 6 possibilities:
Definition: ImageOrientationHelper.h:52
@ RAI
Direct Orientations X: Right to Left, Y: Anterior to Posterior, Z: Inferior to Superiror.
Definition: ImageOrientationHelper.h:55
Basic component to manage any kind of mesh.
Definition: MeshComponent.h:53
This Component manages sub-component of the image component seen as a single orientation only (axial ...
Definition: SingleImageComponent.h:61
Viewer is an abstract class that is the base class for all viewers.
Definition: Viewer.h:180
Definition: Action.cpp:35
void refresh()
refresh the display