00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
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"
00056 #else
00057 #include "vli3/include/vli.h"
00058 #endif
00059
00060 #define VTK_VOLUME_16BIT 3
00061 #define VTK_VOLUME_32BIT 4
00062
00063 class VTK_VOLUMERENDERING_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
00085 void UpdateCamera( vtkRenderer *, vtkVolume * );
00086
00087
00088 void UpdateLights( vtkRenderer *, vtkVolume * );
00089
00090
00091
00092 void UpdateProperties( vtkRenderer *, vtkVolume * );
00093
00094
00095
00096 void UpdateVolume( vtkRenderer *, vtkVolume * );
00097
00098
00099 void UpdateCropping( vtkRenderer *, vtkVolume * );
00100
00101
00102 void UpdateCursor( vtkRenderer *, vtkVolume * );
00103
00104
00105 void UpdateCutPlane( vtkRenderer *, vtkVolume * );
00106
00107
00108
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
00116
00117 virtual void RenderBoundingBox( vtkRenderer * vtkNotUsed(ren),
00118 vtkVolume * vol )
00119 {(void)vol;}
00120
00121
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
00135
00136
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&);
00150 void operator=(const vtkVolumeProVP1000Mapper&);
00151 };
00152
00153
00154
00155 #endif
00156
00157
00158