Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

dox/Rendering/vtkVolumeProperty.h

Go to the documentation of this file.
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkVolumeProperty.h,v $ 00005 Language: C++ 00006 00007 Copyright (c) 1993-2002 Ken Martin, Will Schroeder, Bill Lorensen 00008 All rights reserved. 00009 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00010 00011 This software is distributed WITHOUT ANY WARRANTY; without even 00012 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00013 PURPOSE. See the above copyright notice for more information. 00014 00015 =========================================================================*/ 00016 00053 #ifndef __vtkVolumeProperty_h 00054 #define __vtkVolumeProperty_h 00055 00056 #include "vtkObject.h" 00057 00058 class vtkPiecewiseFunction; 00059 class vtkTimeStamp; 00060 class vtkColorTransferFunction; 00061 00062 class VTK_RENDERING_EXPORT vtkVolumeProperty : public vtkObject 00063 { 00064 public: 00065 static vtkVolumeProperty *New(); 00066 vtkTypeRevisionMacro(vtkVolumeProperty,vtkObject); 00067 void PrintSelf(ostream& os, vtkIndent indent); 00068 00071 unsigned long GetMTime(); 00072 00073 00075 00076 vtkSetClampMacro( InterpolationType, int, 00077 VTK_NEAREST_INTERPOLATION, VTK_LINEAR_INTERPOLATION); 00078 vtkGetMacro(InterpolationType,int); 00079 void SetInterpolationTypeToNearest() 00080 {this->SetInterpolationType(VTK_NEAREST_INTERPOLATION);}; 00081 void SetInterpolationTypeToLinear() 00082 {this->SetInterpolationType(VTK_LINEAR_INTERPOLATION);}; 00083 const char *GetInterpolationTypeAsString(void); 00085 00087 00090 void SetColor( int index, vtkPiecewiseFunction *function ); 00091 void SetColor( vtkPiecewiseFunction *f ){this->SetColor(0,f);}; 00093 00094 00096 00099 void SetColor( int index, vtkColorTransferFunction *function ); 00100 void SetColor( vtkColorTransferFunction *f ){this->SetColor(0,f);}; 00102 00104 00106 int GetColorChannels( int index ); 00107 int GetColorChannels(){return this->GetColorChannels(0);}; 00109 00111 00112 vtkPiecewiseFunction *GetGrayTransferFunction( int index ); 00113 vtkPiecewiseFunction *GetGrayTransferFunction() 00114 {return this->GetGrayTransferFunction(0);}; 00116 00118 00119 vtkColorTransferFunction *GetRGBTransferFunction( int index ); 00120 vtkColorTransferFunction *GetRGBTransferFunction() 00121 {return this->GetRGBTransferFunction(0);}; 00123 00125 00127 void SetScalarOpacity( int index, vtkPiecewiseFunction *function ); 00128 void SetScalarOpacity( vtkPiecewiseFunction *f ) 00129 {this->SetScalarOpacity(0,f);}; 00131 00133 00134 vtkPiecewiseFunction *GetScalarOpacity( int index ); 00135 vtkPiecewiseFunction *GetScalarOpacity() 00136 {return this->GetScalarOpacity(0);}; 00138 00139 00141 00143 void SetGradientOpacity( int index, vtkPiecewiseFunction *function ); 00144 void SetGradientOpacity( vtkPiecewiseFunction *function ) 00145 {this->SetGradientOpacity(0,function);} 00147 00149 00151 vtkPiecewiseFunction *GetGradientOpacity( int index ); 00152 vtkPiecewiseFunction *GetGradientOpacity() 00153 {return this->GetGradientOpacity( 0 );} 00155 00157 00165 void SetShade( int index, int value ); 00166 void SetShade( int value ) {this->SetShade(0,value);} 00167 int GetShade( int index ); 00168 int GetShade() {return this->GetShade(0);} 00169 void ShadeOn( int index ); 00170 void ShadeOn() {this->ShadeOn(0);} 00171 void ShadeOff( int index ); 00172 void ShadeOff() {this->ShadeOff(0);} 00174 00175 00177 00178 void SetAmbient( int index, float value ); 00179 void SetAmbient( float value ) {this->SetAmbient( 0, value );} 00180 float GetAmbient( int index ); 00181 float GetAmbient() {return this->GetAmbient(0);} 00183 00184 00186 00187 void SetDiffuse( int index, float value ); 00188 void SetDiffuse( float value ) {this->SetDiffuse( 0, value );} 00189 float GetDiffuse( int index ); 00190 float GetDiffuse() {return this->GetDiffuse(0);} 00192 00194 00195 void SetSpecular( int index, float value ); 00196 void SetSpecular( float value ) {this->SetSpecular( 0, value );} 00197 float GetSpecular( int index ); 00198 float GetSpecular() {return this->GetSpecular(0);} 00200 00202 00203 void SetSpecularPower( int index, float value ); 00204 void SetSpecularPower( float value ) {this->SetSpecularPower( 0, value );} 00205 float GetSpecularPower( int index ); 00206 float GetSpecularPower() {return this->GetSpecularPower(0);} 00208 00209 //BTX 00214 void UpdateMTimes(); 00215 00217 00219 vtkTimeStamp GetGradientOpacityMTime( int index ); 00220 vtkTimeStamp GetGradientOpacityMTime() 00221 { return this->GetGradientOpacityMTime(0); } 00223 00225 00227 vtkTimeStamp GetScalarOpacityMTime( int index ); 00228 vtkTimeStamp GetScalarOpacityMTime() 00229 { return this->GetScalarOpacityMTime(0); } 00231 00233 00235 vtkTimeStamp GetRGBTransferFunctionMTime( int index ); 00236 vtkTimeStamp GetRGBTransferFunctionMTime() 00237 { return this->GetRGBTransferFunctionMTime(0); } 00239 00241 00243 vtkTimeStamp GetGrayTransferFunctionMTime( int index ); 00244 vtkTimeStamp GetGrayTransferFunctionMTime() 00245 { return this->GetGrayTransferFunctionMTime(0); } 00247 //ETX 00248 00249 00250 protected: 00251 vtkVolumeProperty(); 00252 ~vtkVolumeProperty(); 00253 00254 int InterpolationType; 00255 00256 int ColorChannels[VTK_MAX_VRCOMP]; 00257 00258 vtkPiecewiseFunction *GrayTransferFunction[VTK_MAX_VRCOMP]; 00259 vtkTimeStamp GrayTransferFunctionMTime[VTK_MAX_VRCOMP]; 00260 00261 vtkColorTransferFunction *RGBTransferFunction[VTK_MAX_VRCOMP]; 00262 vtkTimeStamp RGBTransferFunctionMTime[VTK_MAX_VRCOMP]; 00263 00264 vtkPiecewiseFunction *ScalarOpacity[VTK_MAX_VRCOMP]; 00265 vtkTimeStamp ScalarOpacityMTime[VTK_MAX_VRCOMP]; 00266 00267 vtkPiecewiseFunction *GradientOpacity[VTK_MAX_VRCOMP]; 00268 vtkTimeStamp GradientOpacityMTime[VTK_MAX_VRCOMP]; 00269 00270 int Shade[VTK_MAX_VRCOMP]; 00271 float Ambient[VTK_MAX_VRCOMP]; 00272 float Diffuse[VTK_MAX_VRCOMP]; 00273 float Specular[VTK_MAX_VRCOMP]; 00274 float SpecularPower[VTK_MAX_VRCOMP]; 00275 00276 private: 00277 vtkVolumeProperty(const vtkVolumeProperty&); // Not implemented. 00278 void operator=(const vtkVolumeProperty&); // Not implemented. 00279 }; 00280 00282 inline const char *vtkVolumeProperty::GetInterpolationTypeAsString(void) 00283 { 00284 if( this->InterpolationType == VTK_NEAREST_INTERPOLATION ) 00285 { 00286 return "Nearest Neighbor"; 00287 } 00288 else if( this->InterpolationType == VTK_LINEAR_INTERPOLATION ) 00289 { 00290 return "Linear"; 00291 } 00292 else 00293 { 00294 return "Unknown"; 00295 } 00296 } 00297 00298 #endif