mirror of
https://github.com/g-truc/glm.git
synced 2024-11-26 10:14:35 +00:00
- Added missing vec1 based constructors
This commit is contained in:
parent
ec261bd21b
commit
213a66f9bf
@ -143,18 +143,36 @@ namespace glm
|
||||
GLM_FUNC_DECL GLM_CONSTEXPR_CTOR vec(vec<2, A, P> const& _xy, B _z, C _w);
|
||||
/// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
|
||||
template<typename A, typename B, typename C, qualifier P>
|
||||
GLM_FUNC_DECL GLM_CONSTEXPR_CTOR vec(vec<2, A, P> const& _xy, vec<1, B, P> const& _z, C _w);
|
||||
/// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
|
||||
template<typename A, typename B, typename C, qualifier P>
|
||||
GLM_FUNC_DECL GLM_CONSTEXPR_CTOR vec(vec<2, A, P> const& _xy, B _z, vec<1, C, P> const& _w);
|
||||
/// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
|
||||
template<typename A, typename B, typename C, qualifier P>
|
||||
GLM_FUNC_DECL GLM_CONSTEXPR_CTOR vec(vec<2, A, P> const& _xy, vec<1, B, P> const& _z, vec<1, C, P> const& _w);
|
||||
/// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
|
||||
template<typename A, typename B, typename C, qualifier P>
|
||||
GLM_FUNC_DECL GLM_CONSTEXPR_CTOR vec(A _x, vec<2, B, P> const& _yz, C _w);
|
||||
/// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
|
||||
template<typename A, typename B, typename C, qualifier P>
|
||||
GLM_FUNC_DECL GLM_CONSTEXPR_CTOR vec(vec<1, A, P> const& _x, vec<2, B, P> const& _yz, C _w);
|
||||
/// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
|
||||
template<typename A, typename B, typename C, qualifier P>
|
||||
GLM_FUNC_DECL GLM_CONSTEXPR_CTOR vec(A _x, vec<2, B, P> const& _yz, vec<1, C, P> const& _w);
|
||||
/// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
|
||||
template<typename A, typename B, typename C, qualifier P>
|
||||
GLM_FUNC_DECL GLM_CONSTEXPR_CTOR vec(vec<1, A, P> const& _x, vec<2, B, P> const& _yz, vec<1, C, P> const& _w);
|
||||
/// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
|
||||
template<typename A, typename B, typename C, qualifier P>
|
||||
GLM_FUNC_DECL GLM_CONSTEXPR_CTOR vec(A _x, B _y, vec<2, C, P> const& _zw);
|
||||
/// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
|
||||
template<typename A, typename B, typename C, qualifier P>
|
||||
GLM_FUNC_DECL GLM_CONSTEXPR_CTOR vec(vec<1, A, P> const& _x, B _y, vec<2, C, P> const& _zw);
|
||||
/// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
|
||||
template<typename A, typename B, typename C, qualifier P>
|
||||
GLM_FUNC_DECL GLM_CONSTEXPR_CTOR vec(A _x, vec<1, B, P> const& _y, vec<2, C, P> const& _zw);
|
||||
/// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
|
||||
template<typename A, typename B, typename C, qualifier P>
|
||||
GLM_FUNC_DECL GLM_CONSTEXPR_CTOR vec(vec<1, A, P> const& _x, vec<1, B, P> const& _y, vec<2, C, P> const& _zw);
|
||||
/// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
|
||||
template<typename A, typename B, qualifier P>
|
||||
|
@ -349,6 +349,24 @@ namespace detail
|
||||
, w(static_cast<T>(_w))
|
||||
{}
|
||||
|
||||
template<typename T, qualifier Q>
|
||||
template<typename A, typename B, typename C, qualifier P>
|
||||
GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR vec<4, T, Q>::vec(vec<2, A, P> const& _xy, vec<1, B, P> const& _z, C _w)
|
||||
: x(static_cast<T>(_xy.x))
|
||||
, y(static_cast<T>(_xy.y))
|
||||
, z(static_cast<T>(_z.x))
|
||||
, w(static_cast<T>(_w))
|
||||
{}
|
||||
|
||||
template<typename T, qualifier Q>
|
||||
template<typename A, typename B, typename C, qualifier P>
|
||||
GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR vec<4, T, Q>::vec(vec<2, A, P> const& _xy, B _z, vec<1, C, P> const& _w)
|
||||
: x(static_cast<T>(_xy.x))
|
||||
, y(static_cast<T>(_xy.y))
|
||||
, z(static_cast<T>(_z))
|
||||
, w(static_cast<T>(_w.x))
|
||||
{}
|
||||
|
||||
template<typename T, qualifier Q>
|
||||
template<typename A, typename B, typename C, qualifier P>
|
||||
GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR vec<4, T, Q>::vec(vec<2, A, P> const& _xy, vec<1, B, P> const& _z, vec<1, C, P> const& _w)
|
||||
@ -367,6 +385,24 @@ namespace detail
|
||||
, w(static_cast<T>(_w))
|
||||
{}
|
||||
|
||||
template<typename T, qualifier Q>
|
||||
template<typename A, typename B, typename C, qualifier P>
|
||||
GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR vec<4, T, Q>::vec(vec<1, A, P> const& _x, vec<2, B, P> const& _yz, C _w)
|
||||
: x(static_cast<T>(_x.x))
|
||||
, y(static_cast<T>(_yz.x))
|
||||
, z(static_cast<T>(_yz.y))
|
||||
, w(static_cast<T>(_w))
|
||||
{}
|
||||
|
||||
template<typename T, qualifier Q>
|
||||
template<typename A, typename B, typename C, qualifier P>
|
||||
GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR vec<4, T, Q>::vec(A _x, vec<2, B, P> const& _yz, vec<1, C, P> const& _w)
|
||||
: x(static_cast<T>(_x))
|
||||
, y(static_cast<T>(_yz.x))
|
||||
, z(static_cast<T>(_yz.y))
|
||||
, w(static_cast<T>(_w.x))
|
||||
{}
|
||||
|
||||
template<typename T, qualifier Q>
|
||||
template<typename A, typename B, typename C, qualifier P>
|
||||
GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR vec<4, T, Q>::vec(vec<1, A, P> const& _x, vec<2, B, P> const& _yz, vec<1, C, P> const& _w)
|
||||
@ -385,6 +421,24 @@ namespace detail
|
||||
, w(static_cast<T>(_zw.y))
|
||||
{}
|
||||
|
||||
template<typename T, qualifier Q>
|
||||
template<typename A, typename B, typename C, qualifier P>
|
||||
GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR vec<4, T, Q>::vec(vec<1, A, P> const& _x, B _y, vec<2, C, P> const& _zw)
|
||||
: x(static_cast<T>(_x.x))
|
||||
, y(static_cast<T>(_y))
|
||||
, z(static_cast<T>(_zw.x))
|
||||
, w(static_cast<T>(_zw.y))
|
||||
{}
|
||||
|
||||
template<typename T, qualifier Q>
|
||||
template<typename A, typename B, typename C, qualifier P>
|
||||
GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR vec<4, T, Q>::vec(A _x, vec<1, B, P> const& _y, vec<2, C, P> const& _zw)
|
||||
: x(static_cast<T>(_x))
|
||||
, y(static_cast<T>(_y.x))
|
||||
, z(static_cast<T>(_zw.x))
|
||||
, w(static_cast<T>(_zw.y))
|
||||
{}
|
||||
|
||||
template<typename T, qualifier Q>
|
||||
template<typename A, typename B, typename C, qualifier P>
|
||||
GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR vec<4, T, Q>::vec(vec<1, A, P> const& _x, vec<1, B, P> const& _y, vec<2, C, P> const& _zw)
|
||||
|
@ -55,6 +55,9 @@ glm::mat4 camera(float Translate, glm::vec2 const& Rotate)
|
||||
#### Features:
|
||||
- Added bitfieldDeinterleave to GTC_bitfield
|
||||
|
||||
#### Improvements:
|
||||
- Added missing vec1 based constructors
|
||||
|
||||
#### Fixes:
|
||||
- Fixed build problems due to printf and std::clock_t #778
|
||||
- Fixed int mod
|
||||
|
@ -252,6 +252,77 @@ static int test_vec4_ctor()
|
||||
Error += glm::all(glm::equal(V, O)) ? 0 : 1;
|
||||
}
|
||||
|
||||
{
|
||||
glm::vec1 const v1_0(1.0f);
|
||||
glm::vec1 const v1_1(2.0f);
|
||||
glm::vec1 const v1_2(3.0f);
|
||||
glm::vec1 const v1_3(4.0f);
|
||||
|
||||
glm::vec2 const v2_0(1.0f, 2.0f);
|
||||
glm::vec2 const v2_1(2.0f, 3.0f);
|
||||
glm::vec2 const v2_2(3.0f, 4.0f);
|
||||
|
||||
glm::vec3 const v3_0(1.0f, 2.0f, 3.0f);
|
||||
glm::vec3 const v3_1(2.0f, 3.0f, 4.0f);
|
||||
|
||||
glm::vec4 const O(1.0f, 2.0, 3.0f, 4.0);
|
||||
|
||||
glm::vec4 const A(v1_0, v1_1, v2_2);
|
||||
Error += glm::all(glm::equal(A, O)) ? 0 : 1;
|
||||
|
||||
glm::vec4 const B(1.0f, 2.0f, v2_2);
|
||||
Error += glm::all(glm::equal(B, O)) ? 0 : 1;
|
||||
|
||||
glm::vec4 const C(v1_0, 2.0f, v2_2);
|
||||
Error += glm::all(glm::equal(C, O)) ? 0 : 1;
|
||||
|
||||
glm::vec4 const D(1.0f, v1_1, v2_2);
|
||||
Error += glm::all(glm::equal(D, O)) ? 0 : 1;
|
||||
|
||||
glm::vec4 const E(v2_0, v1_2, v1_3);
|
||||
Error += glm::all(glm::equal(E, O)) ? 0 : 1;
|
||||
|
||||
glm::vec4 const F(v2_0, 3.0, v1_3);
|
||||
Error += glm::all(glm::equal(F, O)) ? 0 : 1;
|
||||
|
||||
glm::vec4 const G(v2_0, v1_2, 4.0);
|
||||
Error += glm::all(glm::equal(G, O)) ? 0 : 1;
|
||||
|
||||
glm::vec4 const H(v2_0, 3.0f, 4.0);
|
||||
Error += glm::all(glm::equal(H, O)) ? 0 : 1;
|
||||
}
|
||||
|
||||
{
|
||||
glm::vec1 const v1_0(1.0f);
|
||||
glm::vec1 const v1_1(2.0f);
|
||||
glm::vec1 const v1_2(3.0f);
|
||||
glm::vec1 const v1_3(4.0f);
|
||||
|
||||
glm::vec2 const v2_0(1.0f, 2.0f);
|
||||
glm::vec2 const v2_1(2.0f, 3.0f);
|
||||
glm::vec2 const v2_2(3.0f, 4.0f);
|
||||
|
||||
glm::vec3 const v3_0(1.0f, 2.0f, 3.0f);
|
||||
glm::vec3 const v3_1(2.0f, 3.0f, 4.0f);
|
||||
|
||||
glm::vec4 const O(1.0f, 2.0, 3.0f, 4.0);
|
||||
|
||||
glm::vec4 const A(v1_0, v2_0, v1_3);
|
||||
Error += glm::all(glm::equal(A, O)) ? 0 : 1;
|
||||
|
||||
glm::vec4 const B(v1_0, v2_0, 4.0);
|
||||
Error += glm::all(glm::equal(B, O)) ? 0 : 1;
|
||||
|
||||
glm::vec4 const C(1.0, v2_0, v1_3);
|
||||
Error += glm::all(glm::equal(C, O)) ? 0 : 1;
|
||||
|
||||
glm::vec4 const D(1.0f, v2_0, 4.0);
|
||||
Error += glm::all(glm::equal(D, O)) ? 0 : 1;
|
||||
|
||||
glm::vec4 const E(1.0, v2_0, 4.0f);
|
||||
Error += glm::all(glm::equal(E, O)) ? 0 : 1;
|
||||
}
|
||||
|
||||
return Error;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user