40 Bool(
bool value =
false) : value_(value) {}
41 Bool& operator=(
bool value) {
46 operator bool()
const {
49 const bool* operator&()
const {
55 bool operator==(
const Bool& rhs)
const {
56 return value_ == rhs.value_;
58 bool operator==(
bool rhs)
const {
61 bool operator!=(
const Bool& rhs)
const {
62 return value_ != rhs.value_;
64 bool operator!=(
bool rhs)
const {
76template <
typename T,
size_t N>
79 static constexpr size_t kSize = N;
87 template <
typename Z = enable_if<(N == 2), T>>
91 template <
typename Z = enable_if<(N == 3), T>>
95 template <
typename W = enable_if<(N == 4), T>>
96 PointND(T x, T y, T z, T w) : dim{x, y, z, w} {}
99 for (
size_t s = 0; s < N; s++) {
100 if (dim[s] != rhs.dim[s]) {
106 bool operator!=(
const PointND<T, N>& rhs)
const {
107 return !operator==(rhs);
109 PointND& operator=(
const T rhs[N]) {
110 for (
size_t s = 0; s < N; s++) {
129 template <
typename Z = enable_if<(N > 2), T>>
133 template <
typename Z = enable_if<(N > 2), T>>
137 template <
typename W = enable_if<(N > 3), T>>
141 template <
typename W = enable_if<(N > 3), T>>
146 T& operator[](
size_t n) {
149 const T& operator[](
size_t n)
const {
178template <
typename T,
size_t N>
181 static constexpr size_t kMatrixSize = N;
196 for (
size_t s = 0; s < N; s++) {
197 if (points[s] != rhs[s]) {
204 return !operator==(rhs);
206 MatrixND& operator=(
const T rhs[N][N]) {
207 for (
size_t s = 0; s < N; s++) {
Substitute for bool POD type, which can be used safely in DataPiece templates.
Definition DataPieceTypes.h:37
Definition Compressor.cpp:113
MatrixND< float, 2 > Matrix2Df
2D float matrix class.
Definition DataPieceTypes.h:219
PointND< double, 2 > Point2Dd
2D double point class.
Definition DataPieceTypes.h:157
MatrixND< double, 4 > Matrix4Dd
4D double matrix class.
Definition DataPieceTypes.h:231
PointND< double, 3 > Point3Dd
3D double point class.
Definition DataPieceTypes.h:164
PointND< double, 4 > Point4Dd
4D double point class.
Definition DataPieceTypes.h:171
PointND< int32_t, 2 > Point2Di
2D int32_t point class.
Definition DataPieceTypes.h:161
MatrixND< float, 4 > Matrix4Df
4D float matrix class.
Definition DataPieceTypes.h:233
PointND< float, 2 > Point2Df
2D float point class.
Definition DataPieceTypes.h:159
MatrixND< float, 3 > Matrix3Df
3D float matrix class.
Definition DataPieceTypes.h:226
PointND< float, 4 > Point4Df
4D float point class.
Definition DataPieceTypes.h:173
MatrixND< int32_t, 3 > Matrix3Di
3D int32_t matrix class.
Definition DataPieceTypes.h:228
PointND< float, 3 > Point3Df
3D float point class.
Definition DataPieceTypes.h:166
MatrixND< double, 3 > Matrix3Dd
3D double matrix class.
Definition DataPieceTypes.h:224
PointND< int32_t, 3 > Point3Di
3D int32_t point class.
Definition DataPieceTypes.h:168
PointND< int32_t, 4 > Point4Di
4D int32_t point class.
Definition DataPieceTypes.h:175
MatrixND< int32_t, 2 > Matrix2Di
2D int32_t matrix class.
Definition DataPieceTypes.h:221
MatrixND< double, 2 > Matrix2Dd
2D double matrix class.
Definition DataPieceTypes.h:217
MatrixND< int32_t, 4 > Matrix4Di
4D int32_t matrix class.
Definition DataPieceTypes.h:235
Class to represent matrices of 3 and 4 dimensions, each for either int32_t, float or double.
Definition DataPieceTypes.h:179
POD type for of 2, 3 and 4 dimensions points, each for either int32_t, float or double.
Definition DataPieceTypes.h:77
PointND(T x, T y, T z)
3D point constructor
Definition DataPieceTypes.h:92
PointND(T x, T y)
2D point constructor
Definition DataPieceTypes.h:88
PointND(T x, T y, T z, T w)
4D point constructor
Definition DataPieceTypes.h:96