VTK
vtkVolumeTextureMapper3D.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkVolumeTextureMapper3D.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
81 #ifndef vtkVolumeTextureMapper3D_h
82 #define vtkVolumeTextureMapper3D_h
83 
84 #include "vtkRenderingVolumeModule.h" // For export macro
85 #include "vtkVolumeMapper.h"
86 
87 class vtkImageData;
90 class vtkVolumeProperty;
91 
93 {
94 public:
96  void PrintSelf(ostream& os, vtkIndent indent);
97 
99 
101 
104  vtkSetMacro( SampleDistance, float );
105  vtkGetMacro( SampleDistance, float );
107 
109 
110  vtkGetVectorMacro( VolumeDimensions, int, 3 );
112 
114 
115  vtkGetVectorMacro( VolumeSpacing, float, 3 );
117 
119 
125  {return 0;}
127 
129 
130  vtkGetMacro( NumberOfPolygons, int );
132 
134 
135  vtkGetMacro( ActualSampleDistance, float );
137 
138 //BTX
139 
142  virtual void Render(vtkRenderer *, vtkVolume *) {}
143 
145 
146  enum
147  {
148  FRAGMENT_PROGRAM_METHOD=0,
149  NVIDIA_METHOD=1,
150  ATI_METHOD=2,
151  NO_METHOD=3
152  };
154 
156 
158 //ETX
160 
162 
164  vtkSetClampMacro( PreferredRenderMethod, int,
168  { this->SetPreferredRenderMethod( vtkVolumeTextureMapper3D::FRAGMENT_PROGRAM_METHOD ); }
170  { this->SetPreferredRenderMethod( vtkVolumeTextureMapper3D::NVIDIA_METHOD ); }
171  vtkGetMacro(PreferredRenderMethod, int);
173 
174 
176 
181  vtkSetMacro(UseCompressedTexture,bool);
182  vtkGetMacro(UseCompressedTexture,bool);
184 
185 protected:
188 
193 
194  unsigned char *Volume1;
195  unsigned char *Volume2;
196  unsigned char *Volume3;
199  int VolumeDimensions[3];
200  float VolumeSpacing[3];
201 
204 
207 
215 
216  unsigned char ColorLookup[65536*4];
217  unsigned char AlphaLookup[65536];
218  float TempArray1[3*4096];
219  float TempArray2[4096];
223 
224  unsigned char DiffuseLookup[65536*4];
225  unsigned char SpecularLookup[65536*4];
226 
229 
233 
235 
237  void ComputePolygons( vtkRenderer *ren, vtkVolume *vol, double bounds[6] );
238 
240 
245 
247 
249  int vtkNotUsed(components))
250  {
251  return 0;
252  }
253  //ETX
255 
256 private:
257  vtkVolumeTextureMapper3D(const vtkVolumeTextureMapper3D&); // Not implemented.
258  void operator=(const vtkVolumeTextureMapper3D&); // Not implemented.
259 };
260 
261 
262 #endif
263 
264 
265 
266 
267 
268 
vtkVolumeTextureMapper3D::BufferSize
int BufferSize
Definition: vtkVolumeTextureMapper3D.h:192
vtkVolumeTextureMapper3D::SavedScalarOpacityFunction
vtkPiecewiseFunction * SavedScalarOpacityFunction
Definition: vtkVolumeTextureMapper3D.h:210
vtkVolumeTextureMapper3D::VolumeSize
int VolumeSize
Definition: vtkVolumeTextureMapper3D.h:197
vtkVolumeTextureMapper3D
volume render with 3D texture mapping
Definition: vtkVolumeTextureMapper3D.h:93
vtkVolumeMapper
Abstract class for a volume mapper.
Definition: vtkVolumeMapper.h:46
vtkVolumeTextureMapper3D::ComputePolygons
void ComputePolygons(vtkRenderer *ren, vtkVolume *vol, double bounds[6])
vtkVolume
represents a volume (data & properties) in a rendered scene
Definition: vtkVolume.h:50
vtkVolumeTextureMapper3D::vtkVolumeTextureMapper3D
vtkVolumeTextureMapper3D()
vtkVolumeTextureMapper3D::SavedTextureMTime
vtkTimeStamp SavedTextureMTime
Definition: vtkVolumeTextureMapper3D.h:227
vtkVolumeTextureMapper3D::Volume2
unsigned char * Volume2
Definition: vtkVolumeTextureMapper3D.h:195
vtkVolumeTextureMapper3D::SavedRGBFunction
vtkColorTransferFunction * SavedRGBFunction
Definition: vtkVolumeTextureMapper3D.h:208
vtkVolumeTextureMapper3D::UpdateColorLookup
int UpdateColorLookup(vtkVolume *)
vtkTimeStamp
record modification and/or execution time
Definition: vtkTimeStamp.h:35
vtkRenderingVolumeModule.h
vtkTypeMacro
#define vtkTypeMacro(thisClass, superclass)
Definition: vtkSetGet.h:642
vtkVolumeTextureMapper3D::UpdateVolumes
int UpdateVolumes(vtkVolume *)
vtkVolumeTextureMapper3D::SetPreferredMethodToNVidia
void SetPreferredMethodToNVidia()
Definition: vtkVolumeTextureMapper3D.h:169
vtkVolumeTextureMapper3D::SavedParametersInput
vtkImageData * SavedParametersInput
Definition: vtkVolumeTextureMapper3D.h:206
vtkgl::input
GLenum GLenum GLenum input
Definition: vtkgl.h:15941
vtkGetVectorMacro
#define vtkGetVectorMacro(name, type, count)
Definition: vtkSetGet.h:424
vtkVolumeTextureMapper3D::RenderMethod
int RenderMethod
Definition: vtkVolumeTextureMapper3D.h:230
vtkColorTransferFunction
Defines a transfer function for mapping a property to an RGB color value.
Definition: vtkColorTransferFunction.h:58
vtkVolumeTextureMapper3D::IntersectionBuffer
float * IntersectionBuffer
Definition: vtkVolumeTextureMapper3D.h:190
vtkVolumeTextureMapper3D::New
static vtkVolumeTextureMapper3D * New()
vtkVolumeTextureMapper3D::GetNumberOfScalarComponents
int GetNumberOfScalarComponents(vtkImageData *input)
vtkVolumeTextureMapper3D::SetPreferredMethodToFragmentProgram
void SetPreferredMethodToFragmentProgram()
Definition: vtkVolumeTextureMapper3D.h:167
vtkVolumeTextureMapper3D::ColorTableSize
int ColorTableSize
Definition: vtkVolumeTextureMapper3D.h:220
vtkVolumeTextureMapper3D::Volume3
unsigned char * Volume3
Definition: vtkVolumeTextureMapper3D.h:196
vtkSetClampMacro
#define vtkSetClampMacro(name, type, min, max)
Definition: vtkSetGet.h:143
vtkNotUsed
#define vtkNotUsed(x)
Definition: vtkSetGet.h:557
vtkVolumeTextureMapper3D::SavedScalarOpacityDistance
float SavedScalarOpacityDistance
Definition: vtkVolumeTextureMapper3D.h:214
vtkVolumeTextureMapper3D::SavedSampleDistance
float SavedSampleDistance
Definition: vtkVolumeTextureMapper3D.h:213
vtkVolumeTextureMapper3D::SavedColorChannels
int SavedColorChannels
Definition: vtkVolumeTextureMapper3D.h:212
vtkVolumeTextureMapper3D::PreferredRenderMethod
int PreferredRenderMethod
Definition: vtkVolumeTextureMapper3D.h:231
vtkVolumeMapper.h
vtkVolumeTextureMapper3D::FRAGMENT_PROGRAM_METHOD
@ FRAGMENT_PROGRAM_METHOD
Definition: vtkVolumeTextureMapper3D.h:148
vtkImageData
topologically and geometrically regular array of data
Definition: vtkImageData.h:45
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:39
vtkVolumeTextureMapper3D::ColorTableScale
float ColorTableScale
Definition: vtkVolumeTextureMapper3D.h:221
vtkVolumeTextureMapper3D::ActualSampleDistance
float ActualSampleDistance
Definition: vtkVolumeTextureMapper3D.h:203
vtkVolumeTextureMapper3D::SavedGrayFunction
vtkPiecewiseFunction * SavedGrayFunction
Definition: vtkVolumeTextureMapper3D.h:209
vtkGetMacro
#define vtkGetMacro(name, type)
Definition: vtkSetGet.h:93
vtkVolumeTextureMapper3D::VolumeComponents
int VolumeComponents
Definition: vtkVolumeTextureMapper3D.h:198
vtkVolumeTextureMapper3D::SupportsNonPowerOfTwoTextures
bool SupportsNonPowerOfTwoTextures
Definition: vtkVolumeTextureMapper3D.h:234
vtkVolumeTextureMapper3D::Render
virtual void Render(vtkRenderer *, vtkVolume *)
Definition: vtkVolumeTextureMapper3D.h:142
vtkVolumeTextureMapper3D::IsRenderSupported
virtual int IsRenderSupported(vtkVolumeProperty *, vtkRenderer *vtkNotUsed(r))
Definition: vtkVolumeTextureMapper3D.h:123
vtkPiecewiseFunction
Defines a 1D piecewise function.
Definition: vtkPiecewiseFunction.h:51
vtkVolumeTextureMapper3D::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent)
vtkSetMacro
vtkSetMacro(IgnoreDriverBugs, bool)
vtkVolumeTextureMapper3D::IsTextureSizeSupported
virtual int IsTextureSizeSupported(int vtkNotUsed(size)[3], int vtkNotUsed(components))
Definition: vtkVolumeTextureMapper3D.h:248
vtkgl::r
GLdouble GLdouble GLdouble r
Definition: vtkgl.h:11610
vtkVolumeTextureMapper3D::UseCompressedTexture
bool UseCompressedTexture
Definition: vtkVolumeTextureMapper3D.h:232
vtkVolumeTextureMapper3D::Volume1
unsigned char * Volume1
Definition: vtkVolumeTextureMapper3D.h:194
vtkVolumeTextureMapper3D::SampleDistance
float SampleDistance
Definition: vtkVolumeTextureMapper3D.h:202
vtkRenderer
abstract specification for renderers
Definition: vtkRenderer.h:64
vtkVolumeTextureMapper3D::SavedTextureInput
vtkImageData * SavedTextureInput
Definition: vtkVolumeTextureMapper3D.h:205
VTKRENDERINGVOLUME_EXPORT
#define VTKRENDERINGVOLUME_EXPORT
Definition: vtkRenderingVolumeModule.h:15
vtkVolumeTextureMapper3D::SavedParametersMTime
vtkTimeStamp SavedParametersMTime
Definition: vtkVolumeTextureMapper3D.h:228
vtkVolumeTextureMapper3D::NumberOfPolygons
int NumberOfPolygons
Definition: vtkVolumeTextureMapper3D.h:191
vtkVolumeTextureMapper3D::NVIDIA_METHOD
@ NVIDIA_METHOD
Definition: vtkVolumeTextureMapper3D.h:149
vtkgl::components
GLenum GLenum GLuint components
Definition: vtkgl.h:16909
vtkVolumeTextureMapper3D::SavedGradientOpacityFunction
vtkPiecewiseFunction * SavedGradientOpacityFunction
Definition: vtkVolumeTextureMapper3D.h:211
vtkVolumeTextureMapper3D::PolygonBuffer
float * PolygonBuffer
Definition: vtkVolumeTextureMapper3D.h:189
vtkVolumeTextureMapper3D::ColorTableOffset
float ColorTableOffset
Definition: vtkVolumeTextureMapper3D.h:222
vtkVolumeTextureMapper3D::~vtkVolumeTextureMapper3D
~vtkVolumeTextureMapper3D()
vtkVolumeProperty
represents the common properties for rendering a volume.
Definition: vtkVolumeProperty.h:60
vtkgl::size
GLsizeiptr size
Definition: vtkgl.h:11843