00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00028 #ifndef __vtkVolumeTextureMapper2D_h
00029 #define __vtkVolumeTextureMapper2D_h
00030
00031 #include "vtkVolumeTextureMapper.h"
00032
00033 class VTK_VOLUMERENDERING_EXPORT vtkVolumeTextureMapper2D : public vtkVolumeTextureMapper
00034 {
00035 public:
00036 vtkTypeRevisionMacro(vtkVolumeTextureMapper2D,vtkVolumeTextureMapper);
00037 void PrintSelf( ostream& os, vtkIndent indent );
00038
00039 static vtkVolumeTextureMapper2D *New();
00040
00042
00047 vtkSetVector2Macro( TargetTextureSize, int );
00048 vtkGetVector2Macro( TargetTextureSize, int );
00050
00052
00057 vtkSetMacro( MaximumNumberOfPlanes, int );
00058 vtkGetMacro( MaximumNumberOfPlanes, int );
00060
00062
00066 vtkSetMacro( MaximumStorageSize, int );
00067 vtkGetMacro( MaximumStorageSize, int );
00069
00070
00071
00074 virtual void Render(vtkRenderer *, vtkVolume *) {};
00075
00076 virtual void RenderQuads( int vtkNotUsed(count),
00077 float *vtkNotUsed(v), float *vtkNotUsed(t),
00078 unsigned char *vtkNotUsed(texture),
00079 int vtkNotUsed(size)[2],
00080 int vtkNotUsed(reverseFlag)) {};
00081
00084 int GetInternalSkipFactor() {return this->InternalSkipFactor;};
00085
00086 int *GetAxisTextureSize() {return &(this->AxisTextureSize[0][0]);};
00087
00088 int GetSaveTextures() {return this->SaveTextures;};
00089
00090 unsigned char *GetTexture() {return this->Texture;};
00091
00092
00093
00094
00095 protected:
00096 vtkVolumeTextureMapper2D();
00097 ~vtkVolumeTextureMapper2D();
00098
00099 void InitializeRender( vtkRenderer *ren, vtkVolume *vol )
00100 {this->InitializeRender( ren, vol, -1 );}
00101
00102 void InitializeRender( vtkRenderer *ren, vtkVolume *vol, int majorDirection );
00103
00104 void GenerateTexturesAndRenderQuads( vtkRenderer *ren, vtkVolume *vol );
00105
00106 int MajorDirection;
00107 int TargetTextureSize[2];
00108
00109 int MaximumNumberOfPlanes;
00110 int InternalSkipFactor;
00111 int MaximumStorageSize;
00112
00113 unsigned char *Texture;
00114 int TextureSize;
00115 int SaveTextures;
00116 vtkTimeStamp TextureMTime;
00117
00118 int AxisTextureSize[3][3];
00119 void ComputeAxisTextureSize( int axis, int *size );
00120
00121 void RenderSavedTexture();
00122
00123 private:
00124 vtkVolumeTextureMapper2D(const vtkVolumeTextureMapper2D&);
00125 void operator=(const vtkVolumeTextureMapper2D&);
00126 };
00127
00128
00129 #endif
00130
00131