VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkUniformVariables.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 =========================================================================*/ 00029 #ifndef __vtkUniformVariables_h 00030 #define __vtkUniformVariables_h 00031 00032 #include "vtkObject.h" 00033 00034 class vtkUniformVariablesMap; // internal 00035 00036 class VTK_RENDERING_EXPORT vtkUniformVariables : public vtkObject 00037 { 00038 public: 00039 static vtkUniformVariables *New(); 00040 vtkTypeRevisionMacro(vtkUniformVariables,vtkObject); 00041 void PrintSelf(ostream &os, vtkIndent indent); 00042 00044 00047 void SetUniformi(const char *name, 00048 int numberOfComponents, 00049 int *value); 00051 00053 00056 void SetUniformf(const char *name, 00057 int numberOfComponents, 00058 float *value); 00060 00062 00065 void SetUniformMatrix(const char *name, 00066 int rows, 00067 int columns, 00068 float *value); 00070 00072 void RemoveUniform(const char *name); 00073 00075 00076 void Send(const char *name, 00077 int uniformIndex); 00079 00081 void Start(); 00082 00084 bool IsAtEnd(); 00085 00088 const char *GetCurrentName(); 00089 00092 void SendCurrentUniform(int uniformIndex); 00093 00095 void Next(); 00096 00099 void DeepCopy(vtkUniformVariables *other); 00100 00101 protected: 00102 vtkUniformVariables(); 00103 virtual ~vtkUniformVariables(); 00104 00105 private: 00106 vtkUniformVariables(const vtkUniformVariables&); // Not implemented. 00107 void operator=(const vtkUniformVariables&); // Not implemented. 00108 00109 vtkUniformVariablesMap *Map; 00110 }; 00111 #endif