NIREP
|
2D synchronized viewer of a 3D image. More...
Public Member Functions | |
virtual vtkActor * | AddDataSet (vtkDataSet *dataset, vtkProperty *property=NULL) |
virtual void | SetImage (vtkImageData *image) |
virtual void | SetLevel (double) |
virtual void | SetLookupTable (vtkScalarsToColors *lut) |
virtual void | SetOrientation (unsigned int orientation) |
void | SetSecondImage (vtkImageData *image) |
virtual void | SetWindow (double) |
virtual vtkActor * | SyncAddPolyData (vtkPolyData *polydata, vtkProperty *property=NULL, double thickness=0.2) |
virtual void | UpdatePosition () |
vtkGetObjectMacro (SecondImage, vtkImageData) | |
vtkTypeRevisionMacro (Wipe, NIREPvtkViewImage2D) | |
Static Public Member Functions | |
static Wipe * | New () |
Protected Member Functions | |
void | UpdateImageActor () |
Wipe () | |
~Wipe () | |
Protected Attributes | |
vtkImageData * | AuxInputTwo |
internal use: image to input to the mask filter or image blender | |
vtkImageRectilinearWipe * | ImageRectilinearWipe |
vtkImageReslice * | ImageResliceTwo |
vtkImageBlendWithMask * | MaskFilterTwo |
vtkRectilinearWipeRepresentation * | RectilinearWipeRepresentation |
vtkRectilinearWipeWidget * | RectilinearWipeWidget |
Wipe classes from vtk. | |
vtkImageData * | ResliceInputTwo |
internal use: image to input to the reslicer | |
vtkImageData * | SecondImage |
overlapping image | |
vtkImageMapToColors * | WindowLevelTwo |
to map the image to the current window level |
2D synchronized viewer of a 3D image.
This class allows to view 2D orthogonal slices (namely axial, sagittal and coronal) of a 3D image. This class implements lots of features like: various possible interactions (positioning, zooming, windowing), coloring of the slice w.r.t. a lookup table, overlapping of a second image, overlapping of a mask image (image of labels). Display conventions can be chosen between radiologic (the left of the patient appears on the right of the screen) and neurologic (left is left and right is right).
It uses a synchronization mechanisms between other views. Views are linked together using a cycle graph structure (implemented in the base class
Wipe::Wipe | ( | ) | [protected] |
Wipe::~Wipe | ( | ) | [protected] |
vtkActor * Wipe::AddDataSet | ( | vtkDataSet * | dataset, |
vtkProperty * | property = NULL |
||
) | [virtual] |
Add a dataset to the view. The dataset will be display as an intersection of it with the displayed image slice, i.e., tetrahedron will be displayed as triangles, triangles as lines, lines as points. A vtkProperty can be specified to specify the freshly generated actor properties.
if (dataset->GetActualMemorySize() > 20000) { vtkWarningMacro(<< "DataSet is to big for this projection type !\n"); doit = false; }
Reimplemented from NIREPvtkViewImage2D.
static Wipe* Wipe::New | ( | ) | [static] |
Reimplemented from NIREPvtkViewImage2D.
void Wipe::SetImage | ( | vtkImageData * | image | ) | [virtual] |
Set the image to display.
Reimplemented from NIREPvtkViewImage2D.
void Wipe::SetLevel | ( | double | l | ) | [virtual] |
Set/Get window/level for mapping pixels to colors.
Reimplemented from NIREPvtkViewImage2D.
void Wipe::SetLookupTable | ( | vtkScalarsToColors * | lut | ) | [virtual] |
Set/Get a user-defined lookup table to color the image with.
In the case of a shift/scale, one must set the lut range to values without this shift/scale, because the object can be shared by different views.
Due to the same problem as above (shift/scale), one must copy the lut so that it does not change values of the shared object.
Reimplemented from NIREPvtkViewImage2D.
void Wipe::SetOrientation | ( | unsigned int | orientation | ) | [virtual] |
Set the orientation of the image.
orientation | 0 is XY (axial), 1 is YZ (sagittal), 2 is XZ (coronal). |
Reimplemented from NIREPvtkViewImage2D.
void Wipe::SetSecondImage | ( | vtkImageData * | image | ) |
Set a second image, which will be the second input into the wipe widget.
void Wipe::SetWindow | ( | double | w | ) | [virtual] |
Set/Get window/level for mapping pixels to colors.
Reimplemented from NIREPvtkViewImage2D.
vtkActor * Wipe::SyncAddPolyData | ( | vtkPolyData * | polydata, |
vtkProperty * | property = NULL , |
||
double | thickness = 0.2 |
||
) | [virtual] |
This method is similar to AddDataSet(), except it only works with vtkPolyData. It cuts the polydata using 2 planes defined by the current image slice being visualized and a user-provided thickness (generally the spacing between 2 consecutive slices). For instance, it works nicely with lines: AddDataSet() turns lines into points while AddPolyData() displays lines as short segments.
Reimplemented from NIREPvtkViewImage2D.
void Wipe::UpdateImageActor | ( | ) | [protected] |
GEC NOT SURE ABOUT LINES BELOW YET
Reimplemented from NIREPvtkViewImage2D.
void Wipe::UpdatePosition | ( | void | ) | [virtual] |
Reimplemented from NIREPvtkViewImage2D.
Wipe::vtkGetObjectMacro | ( | SecondImage | , |
vtkImageData | |||
) |
Get the overlapping image (if any).
Wipe::vtkTypeRevisionMacro | ( | Wipe | , |
NIREPvtkViewImage2D | |||
) |
vtkImageData* Wipe::AuxInputTwo [protected] |
internal use: image to input to the mask filter or image blender
vtkImageRectilinearWipe* Wipe::ImageRectilinearWipe [protected] |
vtkImageReslice* Wipe::ImageResliceTwo [protected] |
vtkImageReslice is the swiss-army-knife of image geometry filters: It can permute, rotate, flip, scale, resample, deform, and pad image data in any combination with reasonably high efficiency.
vtkImageBlendWithMask* Wipe::MaskFilterTwo [protected] |
vtkRectilinearWipeRepresentation* Wipe::RectilinearWipeRepresentation [protected] |
vtkRectilinearWipeWidget* Wipe::RectilinearWipeWidget [protected] |
Wipe classes from vtk.
vtkImageData* Wipe::ResliceInputTwo [protected] |
internal use: image to input to the reslicer
vtkImageData* Wipe::SecondImage [protected] |
overlapping image
vtkImageMapToColors* Wipe::WindowLevelTwo [protected] |
to map the image to the current window level