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 typedef typename vtkArray::CoordinateT CoordinateT;
00062 typedef typename vtkArray::SizeT SizeT;
00063
00064 #if (defined(_MSC_VER) && _MSC_VER < 1400) || defined(__WRAP__)
00065 vtkVariant GetVariantValue(vtkIdType i) { return this->vtkArray::GetVariantValue(i); }
00066 vtkVariant GetVariantValue(vtkIdType i, vtkIdType j) { return this->vtkArray::GetVariantValue(i,j); }
00067 vtkVariant GetVariantValue(vtkIdType i, vtkIdType j, vtkIdType k) { return this->vtkArray::GetVariantValue(i,j,k); }
00068 void SetVariantValue(vtkIdType i, const vtkVariant& value) { this->vtkArray::SetVariantValue(i, value); }
00069 void SetVariantValue(vtkIdType i, vtkIdType j, const vtkVariant& value) { this->vtkArray::SetVariantValue(i,j, value); }
00070 void SetVariantValue(vtkIdType i, vtkIdType j, vtkIdType k, const vtkVariant& value) { this->vtkArray::SetVariantValue(i,j,k, value); }
00071 #else
00072 using vtkTypeTemplate<vtkTypedArray<T>, vtkArray>::GetVariantValue;
00073 using vtkTypeTemplate<vtkTypedArray<T>, vtkArray>::SetVariantValue;
00074 #endif
00075
00076 void PrintSelf(ostream &os, vtkIndent indent);
00077
00078
00079 virtual vtkVariant GetVariantValue(const vtkArrayCoordinates& coordinates);
00080 virtual vtkVariant GetVariantValueN(const SizeT n);
00081 virtual void SetVariantValue(const vtkArrayCoordinates& coordinates, const vtkVariant& value);
00082 virtual void SetVariantValueN(const SizeT n, const vtkVariant& value);
00083 virtual void CopyValue(vtkArray* source, const vtkArrayCoordinates& source_coordinates, const vtkArrayCoordinates& target_coordinates);
00084 virtual void CopyValue(vtkArray* source, const SizeT source_index, const vtkArrayCoordinates& target_coordinates);
00085 virtual void CopyValue(vtkArray* source, const vtkArrayCoordinates& source_coordinates, const SizeT target_index);
00086
00088
00091 virtual const T& GetValue(CoordinateT i) = 0;
00092 virtual const T& GetValue(CoordinateT i, CoordinateT j) = 0;
00093 virtual const T& GetValue(CoordinateT i, CoordinateT j, CoordinateT k) = 0;
00094 virtual const T& GetValue(const vtkArrayCoordinates& coordinates) = 0;
00096
00102 virtual const T& GetValueN(const SizeT n) = 0;
00103
00105
00108 virtual void SetValue(CoordinateT i, const T& value) = 0;
00109 virtual void SetValue(CoordinateT i, CoordinateT j, const T& value) = 0;
00110 virtual void SetValue(CoordinateT i, CoordinateT j, CoordinateT k, const T& value) = 0;
00111 virtual void SetValue(const vtkArrayCoordinates& coordinates, const T& value) = 0;
00113
00119 virtual void SetValueN(const SizeT n, const T& value) = 0;
00120
00121 protected:
00122 vtkTypedArray() {}
00123 ~vtkTypedArray() {}
00124
00125 private:
00126 vtkTypedArray(const vtkTypedArray&);
00127 void operator=(const vtkTypedArray&);
00128 };
00129
00130 #include "vtkTypedArray.txx"
00131
00132 #endif
00133