00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00033 #ifndef __vtkVariantArray_h
00034 #define __vtkVariantArray_h
00035
00036 #include "vtkAbstractArray.h"
00037 #include "vtkVariant.h"
00038
00039 class vtkVariantArrayLookup;
00040
00041 class VTK_COMMON_EXPORT vtkVariantArray : public vtkAbstractArray
00042 {
00043 public:
00044 static vtkVariantArray* New();
00045 vtkTypeRevisionMacro(vtkVariantArray,vtkAbstractArray);
00046 void PrintSelf(ostream& os, vtkIndent indent);
00047
00048
00049
00050
00051
00054 virtual int Allocate(vtkIdType sz, vtkIdType ext=1000);
00055
00057 virtual void Initialize();
00058
00061 virtual int GetDataType();
00062
00066 virtual int GetDataTypeSize();
00067
00072 virtual int GetElementComponentSize();
00073
00076 virtual void SetNumberOfTuples(vtkIdType number);
00077
00083 virtual void SetTuple(vtkIdType i, vtkIdType j, vtkAbstractArray* source);
00084
00088 virtual void InsertTuple(vtkIdType i, vtkIdType j, vtkAbstractArray* source);
00089
00093 virtual vtkIdType InsertNextTuple(vtkIdType j, vtkAbstractArray* source);
00094
00097 virtual void *GetVoidPointer(vtkIdType id);
00098
00101 virtual void DeepCopy(vtkAbstractArray *da);
00102
00104
00108 virtual void InterpolateTuple(vtkIdType i, vtkIdList *ptIndices,
00109 vtkAbstractArray* source, double* weights);
00111
00113
00118 virtual void InterpolateTuple(vtkIdType i,
00119 vtkIdType id1, vtkAbstractArray* source1,
00120 vtkIdType id2, vtkAbstractArray* source2, double t);
00122
00125 virtual void Squeeze();
00126
00129 virtual int Resize(vtkIdType numTuples);
00130
00132
00138 virtual void SetVoidArray(void *arr,
00139 vtkIdType size,
00140 int save);
00142
00149 virtual unsigned long GetActualMemorySize();
00150
00153 virtual int IsNumeric();
00154
00157 virtual vtkArrayIterator* NewIterator();
00158
00159
00160
00161
00162
00163
00165 vtkVariant & GetValue(vtkIdType id) const;
00166
00169 void SetValue(vtkIdType id, vtkVariant value);
00170
00174 void InsertValue(vtkIdType id, vtkVariant value);
00175
00178 vtkIdType InsertNextValue(vtkVariant value);
00179
00182 vtkVariant* GetPointer(vtkIdType id);
00183
00185
00186 void SetArray(vtkVariant* arr, vtkIdType size, int save);
00187
00189
00193 void SetNumberOfValues(vtkIdType number);
00194
00196 vtkIdType GetNumberOfValues() { return this->MaxId + 1; }
00197
00198
00200
00201 virtual vtkIdType LookupValue(vtkVariant value);
00202 virtual void LookupValue(vtkVariant value, vtkIdList* ids);
00203
00205
00212 virtual void DataChanged();
00213
00217 virtual void ClearLookup();
00218
00219 protected:
00220
00221 vtkVariantArray(vtkIdType numComp=1);
00222 ~vtkVariantArray();
00223
00224
00225
00226 vtkVariant* Array;
00227
00228
00229 vtkVariant* ResizeAndExtend(vtkIdType sz);
00230
00231
00232 int SaveUserArray;
00233
00234 private:
00235 vtkVariantArray(const vtkVariantArray&);
00236 void operator=(const vtkVariantArray&);
00237
00238
00239 vtkVariantArrayLookup* Lookup;
00240 void UpdateLookup();
00241
00242 };
00243
00244 #endif