mirror of
https://github.com/g-truc/glm.git
synced 2025-04-16 10:16:11 +00:00
constexpr simd vec: add constructor for vec1->vec[4,3,2]
This commit is contained in:
parent
d950f21404
commit
21b51c96f5
1 changed files with 5 additions and 2 deletions
|
@ -293,9 +293,12 @@ namespace glm
|
|||
|
||||
constexpr vec() : data{} {}
|
||||
constexpr vec(arithmetic auto scalar) : data{ [scalar,this](){ auto s = [scalar](){ return scalar; }; return ctor_scalar(s); }() } {}
|
||||
|
||||
template <length_t Lx, typename Tx, qualifier Qx> requires (Lx == 1 && L != 1)
|
||||
constexpr vec(vec<Lx, Tx, Qx> v) : data{ [d=std::bit_cast<VecDataArray<Lx, Tx, Qx>>(v.data),this](){ auto s = [scalar=d.p[0]](){ return scalar; }; return ctor_scalar(s); }() } {}
|
||||
|
||||
template <length_t Lx, typename Tx, qualifier Qx>
|
||||
constexpr vec(vec<Lx, Tx, Qx> v) : data{ [v, this](){ auto vv = [v](){ return v; }; return ctor(vv); }() } {}
|
||||
template <length_t Lx, typename Tx, qualifier Qx> requires (L == 1 || Lx != 1)
|
||||
constexpr vec(vec<Lx, Tx, Qx> v) : data{ [v, this](){ auto vv = [v](){ return v; }; return ctor(vv); }() } {}
|
||||
|
||||
template <arithmetic... Scalar> requires (sizeof...(Scalar) == L)
|
||||
constexpr vec(Scalar... scalar)
|
||||
|
|
Loading…
Add table
Reference in a new issue