VTK
/Users/kitware/Dashboards/MyTests/VTK_BLD_Release_docs/Utilities/Doxygen/dox/Rendering/Core/vtkTexture.h
Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    vtkTexture.h
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 =========================================================================*/
00051 #ifndef vtkTexture_h
00052 #define vtkTexture_h
00053 
00054 #include "vtkRenderingCoreModule.h" // For export macro
00055 #include "vtkImageAlgorithm.h"
00056 
00057 class vtkImageData;
00058 class vtkScalarsToColors;
00059 class vtkRenderer;
00060 class vtkUnsignedCharArray;
00061 class vtkWindow;
00062 class vtkDataArray;
00063 class vtkTransform;
00064 
00065 #define VTK_TEXTURE_QUALITY_DEFAULT 0
00066 #define VTK_TEXTURE_QUALITY_16BIT   16
00067 #define VTK_TEXTURE_QUALITY_32BIT   32
00068 
00069 class VTKRENDERINGCORE_EXPORT vtkTexture : public vtkImageAlgorithm
00070 {
00071 public:
00072   static vtkTexture* New();
00073   vtkTypeMacro(vtkTexture, vtkImageAlgorithm);
00074   void PrintSelf(ostream& os, vtkIndent indent);
00075 
00079   virtual void Render(vtkRenderer* ren);
00080 
00083   virtual void PostRender(vtkRenderer*) {}
00084 
00088   virtual void ReleaseGraphicsResources(vtkWindow*) {}
00089 
00093   virtual void Load(vtkRenderer*) {}
00094 
00096 
00098   vtkGetMacro(Repeat, int);
00099   vtkSetMacro(Repeat, int);
00100   vtkBooleanMacro(Repeat, int);
00102 
00104 
00107   vtkGetMacro(EdgeClamp, int);
00108   vtkSetMacro(EdgeClamp, int);
00109   vtkBooleanMacro(EdgeClamp, int);
00111 
00113 
00114   vtkGetMacro(Interpolate, int);
00115   vtkSetMacro(Interpolate, int);
00116   vtkBooleanMacro(Interpolate, int);
00118 
00120 
00122   vtkSetMacro(Quality, int);
00123   vtkGetMacro(Quality, int);
00124   void SetQualityToDefault()
00125     { this->SetQuality(VTK_TEXTURE_QUALITY_DEFAULT); }
00126   void SetQualityTo16Bit()
00127     { this->SetQuality(VTK_TEXTURE_QUALITY_16BIT); }
00128   void SetQualityTo32Bit()
00129     { this->SetQuality(VTK_TEXTURE_QUALITY_32BIT); }
00131 
00133 
00139   vtkGetMacro(MapColorScalarsThroughLookupTable, int);
00140   vtkSetMacro(MapColorScalarsThroughLookupTable, int);
00141   vtkBooleanMacro(MapColorScalarsThroughLookupTable, int);
00143 
00144 //BTX
00146 
00148   vtkImageData* GetInput();
00149 //ETX
00151 
00153 
00154   void SetLookupTable(vtkScalarsToColors *);
00155   vtkGetObjectMacro(LookupTable, vtkScalarsToColors);
00157 
00159 
00160   vtkGetObjectMacro(MappedScalars, vtkUnsignedCharArray);
00162 
00164   unsigned char* MapScalarsToColors(vtkDataArray* scalars);
00165 
00167 
00169   void SetTransform(vtkTransform *transform);
00170   vtkGetObjectMacro(Transform, vtkTransform);
00172 
00173 //BTX
00175 
00177   enum VTKTextureBlendingMode
00178   {
00179     VTK_TEXTURE_BLENDING_MODE_NONE = 0,
00180     VTK_TEXTURE_BLENDING_MODE_REPLACE,
00181     VTK_TEXTURE_BLENDING_MODE_MODULATE,
00182     VTK_TEXTURE_BLENDING_MODE_ADD,
00183     VTK_TEXTURE_BLENDING_MODE_ADD_SIGNED,
00184     VTK_TEXTURE_BLENDING_MODE_INTERPOLATE,
00185     VTK_TEXTURE_BLENDING_MODE_SUBTRACT
00186   };
00187 //ETX
00189 
00191 
00193   vtkGetMacro(BlendingMode, int);
00194   vtkSetMacro(BlendingMode, int);
00196 
00198 
00200   vtkGetMacro(PremultipliedAlpha, bool);
00201   vtkSetMacro(PremultipliedAlpha, bool);
00202   vtkBooleanMacro(PremultipliedAlpha, bool);
00204 
00206 
00211   vtkGetMacro(RestrictPowerOf2ImageSmaller, int);
00212   vtkSetMacro(RestrictPowerOf2ImageSmaller, int);
00213   vtkBooleanMacro(RestrictPowerOf2ImageSmaller, int);
00215 
00219   virtual int IsTranslucent();
00220 
00222   virtual int GetTextureUnit() { return 0; }
00223 
00224 protected:
00225   vtkTexture();
00226   ~vtkTexture();
00227 
00228   int Repeat;
00229   int EdgeClamp;
00230   int Interpolate;
00231   int Quality;
00232   int MapColorScalarsThroughLookupTable;
00233   vtkScalarsToColors* LookupTable;
00234   vtkUnsignedCharArray* MappedScalars;
00235   vtkTransform * Transform;
00236 
00237   int BlendingMode;
00238   int RestrictPowerOf2ImageSmaller;
00239   // this is to duplicated the previous behavior of SelfCreatedLookUpTable
00240   int SelfAdjustingTableRange;
00241   bool PremultipliedAlpha;
00242 
00243   // the result of HasTranslucentPolygonalGeometry is cached
00244   vtkTimeStamp TranslucentComputationTime;
00245   int TranslucentCachedResult;
00246 
00247 private:
00248   vtkTexture(const vtkTexture&);  // Not implemented.
00249   void operator=(const vtkTexture&);  // Not implemented.
00250 };
00251 
00252 #endif