21#ifndef glbarcode_Matrix_hpp
22#define glbarcode_Matrix_hpp
40 Matrix() : mNx(0), mNy(0), mData(nullptr) { }
48 mData((
nx > 0 &&
ny > 0) ? new T[
nx *
ny] : nullptr) { }
56 mData((src.mNx > 0 && src.mNy > 0) ? new T[src.mNx * src.mNy] : nullptr)
58 for (
int iy = 0; iy < mNy; iy++ )
60 for (
int ix = 0; ix < mNx; ix++ )
62 (*this)[iy][ix] = src[iy][ix];
77 mData((
nx > 0 &&
ny > 0) ? new T[
nx *
ny] : nullptr)
79 for (
int iy = 0; iy < mNy; iy++ )
81 if ( (y0+iy) < src.
ny() )
83 for (
int ix = 0; ix < mNx; ix++ )
85 if ( (x0+ix) < src.
nx() )
87 (*this)[iy][ix] = src[y0+iy][x0+ix];
100 if ( mData !=
nullptr )
121 return (mData + (mNx * i));
130 if ( mData !=
nullptr )
136 mData = (
nx > 0 &&
ny > 0) ?
new T[
nx *
ny] :
nullptr;
145 inline int nx()
const
156 inline int ny()
const
176 for (
int iy = 0; iy < a.
ny(); iy++ )
178 if ( (y0 + iy) < mNy )
180 for (
int ix = 0; ix < a.
nx(); ix++ )
182 if ( (x0 + ix) < mNx )
184 (*this)[y0+iy][x0+ix] = a[iy][ix];
197 for (
int iy = 0; iy < mNy; iy++ )
199 for (
int ix = 0; ix < mNx; ix++ )
201 (*this)[iy][ix] = val;
Matrix< T > subMatrix(int x0, int y0, int nx, int ny)
Definition Matrix.hpp:165
Matrix(const Matrix< T > &src)
Definition Matrix.hpp:54
int nx() const
Definition Matrix.hpp:145
Matrix()
Definition Matrix.hpp:40
Matrix & operator=(const Matrix &src)
Definition Matrix.hpp:110
T * operator[](int i) const
Definition Matrix.hpp:119
void setSubMatrix(int x0, int y0, Matrix< T > &a)
Definition Matrix.hpp:174
void fill(T val)
Definition Matrix.hpp:195
~Matrix()
Definition Matrix.hpp:98
Matrix(int nx, int ny)
Definition Matrix.hpp:46
void resize(int nx, int ny)
Definition Matrix.hpp:128
int ny() const
Definition Matrix.hpp:156
Matrix(const Matrix< T > &src, int x0, int y0, int nx, int ny)
Definition Matrix.hpp:71
Definition Barcode.hpp:38