31 #include "Utilities/STL/MxVector.h" 32 #include "Utilities/Array/ArrayView.h" 40 template<
typename T,
template<
typename>
typename Base = MxVector>
44 using BaseStorage = Base<T>;
63 [[nodiscard]]
size_t size()
const;
67 const T*
data()
const;
71 void resize(
size_t width,
size_t height, T value = T());
72 void rearrange(
size_t width,
size_t height);
75 auto begin() {
return this->_vec.begin(); }
76 auto end() {
return this->_vec.end(); }
77 auto begin()
const {
return this->_vec.begin(); }
78 auto end()
const {
return this->_vec.end(); }
84 template<
typename T,
template<
typename>
typename Base>
93 template<
typename T,
template<
typename>
typename Base>
96 return this->_vec.size();
102 template<
typename T,
template<
typename>
typename Base>
105 return this->_height;
111 template<
typename T,
template<
typename>
typename Base>
114 return this->_height == 0 ? 0 : this->_vec.size() / this->_height;
120 template<
typename T,
template<
typename>
typename Base>
123 return this->_vec.data();
129 template<
typename T,
template<
typename>
typename Base>
132 return this->_vec.data();
140 template<
typename T,
template<
typename>
typename Base>
143 MX_ASSERT(idx * this->_height < this->_vec.size());
144 return ArrayView<T>(_vec.data() + idx * this->_height, this->_height);
152 template<
typename T,
template<
typename>
typename Base>
155 MX_ASSERT(idx * this->_height < this->_vec.size());
165 template<
typename T,
template<
typename>
typename Base>
168 this->_vec.resize(width * height, value);
178 template<
typename T,
template<
typename>
typename Base>
181 MX_ASSERT(width * height == this->_vec.size());
188 template<
typename T,
template<
typename>
typename Base>
void clear()
Definition: Array2D.h:189
size_t width() const
Definition: Array2D.h:112
Array2D()
Definition: Array2D.h:85
void resize(size_t width, size_t height, T value=T())
Definition: Array2D.h:166
void rearrange(size_t width, size_t height)
Definition: Array2D.h:179
size_t size() const
Definition: Array2D.h:94
size_t height() const
Definition: Array2D.h:103
T * data()
Definition: Array2D.h:121
Definition: ArrayView.h:44
Definition: Application.cpp:49
ArrayView< T > operator[](size_t idx)
Definition: Array2D.h:141