Computer Assited Medical Intervention Tool Kit  version 4.0
List of all members
camitk::Slice Class Reference

Display a slice (i.e. More...

#include <Slice.h>

Inherits InterfaceBitMap.

Protected Member Functions

Protected utility methods
virtual void init ()
 Initialize Attributes. More...
 
virtual void initActors ()
 Initialize actors and everything they need. More...
 

Protected Attributes

Attributes / Members of the class

*/

SliceOrientation sliceOrientation
 Direction of the reslice. More...
 
vtkSmartPointer< vtkImageData > originalVolume
 Smart pointer to the original volume to reslice (input of the vtk pipeline) More...
 
int extent [6]
 Table containing first and last indices of the image in each direction 0 & 1 -> x; 2 and 3 -> y; 4 & 5 -> z. More...
 
int currentSliceIndex
 Keep track of the slice number. More...
 
vtkSmartPointer< vtkWindowLevelLookupTable > lut
 Common lookup table. More...
 
int originalDimensions [3]
 Original volume dimensions in number of voxels (x, y and z) More...
 
double originalSpacing [3]
 Voxel size of the original image volume. More...
 
double originalSize [3]
 Real size (originalDimension * originalSpacing in x, y and z) of the original image. More...
 
vtkSmartPointer< vtkImageMapToColors > imgToMapFilter
 To be able to extract a slice. More...
 
vtkSmartPointer< vtkImageActor > image3DActor
 3D actor More...
 
vtkSmartPointer< vtkImageActor > image2DActor
 2D actor More...
 

Constructors / Destructors

enum  SliceOrientation { AXIAL, CORONAL, SAGITTAL, AXIAL_NEURO }
 Common slices orientation: axial, sagittal, coronal axial_neuro. More...
 
QMap< QString, vtkSmartPointer< vtkProp > > extraProp
 The additional map for prop (include at least "label" and "glyph") More...
 
virtual vtkSmartPointer< vtkProp > getProp (const QString &)
 Return the vtkProp (actors, volumes and annotations) corresponding to the given name. More...
 
virtual unsigned int getNumberOfProp () const
 return the number of additional prop More...
 
virtual vtkSmartPointer< vtkProp > getProp (unsigned int)
 return an additional prop by its index More...
 
virtual bool addProp (const QString &, vtkSmartPointer< vtkProp >)
 insert an additional prop, defining it by its name (default visibility = false) More...
 
virtual bool removeProp (const QString &)
 remove a given additional prop. More...
 

Uses for picking

vtkSmartPointer< vtkPlaneSource > pickPlane
 A plane used for picking. More...
 
vtkSmartPointer< vtkPolyDataMapper > pickPlaneMapper
 Mapper of the the pickPlane. More...
 
vtkSmartPointer< vtkActor > pickPlaneActor
 Actor representing the pickPlane. More...
 
vtkSmartPointer< vtkActor > pixelActor
 Actor representing a pixel, displayed over the image. More...
 
vtkSmartPointer< vtkAxesActor > axes2DActor
 
void initPixelActor ()
 Init the pixel actor for pixel picking. More...
 
void updatePixelActorPosition (double x, double y, double z)
 Update the pixel actor position according to the specified pixel picked by the user i.e. More...
 
void update2DAxesActorPosition ()
 
void init2DAxesActor ()
 

Detailed Description

Display a slice (i.e.

an image or BitMap) of an ImageComponent

Uses vtkImageActor::SetDisplayExtent for 3D and 2D Axial, Coronal and Sagittal representaiton. Re-position the camera for the 2D views.

*       3D Volume                         2D Slice
*       ________  /|\
*      /|      /|  |                      _______
*     /______ / | _|_slice     ===>      /       /        Displayed in
*    |  |____|_/|  |  number            /______ /         the window
*    | /     |//
*    |/______|/
*
*                                          ________________
*                                         | vtkLookUpTable |
*                                      ---|                |
*                                     |   |    lut         |
*                                     |   |________________|
*  setOriginalVolume(..)              |
*   |                                 | setLookUpTable
*   |                   setInput      |                                   __________________
*   |   ________________       _______v____________                      |  vtkImageActor   |
*   |  |  vtkImageData  |     | vtkImageMapToColor |                     |(setDisplayExtent)|
*   |_\|                |----\|                    |-------------------\ |                  |
*     /| originalVolume |----/|   imgToMapFilter   |-------------------/ |   image2DActor   |
*      |________________|     |____________________|     | |             |__________________|
*                                                        | |
*                                                        | |              _________________________            __________________
*                                                        | |             |  vtkTransformFilter     |          |  vtkImageActor   |
*                                                        |  -----------\ |(setWorldTransformation) | --------\|(setDisplayExtent)|
*                                                         -------------/ |                         | --------/|                  |
*                                                                        |                         |          |   image3DActor   |
*                                                                        |_________________________|          |__________________|
*
*
*
* 

Member Enumeration Documentation

◆ SliceOrientation

Common slices orientation: axial, sagittal, coronal axial_neuro.

Axial, Sagittal and Coronal orientation are given in Radiologist point of view. The neurologist point of view is displayed in axial_neuro.

The ImageComponent is supposed to be given in RAI orientation ! (see Image Reorientation Action Documentation). AXIAL: from feet to head of the patient CORONAL: from the front to back of the patient SAGITTAL: from the right to left of the patient AXIAL_NEURO: from head to feet (other side of AXIAL

Enumerator
AXIAL 
CORONAL 
SAGITTAL 
AXIAL_NEURO 

Member Function Documentation

◆ addProp()

bool camitk::Slice::addProp ( const QString &  name,
vtkSmartPointer< vtkProp >  prop 
)
virtual

insert an additional prop, defining it by its name (default visibility = false)

Returns
true if the additional prop was added (i.e. another additional prop of the same name does not exist)

◆ getNumberOfProp()

unsigned int camitk::Slice::getNumberOfProp ( ) const
virtual

return the number of additional prop

◆ getProp() [1/2]

vtkSmartPointer< vtkProp > camitk::Slice::getProp ( const QString &  name)
virtual

Return the vtkProp (actors, volumes and annotations) corresponding to the given name.

◆ getProp() [2/2]

vtkSmartPointer< vtkProp > camitk::Slice::getProp ( unsigned int  index)
virtual

return an additional prop by its index

◆ init()

void camitk::Slice::init ( )
protectedvirtual

Initialize Attributes.

◆ init2DAxesActor()

void camitk::Slice::init2DAxesActor ( )
protected

◆ initActors()

void camitk::Slice::initActors ( )
protectedvirtual

Initialize actors and everything they need.

◆ initPixelActor()

void camitk::Slice::initPixelActor ( )
protected

Init the pixel actor for pixel picking.

◆ removeProp()

bool camitk::Slice::removeProp ( const QString &  name)
virtual

remove a given additional prop.

Returns
true if effictively done

◆ update2DAxesActorPosition()

void camitk::Slice::update2DAxesActorPosition ( )
protected

◆ updatePixelActorPosition()

void camitk::Slice::updatePixelActorPosition ( double  x,
double  y,
double  z 
)
protected

Update the pixel actor position according to the specified pixel picked by the user i.e.

Compute and draw the bounding box around the selected pixel.

Parameters
xThe absciss value of the selected pixel
yThe ordinate value of the selected pixel
zThe depth value of the selected pixel. In the plane, it's always +/- 0.01 in order to the pixel actor to be visible over the slice.

Member Data Documentation

◆ axes2DActor

vtkSmartPointer<vtkAxesActor> camitk::Slice::axes2DActor
protected

◆ currentSliceIndex

int camitk::Slice::currentSliceIndex
protected

Keep track of the slice number.

◆ extent

int camitk::Slice::extent[6]
protected

Table containing first and last indices of the image in each direction 0 & 1 -> x; 2 and 3 -> y; 4 & 5 -> z.

◆ extraProp

QMap<QString, vtkSmartPointer<vtkProp> > camitk::Slice::extraProp

The additional map for prop (include at least "label" and "glyph")

◆ image2DActor

vtkSmartPointer<vtkImageActor> camitk::Slice::image2DActor
protected

2D actor

◆ image3DActor

vtkSmartPointer<vtkImageActor> camitk::Slice::image3DActor
protected

3D actor

◆ imgToMapFilter

vtkSmartPointer<vtkImageMapToColors> camitk::Slice::imgToMapFilter
protected

To be able to extract a slice.

◆ lut

vtkSmartPointer<vtkWindowLevelLookupTable> camitk::Slice::lut
protected

Common lookup table.

◆ originalDimensions

int camitk::Slice::originalDimensions[3]
protected

Original volume dimensions in number of voxels (x, y and z)

◆ originalSize

double camitk::Slice::originalSize[3]
protected

Real size (originalDimension * originalSpacing in x, y and z) of the original image.

◆ originalSpacing

double camitk::Slice::originalSpacing[3]
protected

Voxel size of the original image volume.

Used to compute point coordinates between real world and index world.

◆ originalVolume

vtkSmartPointer<vtkImageData> camitk::Slice::originalVolume
protected

Smart pointer to the original volume to reslice (input of the vtk pipeline)

◆ pickPlane

vtkSmartPointer<vtkPlaneSource> camitk::Slice::pickPlane
protected

A plane used for picking.

This plane has the same size and position as the displayed slice. However, it is a real vtkActor that can be easily picked (using 'p' ot 'Ctrl+left click').

◆ pickPlaneActor

vtkSmartPointer<vtkActor> camitk::Slice::pickPlaneActor
protected

Actor representing the pickPlane.

◆ pickPlaneMapper

vtkSmartPointer<vtkPolyDataMapper> camitk::Slice::pickPlaneMapper
protected

Mapper of the the pickPlane.

◆ pixelActor

vtkSmartPointer<vtkActor> camitk::Slice::pixelActor
protected

Actor representing a pixel, displayed over the image.

◆ sliceOrientation

SliceOrientation camitk::Slice::sliceOrientation
protected

Direction of the reslice.


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