VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkRayCastImageDisplayHelper.h 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 =========================================================================*/ 00015 00027 #ifndef vtkRayCastImageDisplayHelper_h 00028 #define vtkRayCastImageDisplayHelper_h 00029 00030 #include "vtkRenderingVolumeModule.h" // For export macro 00031 #include "vtkObject.h" 00032 00033 class vtkFixedPointRayCastImage; 00034 class vtkRenderer; 00035 class vtkVolume; 00036 class vtkWindow; 00037 00038 class VTKRENDERINGVOLUME_EXPORT vtkRayCastImageDisplayHelper : public vtkObject 00039 { 00040 public: 00041 static vtkRayCastImageDisplayHelper *New(); 00042 vtkTypeMacro(vtkRayCastImageDisplayHelper,vtkObject); 00043 virtual void PrintSelf(ostream& os, vtkIndent indent); 00044 00045 virtual void RenderTexture( vtkVolume *vol, vtkRenderer *ren, 00046 int imageMemorySize[2], 00047 int imageViewportSize[2], 00048 int imageInUseSize[2], 00049 int imageOrigin[2], 00050 float requestedDepth, 00051 unsigned char *image ) = 0; 00052 00053 virtual void RenderTexture( vtkVolume *vol, vtkRenderer *ren, 00054 int imageMemorySize[2], 00055 int imageViewportSize[2], 00056 int imageInUseSize[2], 00057 int imageOrigin[2], 00058 float requestedDepth, 00059 unsigned short *image ) = 0; 00060 00061 virtual void RenderTexture( vtkVolume *vol, vtkRenderer *ren, 00062 vtkFixedPointRayCastImage *image, 00063 float requestedDepth ) = 0; 00064 00065 vtkSetClampMacro( PreMultipliedColors, int, 0, 1 ); 00066 vtkGetMacro( PreMultipliedColors, int ); 00067 vtkBooleanMacro( PreMultipliedColors, int ); 00068 00069 00071 00075 vtkSetMacro( PixelScale, float ); 00076 vtkGetMacro( PixelScale, float ); 00078 00080 virtual void ReleaseGraphicsResources(vtkWindow *) { } 00081 00082 protected: 00083 vtkRayCastImageDisplayHelper(); 00084 ~vtkRayCastImageDisplayHelper(); 00085 00087 int PreMultipliedColors; 00088 00089 float PixelScale; 00090 00091 private: 00092 vtkRayCastImageDisplayHelper(const vtkRayCastImageDisplayHelper&); // Not implemented. 00093 void operator=(const vtkRayCastImageDisplayHelper&); // Not implemented. 00094 }; 00095 00096 #endif 00097