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 using vtkTypeTemplate<vtkTypedArray<T>, vtkArray>::GetVariantValue;
00062 using vtkTypeTemplate<vtkTypedArray<T>, vtkArray>::SetVariantValue;
00063
00064 void PrintSelf(ostream &os, vtkIndent indent);
00065
00066
00067 virtual vtkVariant GetVariantValue(const vtkArrayCoordinates& coordinates);
00068 virtual vtkVariant GetVariantValueN(const vtkIdType n);
00069 virtual void SetVariantValue(const vtkArrayCoordinates& coordinates, const vtkVariant& value);
00070 virtual void SetVariantValueN(const vtkIdType n, const vtkVariant& value);
00071 virtual void CopyValue(vtkArray* source, const vtkArrayCoordinates& source_coordinates, const vtkArrayCoordinates& target_coordinates);
00072 virtual void CopyValue(vtkArray* source, const vtkIdType source_index, const vtkArrayCoordinates& target_coordinates);
00073 virtual void CopyValue(vtkArray* source, const vtkArrayCoordinates& source_coordinates, const vtkIdType target_index);
00074
00076
00079 inline const T& GetValue(vtkIdType i);
00080 inline const T& GetValue(vtkIdType i, vtkIdType j);
00081 inline const T& GetValue(vtkIdType i, vtkIdType j, vtkIdType k);
00082 virtual const T& GetValue(const vtkArrayCoordinates& coordinates) = 0;
00084
00090 virtual const T& GetValueN(const vtkIdType n) = 0;
00091
00093
00096 inline void SetValue(vtkIdType i, const T& value);
00097 inline void SetValue(vtkIdType i, vtkIdType j, const T& value);
00098 inline void SetValue(vtkIdType i, vtkIdType j, vtkIdType k, const T& value);
00099 virtual void SetValue(const vtkArrayCoordinates& coordinates, const T& value) = 0;
00101
00107 virtual void SetValueN(const vtkIdType n, const T& value) = 0;
00108
00109 protected:
00110 vtkTypedArray() {}
00111 ~vtkTypedArray() {}
00112
00113 private:
00114 vtkTypedArray(const vtkTypedArray&);
00115 void operator=(const vtkTypedArray&);
00116 };
00117
00118 #include "vtkTypedArray.txx"
00119
00120 #endif
00121