23#include <vrs/VrsExport.h>
42 Bool(
bool value =
false) : value_(value) {}
43 Bool& operator=(
bool value) {
48 operator bool()
const {
51 const bool* operator&()
const {
57 bool operator==(
const Bool& rhs)
const {
58 return value_ == rhs.value_;
60 bool operator==(
bool rhs)
const {
63 bool operator!=(
const Bool& rhs)
const {
64 return value_ != rhs.value_;
66 bool operator!=(
bool rhs)
const {
78template <
typename T,
size_t N>
81 static constexpr size_t kSize = N;
89 template <
typename Z = enable_if<(N == 2), T>>
93 template <
typename Z = enable_if<(N == 3), T>>
97 template <
typename W = enable_if<(N == 4), T>>
98 PointND(T x, T y, T z, T w) : dim{x, y, z, w} {}
101 for (
size_t s = 0; s < N; s++) {
102 if (dim[s] != rhs.dim[s]) {
108 bool operator!=(
const PointND<T, N>& rhs)
const {
109 return !operator==(rhs);
111 PointND& operator=(
const T rhs[N]) {
112 for (
size_t s = 0; s < N; s++) {
131 template <
typename Z = enable_if<(N > 2), T>>
135 template <
typename Z = enable_if<(N > 2), T>>
139 template <
typename W = enable_if<(N > 3), T>>
143 template <
typename W = enable_if<(N > 3), T>>
148 T& operator[](
size_t n) {
151 const T& operator[](
size_t n)
const {
180template <
typename T,
size_t N>
183 static constexpr size_t kMatrixSize = N;
198 for (
size_t s = 0; s < N; s++) {
199 if (points[s] != rhs[s]) {
206 return !operator==(rhs);
208 MatrixND& operator=(
const T rhs[N][N]) {
209 for (
size_t s = 0; s < N; s++) {
Substitute for bool POD type, which can be used safely in DataPiece templates.
Definition DataPieceTypes.h:39
Definition Compressor.cpp:113
MatrixND< float, 2 > Matrix2Df
2D float matrix class.
Definition DataPieceTypes.h:221
PointND< double, 2 > Point2Dd
2D double point class.
Definition DataPieceTypes.h:159
MatrixND< double, 4 > Matrix4Dd
4D double matrix class.
Definition DataPieceTypes.h:233
PointND< double, 3 > Point3Dd
3D double point class.
Definition DataPieceTypes.h:166
PointND< double, 4 > Point4Dd
4D double point class.
Definition DataPieceTypes.h:173
PointND< int32_t, 2 > Point2Di
2D int32_t point class.
Definition DataPieceTypes.h:163
MatrixND< float, 4 > Matrix4Df
4D float matrix class.
Definition DataPieceTypes.h:235
PointND< float, 2 > Point2Df
2D float point class.
Definition DataPieceTypes.h:161
MatrixND< float, 3 > Matrix3Df
3D float matrix class.
Definition DataPieceTypes.h:228
PointND< float, 4 > Point4Df
4D float point class.
Definition DataPieceTypes.h:175
MatrixND< int32_t, 3 > Matrix3Di
3D int32_t matrix class.
Definition DataPieceTypes.h:230
PointND< float, 3 > Point3Df
3D float point class.
Definition DataPieceTypes.h:168
MatrixND< double, 3 > Matrix3Dd
3D double matrix class.
Definition DataPieceTypes.h:226
PointND< int32_t, 3 > Point3Di
3D int32_t point class.
Definition DataPieceTypes.h:170
PointND< int32_t, 4 > Point4Di
4D int32_t point class.
Definition DataPieceTypes.h:177
MatrixND< int32_t, 2 > Matrix2Di
2D int32_t matrix class.
Definition DataPieceTypes.h:223
MatrixND< double, 2 > Matrix2Dd
2D double matrix class.
Definition DataPieceTypes.h:219
MatrixND< int32_t, 4 > Matrix4Di
4D int32_t matrix class.
Definition DataPieceTypes.h:237
Class to represent matrices of 3 and 4 dimensions, each for either int32_t, float or double.
Definition DataPieceTypes.h:181
POD type for of 2, 3 and 4 dimensions points, each for either int32_t, float or double.
Definition DataPieceTypes.h:79
PointND(T x, T y, T z)
3D point constructor
Definition DataPieceTypes.h:94
PointND(T x, T y)
2D point constructor
Definition DataPieceTypes.h:90
PointND(T x, T y, T z, T w)
4D point constructor
Definition DataPieceTypes.h:98