00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00025 #ifndef __vtkGenericAttributeCollection_h
00026 #define __vtkGenericAttributeCollection_h
00027
00028 #include "vtkObject.h"
00029
00030 class vtkGenericAttributeInternalVector;
00031 class vtkIntInternalVector;
00032 class vtkGenericAttribute;
00033
00034 class VTK_FILTERING_EXPORT vtkGenericAttributeCollection : public vtkObject
00035 {
00036 public:
00038 static vtkGenericAttributeCollection *New();
00039
00041
00042 vtkTypeMacro(vtkGenericAttributeCollection,vtkObject);
00043 virtual void PrintSelf(ostream& os, vtkIndent indent);
00045
00049 int GetNumberOfAttributes();
00050
00053 int GetNumberOfComponents();
00054
00058 int GetNumberOfPointCenteredComponents();
00059
00063 int GetMaxNumberOfComponents();
00064
00068 unsigned long GetActualMemorySize();
00069
00072 int IsEmpty();
00073
00077 vtkGenericAttribute *GetAttribute(int i);
00078
00083 int FindAttribute(const char *name);
00084
00089 int GetAttributeIndex(int i);
00090
00095 void InsertNextAttribute(vtkGenericAttribute *a);
00096
00101 void InsertAttribute(int i, vtkGenericAttribute *a);
00102
00106 void RemoveAttribute(int i);
00107
00109 void Reset();
00110
00114 void DeepCopy(vtkGenericAttributeCollection *other);
00115
00119 void ShallowCopy(vtkGenericAttributeCollection *other);
00120
00123 virtual unsigned long int GetMTime();
00124
00125
00126
00127
00128
00130
00133 vtkGetMacro(ActiveAttribute, int);
00135
00137
00141 vtkGetMacro(ActiveComponent, int);
00143
00150 void SetActiveAttribute(int attribute, int component = 0);
00151
00153
00155 vtkGetMacro(NumberOfAttributesToInterpolate, int);
00157
00158
00160
00163 int *GetAttributesToInterpolate();
00164
00166
00170 int HasAttribute(int size, int *attributes, int attribute);
00171
00173
00179 void SetAttributesToInterpolate(int size, int *attributes);
00180 void SetAttributesToInterpolateToAll();
00182
00183 protected:
00185 vtkGenericAttributeCollection();
00186
00188 virtual ~vtkGenericAttributeCollection();
00189
00191
00192 vtkGenericAttributeInternalVector* AttributeInternalVector;
00193
00194
00195 vtkIntInternalVector *AttributeIndices;
00197
00198 int ActiveAttribute;
00199 int ActiveComponent;
00200 int NumberOfAttributesToInterpolate;
00201 int AttributesToInterpolate[10];
00202
00203 int NumberOfComponents;
00204 int NumberOfPointCenteredComponents;
00205 int MaxNumberOfComponents;
00206 unsigned long ActualMemorySize;
00207 vtkTimeStamp ComputeTime;
00208
00211 void ComputeNumbers();
00212
00213 private:
00214 vtkGenericAttributeCollection(const vtkGenericAttributeCollection &);
00215 void operator=(const vtkGenericAttributeCollection &);
00216 };
00217 #endif