00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00064 #ifndef __vtkArrayExtents_h
00065 #define __vtkArrayExtents_h
00066
00067 #include "vtkSystemIncludes.h"
00068 #include "vtkArrayRange.h"
00069 #include <vtksys/stl/vector>
00070
00071 class vtkArrayCoordinates;
00072
00073 class VTK_COMMON_EXPORT vtkArrayExtents
00074 {
00075 public:
00077 vtkArrayExtents();
00078
00080
00082 explicit vtkArrayExtents(const vtkIdType i);
00083
00084
00085 explicit vtkArrayExtents(const vtkArrayRange& i);
00087
00089
00091 vtkArrayExtents(const vtkIdType i, const vtkIdType j);
00092
00093
00094 vtkArrayExtents(const vtkArrayRange& i, const vtkArrayRange& j);
00096
00098
00101 vtkArrayExtents(const vtkIdType i, const vtkIdType j, const vtkIdType k);
00102
00103
00104 vtkArrayExtents(const vtkArrayRange& i, const vtkArrayRange& j, const vtkArrayRange& k);
00106
00109 static const vtkArrayExtents Uniform(vtkIdType n, vtkIdType m);
00110
00113 void Append(const vtkArrayRange& extent);
00114
00116 vtkIdType GetDimensions() const;
00117
00121 vtkIdType GetSize() const;
00122
00127 void SetDimensions(vtkIdType dimensions);
00128
00130 vtkArrayRange& operator[](vtkIdType i);
00131
00133 const vtkArrayRange& operator[](vtkIdType i) const;
00134
00136 bool operator==(const vtkArrayExtents& rhs) const;
00137
00139 bool operator!=(const vtkArrayExtents& rhs) const;
00140
00147 bool ZeroBased() const;
00148
00152 bool SameShape(const vtkArrayExtents& rhs) const;
00153
00155
00161 void GetLeftToRightCoordinatesN(vtkIdType n, vtkArrayCoordinates& coordinates) const;
00162
00163
00164
00165
00166
00167
00168 void GetRightToLeftCoordinatesN(vtkIdType n, vtkArrayCoordinates& coordinates) const;
00170
00175 bool Contains(const vtkArrayExtents& extents) const;
00176
00182 bool Contains(const vtkArrayCoordinates& coordinates) const;
00183
00184 VTK_COMMON_EXPORT friend ostream& operator<<(
00185 ostream& stream, const vtkArrayExtents& rhs);
00186
00187 private:
00188 vtksys_stl::vector<vtkArrayRange> Storage;
00189 };
00190
00191 #endif
00192