00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkGenericVertexAttributeMapping.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 =========================================================================*/ 00027 #ifndef __vtkGenericVertexAttributeMapping_h 00028 #define __vtkGenericVertexAttributeMapping_h 00029 00030 #include "vtkObject.h" 00031 00032 class VTK_RENDERING_EXPORT vtkGenericVertexAttributeMapping : public vtkObject 00033 { 00034 public: 00035 static vtkGenericVertexAttributeMapping* New(); 00036 vtkTypeRevisionMacro(vtkGenericVertexAttributeMapping, vtkObject); 00037 void PrintSelf(ostream& os, vtkIndent indent); 00038 00040 00043 void AddMapping(const char* attributeName, const char* arrayName, 00044 int fieldAssociation, int component); 00046 00048 bool RemoveMapping(const char* attributeName); 00049 00051 void RemoveAllMappings(); 00052 00054 unsigned int GetNumberOfMappings(); 00055 00057 const char* GetAttributeName(unsigned int index); 00058 00060 const char* GetArrayName(unsigned int index); 00061 00063 int GetFieldAssociation(unsigned int index); 00064 00066 int GetComponent(unsigned int index); 00067 00068 //BTX 00069 protected: 00070 vtkGenericVertexAttributeMapping(); 00071 ~vtkGenericVertexAttributeMapping(); 00072 00073 private: 00074 vtkGenericVertexAttributeMapping(const vtkGenericVertexAttributeMapping&); // Not implemented. 00075 void operator=(const vtkGenericVertexAttributeMapping&); // Not implemented. 00076 00077 class vtkInternal; 00078 vtkInternal* Internal; 00079 //ETX 00080 }; 00081 00082 #endif 00083 00084