mirror of
https://github.com/BlackMATov/vmath.hpp.git
synced 2025-12-13 20:17:58 +07:00
add unit_init ctors
This commit is contained in:
54
README.md
54
README.md
@@ -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;
|
||||
```
|
||||
|
||||
|
||||
@@ -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};
|
||||
}
|
||||
|
||||
//
|
||||
|
||||
@@ -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{};
|
||||
}
|
||||
|
||||
@@ -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{
|
||||
|
||||
@@ -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} {}
|
||||
|
||||
@@ -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} {}
|
||||
|
||||
@@ -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") {
|
||||
|
||||
@@ -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") {
|
||||
|
||||
@@ -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}));
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user