00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00030
#ifndef __vtkVolumeTextureMapper_h
00031
#define __vtkVolumeTextureMapper_h
00032
00033
#include "vtkVolumeMapper.h"
00034
00035
class vtkEncodedGradientEstimator;
00036
class vtkEncodedGradientShader;
00037
class vtkRenderWindow;
00038
class vtkRenderer;
00039
class vtkVolume;
00040
00041 class VTK_RENDERING_EXPORT vtkVolumeTextureMapper :
public vtkVolumeMapper
00042 {
00043
public:
00044 vtkTypeRevisionMacro(vtkVolumeTextureMapper,
vtkVolumeMapper);
00045
void PrintSelf( ostream& os,
vtkIndent indent );
00046
00048
virtual void Update();
00049
00051
00052
virtual void SetGradientEstimator(
vtkEncodedGradientEstimator *gradest );
00053 vtkGetObjectMacro( GradientEstimator,
vtkEncodedGradientEstimator );
00055
00057
00058 vtkGetObjectMacro( GradientShader,
vtkEncodedGradientShader );
00060
00061
00063
00065 float *GetGradientOpacityArray(){
return this->GradientOpacityArray;};
00066 unsigned char *GetRGBAArray(){
return this->RGBAArray;};
00067 float *GetRedDiffuseShadingTable(){
return this->RedDiffuseShadingTable;};
00068 float *GetGreenDiffuseShadingTable(){
return this->GreenDiffuseShadingTable;};
00069 float *GetBlueDiffuseShadingTable(){
return this->BlueDiffuseShadingTable;};
00070 float *GetRedSpecularShadingTable(){
return this->RedSpecularShadingTable;};
00071 float *GetGreenSpecularShadingTable(){
return this->GreenSpecularShadingTable;};
00072 float *GetBlueSpecularShadingTable(){
return this->BlueSpecularShadingTable;};
00073 unsigned short *GetEncodedNormals(){
return this->EncodedNormals;};
00074 unsigned char *GetGradientMagnitudes(){
return this->GradientMagnitudes;};
00075 vtkGetMacro( Shade,
int );
00076 vtkGetObjectMacro( RenderWindow,
vtkRenderWindow );
00077 vtkGetVectorMacro( DataOrigin,
float, 3 );
00078 vtkGetVectorMacro( DataSpacing,
float, 3 );
00080
00083
virtual void Render(
vtkRenderer *ren,
vtkVolume *vol)=0;
00084
00086
00088
virtual float GetGradientMagnitudeScale();
00089
virtual float GetGradientMagnitudeBias();
00090 virtual float GetGradientMagnitudeScale(
int)
00091 {
return this->
GetGradientMagnitudeScale(); };
00092 virtual float GetGradientMagnitudeBias(
int)
00093 {
return this->
GetGradientMagnitudeBias(); };
00095
00096
00097
00098
00099
00100
protected:
00101 vtkVolumeTextureMapper();
00102 ~vtkVolumeTextureMapper();
00103
00104
void InitializeRender(
vtkRenderer *ren,
vtkVolume *vol );
00105
00106
00107 vtkEncodedGradientEstimator *GradientEstimator;
00108 vtkEncodedGradientShader *GradientShader;
00109 int Shade;
00110
00111 float *GradientOpacityArray;
00112 unsigned char *RGBAArray;
00113 int ArraySize;
00114
00115 float *RedDiffuseShadingTable;
00116 float *GreenDiffuseShadingTable;
00117 float *BlueDiffuseShadingTable;
00118 float *RedSpecularShadingTable;
00119 float *GreenSpecularShadingTable;
00120 float *BlueSpecularShadingTable;
00121
00122 float DataOrigin[3];
00123 float DataSpacing[3];
00124
00125 unsigned short *EncodedNormals;
00126 unsigned char *GradientMagnitudes;
00127
00128 float SampleDistance;
00129
00130 vtkRenderWindow *RenderWindow;
00131
private:
00132 vtkVolumeTextureMapper(
const vtkVolumeTextureMapper&);
00133
void operator=(
const vtkVolumeTextureMapper&);
00134 };
00135
00136
00137
#endif
00138
00139