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 00006 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen 00007 All rights reserved. 00008 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00009 00010 This software is distributed WITHOUT ANY WARRANTY; without even 00011 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00012 PURPOSE. See the above copyright notice for more information. 00013 00014 =========================================================================*/ 00015 00049 #ifndef __vtkVolumeProperty_h 00050 #define __vtkVolumeProperty_h 00051 00052 #include "vtkObject.h" 00053 00054 class vtkPiecewiseFunction; 00055 class vtkTimeStamp; 00056 class vtkColorTransferFunction; 00057 00058 class VTK_RENDERING_EXPORT vtkVolumeProperty : public vtkObject 00059 { 00060 public: 00061 static vtkVolumeProperty *New(); 00062 vtkTypeRevisionMacro(vtkVolumeProperty,vtkObject); 00063 void PrintSelf(ostream& os, vtkIndent indent); 00064 00067 unsigned long GetMTime(); 00068 00070 00084 vtkSetClampMacro( IndependentComponents, int, 0, 1 ); 00085 vtkGetMacro( IndependentComponents, int ); 00086 vtkBooleanMacro( IndependentComponents, int ); 00088 00090 00091 virtual void SetComponentWeight(int index, double value); 00092 virtual double GetComponentWeight(int index); 00094 00096 00097 vtkSetClampMacro( InterpolationType, int, 00098 VTK_NEAREST_INTERPOLATION, VTK_LINEAR_INTERPOLATION); 00099 vtkGetMacro(InterpolationType,int); 00100 void SetInterpolationTypeToNearest() 00101 {this->SetInterpolationType(VTK_NEAREST_INTERPOLATION);}; 00102 void SetInterpolationTypeToLinear() 00103 {this->SetInterpolationType(VTK_LINEAR_INTERPOLATION);}; 00104 const char *GetInterpolationTypeAsString(void); 00106 00108 00111 void SetColor( int index, vtkPiecewiseFunction *function ); 00112 void SetColor( vtkPiecewiseFunction *f ){this->SetColor(0,f);}; 00114 00116 00119 void SetColor( int index, vtkColorTransferFunction *function ); 00120 void SetColor( vtkColorTransferFunction *f ){this->SetColor(0,f);}; 00122 00124 00126 int GetColorChannels( int index ); 00127 int GetColorChannels(){return this->GetColorChannels(0);}; 00129 00131 00133 vtkPiecewiseFunction *GetGrayTransferFunction( int index ); 00134 vtkPiecewiseFunction *GetGrayTransferFunction() 00135 {return this->GetGrayTransferFunction(0);}; 00137 00139 00142 vtkColorTransferFunction *GetRGBTransferFunction( int index ); 00143 vtkColorTransferFunction *GetRGBTransferFunction() 00144 {return this->GetRGBTransferFunction(0);}; 00146 00148 00150 void SetScalarOpacity( int index, vtkPiecewiseFunction *function ); 00151 void SetScalarOpacity( vtkPiecewiseFunction *f ) 00152 {this->SetScalarOpacity(0,f);}; 00154 00156 00159 vtkPiecewiseFunction *GetScalarOpacity( int index ); 00160 vtkPiecewiseFunction *GetScalarOpacity() 00161 {return this->GetScalarOpacity(0);}; 00163 00165 00170 void SetScalarOpacityUnitDistance( int index, double distance ); 00171 void SetScalarOpacityUnitDistance( double distance ) 00172 {this->SetScalarOpacityUnitDistance( 0, distance );} 00173 double GetScalarOpacityUnitDistance( int index ); 00174 double GetScalarOpacityUnitDistance() 00175 {return this->GetScalarOpacityUnitDistance(0);} 00177 00178 00180 00182 void SetGradientOpacity( int index, vtkPiecewiseFunction *function ); 00183 void SetGradientOpacity( vtkPiecewiseFunction *function ) 00184 {this->SetGradientOpacity(0,function);} 00186 00188 00192 vtkPiecewiseFunction *GetGradientOpacity( int index ); 00193 vtkPiecewiseFunction *GetGradientOpacity() 00194 {return this->GetGradientOpacity( 0 );} 00196 00198 00203 virtual void SetDisableGradientOpacity( int index, int value ); 00204 virtual void SetDisableGradientOpacity( int value ) 00205 { this->SetDisableGradientOpacity(0, value); } 00206 virtual void DisableGradientOpacityOn( int index ) 00207 { this->SetDisableGradientOpacity(index, 1); } 00208 virtual void DisableGradientOpacityOn() 00209 { this->DisableGradientOpacityOn(0); } 00210 virtual void DisableGradientOpacityOff( int index ) 00211 { this->SetDisableGradientOpacity(index, 0); } 00212 virtual void DisableGradientOpacityOff() 00213 { this->DisableGradientOpacityOff(0); } 00214 virtual int GetDisableGradientOpacity( int index ); 00215 virtual int GetDisableGradientOpacity() 00216 { return this->GetDisableGradientOpacity(0); } 00217 vtkPiecewiseFunction *GetStoredGradientOpacity( int index ); 00218 vtkPiecewiseFunction *GetStoredGradientOpacity() 00219 {return this->GetStoredGradientOpacity( 0 );} 00221 00223 00231 void SetShade( int index, int value ); 00232 void SetShade( int value ) {this->SetShade(0,value);} 00233 int GetShade( int index ); 00234 int GetShade() {return this->GetShade(0);} 00235 void ShadeOn( int index ); 00236 void ShadeOn() {this->ShadeOn(0);} 00237 void ShadeOff( int index ); 00238 void ShadeOff() {this->ShadeOff(0);} 00240 00242 00243 void SetAmbient( int index, double value ); 00244 void SetAmbient( double value ) {this->SetAmbient( 0, value );} 00245 double GetAmbient( int index ); 00246 double GetAmbient() {return this->GetAmbient(0);} 00248 00250 00251 void SetDiffuse( int index, double value ); 00252 void SetDiffuse( double value ) {this->SetDiffuse( 0, value );} 00253 double GetDiffuse( int index ); 00254 double GetDiffuse() {return this->GetDiffuse(0);} 00256 00258 00259 void SetSpecular( int index, double value ); 00260 void SetSpecular( double value ) {this->SetSpecular( 0, value );} 00261 double GetSpecular( int index ); 00262 double GetSpecular() {return this->GetSpecular(0);} 00264 00266 00267 void SetSpecularPower( int index, double value ); 00268 void SetSpecularPower( double value ) {this->SetSpecularPower( 0, value );} 00269 double GetSpecularPower( int index ); 00270 double GetSpecularPower() {return this->GetSpecularPower(0);} 00272 00273 //BTX 00278 void UpdateMTimes(); 00279 00281 00283 vtkTimeStamp GetGradientOpacityMTime( int index ); 00284 vtkTimeStamp GetGradientOpacityMTime() 00285 { return this->GetGradientOpacityMTime(0); } 00287 00289 00291 vtkTimeStamp GetScalarOpacityMTime( int index ); 00292 vtkTimeStamp GetScalarOpacityMTime() 00293 { return this->GetScalarOpacityMTime(0); } 00295 00297 00299 vtkTimeStamp GetRGBTransferFunctionMTime( int index ); 00300 vtkTimeStamp GetRGBTransferFunctionMTime() 00301 { return this->GetRGBTransferFunctionMTime(0); } 00303 00305 00307 vtkTimeStamp GetGrayTransferFunctionMTime( int index ); 00308 vtkTimeStamp GetGrayTransferFunctionMTime() 00309 { return this->GetGrayTransferFunctionMTime(0); } 00310 //ETX 00312 00313 protected: 00314 vtkVolumeProperty(); 00315 ~vtkVolumeProperty(); 00316 00317 int IndependentComponents; 00318 double ComponentWeight[VTK_MAX_VRCOMP]; 00319 00320 int InterpolationType; 00321 00322 int ColorChannels[VTK_MAX_VRCOMP]; 00323 00324 vtkPiecewiseFunction *GrayTransferFunction[VTK_MAX_VRCOMP]; 00325 vtkTimeStamp GrayTransferFunctionMTime[VTK_MAX_VRCOMP]; 00326 00327 vtkColorTransferFunction *RGBTransferFunction[VTK_MAX_VRCOMP]; 00328 vtkTimeStamp RGBTransferFunctionMTime[VTK_MAX_VRCOMP]; 00329 00330 vtkPiecewiseFunction *ScalarOpacity[VTK_MAX_VRCOMP]; 00331 vtkTimeStamp ScalarOpacityMTime[VTK_MAX_VRCOMP]; 00332 double ScalarOpacityUnitDistance[VTK_MAX_VRCOMP]; 00333 00334 vtkPiecewiseFunction *GradientOpacity[VTK_MAX_VRCOMP]; 00335 vtkTimeStamp GradientOpacityMTime[VTK_MAX_VRCOMP]; 00336 vtkPiecewiseFunction *DefaultGradientOpacity[VTK_MAX_VRCOMP]; 00337 int DisableGradientOpacity[VTK_MAX_VRCOMP]; 00338 00339 int Shade[VTK_MAX_VRCOMP]; 00340 double Ambient[VTK_MAX_VRCOMP]; 00341 double Diffuse[VTK_MAX_VRCOMP]; 00342 double Specular[VTK_MAX_VRCOMP]; 00343 double SpecularPower[VTK_MAX_VRCOMP]; 00344 00345 virtual void CreateDefaultGradientOpacity(int index); 00346 00347 private: 00348 vtkVolumeProperty(const vtkVolumeProperty&); // Not implemented. 00349 void operator=(const vtkVolumeProperty&); // Not implemented. 00350 }; 00351 00353 inline const char *vtkVolumeProperty::GetInterpolationTypeAsString(void) 00354 { 00355 if( this->InterpolationType == VTK_NEAREST_INTERPOLATION ) 00356 { 00357 return "Nearest Neighbor"; 00358 } 00359 else if( this->InterpolationType == VTK_LINEAR_INTERPOLATION ) 00360 { 00361 return "Linear"; 00362 } 00363 else 00364 { 00365 return "Unknown"; 00366 } 00367 } 00368 00369 #endif