You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
137 lines
4.2 KiB
137 lines
4.2 KiB
/*=========================================================================
|
|
|
|
Program: Visualization Toolkit
|
|
Module: $RCSfile: vtkImageMapper.h,v $
|
|
|
|
Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
|
|
All rights reserved.
|
|
See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
|
|
|
|
This software is distributed WITHOUT ANY WARRANTY; without even
|
|
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
|
PURPOSE. See the above copyright notice for more information.
|
|
|
|
=========================================================================*/
|
|
// .NAME vtkImageMapper - 2D image display
|
|
// .SECTION Description
|
|
// vtkImageMapper provides 2D image display support for vtk.
|
|
// It is a Mapper2D subclass that can be associated with an Actor2D
|
|
// and placed within a RenderWindow or ImageWindow.
|
|
|
|
// .SECTION See Also
|
|
// vtkMapper2D vtkActor2D
|
|
|
|
#ifndef __vtkImageMapper_h
|
|
#define __vtkImageMapper_h
|
|
|
|
#include "vtkMapper2D.h"
|
|
|
|
class vtkWindow;
|
|
class vtkViewport;
|
|
class vtkActor2D;
|
|
class vtkImageData;
|
|
|
|
class VTK_RENDERING_EXPORT vtkImageMapper : public vtkMapper2D
|
|
{
|
|
public:
|
|
vtkTypeRevisionMacro(vtkImageMapper,vtkMapper2D);
|
|
static vtkImageMapper *New();
|
|
void PrintSelf(ostream& os, vtkIndent indent);
|
|
|
|
// Description:
|
|
// Override Modifiedtime as we have added a lookuptable
|
|
unsigned long int GetMTime();
|
|
|
|
// Description:
|
|
// Set/Get the window value for window/level
|
|
vtkSetMacro(ColorWindow, double);
|
|
vtkGetMacro(ColorWindow, double);
|
|
|
|
// Description:
|
|
// Set/Get the level value for window/level
|
|
vtkSetMacro(ColorLevel, double);
|
|
vtkGetMacro(ColorLevel, double);
|
|
|
|
// Description:
|
|
// Set/Get the current slice number. The axis Z in ZSlice does not
|
|
// necessarily have any relation to the z axis of the data on disk.
|
|
// It is simply the axis orthogonal to the x,y, display plane.
|
|
// GetWholeZMax and Min are convenience methods for obtaining
|
|
// the number of slices that can be displayed. Again the number
|
|
// of slices is in reference to the display z axis, which is not
|
|
// necessarily the z axis on disk. (due to reformatting etc)
|
|
vtkSetMacro(ZSlice,int);
|
|
vtkGetMacro(ZSlice,int);
|
|
int GetWholeZMin();
|
|
int GetWholeZMax();
|
|
|
|
// Description:
|
|
// Draw the image to the screen.
|
|
void RenderStart(vtkViewport* viewport, vtkActor2D* actor);
|
|
|
|
// Description:
|
|
// Function called by Render to actually draw the image to to the screen
|
|
virtual void RenderData(vtkViewport*, vtkImageData*, vtkActor2D* )=0;
|
|
|
|
// Description:
|
|
// Methods used internally for performing the Window/Level mapping.
|
|
double GetColorShift();
|
|
double GetColorScale();
|
|
|
|
// Public for templated functions. * * Should remove this * *
|
|
int DisplayExtent[6];
|
|
|
|
// Description:
|
|
// Set the Input of a filter.
|
|
virtual void SetInput(vtkImageData *input);
|
|
vtkImageData *GetInput();
|
|
|
|
// Description:
|
|
// If RenderToRectangle is set (by default not), then the imagemapper
|
|
// will render the image into the rectangle supplied by the Actor2D's
|
|
// PositionCoordinate and Position2Coordinate
|
|
vtkSetMacro(RenderToRectangle,int);
|
|
vtkGetMacro(RenderToRectangle,int);
|
|
vtkBooleanMacro(RenderToRectangle,int);
|
|
|
|
// Description:
|
|
// Usually, the entire image is displayed, if UseCustomExtents
|
|
// is set (by default not), then the region supplied in the
|
|
// CustomDisplayExtents is used in preference.
|
|
// Note that the Custom extents are x,y only and the zslice is still
|
|
// applied
|
|
vtkSetMacro(UseCustomExtents,int);
|
|
vtkGetMacro(UseCustomExtents,int);
|
|
vtkBooleanMacro(UseCustomExtents,int);
|
|
|
|
// Description:
|
|
// The image extents which should be displayed with UseCustomExtents
|
|
// Note that the Custom extents are x,y only and the zslice is still
|
|
// applied
|
|
vtkSetVectorMacro(CustomDisplayExtents,int,4);
|
|
vtkGetVectorMacro(CustomDisplayExtents,int,4);
|
|
|
|
protected:
|
|
vtkImageMapper();
|
|
~vtkImageMapper();
|
|
|
|
double ColorWindow;
|
|
double ColorLevel;
|
|
|
|
int PositionAdjustment[2];
|
|
int ZSlice;
|
|
int UseCustomExtents;
|
|
int CustomDisplayExtents[4];
|
|
int RenderToRectangle;
|
|
|
|
virtual int FillInputPortInformation(int, vtkInformation*);
|
|
private:
|
|
vtkImageMapper(const vtkImageMapper&); // Not implemented.
|
|
void operator=(const vtkImageMapper&); // Not implemented.
|
|
};
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|