Cloned library of VTK-5.0.0 with extra build files for internal package management.
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.

142 lines
4.9 KiB

2 years ago
/*=========================================================================
Program: Visualization Toolkit
Module: $RCSfile: vtkImageViewer.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 vtkImageViewer - Display a 2d image.
// .SECTION Description
// vtkImageViewer is a convenience class for displaying a 2d image. It
// packages up the functionality found in vtkRenderWindow, vtkRenderer,
// vtkActor2D and vtkImageMapper into a single easy to use class. Behind the
// scenes these four classes are actually used to to provide the required
// functionality. vtkImageViewer is simply a wrapper around them.
// .SECTION See Also
// vtkRenderWindow vtkRenderer vtkImageMapper vtkActor2D
#ifndef __vtkImageViewer_h
#define __vtkImageViewer_h
#include "vtkObject.h"
#include "vtkImageMapper.h" // For all the inline methods
#include "vtkRenderWindow.h" // For all the inline methods
class vtkInteractorStyleImage;
class VTK_RENDERING_EXPORT vtkImageViewer : public vtkObject
{
public:
static vtkImageViewer *New();
vtkTypeRevisionMacro(vtkImageViewer,vtkObject);
void PrintSelf(ostream& os, vtkIndent indent);
// Description:
// Get name of rendering window
char *GetWindowName() {return this->RenderWindow->GetWindowName();};
// Description:
// Render the resulting image.
virtual void Render(void);
// Description:
// Set/Get the input to the viewer.
void SetInput(vtkImageData *in) {this->ImageMapper->SetInput(in);};
vtkImageData *GetInput() { return this->ImageMapper->GetInput();};
virtual void SetInputConnection(vtkAlgorithmOutput* input) {
this->ImageMapper->SetInputConnection(input);};
// Description:
// What is the possible Min/ Max z slices available.
int GetWholeZMin() {return this->ImageMapper->GetWholeZMin();};
int GetWholeZMax() {return this->ImageMapper->GetWholeZMax();};
// Description:
// Set/Get the current Z Slice to display
int GetZSlice() {return this->ImageMapper->GetZSlice();};
void SetZSlice(int s) {this->ImageMapper->SetZSlice(s);};
// Description:
// Sets window/level for mapping pixels to colors.
double GetColorWindow() {return this->ImageMapper->GetColorWindow();};
double GetColorLevel() {return this->ImageMapper->GetColorLevel();};
void SetColorWindow(double s) {this->ImageMapper->SetColorWindow(s);};
void SetColorLevel(double s) {this->ImageMapper->SetColorLevel(s);};
// Description:
// These are here for using a tk window.
void SetDisplayId(void *a) {this->RenderWindow->SetDisplayId(a);};
void SetWindowId(void *a) {this->RenderWindow->SetWindowId(a);};
void SetParentId(void *a) {this->RenderWindow->SetParentId(a);};
// Description:
// By default this is a color viewer. GrayScaleHintOn will improve the
// appearance of gray scale images on some systems.
VTK_LEGACY(int GetGrayScaleHint());
VTK_LEGACY(void SetGrayScaleHint(int vtkNotUsed(a)));
VTK_LEGACY(void GrayScaleHintOn());
VTK_LEGACY(void GrayScaleHintOff());
// Description:
// Set/Get the position in screen coordinates of the rendering window.
int *GetPosition() {return this->RenderWindow->GetPosition();};
void SetPosition(int a,int b) {this->RenderWindow->SetPosition(a,b);};
virtual void SetPosition(int a[2]);
// Description:
// Set/Get the size of the window in screen coordinates.
int *GetSize() {return this->RenderWindow->GetSize();};
void SetSize(int a,int b) {this->RenderWindow->SetSize(a,b);};
virtual void SetSize(int a[2]);
// Description:
// Get the internal objects
vtkGetObjectMacro(RenderWindow,vtkRenderWindow);
vtkGetObjectMacro(Renderer, vtkRenderer);
vtkGetObjectMacro(ImageMapper,vtkImageMapper);
vtkGetObjectMacro(Actor2D,vtkActor2D);
// Description:
// Create and attach an interactor for this window
void SetupInteractor(vtkRenderWindowInteractor *);
// Description:
// Create a window in memory instead of on the screen. This may not
// be supported for every type of window and on some windows you may
// need to invoke this prior to the first render.
void SetOffScreenRendering(int);
int GetOffScreenRendering();
void OffScreenRenderingOn();
void OffScreenRenderingOff();
protected:
vtkImageViewer();
~vtkImageViewer();
vtkRenderWindow *RenderWindow;
vtkRenderer *Renderer;
vtkImageMapper *ImageMapper;
vtkActor2D *Actor2D;
int FirstRender;
vtkRenderWindowInteractor *Interactor;
vtkInteractorStyleImage *InteractorStyle;
private:
vtkImageViewer(const vtkImageViewer&); // Not implemented.
void operator=(const vtkImageViewer&); // Not implemented.
};
#endif