add unit_init ctors

This commit is contained in:
BlackMATov
2021-02-25 04:24:20 +07:00
parent 9fc1e3e7ab
commit 28bc36c0cd
10 changed files with 127 additions and 129 deletions

View File

@@ -88,8 +88,10 @@ public:
T x, y;
vec_base();
explicit vec_base(uninit_t);
explicit vec_base(zero_init_t);
vec_base(uninit_t);
vec_base(zero_init_t);
vec_base(unit_init_t);
explicit vec_base(T v);
vec_base(T x, T y);
@@ -101,11 +103,14 @@ public:
T x, y, z;
vec_base();
explicit vec_base(uninit_t);
explicit vec_base(zero_init_t);
vec_base(uninit_t);
vec_base(zero_init_t);
vec_base(unit_init_t);
explicit vec_base(T v);
vec_base(T x, T y, T z);
vec_base(const vec_base<T, 2>& xy, T z);
vec_base(T x, const vec_base<T, 2>& yz);
@@ -118,15 +123,20 @@ public:
T x, y, z, w;
vec_base();
explicit vec_base(uninit_t);
explicit vec_base(zero_init_t);
vec_base(uninit_t);
vec_base(zero_init_t);
vec_base(unit_init_t);
explicit vec_base(T v);
vec_base(T x, T y, T z, T w);
vec_base(const vec_base<T, 2>& xy, T z, T w);
vec_base(T x, const vec_base<T, 2>& yz, T w);
vec_base(T x, T y, const vec_base<T, 2>& zw);
vec_base(const vec_base<T, 2>& xy, const vec_base<T, 2>& zw);
vec_base(const vec_base<T, 3>& xyz, T w);
vec_base(T x, const vec_base<T, 3>& yzw);
@@ -223,9 +233,11 @@ public:
row_type rows[2];
mat_base();
explicit mat_base(uninit_t);
explicit mat_base(zero_init_t);
explicit mat_base(identity_init_t);
mat_base(uninit_t);
mat_base(zero_init_t);
mat_base(unit_init_t);
mat_base(identity_init_t);
explicit mat_base(T d);
explicit mat_base(const row_type& d);
@@ -246,9 +258,11 @@ public:
row_type rows[3];
mat_base();
explicit mat_base(uninit_t);
explicit mat_base(zero_init_t);
explicit mat_base(identity_init_t);
mat_base(uninit_t);
mat_base(zero_init_t);
mat_base(unit_init_t);
mat_base(identity_init_t);
explicit mat_base(T d);
explicit mat_base(const row_type& d);
@@ -279,9 +293,11 @@ public:
row_type rows[4];
mat_base();
explicit mat_base(uninit_t);
explicit mat_base(zero_init_t);
explicit mat_base(identity_init_t);
mat_base(uninit_t);
mat_base(zero_init_t);
mat_base(unit_init_t);
mat_base(identity_init_t);
explicit mat_base(T d);
explicit mat_base(const row_type& d);
@@ -397,9 +413,10 @@ public:
T s;
qua_base();
explicit qua_base(uninit_t);
explicit qua_base(zero_init_t);
explicit qua_base(identity_init_t);
qua_base(uninit_t);
qua_base(zero_init_t);
qua_base(identity_init_t);
qua_base(T vx, T vy, T vz, T s);
qua_base(const vec<T, 3>& v, T s);
@@ -1695,6 +1712,7 @@ template < typename T > inline mat<T, 2> identity2x2;
template < typename T > inline mat<T, 3> identity3x3;
template < typename T > inline mat<T, 4> identity4x4;
template < typename T > inline qua<T> qzero;
template < typename T > inline qua<T> qidentity;
```

View File

@@ -19,13 +19,13 @@
namespace vmath_hpp
{
template < typename T > inline constexpr vec<T, 2> zero2{T{0}, T{0}};
template < typename T > inline constexpr vec<T, 3> zero3{T{0}, T{0}, T{0}};
template < typename T > inline constexpr vec<T, 4> zero4{T{0}, T{0}, T{0}, T{0}};
template < typename T > inline constexpr vec<T, 2> zero2{zero_init};
template < typename T > inline constexpr vec<T, 3> zero3{zero_init};
template < typename T > inline constexpr vec<T, 4> zero4{zero_init};
template < typename T > inline constexpr vec<T, 2> unit2{T{1}, T{1}};
template < typename T > inline constexpr vec<T, 3> unit3{T{1}, T{1}, T{1}};
template < typename T > inline constexpr vec<T, 4> unit4{T{1}, T{1}, T{1}, T{1}};
template < typename T > inline constexpr vec<T, 2> unit2{unit_init};
template < typename T > inline constexpr vec<T, 3> unit3{unit_init};
template < typename T > inline constexpr vec<T, 4> unit4{unit_init};
template < typename T > inline constexpr vec<T, 2> unit2_x{T{1}, T{0}};
template < typename T > inline constexpr vec<T, 2> unit2_y{T{0}, T{1}};
@@ -39,52 +39,20 @@ namespace vmath_hpp
template < typename T > inline constexpr vec<T, 4> unit4_z{T{0}, T{0}, T{1}, T{0}};
template < typename T > inline constexpr vec<T, 4> unit4_w{T{0}, T{0}, T{0}, T{1}};
template < typename T > inline constexpr mat<T, 2> zero2x2{
T{0}, T{0},
T{0}, T{0}};
template < typename T > inline constexpr mat<T, 2> zero2x2{zero_init};
template < typename T > inline constexpr mat<T, 3> zero3x3{zero_init};
template < typename T > inline constexpr mat<T, 4> zero4x4{zero_init};
template < typename T > inline constexpr mat<T, 3> zero3x3{
T{0}, T{0}, T{0},
T{0}, T{0}, T{0},
T{0}, T{0}, T{0}};
template < typename T > inline constexpr mat<T, 2> unit2x2{unit_init};
template < typename T > inline constexpr mat<T, 3> unit3x3{unit_init};
template < typename T > inline constexpr mat<T, 4> unit4x4{unit_init};
template < typename T > inline constexpr mat<T, 4> zero4x4{
T{0}, T{0}, T{0}, T{0},
T{0}, T{0}, T{0}, T{0},
T{0}, T{0}, T{0}, T{0},
T{0}, T{0}, T{0}, T{0}};
template < typename T > inline constexpr mat<T, 2> identity2x2{identity_init};
template < typename T > inline constexpr mat<T, 3> identity3x3{identity_init};
template < typename T > inline constexpr mat<T, 4> identity4x4{identity_init};
template < typename T > inline constexpr mat<T, 2> unit2x2{
T{1}, T{1},
T{1}, T{1}};
template < typename T > inline constexpr mat<T, 3> unit3x3{
T{1}, T{1}, T{1},
T{1}, T{1}, T{1},
T{1}, T{1}, T{1}};
template < typename T > inline constexpr mat<T, 4> unit4x4{
T{1}, T{1}, T{1}, T{1},
T{1}, T{1}, T{1}, T{1},
T{1}, T{1}, T{1}, T{1},
T{1}, T{1}, T{1}, T{1}};
template < typename T > inline constexpr mat<T, 2> identity2x2{
T{1}, T{0},
T{0}, T{1}};
template < typename T > inline constexpr mat<T, 3> identity3x3{
T{1}, T{0}, T{0},
T{0}, T{1}, T{0},
T{0}, T{0}, T{1}};
template < typename T > inline constexpr mat<T, 4> identity4x4{
T{1}, T{0}, T{0}, T{0},
T{0}, T{1}, T{0}, T{0},
T{0}, T{0}, T{1}, T{0},
T{0}, T{0}, T{0}, T{1}};
template < typename T > inline constexpr qua<T> qidentity{T{0}, T{0}, T{0}, T{1}};
template < typename T > inline constexpr qua<T> qzero{zero_init};
template < typename T > inline constexpr qua<T> qidentity{identity_init};
}
//

View File

@@ -46,6 +46,9 @@ namespace vmath_hpp
struct zero_init_t { explicit zero_init_t() = default; };
inline constexpr zero_init_t zero_init{};
struct unit_init_t { explicit unit_init_t() = default; };
inline constexpr unit_init_t unit_init{};
struct identity_init_t { explicit identity_init_t() = default; };
inline constexpr identity_init_t identity_init{};
}

View File

@@ -25,17 +25,10 @@ namespace vmath_hpp::detail
constexpr mat_base()
: mat_base(identity_init) {}
constexpr explicit mat_base(uninit_t) {}
constexpr explicit mat_base(zero_init_t)
: rows{
{T{0}, T{0}},
{T{0}, T{0}}} {}
constexpr explicit mat_base(identity_init_t)
: rows{
{T{1}, T{0}},
{T{0}, T{1}}} {}
constexpr mat_base(uninit_t) {}
constexpr mat_base(zero_init_t) : mat_base{zero_init, zero_init} {}
constexpr mat_base(unit_init_t) : mat_base{unit_init, unit_init} {}
constexpr mat_base(identity_init_t) : mat_base{T{1}} {}
constexpr explicit mat_base(T d)
: rows{
@@ -69,19 +62,10 @@ namespace vmath_hpp::detail
constexpr mat_base()
: mat_base(identity_init) {}
constexpr explicit mat_base(uninit_t) {}
constexpr explicit mat_base(zero_init_t)
: rows{
{T{0}, T{0}, T{0}},
{T{0}, T{0}, T{0}},
{T{0}, T{0}, T{0}}} {}
constexpr explicit mat_base(identity_init_t)
: rows{
{T{1}, T{0}, T{0}},
{T{0}, T{1}, T{0}},
{T{0}, T{0}, T{1}}} {}
constexpr mat_base(uninit_t) {}
constexpr mat_base(zero_init_t) : mat_base{zero_init, zero_init, zero_init} {}
constexpr mat_base(unit_init_t) : mat_base{unit_init, unit_init, unit_init} {}
constexpr mat_base(identity_init_t) : mat_base{T{1}} {}
constexpr explicit mat_base(T d)
: rows{
@@ -141,21 +125,10 @@ namespace vmath_hpp::detail
constexpr mat_base()
: mat_base(identity_init) {}
constexpr explicit mat_base(uninit_t) {}
constexpr explicit mat_base(zero_init_t)
: rows{
{T{0}, T{0}, T{0}, T{0}},
{T{0}, T{0}, T{0}, T{0}},
{T{0}, T{0}, T{0}, T{0}},
{T{0}, T{0}, T{0}, T{0}}} {}
constexpr explicit mat_base(identity_init_t)
: rows{
{T{1}, T{0}, T{0}, T{0}},
{T{0}, T{1}, T{0}, T{0}},
{T{0}, T{0}, T{1}, T{0}},
{T{0}, T{0}, T{0}, T{1}}} {}
constexpr mat_base(uninit_t) {}
constexpr mat_base(zero_init_t) : mat_base{zero_init, zero_init, zero_init, zero_init} {}
constexpr mat_base(unit_init_t) : mat_base{unit_init, unit_init, unit_init, unit_init} {}
constexpr mat_base(identity_init_t) : mat_base{T{1}} {}
constexpr explicit mat_base(T d)
: rows{

View File

@@ -22,13 +22,9 @@ namespace vmath_hpp::detail
constexpr qua_base()
: qua_base(identity_init) {}
constexpr explicit qua_base(uninit_t) {}
constexpr explicit qua_base(zero_init_t)
: v{T{0}}, s{0} {}
constexpr explicit qua_base(identity_init_t)
: v{T{0}}, s{1} {}
constexpr qua_base(uninit_t) {}
constexpr qua_base(zero_init_t) : qua_base{zero_init, T{0}} {}
constexpr qua_base(identity_init_t) : qua_base{zero_init, T{1}} {}
constexpr qua_base(T vx, T vy, T vz, T s)
: v{vx, vy, vz}, s{s} {}

View File

@@ -19,12 +19,11 @@ namespace vmath_hpp::detail
T x, y;
public:
constexpr vec_base()
: vec_base(zero_init) {}
: vec_base{zero_init} {}
constexpr explicit vec_base(uninit_t) {}
constexpr explicit vec_base(zero_init_t)
: x{0}, y{0} {}
constexpr vec_base(uninit_t) {}
constexpr vec_base(zero_init_t) : vec_base{T{0}} {}
constexpr vec_base(unit_init_t) : vec_base{T{1}} {}
constexpr explicit vec_base(T v)
: x{v}, y{v} {}
@@ -55,12 +54,11 @@ namespace vmath_hpp::detail
T x, y, z;
public:
constexpr vec_base()
: vec_base(zero_init) {}
: vec_base{zero_init} {}
constexpr explicit vec_base(uninit_t) {}
constexpr explicit vec_base(zero_init_t)
: x{0}, y{0}, z{0} {}
constexpr vec_base(uninit_t) {}
constexpr vec_base(zero_init_t) : vec_base{T{0}} {}
constexpr vec_base(unit_init_t) : vec_base{T{1}} {}
constexpr explicit vec_base(T v)
: x{v}, y{v}, z{v} {}
@@ -103,12 +101,11 @@ namespace vmath_hpp::detail
T x, y, z, w;
public:
constexpr vec_base()
: vec_base(zero_init) {}
: vec_base{zero_init} {}
constexpr explicit vec_base(uninit_t) {}
constexpr explicit vec_base(zero_init_t)
: x{0}, y{0}, z{0}, w{0} {}
constexpr vec_base(uninit_t) {}
constexpr vec_base(zero_init_t) : vec_base{T{0}} {}
constexpr vec_base(unit_init_t) : vec_base{T{1}} {}
constexpr explicit vec_base(T v)
: x{v}, y{v}, z{v}, w{v} {}

View File

@@ -53,7 +53,8 @@ TEST_CASE("vmath/ext/units") {
STATIC_CHECK(identity3x3<int> == int3x3());
STATIC_CHECK(identity4x4<int> == int4x4());
STATIC_CHECK(qidentity<float> == qfloat());
STATIC_CHECK(qzero<float> == qfloat(zero_init));
STATIC_CHECK(qidentity<float> == qfloat(identity_init));
}
TEST_CASE("vmath/ext/hash") {

View File

@@ -519,12 +519,16 @@ TEST_CASE("vmath/fix_vec") {
constexpr fix2i v2{fix(1), fix(2)};
constexpr fix2i v3{fix3i{fix(1), fix(2), fix(3)}};
constexpr fix2i v4{fix4i{fix(1), fix(2), fix(3), fix(4)}};
constexpr fix2i v5{zero_init};
constexpr fix2i v6{unit_init};
STATIC_CHECK((v0[0] == fix(0)));
STATIC_CHECK((v1[0] == fix(1) && v1[1] == fix(1)));
STATIC_CHECK((v2[0] == fix(1) && v2[1] == fix(2)));
STATIC_CHECK((v3[0] == fix(1) && v3[1] == fix(2)));
STATIC_CHECK((v4[0] == fix(1) && v4[1] == fix(2)));
STATIC_CHECK((v5[0] == fix(0)));
STATIC_CHECK((v6[0] == fix(1)));
}
SUBCASE("fix3 ctors") {
@@ -534,6 +538,8 @@ TEST_CASE("vmath/fix_vec") {
constexpr fix3i v3{fix2i{fix(1), fix(2)}, fix(3)};
constexpr fix3i v4{fix(1), fix2i{fix(2), fix(3)}};
constexpr fix3i v5{fix4i{fix(1), fix(2), fix(3), fix(4)}};
constexpr fix3i v6{zero_init};
constexpr fix3i v7{unit_init};
STATIC_CHECK((v0[0] == fix(0)));
STATIC_CHECK((v1[0] == fix(1) && v1[1] == fix(1) && v1[2] == fix(1)));
@@ -541,6 +547,8 @@ TEST_CASE("vmath/fix_vec") {
STATIC_CHECK((v3[0] == fix(1) && v3[1] == fix(2) && v3[2] == fix(3)));
STATIC_CHECK((v4[0] == fix(1) && v4[1] == fix(2) && v4[2] == fix(3)));
STATIC_CHECK((v5[0] == fix(1) && v5[1] == fix(2) && v5[2] == fix(3)));
STATIC_CHECK((v6[0] == fix(0)));
STATIC_CHECK((v7[0] == fix(1)));
}
SUBCASE("fix4 ctors") {
@@ -553,6 +561,8 @@ TEST_CASE("vmath/fix_vec") {
constexpr fix4i v6{fix2i{fix(1), fix(2)}, fix2i{fix(3), fix(4)}};
constexpr fix4i v7{fix3i{fix(1), fix(2), fix(3)}, fix(4)};
constexpr fix4i v8{fix(1), fix3i{fix(2), fix(3), fix(4)}};
constexpr fix3i v9{zero_init};
constexpr fix3i v10{unit_init};
STATIC_CHECK((v0.at(0) == fix(0)));
STATIC_CHECK((v1.at(0) == fix(1) && v1.at(1) == fix(1) && v1.at(2) == fix(1) && v1.at(3) == fix(1)));
@@ -563,6 +573,8 @@ TEST_CASE("vmath/fix_vec") {
STATIC_CHECK((v6.at(0) == fix(1) && v6.at(1) == fix(2) && v6.at(2) == fix(3) && v6.at(3) == fix(4)));
STATIC_CHECK((v7.at(0) == fix(1) && v7.at(1) == fix(2) && v7.at(2) == fix(3) && v7.at(3) == fix(4)));
STATIC_CHECK((v8.at(0) == fix(1) && v8.at(1) == fix(2) && v8.at(2) == fix(3) && v8.at(3) == fix(4)));
STATIC_CHECK((v9[0] == fix(0)));
STATIC_CHECK((v10[0] == fix(1)));
}
SUBCASE("swap") {
@@ -673,6 +685,9 @@ TEST_CASE("vmath/fix_mat") {
constexpr fix2x2i v4{{fix(1), fix(2)}, {fix(3), fix(4)}};
constexpr fix2x2i v5{fix3x3i{fix(1)}};
constexpr fix2x2i v6{fix4x4i{fix(1)}};
constexpr fix2x2i v7{zero_init};
constexpr fix2x2i v8{unit_init};
constexpr fix2x2i v9{identity_init};
STATIC_CHECK((v0[0] == fix2i(fix(1),fix(0)) && v0[1] == fix2i(fix(0),fix(1))));
STATIC_CHECK((v1[0] == fix2i(fix(2),fix(0)) && v1[1] == fix2i(fix(0),fix(2))));
@@ -681,6 +696,9 @@ TEST_CASE("vmath/fix_mat") {
STATIC_CHECK((v4[0] == fix2i(fix(1),fix(2)) && v4[1] == fix2i(fix(3),fix(4))));
STATIC_CHECK((v5[0] == fix2i(fix(1),fix(0)) && v5[1] == fix2i(fix(0),fix(1))));
STATIC_CHECK((v6[0] == fix2i(fix(1),fix(0)) && v6[1] == fix2i(fix(0),fix(1))));
STATIC_CHECK((v7[0] == fix2i(fix(0),fix(0)) && v7[1] == fix2i(fix(0),fix(0))));
STATIC_CHECK((v8[0] == fix2i(fix(1),fix(1)) && v8[1] == fix2i(fix(1),fix(1))));
STATIC_CHECK((v9[0] == fix2i(fix(1),fix(0)) && v9[1] == fix2i(fix(0),fix(1))));
}
SUBCASE("fix3x3 ctors") {
@@ -692,6 +710,9 @@ TEST_CASE("vmath/fix_mat") {
constexpr fix3x3i v5{fix2x2i{fix(1)},fix2i{fix(0)}};
constexpr fix3x3i v6{fix2x2i{fix(1)}};
constexpr fix3x3i v7{fix4x4i{fix(1)}};
constexpr fix3x3i v8{zero_init};
constexpr fix3x3i v9{unit_init};
constexpr fix3x3i v10{identity_init};
STATIC_CHECK((v0[0] == fix3i(fix(1),fix(0),fix(0)) && v0[1] == fix3i(fix(0),fix(1),fix(0)) && v0[2] == fix3i(fix(0),fix(0),fix(1))));
STATIC_CHECK((v1[0] == fix3i(fix(2),fix(0),fix(0)) && v1[1] == fix3i(fix(0),fix(2),fix(0)) && v1[2] == fix3i(fix(0),fix(0),fix(2))));
@@ -701,6 +722,9 @@ TEST_CASE("vmath/fix_mat") {
STATIC_CHECK((v5[0] == fix3i(fix(1),fix(0),fix(0)) && v5[1] == fix3i(fix(0),fix(1),fix(0)) && v5[2] == fix3i(fix(0),fix(0),fix(1))));
STATIC_CHECK((v6[0] == fix3i(fix(1),fix(0),fix(0)) && v6[1] == fix3i(fix(0),fix(1),fix(0)) && v6[2] == fix3i(fix(0),fix(0),fix(1))));
STATIC_CHECK((v7[0] == fix3i(fix(1),fix(0),fix(0)) && v7[1] == fix3i(fix(0),fix(1),fix(0)) && v7[2] == fix3i(fix(0),fix(0),fix(1))));
STATIC_CHECK((v8[0] == fix3i(fix(0),fix(0),fix(0)) && v8[1] == fix3i(fix(0),fix(0),fix(0)) && v8[2] == fix3i(fix(0),fix(0),fix(0))));
STATIC_CHECK((v9[0] == fix3i(fix(1),fix(1),fix(1)) && v9[1] == fix3i(fix(1),fix(1),fix(1)) && v9[2] == fix3i(fix(1),fix(1),fix(1))));
STATIC_CHECK((v10[0] == fix3i(fix(1),fix(0),fix(0)) && v10[1] == fix3i(fix(0),fix(1),fix(0)) && v10[2] == fix3i(fix(0),fix(0),fix(1))));
}
SUBCASE("fix4x4 ctors") {
@@ -712,6 +736,9 @@ TEST_CASE("vmath/fix_mat") {
constexpr fix4x4i v5{fix3x3i{fix(1)},fix3i{fix(0)}};
constexpr fix4x4i v6{fix2x2i{fix(1)}};
constexpr fix4x4i v7{fix3x3i{fix(1)}};
constexpr fix4x4i v8{zero_init};
constexpr fix4x4i v9{unit_init};
constexpr fix4x4i v10{identity_init};
STATIC_CHECK((v0[0] == fix4i(fix(1),fix(0),fix(0),fix(0)) && v0[1] == fix4i(fix(0),fix(1),fix(0),fix(0)) && v0[2] == fix4i(fix(0),fix(0),fix(1),fix(0)) && v0[3] == fix4i(fix(0),fix(0),fix(0),fix(1))));
STATIC_CHECK((v1[0] == fix4i(fix(2),fix(0),fix(0),fix(0)) && v1[1] == fix4i(fix(0),fix(2),fix(0),fix(0)) && v1[2] == fix4i(fix(0),fix(0),fix(2),fix(0)) && v1[3] == fix4i(fix(0),fix(0),fix(0),fix(2))));
@@ -721,6 +748,9 @@ TEST_CASE("vmath/fix_mat") {
STATIC_CHECK((v5[0] == fix4i(fix(1),fix(0),fix(0),fix(0)) && v5[1] == fix4i(fix(0),fix(1),fix(0),fix(0)) && v5[2] == fix4i(fix(0),fix(0),fix(1),fix(0)) && v5[3] == fix4i(fix(0),fix(0),fix(0),fix(1))));
STATIC_CHECK((v6[0] == fix4i(fix(1),fix(0),fix(0),fix(0)) && v6[1] == fix4i(fix(0),fix(1),fix(0),fix(0)) && v6[2] == fix4i(fix(0),fix(0),fix(1),fix(0)) && v6[3] == fix4i(fix(0),fix(0),fix(0),fix(1))));
STATIC_CHECK((v7[0] == fix4i(fix(1),fix(0),fix(0),fix(0)) && v7[1] == fix4i(fix(0),fix(1),fix(0),fix(0)) && v7[2] == fix4i(fix(0),fix(0),fix(1),fix(0)) && v7[3] == fix4i(fix(0),fix(0),fix(0),fix(1))));
STATIC_CHECK((v8[0] == fix4i(fix(0),fix(0),fix(0),fix(0)) && v8[1] == fix4i(fix(0),fix(0),fix(0),fix(0)) && v8[2] == fix4i(fix(0),fix(0),fix(0),fix(0)) && v8[3] == fix4i(fix(0),fix(0),fix(0),fix(0))));
STATIC_CHECK((v9[0] == fix4i(fix(1),fix(1),fix(1),fix(1)) && v9[1] == fix4i(fix(1),fix(1),fix(1),fix(1)) && v9[2] == fix4i(fix(1),fix(1),fix(1),fix(1)) && v9[3] == fix4i(fix(1),fix(1),fix(1),fix(1))));
STATIC_CHECK((v10[0] == fix4i(fix(1),fix(0),fix(0),fix(0)) && v10[1] == fix4i(fix(0),fix(1),fix(0),fix(0)) && v10[2] == fix4i(fix(0),fix(0),fix(1),fix(0)) && v10[3] == fix4i(fix(0),fix(0),fix(0),fix(1))));
}
SUBCASE("swap") {
@@ -831,11 +861,15 @@ TEST_CASE("vmath/fix_qua") {
constexpr qfix v1{fix(1.f), fix(2.f), fix(3.f), fix(4.f)};
constexpr qfix v2{fix3f{fix(1.f), fix(2.f), fix(3.f)}, fix(4.f)};
constexpr qfix v3{fix4f{fix(1.f), fix(2.f), fix(3.f), fix(4.f)}};
constexpr qfix v4{zero_init};
constexpr qfix v5{identity_init};
STATIC_CHECK((v0.at(0) == fix(0.f)));
STATIC_CHECK((v1.at(0) == fix(1.f) && v1.at(1) == fix(2.f) && v1.at(2) == fix(3.f) && v1.at(3) == fix(4.f)));
STATIC_CHECK((v2.at(0) == fix(1.f) && v2.at(1) == fix(2.f) && v2.at(2) == fix(3.f) && v2.at(3) == fix(4.f)));
STATIC_CHECK((v3.at(0) == fix(1.f) && v3.at(1) == fix(2.f) && v3.at(2) == fix(3.f) && v3.at(3) == fix(4.f)));
STATIC_CHECK((v4.at(0) == fix(0.f) && v4.at(1) == fix(0.f) && v4.at(2) == fix(0.f) && v4.at(3) == fix(0.f)));
STATIC_CHECK((v5.at(0) == fix(0.f) && v5.at(1) == fix(0.f) && v5.at(2) == fix(0.f) && v5.at(3) == fix(1.f)));
}
SUBCASE("swap") {

View File

@@ -68,6 +68,10 @@ TEST_CASE("vmath/mat") {
STATIC_CHECK(int3x3(zero_init) == int3x3({0,0,0},{0,0,0},{0,0,0}));
STATIC_CHECK(int4x4(zero_init) == int4x4({0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0}));
STATIC_CHECK(int2x2(unit_init) == int2x2({1,1},{1,1}));
STATIC_CHECK(int3x3(unit_init) == int3x3({1,1,1},{1,1,1},{1,1,1}));
STATIC_CHECK(int4x4(unit_init) == int4x4({1,1,1,1},{1,1,1,1},{1,1,1,1},{1,1,1,1}));
STATIC_CHECK(int2x2(identity_init) == int2x2({1,0},{0,1}));
STATIC_CHECK(int3x3(identity_init) == int3x3({1,0,0},{0,1,0},{0,0,1}));
STATIC_CHECK(int4x4(identity_init) == int4x4({1,0,0,0},{0,1,0,0},{0,0,1,0},{0,0,0,1}));

View File

@@ -67,6 +67,10 @@ TEST_CASE("vmath/vec") {
STATIC_CHECK(int2(zero_init) == int2(0,0));
STATIC_CHECK(int3(zero_init) == int3(0,0,0));
STATIC_CHECK(int4(zero_init) == int4(0,0,0,0));
STATIC_CHECK(int2(unit_init) == int2(1,1));
STATIC_CHECK(int3(unit_init) == int3(1,1,1));
STATIC_CHECK(int4(unit_init) == int4(1,1,1,1));
}
{
STATIC_CHECK(int2().x == 0);