VTK
vtkVolumeTextureMapper.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkVolumeTextureMapper.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 =========================================================================*/
26 #ifndef vtkVolumeTextureMapper_h
27 #define vtkVolumeTextureMapper_h
28 
29 #include "vtkRenderingVolumeModule.h" // For export macro
30 #include "vtkVolumeMapper.h"
31 
34 class vtkRenderWindow;
35 class vtkRenderer;
36 class vtkVolume;
37 
39 {
40 public:
42  void PrintSelf( ostream& os, vtkIndent indent );
43 
45 
46  virtual void Update();
47  virtual void Update(int port);
49 
51 
55 
57 
60 
61 //BTX
63 
65  float *GetGradientOpacityArray(){return this->GradientOpacityArray;};
66  unsigned char *GetRGBAArray(){return this->RGBAArray;};
67  float *GetRedDiffuseShadingTable(){return this->RedDiffuseShadingTable;};
68  float *GetGreenDiffuseShadingTable(){return this->GreenDiffuseShadingTable;};
69  float *GetBlueDiffuseShadingTable(){return this->BlueDiffuseShadingTable;};
70  float *GetRedSpecularShadingTable(){return this->RedSpecularShadingTable;};
71  float *GetGreenSpecularShadingTable(){return this->GreenSpecularShadingTable;};
72  float *GetBlueSpecularShadingTable(){return this->BlueSpecularShadingTable;};
73  unsigned short *GetEncodedNormals(){return this->EncodedNormals;};
74  unsigned char *GetGradientMagnitudes(){return this->GradientMagnitudes;};
75  vtkGetMacro( Shade, int );
77  vtkGetVectorMacro( DataOrigin, double, 3 );
78  vtkGetVectorMacro( DataSpacing, double, 3 );
80 
83  virtual void Render(vtkRenderer *ren, vtkVolume *vol)=0;
84 
86 
88  virtual float GetGradientMagnitudeScale();
89  virtual float GetGradientMagnitudeBias();
90  virtual float GetGradientMagnitudeScale(int)
91  { return this->GetGradientMagnitudeScale(); };
92  virtual float GetGradientMagnitudeBias(int)
93  { return this->GetGradientMagnitudeBias(); };
95 
96 //ETX
97 
98 
99 
100 protected:
103 
105 
107 
108  // Objects / variables needed for shading / gradient magnitude opacity
111  int Shade;
112 
114  unsigned char *RGBAArray;
117 
124 
125  double DataOrigin[3];
126  double DataSpacing[3];
127 
128  unsigned short *EncodedNormals;
129  unsigned char *GradientMagnitudes;
130 
132 
134 private:
135  vtkVolumeTextureMapper(const vtkVolumeTextureMapper&); // Not implemented.
136  void operator=(const vtkVolumeTextureMapper&); // Not implemented.
137 };
138 
139 
140 #endif
141 
142 
vtkVolumeTextureMapper::GetGreenSpecularShadingTable
float * GetGreenSpecularShadingTable()
Definition: vtkVolumeTextureMapper.h:71
vtkVolumeTextureMapper::RedSpecularShadingTable
float * RedSpecularShadingTable
Definition: vtkVolumeTextureMapper.h:121
vtkVolumeMapper
Abstract class for a volume mapper.
Definition: vtkVolumeMapper.h:46
vtkGetObjectMacro
#define vtkGetObjectMacro(name, type)
Definition: vtkSetGet.h:232
vtkVolumeTextureMapper::GetGradientOpacityArray
float * GetGradientOpacityArray()
Definition: vtkVolumeTextureMapper.h:65
vtkVolumeTextureMapper::GetGradientMagnitudeBias
virtual float GetGradientMagnitudeBias()
vtkVolumeTextureMapper::EncodedNormals
unsigned short * EncodedNormals
Definition: vtkVolumeTextureMapper.h:128
vtkVolume
represents a volume (data & properties) in a rendered scene
Definition: vtkVolume.h:50
vtkVolumeTextureMapper::GetGradientMagnitudeScale
virtual float GetGradientMagnitudeScale(int)
Definition: vtkVolumeTextureMapper.h:90
vtkVolumeTextureMapper::Update
virtual void Update(int port)
vtkVolumeTextureMapper::GradientMagnitudes
unsigned char * GradientMagnitudes
Definition: vtkVolumeTextureMapper.h:129
vtkVolumeTextureMapper::RenderWindow
vtkRenderWindow * RenderWindow
Definition: vtkVolumeTextureMapper.h:133
vtkVolumeTextureMapper::GetEncodedNormals
unsigned short * GetEncodedNormals()
Definition: vtkVolumeTextureMapper.h:73
vtkVolumeTextureMapper::RedDiffuseShadingTable
float * RedDiffuseShadingTable
Definition: vtkVolumeTextureMapper.h:118
vtkVolumeTextureMapper::SampleDistance
float SampleDistance
Definition: vtkVolumeTextureMapper.h:131
vtkVolumeTextureMapper::ArraySize
int ArraySize
Definition: vtkVolumeTextureMapper.h:115
vtkRenderingVolumeModule.h
vtkVolumeTextureMapper::InitializeRender
void InitializeRender(vtkRenderer *ren, vtkVolume *vol)
vtkVolumeTextureMapper::GetBlueDiffuseShadingTable
float * GetBlueDiffuseShadingTable()
Definition: vtkVolumeTextureMapper.h:69
vtkTypeMacro
#define vtkTypeMacro(thisClass, superclass)
Definition: vtkSetGet.h:642
vtkGetVectorMacro
#define vtkGetVectorMacro(name, type, count)
Definition: vtkSetGet.h:424
vtkAbstractVolumeMapper::GetGradientMagnitudeScale
virtual float GetGradientMagnitudeScale()
Definition: vtkAbstractVolumeMapper.h:103
vtkVolumeTextureMapper::GreenDiffuseShadingTable
float * GreenDiffuseShadingTable
Definition: vtkVolumeTextureMapper.h:119
vtkVolumeTextureMapper::NumberOfComponents
int NumberOfComponents
Definition: vtkVolumeTextureMapper.h:116
vtkX3D::port
@ port
Definition: vtkX3D.h:447
vtkVolumeTextureMapper::vtkVolumeTextureMapper
vtkVolumeTextureMapper()
vtkEncodedGradientShader
Compute shading tables for encoded normals.
Definition: vtkEncodedGradientShader.h:45
vtkVolumeTextureMapper::GradientEstimator
vtkEncodedGradientEstimator * GradientEstimator
Definition: vtkVolumeTextureMapper.h:109
vtkEncodedGradientEstimator
Superclass for gradient estimation.
Definition: vtkEncodedGradientEstimator.h:44
vtkVolumeTextureMapper::Shade
int Shade
Definition: vtkVolumeTextureMapper.h:111
vtkVolumeTextureMapper::~vtkVolumeTextureMapper
~vtkVolumeTextureMapper()
vtkVolumeTextureMapper::RGBAArray
unsigned char * RGBAArray
Definition: vtkVolumeTextureMapper.h:114
vtkVolumeMapper.h
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:39
vtkVolumeTextureMapper::GetRedSpecularShadingTable
float * GetRedSpecularShadingTable()
Definition: vtkVolumeTextureMapper.h:70
vtkGetMacro
#define vtkGetMacro(name, type)
Definition: vtkSetGet.h:93
vtkVolumeTextureMapper::GetGradientMagnitudeScale
virtual float GetGradientMagnitudeScale()
vtkVolumeTextureMapper
Abstract class for a volume mapper.
Definition: vtkVolumeTextureMapper.h:39
vtkVolumeTextureMapper::GetRedDiffuseShadingTable
float * GetRedDiffuseShadingTable()
Definition: vtkVolumeTextureMapper.h:67
vtkGarbageCollector
Detect and break reference loops.
Definition: vtkGarbageCollector.h:99
vtkVolumeTextureMapper::BlueDiffuseShadingTable
float * BlueDiffuseShadingTable
Definition: vtkVolumeTextureMapper.h:120
vtkVolumeTextureMapper::GetGreenDiffuseShadingTable
float * GetGreenDiffuseShadingTable()
Definition: vtkVolumeTextureMapper.h:68
vtkVolumeTextureMapper::ReportReferences
virtual void ReportReferences(vtkGarbageCollector *)
vtkRenderer
abstract specification for renderers
Definition: vtkRenderer.h:64
vtkVolumeTextureMapper::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent)
vtkVolumeTextureMapper::SetGradientEstimator
virtual void SetGradientEstimator(vtkEncodedGradientEstimator *gradest)
vtkVolumeTextureMapper::Update
virtual void Update()
vtkVolumeTextureMapper::GetRGBAArray
unsigned char * GetRGBAArray()
Definition: vtkVolumeTextureMapper.h:66
vtkVolumeTextureMapper::GetGradientMagnitudeBias
virtual float GetGradientMagnitudeBias(int)
Definition: vtkVolumeTextureMapper.h:92
VTKRENDERINGVOLUME_EXPORT
#define VTKRENDERINGVOLUME_EXPORT
Definition: vtkRenderingVolumeModule.h:15
vtkVolumeTextureMapper::Render
virtual void Render(vtkRenderer *ren, vtkVolume *vol)=0
vtkRenderWindow
create a window for renderers to draw into
Definition: vtkRenderWindow.h:89
vtkAbstractVolumeMapper::GetGradientMagnitudeBias
virtual float GetGradientMagnitudeBias()
Definition: vtkAbstractVolumeMapper.h:104
vtkVolumeTextureMapper::BlueSpecularShadingTable
float * BlueSpecularShadingTable
Definition: vtkVolumeTextureMapper.h:123
vtkVolumeTextureMapper::GetBlueSpecularShadingTable
float * GetBlueSpecularShadingTable()
Definition: vtkVolumeTextureMapper.h:72
vtkVolumeTextureMapper::GradientOpacityArray
float * GradientOpacityArray
Definition: vtkVolumeTextureMapper.h:113
vtkVolumeTextureMapper::GreenSpecularShadingTable
float * GreenSpecularShadingTable
Definition: vtkVolumeTextureMapper.h:122
vtkVolumeTextureMapper::GetGradientMagnitudes
unsigned char * GetGradientMagnitudes()
Definition: vtkVolumeTextureMapper.h:74
vtkVolumeTextureMapper::GradientShader
vtkEncodedGradientShader * GradientShader
Definition: vtkVolumeTextureMapper.h:110