00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00049 #ifndef __vtkTypedArray_h
00050 #define __vtkTypedArray_h
00051
00052 #include "vtkArray.h"
00053 #include "vtkTypeTemplate.h"
00054
00055 class vtkArrayCoordinates;
00056
00057 template<typename T>
00058 class vtkTypedArray : public vtkTypeTemplate<vtkTypedArray<T>, vtkArray>
00059 {
00060 public:
00061 #if defined(_MSC_VER) && _MSC_VER < 1400
00062 vtkVariant GetVariantValue(vtkIdType i) { return this->vtkArray::GetVariantValue(i); }
00063 vtkVariant GetVariantValue(vtkIdType i, vtkIdType j) { return this->vtkArray::GetVariantValue(i,j); }
00064 vtkVariant GetVariantValue(vtkIdType i, vtkIdType j, vtkIdType k) { return this->vtkArray::GetVariantValue(i,j,k); }
00065 void SetVariantValue(vtkIdType i, const vtkVariant& value) { this->vtkArray::SetVariantValue(i, value); }
00066 void SetVariantValue(vtkIdType i, vtkIdType j, const vtkVariant& value) { this->vtkArray::SetVariantValue(i,j, value); }
00067 void SetVariantValue(vtkIdType i, vtkIdType j, vtkIdType k, const vtkVariant& value) { this->vtkArray::SetVariantValue(i,j,k, value); }
00068 #else
00069 using vtkTypeTemplate<vtkTypedArray<T>, vtkArray>::GetVariantValue;
00070 using vtkTypeTemplate<vtkTypedArray<T>, vtkArray>::SetVariantValue;
00071 #endif
00072
00073 void PrintSelf(ostream &os, vtkIndent indent);
00074
00075
00076 virtual vtkVariant GetVariantValue(const vtkArrayCoordinates& coordinates);
00077 virtual vtkVariant GetVariantValueN(const vtkIdType n);
00078 virtual void SetVariantValue(const vtkArrayCoordinates& coordinates, const vtkVariant& value);
00079 virtual void SetVariantValueN(const vtkIdType n, const vtkVariant& value);
00080 virtual void CopyValue(vtkArray* source, const vtkArrayCoordinates& source_coordinates, const vtkArrayCoordinates& target_coordinates);
00081 virtual void CopyValue(vtkArray* source, const vtkIdType source_index, const vtkArrayCoordinates& target_coordinates);
00082 virtual void CopyValue(vtkArray* source, const vtkArrayCoordinates& source_coordinates, const vtkIdType target_index);
00083
00085
00088 virtual const T& GetValue(vtkIdType i) = 0;
00089 virtual const T& GetValue(vtkIdType i, vtkIdType j) = 0;
00090 virtual const T& GetValue(vtkIdType i, vtkIdType j, vtkIdType k) = 0;
00091 virtual const T& GetValue(const vtkArrayCoordinates& coordinates) = 0;
00093
00099 virtual const T& GetValueN(const vtkIdType n) = 0;
00100
00102
00105 virtual void SetValue(vtkIdType i, const T& value) = 0;
00106 virtual void SetValue(vtkIdType i, vtkIdType j, const T& value) = 0;
00107 virtual void SetValue(vtkIdType i, vtkIdType j, vtkIdType k, const T& value) = 0;
00108 virtual void SetValue(const vtkArrayCoordinates& coordinates, const T& value) = 0;
00110
00116 virtual void SetValueN(const vtkIdType n, const T& value) = 0;
00117
00118 protected:
00119 vtkTypedArray() {}
00120 ~vtkTypedArray() {}
00121
00122 private:
00123 vtkTypedArray(const vtkTypedArray&);
00124 void operator=(const vtkTypedArray&);
00125 };
00126
00127 #include "vtkTypedArray.txx"
00128
00129 #endif
00130