Rendering/vtkRecursiveSphereDirectionEncoder.h
Go to the documentation of this file.00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00028 #ifndef __vtkRecursiveSphereDirectionEncoder_h
00029 #define __vtkRecursiveSphereDirectionEncoder_h
00030 
00031 #include "vtkDirectionEncoder.h"
00032 
00033 class VTK_RENDERING_EXPORT vtkRecursiveSphereDirectionEncoder : public vtkDirectionEncoder
00034 {
00035 public:
00036   vtkTypeRevisionMacro(vtkRecursiveSphereDirectionEncoder,vtkDirectionEncoder);
00037   void PrintSelf( ostream& os, vtkIndent indent );
00038 
00041   static vtkRecursiveSphereDirectionEncoder *New();
00042 
00043 
00045   int GetEncodedDirection( float n[3] );
00046   
00048   float *GetDecodedGradient( int value );
00049 
00051   int GetNumberOfEncodedDirections( void );
00052 
00057   float *GetDecodedGradientTable( void );
00058 
00060 
00072   vtkSetClampMacro( RecursionDepth, int, 0, 6 );
00073   vtkGetMacro( RecursionDepth, int );                                        
00075 
00076 protected:
00077   vtkRecursiveSphereDirectionEncoder();
00078   ~vtkRecursiveSphereDirectionEncoder();
00079 
00080   
00081   int                     RecursionDepth;
00082   
00083   
00084   
00085   
00086   int                     *IndexTable;
00087 
00088   
00089   
00090   
00091   
00092   float                   *DecodedNormal;
00093 
00094   
00095   
00096   
00097   void                  InitializeIndexTable( void );
00098   int                   IndexTableRecursionDepth;
00099 
00100   int                   OuterSize;
00101   int                   InnerSize;
00102   int                   GridSize;
00103 private:
00104   vtkRecursiveSphereDirectionEncoder(const vtkRecursiveSphereDirectionEncoder&);  
00105   void operator=(const vtkRecursiveSphereDirectionEncoder&);  
00106 }; 
00107 
00108 
00109 #endif
00110