Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

dox/Rendering/vtkVolumeProVP1000Mapper.h

Go to the documentation of this file.
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkVolumeProVP1000Mapper.h,v $ 00005 Language: C++ 00006 00007 Copyright (c) 1993-2002 Ken Martin, Will Schroeder, Bill Lorensen 00008 All rights reserved. 00009 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00010 00011 This software is distributed WITHOUT ANY WARRANTY; without even 00012 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00013 PURPOSE. See the above copyright notice for more information. 00014 00015 =========================================================================*/ 00053 #ifndef __vtkVolumeProVP1000Mapper_h 00054 #define __vtkVolumeProVP1000Mapper_h 00055 00056 #include "vtkVolumeProMapper.h" 00057 00058 #ifdef _WIN32 00059 #include "VolumePro1000/inc/vli.h" // Needed for VLI internal types 00060 #else 00061 #include "vli3/include/vli.h" // Needed for VLI internal types 00062 #endif 00063 00064 #define VTK_VOLUME_16BIT 3 00065 #define VTK_VOLUME_32BIT 4 00066 00067 class VTK_EXPORT vtkVolumeProVP1000Mapper : public vtkVolumeProMapper 00068 { 00069 public: 00070 vtkTypeRevisionMacro(vtkVolumeProVP1000Mapper,vtkVolumeProMapper); 00071 static vtkVolumeProVP1000Mapper *New(); 00072 virtual void PrintSelf(ostream& os, vtkIndent indent); 00073 00075 00076 virtual void Render( vtkRenderer *, vtkVolume * ); 00077 virtual int GetAvailableBoardMemory(); 00078 virtual void GetLockSizesForBoardMemory(unsigned int type, 00079 unsigned int *xSize, 00080 unsigned int *ySize, 00081 unsigned int *zSize); 00083 00084 protected: 00085 vtkVolumeProVP1000Mapper(); 00086 ~vtkVolumeProVP1000Mapper(); 00087 00088 // Update the camera - set the camera matrix 00089 void UpdateCamera( vtkRenderer *, vtkVolume * ); 00090 00091 // Update the lights 00092 void UpdateLights( vtkRenderer *, vtkVolume * ); 00093 00094 // Update the properties of the volume including transfer functions 00095 // and material properties 00096 void UpdateProperties( vtkRenderer *, vtkVolume * ); 00097 00098 // Update the volume - create it if necessary 00099 // Set the volume matrix. 00100 void UpdateVolume( vtkRenderer *, vtkVolume * ); 00101 00102 // Set the crop box (as defined in the vtkVolumeMapper superclass) 00103 void UpdateCropping( vtkRenderer *, vtkVolume * ); 00104 00105 // Set the cursor 00106 void UpdateCursor( vtkRenderer *, vtkVolume * ); 00107 00108 // Update the cut plane 00109 void UpdateCutPlane( vtkRenderer *, vtkVolume * ); 00110 00111 // Render the image buffer to the screen 00112 // Defined in the specific graphics implementation. 00113 virtual void RenderImageBuffer( vtkRenderer * vtkNotUsed(ren), 00114 vtkVolume * vol, 00115 int size[2], 00116 unsigned int * outData ) 00117 {(void)vol; (void)size; (void)outData;} 00118 00119 // Render a bounding box of the volume because the texture map would 00120 // be too large. 00121 virtual void RenderBoundingBox( vtkRenderer * vtkNotUsed(ren), 00122 vtkVolume * vol ) 00123 {(void)vol;} 00124 00125 // Get the depth buffer values 00126 virtual void GetDepthBufferValues( vtkRenderer *vtkNotUsed(ren), 00127 int size[2], 00128 unsigned int *outData ) 00129 { (void)outData; } 00130 00131 #if ((VTK_MAJOR_VERSION == 3)&&(VTK_MINOR_VERSION == 2)) 00132 vtkGetVectorMacro( VoxelCroppingRegionPlanes, float, 6 ); 00133 void ConvertCroppingRegionPlanesToVoxels(); 00134 float VoxelCroppingRegionPlanes[6]; 00135 #endif 00136 00137 00138 // Keep track of the size of the data loaded so we know if we can 00139 // simply update when a change occurs or if we need to release and 00140 // create again 00141 int LoadedDataSize[3]; 00142 00143 VLIImageBuffer *ImageBuffer; 00144 VLIDepthBuffer *DepthBuffer; 00145 00146 VLIStatus CheckSubSampling(const VLIVolume *inVolume, 00147 const VLIContext *inContext, 00148 int &outImageWidth, int &outImageHeight); 00149 00150 int DrawBoundingBox; 00151 00152 private: 00153 vtkVolumeProVP1000Mapper(const vtkVolumeProVP1000Mapper&); // Not implemented 00154 void operator=(const vtkVolumeProVP1000Mapper&); // Not implemented 00155 }; 00156 00157 00158 00159 #endif 00160 00161 00162