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

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

Generated on Mon Jan 21 23:07:36 2008 for VTK by  doxygen 1.4.3-20050530