VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkRenderLargeImage.h,v $ 00005 00006 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen 00007 All rights reserved. 00008 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00009 00010 This software is distributed WITHOUT ANY WARRANTY; without even 00011 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00012 PURPOSE. See the above copyright notice for more information. 00013 00014 =========================================================================*/ 00024 #ifndef __vtkRenderLargeImage_h 00025 #define __vtkRenderLargeImage_h 00026 00027 #include "vtkAlgorithm.h" 00028 #include "vtkImageData.h" // makes things a bit easier 00029 00030 class vtkRenderer; 00031 class vtkActor2DCollection; 00032 class vtkCollection; 00033 class vtkRenderLargeImage2DHelperClass; 00034 00035 class VTK_HYBRID_EXPORT vtkRenderLargeImage : public vtkAlgorithm 00036 { 00037 public: 00038 static vtkRenderLargeImage *New(); 00039 vtkTypeRevisionMacro(vtkRenderLargeImage,vtkAlgorithm); 00040 void PrintSelf(ostream& os, vtkIndent indent); 00041 00043 00044 vtkSetMacro(Magnification,int); 00045 vtkGetMacro(Magnification,int); 00047 00049 virtual void SetInput(vtkRenderer*); 00050 00052 00054 vtkGetObjectMacro(Input,vtkRenderer); 00056 00058 vtkImageData* GetOutput(); 00059 00061 00062 virtual int ProcessRequest(vtkInformation*, 00063 vtkInformationVector**, 00064 vtkInformationVector*); 00066 00067 protected: 00068 vtkRenderLargeImage(); 00069 ~vtkRenderLargeImage(); 00070 00071 int Magnification; 00072 vtkRenderer *Input; 00073 void RequestData(vtkInformation *, 00074 vtkInformationVector **, vtkInformationVector *); 00075 void RequestInformation (vtkInformation *, 00076 vtkInformationVector **, vtkInformationVector *); 00077 00078 // see algorithm for more info 00079 virtual int FillOutputPortInformation(int port, vtkInformation* info); 00080 00081 // Adjust the coordinates of all 2D actors to fit new window size 00082 void Rescale2DActors(); 00083 // Shift each actor according to the tile we are rendering 00084 void Shift2DActors(int x, int y); 00085 // put them all back to their previous state when finished. 00086 void Restore2DActors(); 00087 // 2D Actors need to be rescaled and shifted about for each tile 00088 // use this helper class to make life easier. 00089 vtkRenderLargeImage2DHelperClass *StoredData; 00090 00091 private: 00092 vtkRenderLargeImage(const vtkRenderLargeImage&); // Not implemented. 00093 void operator=(const vtkRenderLargeImage&); // Not implemented. 00094 }; 00095 00096 #endif