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 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 =========================================================================*/ 00049 #ifndef __vtkVolumeProVP1000Mapper_h 00050 #define __vtkVolumeProVP1000Mapper_h 00051 00052 #include "vtkVolumeProMapper.h" 00053 00054 #ifdef _WIN32 00055 #include "VolumePro1000/inc/vli.h" // Needed for VLI internal types 00056 #else 00057 #include "vli3/include/vli.h" // Needed for VLI internal types 00058 #endif 00059 00060 #define VTK_VOLUME_16BIT 3 00061 #define VTK_VOLUME_32BIT 4 00062 00063 class VTK_EXPORT vtkVolumeProVP1000Mapper : public vtkVolumeProMapper 00064 { 00065 public: 00066 vtkTypeRevisionMacro(vtkVolumeProVP1000Mapper,vtkVolumeProMapper); 00067 static vtkVolumeProVP1000Mapper *New(); 00068 virtual void PrintSelf(ostream& os, vtkIndent indent); 00069 00071 00072 virtual void Render( vtkRenderer *, vtkVolume * ); 00073 virtual int GetAvailableBoardMemory(); 00074 virtual void GetLockSizesForBoardMemory(unsigned int type, 00075 unsigned int *xSize, 00076 unsigned int *ySize, 00077 unsigned int *zSize); 00079 00080 protected: 00081 vtkVolumeProVP1000Mapper(); 00082 ~vtkVolumeProVP1000Mapper(); 00083 00084 // Update the camera - set the camera matrix 00085 void UpdateCamera( vtkRenderer *, vtkVolume * ); 00086 00087 // Update the lights 00088 void UpdateLights( vtkRenderer *, vtkVolume * ); 00089 00090 // Update the properties of the volume including transfer functions 00091 // and material properties 00092 void UpdateProperties( vtkRenderer *, vtkVolume * ); 00093 00094 // Update the volume - create it if necessary 00095 // Set the volume matrix. 00096 void UpdateVolume( vtkRenderer *, vtkVolume * ); 00097 00098 // Set the crop box (as defined in the vtkVolumeMapper superclass) 00099 void UpdateCropping( vtkRenderer *, vtkVolume * ); 00100 00101 // Set the cursor 00102 void UpdateCursor( vtkRenderer *, vtkVolume * ); 00103 00104 // Update the cut plane 00105 void UpdateCutPlane( vtkRenderer *, vtkVolume * ); 00106 00107 // Render the image buffer to the screen 00108 // Defined in the specific graphics implementation. 00109 virtual void RenderImageBuffer( vtkRenderer * vtkNotUsed(ren), 00110 vtkVolume * vol, 00111 int size[2], 00112 unsigned int * outData ) 00113 {(void)vol; (void)size; (void)outData;} 00114 00115 // Render a bounding box of the volume because the texture map would 00116 // be too large. 00117 virtual void RenderBoundingBox( vtkRenderer * vtkNotUsed(ren), 00118 vtkVolume * vol ) 00119 {(void)vol;} 00120 00121 // Get the depth buffer values 00122 virtual void GetDepthBufferValues( vtkRenderer *vtkNotUsed(ren), 00123 int size[2], 00124 unsigned int *outData ) 00125 { (void)outData; } 00126 00127 #if ((VTK_MAJOR_VERSION == 3)&&(VTK_MINOR_VERSION == 2)) 00128 vtkGetVectorMacro( VoxelCroppingRegionPlanes, float, 6 ); 00129 void ConvertCroppingRegionPlanesToVoxels(); 00130 float VoxelCroppingRegionPlanes[6]; 00131 #endif 00132 00133 00134 // Keep track of the size of the data loaded so we know if we can 00135 // simply update when a change occurs or if we need to release and 00136 // create again 00137 int LoadedDataSize[3]; 00138 00139 VLIImageBuffer *ImageBuffer; 00140 VLIDepthBuffer *DepthBuffer; 00141 00142 VLIStatus CheckSubSampling(const VLIVolume *inVolume, 00143 const VLIContext *inContext, 00144 int &outImageWidth, int &outImageHeight); 00145 00146 int DrawBoundingBox; 00147 00148 private: 00149 vtkVolumeProVP1000Mapper(const vtkVolumeProVP1000Mapper&); // Not implemented 00150 void operator=(const vtkVolumeProVP1000Mapper&); // Not implemented 00151 }; 00152 00153 00154 00155 #endif 00156 00157 00158