Computer Assited Medical Intervention Tool Kit
version 4.1
|
The manager of the Image Volume data. More...
#include <ImageComponent.h>
Inherits camitk::Component.
Inherited by DicomComponent, ItkImageComponent, RawImageComponent, and VtkImageComponent.
Public Member Functions | |
double | getActualMaxColor () const |
Max gray level found in the image given its data type. More... | |
double | getActualMinColor () const |
Min gray level found in the image given its data type. More... | |
int | getActualNumberOfColors () const |
Actual Number of colors: difference betweent the maximun and the minimum gray levels found in the image. More... | |
SingleImageComponent * | getArbitrarySlices () |
Returns the arbitrary slice. More... | |
SingleImageComponent * | getAxialSlices () |
Returns the axial slice. More... | |
SingleImageComponent * | getCoronalSlices () |
Returns the coronal slice. More... | |
vtkSmartPointer< vtkImageData > | getImageData () const |
get the image volume managed by this Component More... | |
vtkSmartPointer< vtkImageData > | getImageDataWithFrameTransform () |
Compute a copy of the original image data on which the frame transform has been applied. More... | |
QString | getImageName () const |
getter/setter for the property More... | |
ImageOrientationHelper::PossibleImageOrientations | getInitialOrientation () const |
Get the initial image orientation. More... | |
void | getLastPixelPicked (int *x, int *y, int *z) |
Get the last pixel picked using CTRL + LEFT/RIGHT CLICK in voxel index (i, j, k) indicates the voxel index (no notion of voxel size) More... | |
void | getLastPointPickedImageCoords (double *x, double *y, double *z) |
Get the last point picked using CTRL + LEFT/RIGHT CLICK in image real coordinates (this takes into account voxel size) More... | |
void | getLastPointPickedWorldCoords (double *x, double *y, double *z) |
Get Get the last point picked using CTRL + LEFT/RIGHT CLICK in world coordinates This takes into account voxel size and image origin (and possible image rigid transforms). More... | |
virtual vtkSmartPointer< vtkWindowLevelLookupTable > | getLut () |
get the current lookup table More... | |
double | getMaxColor () const |
Max possible gray level of the image given its data type. More... | |
double | getMinColor () const |
Min possible gray level of the image given its data type. More... | |
int | getNumberOfColors () const override |
Number of colors: number of possible gray levels in the image computed from the min and the max of the data type ; e.g. More... | |
int | getNumberOfSlices () const override |
Number of axial slices (i.e. More... | |
const vtkSmartPointer< vtkMatrix4x4 > | getRotationMatrix () |
SingleImageComponent * | getSagittalSlices () |
Returns the sagittal slice. More... | |
MeshComponent * | getVolumeRenderingChild () |
Returns the MeshComponent which will contain the volume rendering actor. More... | |
ImageComponent (const QString &file) | |
constructor This method may throw an AbortException if a problem occurs. More... | |
ImageComponent (vtkSmartPointer< vtkImageData > anImageData, const QString &name, bool copy=false, ImageOrientationHelper::PossibleImageOrientations initialOrientation=ImageOrientationHelper::RAI) | |
Creates an ImageComponent from a vtkImageData This method may throw an AbortException if a problem occurs. More... | |
void | pixelPicked (double x, double y, double z, SingleImageComponent *whoIsAsking) |
Method called when a pixel has been picked in the 3D view. More... | |
void | refresh () const override |
force refresh of all interactive viewers that are displayng sub-components as ImageComponent is not itself displayed by any viewer More... | |
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. More... | |
void | setImageName (const QString &) |
virtual void | setLut (vtkSmartPointer< vtkWindowLevelLookupTable > lookupTable) |
Update the lookup table of the image viewer (see InterfaceBitMap). More... | |
void | setSelected (const bool b, const bool recursive=false) override |
set selected will select all the Image components (axial, sagittal and coronal). More... | |
~ImageComponent () override | |
Destructor. More... | |
InterfaceProperty | |
InterfaceProperty implemented methods | |
void | updateProperty (QString, QVariant) override |
unsigned int | getNumberOfPropertyWidget () override |
return number of tabs in property explorer: there is more than one widget More... | |
QWidget * | getPropertyWidgetAt (unsigned int i) override |
get the property widget (to view as tabs in the property explorer): the default property widget and the selection view More... | |
Public Member Functions inherited from camitk::Component | |
Component (QString file, QString name, Representation rep=NO_REPRESENTATION) | |
Component constructor for top-level component (please use the other constructor for sub-level components). More... | |
Component (Component *parentComponent, const QString &name, Representation rep=NO_REPRESENTATION) | |
Component constructor for a Component that is a child of another Component You should not use this constructor for a top-level component. More... | |
~Component () override | |
default destructor. More... | |
Representation | getRepresentation () const |
return the type of representation concretely implemented by this Component in the InteractiveViewer. More... | |
bool | isTopLevel () const |
return true if this component is a top-level component More... | |
virtual Component * | getParentComponent () |
get the parent component More... | |
virtual Component * | getTopLevelComponent () |
get the top-level component More... | |
virtual InterfaceFrame * | getFrame () |
get the associated frame More... | |
virtual void | setModified (bool modified=true) |
set the modified flag More... | |
virtual bool | getModified () const |
set the modified flag More... | |
virtual void | setVisibility (Viewer *, bool) |
set the visibility for a viewer More... | |
virtual bool | getVisibility (Viewer *) const |
get the visibility of a viewer More... | |
virtual void | refreshInterfaceNode () |
Asks all viewers that are currently displaying this Component to rebuild the representation of the InterfaceNode for this Component. More... | |
virtual bool | isSelected () const |
Check if this data component is selected. More... | |
const QString | getFileName () const |
get the file name where the data have to be stored/were stored More... | |
void | setFileName (const QString &) |
set the file name where the data have to be stored More... | |
bool | event (QEvent *e) override |
Overriden from QObject, this one is only intercepting signal for dynamic property changed (see constructor). More... | |
QMenu * | getActionMenu () |
Get a QMenu that contains all the action that can be applied to this component. More... | |
QStringList | getHierarchy () const override |
bool | isInstanceOf (QString className) const override |
Assert that a Component instance really inherits from a given className. More... | |
QObject * | getPropertyObject () |
Get the property object that could be understood by PropertyEditor. More... | |
void | setIndexOfPropertyExplorerTab (unsigned int index) |
Set the index of the tab in the ProperlyExplorer to select for display. More... | |
unsigned int | getIndexOfPropertyExplorerTab () |
Get the index of the tab in the ProperlyExplorer to select for display. More... | |
Q_INVOKABLE Property * | getProperty (QString name) override |
Get a Property given its name. More... | |
bool | addProperty (Property *) override |
Add a new CamiTK property to the component. More... | |
void | addChild (InterfaceNode *) override |
add a child Component (sub item in the hierarchy), and modify the child's parent to be equal to this instance More... | |
void | attachChild (InterfaceNode *) override |
add a child Component (but leave its parent unchanged) More... | |
void | removeChild (InterfaceNode *) override |
remove from the the sub item vector. More... | |
void | setParent (InterfaceNode *) override |
set the parent Component. This method automatically remove this Component from its previous (if already had one parent Component) More... | |
void | deleteChildren () override |
delete all sub Component, but do not delete the pointer (only the top-level component has the right to do that) More... | |
QString | getName () const override |
get the name to be displayed More... | |
void | setName (const QString &) override |
set the name to be displayed More... | |
const ComponentList & | getChildren () override |
get the list of the InterfaceNode children (sub items in the hierarchy) More... | |
bool | doubleClicked () override |
this method is called each time the InterfaceNode is double clicked by the user. More... | |
InterfaceNode * | getParent () override |
get the parent Component More... | |
QPixmap | getIcon () override |
Get the pixmap that will be displayed for this node. More... | |
bool | inItalic () const override |
A component name is not displayed in italic by default. More... | |
QMenu * | getPopupMenu (QWidget *parent=nullptr) |
get the popup menu to display (always return NULL, overwrite this method if you want to give here you own popup) More... | |
const QString | getLabel () const override |
void | setLabel (QString newName) override |
set the string used to display the label, do the same as setName More... | |
delegateGet0 (myGeometry, getPointSet, vtkSmartPointer< vtkPointSet >) delegate1(myGeometry | |
vtkSmartPointer< vtkPointSet > | delegate1 (myGeometry, setPointData, vtkSmartPointer< vtkDataArray >) delegateConstGet0(myGeometry |
vtkSmartPointer< vtkPointSet > vtkSmartPointer< vtkAlgorithmOutput > | delegate1 (myGeometry, setDataConnection, vtkSmartPointer< vtkAlgorithmOutput >) delegateGet1(myGeometry |
vtkSmartPointer< vtkPointSet > vtkSmartPointer< vtkAlgorithmOutput > const RenderingModes vtkSmartPointer< vtkProp > | getProp (const QString ¶m) |
Return the vtkProp (actors, volumes and annotations) corresponding to the given name. More... | |
unsigned int | getNumberOfProp () const |
return the number of additional prop More... | |
vtkSmartPointer< vtkProp > | getProp (unsigned int index) |
return an additional prop by its index More... | |
bool | addProp (const QString &name, vtkSmartPointer< vtkProp > prop) |
insert an additional prop, defining it by its name (default visibility = false) More... | |
bool | removeProp (const QString &name) |
remove a given additional prop. More... | |
void | pointPicked (vtkIdType, bool) |
an inherited class can redefine this method something specific. More... | |
void | cellPicked (vtkIdType, bool) |
an inherited class can redefine this method something specific. More... | |
void | getBounds (double *bounds) override |
compute the object's bounding box [xmin,xmax, ymin,ymax, zmin,zmax], see Component.cpp More... | |
double | getBoundingRadius () override |
compute the object's bounding sphere radius, More... | |
delegate4 (myGeometry, setPointPosition, const unsigned int, const double, const double, const double) delegateAndInvokeChildren1(myGeometry | |
const RenderingModes const InterfaceGeometry::RenderingModes | getRenderingModes () const override |
see Component.cpp More... | |
delegateAndInvokeChildren1 (myGeometry, setEnhancedModes, const EnhancedModes) delegateConstGet0(myGeometry | |
const EnhancedModes | delegateAndInvokeChildren1Array (myGeometry, setActorColor, const RenderingModes, double, 4) delegateAndInvokeChildren4(myGeometry |
const EnhancedModes const const const const double void | getActorColor (const RenderingModes, double [4]) override |
see Component.cpp More... | |
delegateAndInvokeChildren3 (myGeometry, setColor, const double, const double, const double) delegateAndInvokeChildren4(myGeometry | |
const const const const double | delegateAndInvokeChildren2 (myGeometry, setActorOpacity, const RenderingModes, const double) delegateConstGet1(myGeometry |
const const const const double const RenderingModes | delegateAndInvokeChildren1 (myGeometry, setOpacity, const double) delegate2(myGeometry |
const const const const double const RenderingModes double | delegate1 (myGeometry, setTexture, vtkSmartPointer< vtkTexture >) void setGlyphType(const GlyphTypes type |
delegate1 (myGeometry, setLinesAsTubes, bool) delegate1(myGeometry | |
delegateConstGet0 (mySlice, getImageData, vtkSmartPointer< vtkImageData >) delegate1(mySlice | |
vtkSmartPointer< vtkImageData > | delegateConstGet0 (mySlice, get2DImageActor, vtkSmartPointer< vtkImageActor >) delegateConstGet0(mySlice |
vtkSmartPointer< vtkImageData > vtkSmartPointer< vtkImageActor > | delegateConstGet0 (mySlice, getPickPlaneActor, vtkSmartPointer< vtkActor >) delegateGet0(mySlice |
vtkSmartPointer< vtkImageData > vtkSmartPointer< vtkImageActor > vtkSmartPointer< vtkActor > | delegate3 (mySlice, pixelPicked, double, double, double) delegate0(mySlice |
vtkSmartPointer< vtkImageData > vtkSmartPointer< vtkImageActor > vtkSmartPointer< vtkActor > updatePickPlane | delegate1 (mySlice, setSlice, int) delegate3(mySlice |
vtkSmartPointer< vtkImageData > vtkSmartPointer< vtkImageActor > vtkSmartPointer< vtkActor > updatePickPlane double | delegateConstGet0 (mySlice, getNumberOfColors, int) delegate3(mySlice |
vtkSmartPointer< vtkImageData > vtkSmartPointer< vtkImageActor > vtkSmartPointer< vtkActor > updatePickPlane double double | delegate1 (mySlice, setImageWorldTransform, vtkSmartPointer< vtkTransform >) int getNumberOfSlices() const override |
see Component.cpp More... | |
int | getSlice () const override |
see Component.cpp More... | |
const QString & | getFrameName () const override |
Hierarchy accessors / Modifyers. More... | |
delegate1 (myFrame, setFrameName, QString) InterfaceFrame *getParentFrame() const override | |
void | setParentFrame (InterfaceFrame *frame, bool keepTransform=true) override |
Set the parent frame and update or not its transform during the parent transition. More... | |
const QVector< InterfaceFrame * > & | getChildrenFrame () const override |
Get the Children Frames from the current Frame in the Frame Hierarchy The Frame hierarchy may not be the same as the Component Hierarchy. More... | |
const vtkSmartPointer< vtkTransform > | getTransformFromWorld () const override |
Transforms accessors / Modifyers. More... | |
const vtkSmartPointer< vtkTransform > | getTransform () const override |
Get the transformation with respect to the parent frame. More... | |
const vtkSmartPointer< vtkTransform > | getTransformFromFrame (InterfaceFrame *frame) const override |
Compute the transformation from any other frame to the current frame. More... | |
delegate1 (myFrame, setTransform, vtkSmartPointer< vtkTransform >) delegate0(myFrame | |
resetTransform | delegate3 (myFrame, translate, double, double, double) delegate3(myFrame |
resetTransform double | delegate3 (myFrame, rotateVTK, double, double, double) delegate3(myFrame |
resetTransform double double | delegate3 (myFrame, setTransformTranslationVTK, double, double, double) delegate3(myFrame |
resetTransform double double double | delegate3 (myFrame, setTransformRotationVTK, double, double, double) vtkSmartPointer< vtkAxesActor > getFrameAxisActor() override |
delegate2 (myFrame, setFrameVisibility, Viewer *, bool) bool getFrameVisibility(Viewer *viewer) const override | |
delegate1 (myFrame, addFrameChild, InterfaceFrame *) delegate1(myFrame | |
Public Member Functions inherited from camitk::InterfaceProperty | |
~InterfaceProperty ()=default | |
empty virtual destructor, to avoid memory leak More... | |
Public Member Functions inherited from camitk::InterfaceNode | |
virtual | ~InterfaceNode ()=default |
empty virtual destructor, to avoid memory leak More... | |
Public Member Functions inherited from camitk::InterfaceGeometry | |
virtual | ~InterfaceGeometry ()=default |
empty virtual destructor, to avoid memory leak More... | |
virtual vtkSmartPointer< vtkPointSet > | getPointSet ()=0 |
virtual void | setPointSet (vtkSmartPointer< vtkPointSet >)=0 |
set the low-level data set. More... | |
virtual void | setPointData (vtkSmartPointer< vtkDataArray >)=0 |
set the point data (may contains a lookup table). More... | |
virtual void | setMeshWorldTransform (vtkSmartPointer< vtkTransform >)=0 |
set the transformation for 3D representation More... | |
virtual vtkSmartPointer< vtkAlgorithmOutput > | getDataPort () const =0 |
get the custom algorithm pipeline input. More... | |
virtual void | setDataConnection (vtkSmartPointer< vtkAlgorithmOutput >)=0 |
Set/reset the connection for the InterfaceGeometry internal algorithm. More... | |
virtual vtkSmartPointer< vtkActor > | getActor (const RenderingModes)=0 |
Return the actor for the representation mode, NULL if the actor doesn't exist. More... | |
virtual void | setTexture (vtkSmartPointer< vtkTexture >)=0 |
Set a texture to this object. More... | |
virtual void | setPointPosition (const unsigned int orderNumber, const double x, const double y, const double z)=0 |
set a given point position More... | |
virtual void | setRenderingModes (const RenderingModes)=0 |
virtual void | setEnhancedModes (const EnhancedModes)=0 |
set the enhanced mode More... | |
virtual const EnhancedModes | getEnhancedModes () const =0 |
get the current enhanced mode More... | |
virtual void | setActorColor (const RenderingModes, double *color)=0 |
Set the color of given representation modes. More... | |
virtual void | setActorColor (const RenderingModes, const double, const double, const double)=0 |
Set the color of given representation modes. More... | |
virtual void | getActorColor (const RenderingModes, double *color)=0 |
Get the color of given representation modes in the second parameter. More... | |
virtual void | setColor (const double, const double, const double)=0 |
Set an (r,g,b) color to all representation modes, without changing the opacity. More... | |
virtual void | setColor (const double, const double, const double, const double)=0 |
Set an (r,g,b,a) color to all representation modes. More... | |
virtual void | setActorOpacity (const RenderingModes, const double)=0 |
Set the opacity of this representation modes. WARNING color field (surfaceColor, ...) are not modified! More... | |
virtual double | getActorOpacity (const RenderingModes) const =0 |
Return the opacity of a given renderng mode. More... | |
virtual void | setOpacity (const double)=0 |
Set the opacity of this object. WARNING color field (surfaceColor, ...) are not modified! More... | |
virtual void | setMapperScalarRange (double min, double max)=0 |
Set the mapper scalar range. More... | |
virtual void | setGlyphType (const GlyphTypes type, const double size=0.0)=0 |
Set the glyph type (a glyph is a geometric representation attached to every point in the input dataset). More... | |
virtual void | setLinesAsTubes (bool)=0 |
set the lines as tubes (works only for vtkDataSet representation that contains lines) More... | |
Public Member Functions inherited from camitk::InterfaceBitMap | |
virtual vtkSmartPointer< vtkImageActor > | get2DImageActor () const =0 |
Return the vtkImageActor (vtkProp) representing a slice to be displayed in 2D viewers. More... | |
virtual vtkSmartPointer< vtkImageActor > | get3DImageActor () const =0 |
Return the vtkImageActor (vtkProp) representing a slice to be displayed in 3D viewers. More... | |
virtual vtkSmartPointer< vtkActor > | getPickPlaneActor () const =0 |
Return the vtkActor used to pick pixels in the slices. More... | |
virtual vtkSmartPointer< vtkActor > | getPixelActor ()=0 |
Return the vtkActor used to pick pixels in the slices. More... | |
virtual void | pixelPicked (double, double, double)=0 |
Return 2D Axes at the proper slice origin. More... | |
virtual void | setImageWorldTransform (vtkSmartPointer< vtkTransform >)=0 |
set the transformation for 3D image representation More... | |
virtual void | setOriginalVolume (vtkSmartPointer< vtkImageData >)=0 |
set the original volume image data (the source vtkImageData before any reslice) and refresh the vtk pipeline More... | |
virtual void | setPixelRealPosition (double, double, double)=0 |
move the pixel selection green indicator (pixelActor) to the given real position More... | |
virtual void | setSlice (int s)=0 |
Set the current slice index. More... | |
virtual void | setSlice (double x, double y, double z)=0 |
Set the slice corresponding to the given image coordinates (in RAI convention) More... | |
virtual void | updatePickPlane ()=0 |
virtual | ~InterfaceBitMap ()=default |
virtual destructor More... | |
Public Member Functions inherited from camitk::InterfaceFrame | |
virtual void | addFrameChild (InterfaceFrame *frame)=0 |
Add the input frame as a child of the current frame. More... | |
virtual vtkSmartPointer< vtkAxesActor > | getFrameAxisActor ()=0 |
Gives the 3D representation of the frame (based on xyz arrows) More... | |
virtual bool | getFrameVisibility (Viewer *viewer) const =0 |
Get the Component Frame visibility for a given viewer. More... | |
virtual void | removeFrameChild (InterfaceFrame *frame)=0 |
Remove the input frame as a child of the current frame. More... | |
virtual void | setFrameVisibility (Viewer *viewer, bool visible)=0 |
Set the Component Frame visible for a given viewer. More... | |
virtual | ~InterfaceFrame ()=default |
empty virtual destructor, to avoid memory leak More... | |
virtual void | setFrameName (QString name)=0 |
Set the Frame Unique identifyer. More... | |
virtual InterfaceFrame * | getParentFrame () const =0 |
Get the parent frame. More... | |
virtual void | setTransform (vtkSmartPointer< vtkTransform > transform)=0 |
Set the current input frame position (according to its parent Frame) More... | |
virtual void | resetTransform ()=0 |
Set the current frame transform to identity. More... | |
virtual void | translate (double x, double y, double z)=0 |
Apply a translation relative to the current position. More... | |
virtual void | rotate (double aroundX, double aroundY, double aroundZ)=0 |
Apply rotations relative to the current position in the alphabetical order (X, Y, Z). More... | |
virtual void | rotateVTK (double aroundX, double aroundY, double aroundZ)=0 |
Apply a rotation relative to the current position, using the VTK rotation order (Z, X, Y) More... | |
virtual void | setTransformTranslation (double x, double y, double z)=0 |
Set the translation part of the 3D space transformation of the current frame. More... | |
virtual void | setTransformTranslationVTK (double x, double y, double z)=0 |
Set the translation part of the 3D space transformation of the current frame. More... | |
virtual void | setTransformRotation (double aroundX, double aroundY, double aroundZ)=0 |
Set the rotation part of the 3D space transformation of the current frame. More... | |
virtual void | setTransformRotationVTK (double aroundX, double aroundY, double aroundZ)=0 |
Set the rotation part of the 3D space transformation of the current frame. More... | |
Protected Member Functions | |
virtual void | setImageData (vtkSmartPointer< vtkImageData > anImageData, bool copy, ImageOrientationHelper::PossibleImageOrientations initialOrientation=ImageOrientationHelper::RAI, vtkSmartPointer< vtkMatrix4x4 > initialTransformMatrix=nullptr) |
Set the image data of the volumic images with the given orientation options. More... | |
virtual void | setSingleImageComponents (SingleImageComponent *axialSlices, SingleImageComponent *sagittalSlices, SingleImageComponent *coronalSlices, SingleImageComponent *arbitrarySlices) |
Set all single images. More... | |
Private Member Functions | |
void | buildImageComponents () |
build the SingleImageComponent (one for each image plane); More... | |
vtkSmartPointer< vtkPolyData > | getBoundingBox () |
internal method used to put a mesh in volumeRenderingChild and accessoiry display the bounding box More... | |
virtual void | init () |
initialize pointers to NULL and other attributes More... | |
virtual void | initImageProperties () |
Update the Properties displayed in the PropertyExplorer It should be called by setImageData to update the properties with respect to the new image data The properties updated are: More... | |
void | initLookupTable () |
void | initRepresentation () |
the concrete building of the 3D objects (Slice/Geometry): none in this case! More... | |
void | update3DViewer () |
Update visibility in the 3D viewer. More... | |
void | updateImageComponents () |
update the image components vtkImageData of all the available SingleImageComponent More... | |
Private Attributes | |
SingleImageComponent * | arbitrarySlices |
the arbitrary slices representation (all intelligence is delegated to a Slice class instance) More... | |
SingleImageComponent * | axialSlices |
the axial slices representation (all intelligence is delegated to a Slice class instance) More... | |
SingleImageComponent * | coronalSlices |
the coronal slices representation (all intelligence is delegated to a Slice class instance) More... | |
double | currentPixelPicked [3] |
Store the last pixel selected, in original slices ref. More... | |
vtkSmartPointer< vtkTransform > | initialFrameTransform |
The initial frame of the image at opening. More... | |
vtkSmartPointer< vtkTransform > | initialImageDataTransform |
The initial transform to the vtkImageData. More... | |
ImageOrientationHelper::PossibleImageOrientations | initialOrientation |
Initial image orientation. More... | |
vtkSmartPointer< vtkWindowLevelLookupTable > | lut |
the current lookup table More... | |
QStandardItemModel * | model |
Model to display data. More... | |
vtkSmartPointer< vtkImageData > | originalImageData |
the core Image Volume that is managed here More... | |
vtkSmartPointer< vtkMatrix4x4 > | rotationMatrix |
The rotation matrix, that might have been altered by the user Will be saved in header file information as TransformMatrix tag. More... | |
SingleImageComponent * | sagittalSlices |
the sagittal slices representation (all intelligence is delegated to a Slice class instance) More... | |
QTableView * | selectionView |
Tab displaying data selected point in the property explorer. More... | |
MeshComponent * | volumeRenderingChild |
When an action computes volume rendering for an image, it stores the corresponding actor as a prop of this Component. More... | |
Additional Inherited Members | |
Public Types inherited from camitk::Component | |
enum | Representation { GEOMETRY, SLICE, NO_REPRESENTATION } |
The different representation that can be implemented to represent this Component in the InteractiveViewer. More... | |
Public Types inherited from camitk::InterfaceGeometry | |
enum | EnhancedMode { Normal = 0x0, Hidden = 0x1, Shaded = 0x2, Highlighted = 0x4 } |
(and QFlags EnhancedModes) handle the way the rendering actors will be enhanced or not (from completely hidden to highlighted) More... | |
enum | GlyphType { NoGlyph = 0x0, Sphere = 0x1 } |
(and QFlags GlyphTypes) is the type of glyph attached to the geometry representation More... | |
enum | RenderingMode { None = 0x0, Surface = 0x1, Wireframe = 0x2, Points = 0x4 } |
(and QFlags RenderingModes) handle actor rendering options (render this InterfaceGeometry as a surface, a wireframe and set of points). More... | |
Public Attributes inherited from camitk::Component | |
setPointSet | |
vtkSmartPointer< vtkPointSet > | getDataPort |
vtkSmartPointer< vtkPointSet > vtkSmartPointer< vtkAlgorithmOutput > | getActor |
vtkSmartPointer< vtkPointSet > vtkSmartPointer< vtkAlgorithmOutput > | vtkSmartPointer< vtkActor > |
setRenderingModes | |
getEnhancedModes | |
const EnhancedModes | setActorColor |
const EnhancedModes const | RenderingModes |
const EnhancedModes const const | double |
const EnhancedModes const const const | double |
setColor | |
const | double |
const const | double |
const const const | double |
const const const const double | getActorOpacity |
const const const const double | double |
const const const const double const RenderingModes | setMapperScalarRange |
const const const const double const RenderingModes | double |
const const const const double const RenderingModes double const double | size = 0.0) override |
setMeshWorldTransform | |
setOriginalVolume | |
vtkSmartPointer< vtkImageData > | get3DImageActor |
vtkSmartPointer< vtkImageData > vtkSmartPointer< vtkImageActor > | getPixelActor |
vtkSmartPointer< vtkImageData > vtkSmartPointer< vtkImageActor > vtkSmartPointer< vtkActor > updatePickPlane | setSlice |
vtkSmartPointer< vtkImageData > vtkSmartPointer< vtkImageActor > vtkSmartPointer< vtkActor > updatePickPlane | double |
vtkSmartPointer< vtkImageData > vtkSmartPointer< vtkImageActor > vtkSmartPointer< vtkActor > updatePickPlane double | setPixelRealPosition |
vtkSmartPointer< vtkImageData > vtkSmartPointer< vtkImageActor > vtkSmartPointer< vtkActor > updatePickPlane double | double |
resetTransform | rotate |
resetTransform | double |
resetTransform double | setTransformTranslation |
resetTransform double | double |
resetTransform double double | setTransformRotation |
resetTransform double double | double |
removeFrameChild | |
Public Attributes inherited from camitk::InterfaceBitMap | |
QMap< QString, vtkSmartPointer< vtkProp > > | extraProp |
The additional map for prop (include at least "label" and "glyph". More... | |
Protected Attributes inherited from camitk::Component | |
ComponentList | childrenComponent |
The explorer sub items. More... | |
unsigned int | indexOfPropertyExplorerTab |
The PropertyExplorer tab index to select once refreshed. More... | |
bool | isSelectedFlag |
tells if this particular Component is selected or not More... | |
bool | modifiedFlag |
the modificatio flag (could be extended to manage a undo/redo list) More... | |
QString | myFileName |
the file name from which the Component is loaded More... | |
InterfaceFrame * | myFrame |
myFrame is the pose (position and orientation) of the Component in the world frame, the Component delegates all InterfaceFrame activity to myFrame (delegation pattern) More... | |
InterfaceGeometry * | myGeometry |
myGeometry is the 3d representation of this Component, the Component delegates all InterfaceGeometry activity to myGeometry (delegation pattern) More... | |
InterfaceNode * | myParentNode |
who is the boss? The Component! More... | |
InterfaceBitMap * | mySlice |
mySlice is the slice representation of this data component, the Component delegates all InterfaceBitMap activity to mySlice (delegation pattern) More... | |
The manager of the Image Volume data.
An image volume data has no concrete 3D representation, but handles several sub-components for axial, sagittal and coronal slices.
Vtk Pipeline:
Everytime a property is changed using setProperty(QString propertyName, QVariant value), the ImageComponent will automatically update, thanks to the updateProperty(..) method.
camitk::ImageComponent::ImageComponent | ( | const QString & | file | ) |
constructor This method may throw an AbortException if a problem occurs.
References init().
camitk::ImageComponent::ImageComponent | ( | vtkSmartPointer< vtkImageData > | anImageData, |
const QString & | name, | ||
bool | copy = false , |
||
ImageOrientationHelper::PossibleImageOrientations | initialOrientation = ImageOrientationHelper::RAI |
||
) |
Creates an ImageComponent from a vtkImageData This method may throw an AbortException if a problem occurs.
anImageData | : volume image of the new ImageComponent |
name | name to be given to the Component (this name will apear in the explorer) |
copy | perform or not a deep copy of the image given in parameters. |
initialOrientation | the initial orientation of the image. This information may be stored in the file header or in some time (DICOM). If no orientation information is provided, assume the image orientation is RAI. By default, does not copy the original image, but references the corresponding smart pointer (for memory reasons, but if copy is set to true, performs a deep copy). |
References init(), setImageData(), camitk::Component::setModified(), and camitk::Component::setName().
|
override |
Destructor.
References model, originalImageData, and selectionView.
|
private |
build the SingleImageComponent (one for each image plane);
References arbitrarySlices, camitk::Slice::AXIAL, axialSlices, camitk::Slice::CORONAL, coronalSlices, getBoundingBox(), camitk::Component::getFrame(), lut, originalImageData, camitk::Slice::SAGITTAL, sagittalSlices, camitk::Component::setParentFrame(), camitk::Component::setRenderingModes, volumeRenderingChild, and camitk::InterfaceGeometry::Wireframe.
Referenced by setImageData().
double camitk::ImageComponent::getActualMaxColor | ( | ) | const |
Max gray level found in the image given its data type.
References originalImageData.
Referenced by initLookupTable().
double camitk::ImageComponent::getActualMinColor | ( | ) | const |
Min gray level found in the image given its data type.
References originalImageData.
Referenced by initLookupTable().
int camitk::ImageComponent::getActualNumberOfColors | ( | ) | const |
Actual Number of colors: difference betweent the maximun and the minimum gray levels found in the image.
References originalImageData.
Referenced by initLookupTable().
SingleImageComponent * camitk::ImageComponent::getArbitrarySlices | ( | ) |
Returns the arbitrary slice.
References arbitrarySlices.
Referenced by ShowArbitrarySliceIn3D::apply().
SingleImageComponent * camitk::ImageComponent::getAxialSlices | ( | ) |
Returns the axial slice.
References axialSlices.
Referenced by ShowAxialSliceIn3D::apply(), MultiPickingWidget::manuallyModified(), and MultiPickingWidget::removeSeedNumber().
|
private |
internal method used to put a mesh in volumeRenderingChild and accessoiry display the bounding box
References originalImageData.
Referenced by buildImageComponents().
SingleImageComponent * camitk::ImageComponent::getCoronalSlices | ( | ) |
|
inlinevirtual |
get the image volume managed by this Component
Implements camitk::InterfaceBitMap.
Referenced by PixelColorChanger::apply(), VolumeRenderingAction::createVolumeRendering(), ImageLutWidget::draw(), ImageReconstructionAction::getMarchingCubesReconstruction(), MultiPickingWidget::manuallyModified(), ManualThreshold::process(), LaplacianSharpening::process(), MeanFilter::process(), CannyEdgeDetection::process(), GradientMagnitudeRecursiveGaussian::process(), GradientMagnitude::process(), LaplacianRecursiveGaussian::process(), MedianFilter::process(), Laplacian::process(), RegionGrowing::process(), SobelEdgeDetection::process(), ConnectedComponents::process(), OtsuFilter::process(), BoxVOI::process(), Derivative::process(), GaussianFilter::process(), AnisotropicDiffusion::process(), ResampleAction::process(), MorphologicalOperators::process(), ReorientImage::process(), MultiPickingWidget::removeSeedNumber(), VtkImageComponentExtension::save(), ItkImageComponentExtension::save(), ItkImageComponentExtension::saveImage(), and ImageLutWidget::updateComponent().
vtkSmartPointer< vtkImageData > camitk::ImageComponent::getImageDataWithFrameTransform | ( | ) |
Compute a copy of the original image data on which the frame transform has been applied.
This allows to keep all the frame transform information on the file when saving it.
References camitk::Component::getTransform(), initialFrameTransform, initialImageDataTransform, originalImageData, and rotationMatrix.
Referenced by VtkImageComponentExtension::save().
QString camitk::ImageComponent::getImageName | ( | ) | const |
getter/setter for the property
References camitk::Component::getName().
Referenced by MultiPickingWidget::savePixelList().
|
inline |
Get the initial image orientation.
References camitk::ImageOrientationHelper::RAI.
Referenced by VtkImageComponentExtension::save().
void camitk::ImageComponent::getLastPixelPicked | ( | int * | x, |
int * | y, | ||
int * | z | ||
) |
Get the last pixel picked using CTRL + LEFT/RIGHT CLICK in voxel index (i, j, k) indicates the voxel index (no notion of voxel size)
References currentPixelPicked, and originalImageData.
Referenced by PixelColorChanger::apply(), and pixelPicked().
Get the last point picked using CTRL + LEFT/RIGHT CLICK in image real coordinates (this takes into account voxel size)
References currentPixelPicked.
Get Get the last point picked using CTRL + LEFT/RIGHT CLICK in world coordinates This takes into account voxel size and image origin (and possible image rigid transforms).
References currentPixelPicked, and camitk::Component::getTransformFromWorld().
Referenced by pixelPicked().
|
virtual |
get the current lookup table
References lut.
Referenced by PixelColorChanger::apply(), ImageLutWidget::applyLUT(), DicomComponent::DicomComponent(), ImageLutWidget::draw(), ImageLutWidget::updateComponent(), and DicomComponent::updateLUT().
double camitk::ImageComponent::getMaxColor | ( | ) | const |
Max possible gray level of the image given its data type.
References originalImageData.
Referenced by getNumberOfColors().
double camitk::ImageComponent::getMinColor | ( | ) | const |
Min possible gray level of the image given its data type.
References originalImageData.
Referenced by getNumberOfColors().
|
overridevirtual |
Number of colors: number of possible gray levels in the image computed from the min and the max of the data type ; e.g.
for a volume coded on unsigned char, returns 256.
Implements camitk::InterfaceBitMap.
References getMaxColor(), and getMinColor().
|
overridevirtual |
return number of tabs in property explorer: there is more than one widget
Reimplemented from camitk::Component.
|
overridevirtual |
Number of axial slices (i.e.
dim[2])
Implements camitk::InterfaceBitMap.
References axialSlices, and camitk::InterfaceBitMap::getNumberOfSlices().
|
overridevirtual |
get the property widget (to view as tabs in the property explorer): the default property widget and the selection view
Reimplemented from camitk::Component.
References selectionView.
|
inline |
References camitk::ImageOrientationHelper::RAI.
SingleImageComponent * camitk::ImageComponent::getSagittalSlices | ( | ) |
Returns the sagittal slice.
References sagittalSlices.
Referenced by ShowSagittalSliceIn3D::apply().
MeshComponent * camitk::ImageComponent::getVolumeRenderingChild | ( | ) |
Returns the MeshComponent which will contain the volume rendering actor.
References volumeRenderingChild.
Referenced by VolumeRenderingAction::createVolumeRendering(), and VolumeRenderingAction::process().
|
privatevirtual |
initialize pointers to NULL and other attributes
References camitk::Component::addProperty(), arbitrarySlices, axialSlices, coronalSlices, currentPixelPicked, camitk::Component::getName(), lut, model, originalImageData, sagittalSlices, selectionView, camitk::Property::setReadOnly(), and volumeRenderingChild.
Referenced by ImageComponent().
|
privatevirtual |
Update the Properties displayed in the PropertyExplorer It should be called by setImageData to update the properties with respect to the new image data The properties updated are:
References camitk::Component::getName(), and originalImageData.
Referenced by setImageData().
|
private |
References getActualMaxColor(), getActualMinColor(), getActualNumberOfColors(), lut, and originalImageData.
Referenced by setImageData().
|
inlineprivatevirtual |
the concrete building of the 3D objects (Slice/Geometry): none in this case!
Implements camitk::Component.
void camitk::ImageComponent::pixelPicked | ( | double | x, |
double | y, | ||
double | z, | ||
SingleImageComponent * | whoIsAsking | ||
) |
Method called when a pixel has been picked in the 3D view.
This method tells all the scene3D to display the slice containing the picked pixel. The arguments are the ccordinates of the 3D point.
References currentPixelPicked, camitk::Component::getChildren(), getLastPixelPicked(), getLastPointPickedWorldCoords(), model, originalImageData, selectionView, camitk::Component::setIndexOfPropertyExplorerTab(), and camitk::Component::setSlice.
Referenced by MultiPickingWidget::manuallyModified(), and MultiPickingWidget::removeSeedNumber().
|
overridevirtual |
force refresh of all interactive viewers that are displayng sub-components as ImageComponent is not itself displayed by any viewer
Reimplemented from camitk::Component.
References camitk::Component::childrenComponent, and camitk::Component::refresh().
Referenced by ImageLutWidget::applyLUT().
|
virtual |
Replaces the current image volume by the one given in parameters.
anImageData | the replacement image data |
If | copy is set to true, performs a deep copy before replacing the image. If copy is set to false, only takes the smart pointer as input. |
initialOrientation | the initial orientation of the replacement image. If no orientation information is provided, assume the image orientation is RAI. |
References arbitrarySlices, axialSlices, coronalSlices, camitk::Component::refreshInterfaceNode(), camitk::Component::removeChild(), sagittalSlices, setImageData(), and volumeRenderingChild.
Referenced by ReorientImage::process().
|
protectedvirtual |
Set the image data of the volumic images with the given orientation options.
anImageData | The main vtkImageData of the volumic image. |
copy | Indicate if we do a vtk deep copy of these data or directly work on the one provided. |
initialOrientation | Initial image orientation |
initialTransformMatrix | Initial image rotation (provided as a 4x4 matrix) |
References camitk::Component::addProperty(), buildImageComponents(), camitk::ImageOrientationHelper::getOrientationAsQString(), camitk::Component::getTransform(), camitk::ImageOrientationHelper::getTransformToRAI(), initialFrameTransform, initialImageDataTransform, initialOrientation, initImageProperties(), initLookupTable(), originalImageData, rotationMatrix, camitk::Property::setReadOnly(), and camitk::InterfaceFrame::setTransform().
Referenced by ItkImageComponent::createComponent(), VtkImageComponent::createComponent(), RawImageComponent::createComponent(), DicomComponent::DicomComponent(), ImageComponent(), and replaceImageData().
void camitk::ImageComponent::setImageName | ( | const QString & | imageName | ) |
References camitk::Component::setName().
|
virtual |
Update the lookup table of the image viewer (see InterfaceBitMap).
References lut.
|
overridevirtual |
set selected will select all the Image components (axial, sagittal and coronal).
Reimplemented from camitk::Component.
References camitk::Component::getChildren(), camitk::Component::setSelected(), and camitk::SingleImageComponent::singleImageSelected().
|
protectedvirtual |
Set all single images.
The only time this method should be used is when you redefined the SingleImageComponent class. Warning: this overwrite the original single image components. Note: if you need to change only one of these SingleImageComponent instances, you'd better use the getter methods on the remaining instances.
axialSlices | the axial slices representation (use getAxialSlices() if you don't need to modify this particular orientation) |
sagittalSlices | the sagittal slices representation (use getSagittalSlices() if you don't need to modify this particular orientation) |
coronalSlices | the coronal slices representation (use getCoronalSlices() if you don't need to modify this particular orientation) |
arbitrarySlices | the arbirtrary slices representation (use getArbitrarySlices() if you don't need to modify this particular orientation) |
References arbitrarySlices, axialSlices, coronalSlices, camitk::Component::removeChild(), and sagittalSlices.
|
private |
Update visibility in the 3D viewer.
Depending on the value of the "Display Image in 3D Viewer" property and the available SingleImageComponent actually instanciated, this method will update the visibility of the SingleImageComponent in the default 3D viewer.
References arbitrarySlices, axialSlices, coronalSlices, camitk::InteractiveViewer::get3DViewer(), sagittalSlices, camitk::SingleImageComponent::setViewSliceIn3D(), camitk::Component::setVisibility(), and volumeRenderingChild.
Referenced by updateProperty().
|
private |
update the image components vtkImageData of all the available SingleImageComponent
References arbitrarySlices, axialSlices, coronalSlices, originalImageData, sagittalSlices, and camitk::Component::setOriginalVolume.
|
overridevirtual |
manages dynamic property viewIn3D
Reimplemented from camitk::Component.
References camitk::Component::refreshInterfaceNode(), camitk::Component::setName(), update3DViewer(), and camitk::Component::updateProperty().
|
private |
the arbitrary slices representation (all intelligence is delegated to a Slice class instance)
Referenced by buildImageComponents(), getArbitrarySlices(), init(), replaceImageData(), setSingleImageComponents(), update3DViewer(), and updateImageComponents().
|
private |
the axial slices representation (all intelligence is delegated to a Slice class instance)
Referenced by buildImageComponents(), getAxialSlices(), getNumberOfSlices(), init(), replaceImageData(), setSingleImageComponents(), update3DViewer(), and updateImageComponents().
|
private |
the coronal slices representation (all intelligence is delegated to a Slice class instance)
Referenced by buildImageComponents(), getCoronalSlices(), init(), replaceImageData(), setSingleImageComponents(), update3DViewer(), and updateImageComponents().
|
private |
Store the last pixel selected, in original slices ref.
Referenced by getLastPixelPicked(), getLastPointPickedImageCoords(), getLastPointPickedWorldCoords(), init(), and pixelPicked().
|
private |
The initial frame of the image at opening.
Referenced by getImageDataWithFrameTransform(), and setImageData().
|
private |
The initial transform to the vtkImageData.
Referenced by getImageDataWithFrameTransform(), and setImageData().
|
private |
Initial image orientation.
Referenced by setImageData().
|
private |
the current lookup table
Referenced by buildImageComponents(), getLut(), init(), initLookupTable(), and setLut().
|
private |
Model to display data.
Referenced by init(), pixelPicked(), and ~ImageComponent().
|
private |
the core Image Volume that is managed here
Referenced by buildImageComponents(), getActualMaxColor(), getActualMinColor(), getActualNumberOfColors(), getBoundingBox(), getImageDataWithFrameTransform(), getLastPixelPicked(), getMaxColor(), getMinColor(), init(), initImageProperties(), initLookupTable(), pixelPicked(), setImageData(), updateImageComponents(), and ~ImageComponent().
|
private |
The rotation matrix, that might have been altered by the user Will be saved in header file information as TransformMatrix tag.
Referenced by VtkImageComponent::createComponent(), getImageDataWithFrameTransform(), VtkImageComponent::readMetaImageTransformMatrix(), and setImageData().
|
private |
the sagittal slices representation (all intelligence is delegated to a Slice class instance)
Referenced by buildImageComponents(), getSagittalSlices(), init(), replaceImageData(), setSingleImageComponents(), update3DViewer(), and updateImageComponents().
|
private |
Tab displaying data selected point in the property explorer.
Referenced by getPropertyWidgetAt(), init(), pixelPicked(), and ~ImageComponent().
|
private |
When an action computes volume rendering for an image, it stores the corresponding actor as a prop of this Component.
Referenced by buildImageComponents(), getVolumeRenderingChild(), init(), replaceImageData(), and update3DViewer().