summaryrefslogtreecommitdiffstats
path: root/external/include/glm/gtx/vec_swizzle.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'external/include/glm/gtx/vec_swizzle.hpp')
-rw-r--r--external/include/glm/gtx/vec_swizzle.hpp2778
1 files changed, 0 insertions, 2778 deletions
diff --git a/external/include/glm/gtx/vec_swizzle.hpp b/external/include/glm/gtx/vec_swizzle.hpp
deleted file mode 100644
index daebac3..0000000
--- a/external/include/glm/gtx/vec_swizzle.hpp
+++ /dev/null
@@ -1,2778 +0,0 @@
-/// @ref gtx_vec_swizzle
-/// @file glm/gtx/vec_swizzle.hpp
-///
-/// @see core (dependence)
-///
-/// @defgroup gtx_vec_swizzle GLM_GTX_vec_swizzle
-/// @ingroup gtx
-///
-/// Include <glm/gtx/vec_swizzle.hpp> to use the features of this extension.
-///
-/// Functions to perform swizzle operation.
-
-#pragma once
-
-#include "../glm.hpp"
-
-#ifndef GLM_ENABLE_EXPERIMENTAL
-# error "GLM: GLM_GTX_vec_swizzle is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
-#endif
-
-namespace glm {
- // xx
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<2, T, Q> xx(const glm::vec<1, T, Q> &v) {
- return glm::vec<2, T, Q>(v.x, v.x);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<2, T, Q> xx(const glm::vec<2, T, Q> &v) {
- return glm::vec<2, T, Q>(v.x, v.x);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<2, T, Q> xx(const glm::vec<3, T, Q> &v) {
- return glm::vec<2, T, Q>(v.x, v.x);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<2, T, Q> xx(const glm::vec<4, T, Q> &v) {
- return glm::vec<2, T, Q>(v.x, v.x);
- }
-
- // xy
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<2, T, Q> xy(const glm::vec<2, T, Q> &v) {
- return glm::vec<2, T, Q>(v.x, v.y);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<2, T, Q> xy(const glm::vec<3, T, Q> &v) {
- return glm::vec<2, T, Q>(v.x, v.y);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<2, T, Q> xy(const glm::vec<4, T, Q> &v) {
- return glm::vec<2, T, Q>(v.x, v.y);
- }
-
- // xz
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<2, T, Q> xz(const glm::vec<3, T, Q> &v) {
- return glm::vec<2, T, Q>(v.x, v.z);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<2, T, Q> xz(const glm::vec<4, T, Q> &v) {
- return glm::vec<2, T, Q>(v.x, v.z);
- }
-
- // xw
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<2, T, Q> xw(const glm::vec<4, T, Q> &v) {
- return glm::vec<2, T, Q>(v.x, v.w);
- }
-
- // yx
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<2, T, Q> yx(const glm::vec<2, T, Q> &v) {
- return glm::vec<2, T, Q>(v.y, v.x);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<2, T, Q> yx(const glm::vec<3, T, Q> &v) {
- return glm::vec<2, T, Q>(v.y, v.x);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<2, T, Q> yx(const glm::vec<4, T, Q> &v) {
- return glm::vec<2, T, Q>(v.y, v.x);
- }
-
- // yy
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<2, T, Q> yy(const glm::vec<2, T, Q> &v) {
- return glm::vec<2, T, Q>(v.y, v.y);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<2, T, Q> yy(const glm::vec<3, T, Q> &v) {
- return glm::vec<2, T, Q>(v.y, v.y);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<2, T, Q> yy(const glm::vec<4, T, Q> &v) {
- return glm::vec<2, T, Q>(v.y, v.y);
- }
-
- // yz
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<2, T, Q> yz(const glm::vec<3, T, Q> &v) {
- return glm::vec<2, T, Q>(v.y, v.z);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<2, T, Q> yz(const glm::vec<4, T, Q> &v) {
- return glm::vec<2, T, Q>(v.y, v.z);
- }
-
- // yw
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<2, T, Q> yw(const glm::vec<4, T, Q> &v) {
- return glm::vec<2, T, Q>(v.y, v.w);
- }
-
- // zx
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<2, T, Q> zx(const glm::vec<3, T, Q> &v) {
- return glm::vec<2, T, Q>(v.z, v.x);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<2, T, Q> zx(const glm::vec<4, T, Q> &v) {
- return glm::vec<2, T, Q>(v.z, v.x);
- }
-
- // zy
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<2, T, Q> zy(const glm::vec<3, T, Q> &v) {
- return glm::vec<2, T, Q>(v.z, v.y);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<2, T, Q> zy(const glm::vec<4, T, Q> &v) {
- return glm::vec<2, T, Q>(v.z, v.y);
- }
-
- // zz
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<2, T, Q> zz(const glm::vec<3, T, Q> &v) {
- return glm::vec<2, T, Q>(v.z, v.z);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<2, T, Q> zz(const glm::vec<4, T, Q> &v) {
- return glm::vec<2, T, Q>(v.z, v.z);
- }
-
- // zw
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<2, T, Q> zw(const glm::vec<4, T, Q> &v) {
- return glm::vec<2, T, Q>(v.z, v.w);
- }
-
- // wx
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<2, T, Q> wx(const glm::vec<4, T, Q> &v) {
- return glm::vec<2, T, Q>(v.w, v.x);
- }
-
- // wy
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<2, T, Q> wy(const glm::vec<4, T, Q> &v) {
- return glm::vec<2, T, Q>(v.w, v.y);
- }
-
- // wz
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<2, T, Q> wz(const glm::vec<4, T, Q> &v) {
- return glm::vec<2, T, Q>(v.w, v.z);
- }
-
- // ww
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<2, T, Q> ww(const glm::vec<4, T, Q> &v) {
- return glm::vec<2, T, Q>(v.w, v.w);
- }
-
- // xxx
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> xxx(const glm::vec<1, T, Q> &v) {
- return glm::vec<3, T, Q>(v.x, v.x, v.x);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> xxx(const glm::vec<2, T, Q> &v) {
- return glm::vec<3, T, Q>(v.x, v.x, v.x);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> xxx(const glm::vec<3, T, Q> &v) {
- return glm::vec<3, T, Q>(v.x, v.x, v.x);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> xxx(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.x, v.x, v.x);
- }
-
- // xxy
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> xxy(const glm::vec<2, T, Q> &v) {
- return glm::vec<3, T, Q>(v.x, v.x, v.y);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> xxy(const glm::vec<3, T, Q> &v) {
- return glm::vec<3, T, Q>(v.x, v.x, v.y);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> xxy(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.x, v.x, v.y);
- }
-
- // xxz
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> xxz(const glm::vec<3, T, Q> &v) {
- return glm::vec<3, T, Q>(v.x, v.x, v.z);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> xxz(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.x, v.x, v.z);
- }
-
- // xxw
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> xxw(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.x, v.x, v.w);
- }
-
- // xyx
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> xyx(const glm::vec<2, T, Q> &v) {
- return glm::vec<3, T, Q>(v.x, v.y, v.x);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> xyx(const glm::vec<3, T, Q> &v) {
- return glm::vec<3, T, Q>(v.x, v.y, v.x);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> xyx(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.x, v.y, v.x);
- }
-
- // xyy
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> xyy(const glm::vec<2, T, Q> &v) {
- return glm::vec<3, T, Q>(v.x, v.y, v.y);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> xyy(const glm::vec<3, T, Q> &v) {
- return glm::vec<3, T, Q>(v.x, v.y, v.y);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> xyy(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.x, v.y, v.y);
- }
-
- // xyz
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> xyz(const glm::vec<3, T, Q> &v) {
- return glm::vec<3, T, Q>(v.x, v.y, v.z);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> xyz(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.x, v.y, v.z);
- }
-
- // xyw
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> xyw(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.x, v.y, v.w);
- }
-
- // xzx
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> xzx(const glm::vec<3, T, Q> &v) {
- return glm::vec<3, T, Q>(v.x, v.z, v.x);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> xzx(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.x, v.z, v.x);
- }
-
- // xzy
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> xzy(const glm::vec<3, T, Q> &v) {
- return glm::vec<3, T, Q>(v.x, v.z, v.y);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> xzy(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.x, v.z, v.y);
- }
-
- // xzz
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> xzz(const glm::vec<3, T, Q> &v) {
- return glm::vec<3, T, Q>(v.x, v.z, v.z);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> xzz(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.x, v.z, v.z);
- }
-
- // xzw
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> xzw(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.x, v.z, v.w);
- }
-
- // xwx
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> xwx(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.x, v.w, v.x);
- }
-
- // xwy
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> xwy(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.x, v.w, v.y);
- }
-
- // xwz
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> xwz(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.x, v.w, v.z);
- }
-
- // xww
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> xww(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.x, v.w, v.w);
- }
-
- // yxx
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> yxx(const glm::vec<2, T, Q> &v) {
- return glm::vec<3, T, Q>(v.y, v.x, v.x);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> yxx(const glm::vec<3, T, Q> &v) {
- return glm::vec<3, T, Q>(v.y, v.x, v.x);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> yxx(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.y, v.x, v.x);
- }
-
- // yxy
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> yxy(const glm::vec<2, T, Q> &v) {
- return glm::vec<3, T, Q>(v.y, v.x, v.y);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> yxy(const glm::vec<3, T, Q> &v) {
- return glm::vec<3, T, Q>(v.y, v.x, v.y);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> yxy(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.y, v.x, v.y);
- }
-
- // yxz
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> yxz(const glm::vec<3, T, Q> &v) {
- return glm::vec<3, T, Q>(v.y, v.x, v.z);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> yxz(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.y, v.x, v.z);
- }
-
- // yxw
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> yxw(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.y, v.x, v.w);
- }
-
- // yyx
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> yyx(const glm::vec<2, T, Q> &v) {
- return glm::vec<3, T, Q>(v.y, v.y, v.x);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> yyx(const glm::vec<3, T, Q> &v) {
- return glm::vec<3, T, Q>(v.y, v.y, v.x);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> yyx(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.y, v.y, v.x);
- }
-
- // yyy
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> yyy(const glm::vec<2, T, Q> &v) {
- return glm::vec<3, T, Q>(v.y, v.y, v.y);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> yyy(const glm::vec<3, T, Q> &v) {
- return glm::vec<3, T, Q>(v.y, v.y, v.y);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> yyy(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.y, v.y, v.y);
- }
-
- // yyz
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> yyz(const glm::vec<3, T, Q> &v) {
- return glm::vec<3, T, Q>(v.y, v.y, v.z);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> yyz(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.y, v.y, v.z);
- }
-
- // yyw
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> yyw(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.y, v.y, v.w);
- }
-
- // yzx
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> yzx(const glm::vec<3, T, Q> &v) {
- return glm::vec<3, T, Q>(v.y, v.z, v.x);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> yzx(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.y, v.z, v.x);
- }
-
- // yzy
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> yzy(const glm::vec<3, T, Q> &v) {
- return glm::vec<3, T, Q>(v.y, v.z, v.y);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> yzy(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.y, v.z, v.y);
- }
-
- // yzz
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> yzz(const glm::vec<3, T, Q> &v) {
- return glm::vec<3, T, Q>(v.y, v.z, v.z);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> yzz(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.y, v.z, v.z);
- }
-
- // yzw
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> yzw(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.y, v.z, v.w);
- }
-
- // ywx
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> ywx(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.y, v.w, v.x);
- }
-
- // ywy
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> ywy(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.y, v.w, v.y);
- }
-
- // ywz
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> ywz(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.y, v.w, v.z);
- }
-
- // yww
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> yww(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.y, v.w, v.w);
- }
-
- // zxx
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> zxx(const glm::vec<3, T, Q> &v) {
- return glm::vec<3, T, Q>(v.z, v.x, v.x);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> zxx(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.z, v.x, v.x);
- }
-
- // zxy
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> zxy(const glm::vec<3, T, Q> &v) {
- return glm::vec<3, T, Q>(v.z, v.x, v.y);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> zxy(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.z, v.x, v.y);
- }
-
- // zxz
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> zxz(const glm::vec<3, T, Q> &v) {
- return glm::vec<3, T, Q>(v.z, v.x, v.z);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> zxz(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.z, v.x, v.z);
- }
-
- // zxw
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> zxw(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.z, v.x, v.w);
- }
-
- // zyx
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> zyx(const glm::vec<3, T, Q> &v) {
- return glm::vec<3, T, Q>(v.z, v.y, v.x);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> zyx(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.z, v.y, v.x);
- }
-
- // zyy
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> zyy(const glm::vec<3, T, Q> &v) {
- return glm::vec<3, T, Q>(v.z, v.y, v.y);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> zyy(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.z, v.y, v.y);
- }
-
- // zyz
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> zyz(const glm::vec<3, T, Q> &v) {
- return glm::vec<3, T, Q>(v.z, v.y, v.z);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> zyz(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.z, v.y, v.z);
- }
-
- // zyw
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> zyw(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.z, v.y, v.w);
- }
-
- // zzx
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> zzx(const glm::vec<3, T, Q> &v) {
- return glm::vec<3, T, Q>(v.z, v.z, v.x);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> zzx(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.z, v.z, v.x);
- }
-
- // zzy
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> zzy(const glm::vec<3, T, Q> &v) {
- return glm::vec<3, T, Q>(v.z, v.z, v.y);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> zzy(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.z, v.z, v.y);
- }
-
- // zzz
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> zzz(const glm::vec<3, T, Q> &v) {
- return glm::vec<3, T, Q>(v.z, v.z, v.z);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> zzz(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.z, v.z, v.z);
- }
-
- // zzw
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> zzw(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.z, v.z, v.w);
- }
-
- // zwx
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> zwx(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.z, v.w, v.x);
- }
-
- // zwy
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> zwy(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.z, v.w, v.y);
- }
-
- // zwz
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> zwz(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.z, v.w, v.z);
- }
-
- // zww
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> zww(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.z, v.w, v.w);
- }
-
- // wxx
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> wxx(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.w, v.x, v.x);
- }
-
- // wxy
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> wxy(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.w, v.x, v.y);
- }
-
- // wxz
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> wxz(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.w, v.x, v.z);
- }
-
- // wxw
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> wxw(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.w, v.x, v.w);
- }
-
- // wyx
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> wyx(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.w, v.y, v.x);
- }
-
- // wyy
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> wyy(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.w, v.y, v.y);
- }
-
- // wyz
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> wyz(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.w, v.y, v.z);
- }
-
- // wyw
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> wyw(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.w, v.y, v.w);
- }
-
- // wzx
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> wzx(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.w, v.z, v.x);
- }
-
- // wzy
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> wzy(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.w, v.z, v.y);
- }
-
- // wzz
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> wzz(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.w, v.z, v.z);
- }
-
- // wzw
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> wzw(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.w, v.z, v.w);
- }
-
- // wwx
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> wwx(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.w, v.w, v.x);
- }
-
- // wwy
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> wwy(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.w, v.w, v.y);
- }
-
- // wwz
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> wwz(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.w, v.w, v.z);
- }
-
- // www
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<3, T, Q> www(const glm::vec<4, T, Q> &v) {
- return glm::vec<3, T, Q>(v.w, v.w, v.w);
- }
-
- // xxxx
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xxxx(const glm::vec<1, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.x, v.x, v.x);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xxxx(const glm::vec<2, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.x, v.x, v.x);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xxxx(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.x, v.x, v.x);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xxxx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.x, v.x, v.x);
- }
-
- // xxxy
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xxxy(const glm::vec<2, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.x, v.x, v.y);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xxxy(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.x, v.x, v.y);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xxxy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.x, v.x, v.y);
- }
-
- // xxxz
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xxxz(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.x, v.x, v.z);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xxxz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.x, v.x, v.z);
- }
-
- // xxxw
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xxxw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.x, v.x, v.w);
- }
-
- // xxyx
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xxyx(const glm::vec<2, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.x, v.y, v.x);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xxyx(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.x, v.y, v.x);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xxyx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.x, v.y, v.x);
- }
-
- // xxyy
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xxyy(const glm::vec<2, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.x, v.y, v.y);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xxyy(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.x, v.y, v.y);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xxyy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.x, v.y, v.y);
- }
-
- // xxyz
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xxyz(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.x, v.y, v.z);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xxyz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.x, v.y, v.z);
- }
-
- // xxyw
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xxyw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.x, v.y, v.w);
- }
-
- // xxzx
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xxzx(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.x, v.z, v.x);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xxzx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.x, v.z, v.x);
- }
-
- // xxzy
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xxzy(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.x, v.z, v.y);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xxzy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.x, v.z, v.y);
- }
-
- // xxzz
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xxzz(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.x, v.z, v.z);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xxzz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.x, v.z, v.z);
- }
-
- // xxzw
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xxzw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.x, v.z, v.w);
- }
-
- // xxwx
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xxwx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.x, v.w, v.x);
- }
-
- // xxwy
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xxwy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.x, v.w, v.y);
- }
-
- // xxwz
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xxwz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.x, v.w, v.z);
- }
-
- // xxww
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xxww(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.x, v.w, v.w);
- }
-
- // xyxx
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xyxx(const glm::vec<2, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.y, v.x, v.x);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xyxx(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.y, v.x, v.x);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xyxx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.y, v.x, v.x);
- }
-
- // xyxy
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xyxy(const glm::vec<2, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.y, v.x, v.y);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xyxy(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.y, v.x, v.y);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xyxy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.y, v.x, v.y);
- }
-
- // xyxz
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xyxz(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.y, v.x, v.z);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xyxz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.y, v.x, v.z);
- }
-
- // xyxw
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xyxw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.y, v.x, v.w);
- }
-
- // xyyx
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xyyx(const glm::vec<2, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.y, v.y, v.x);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xyyx(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.y, v.y, v.x);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xyyx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.y, v.y, v.x);
- }
-
- // xyyy
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xyyy(const glm::vec<2, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.y, v.y, v.y);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xyyy(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.y, v.y, v.y);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xyyy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.y, v.y, v.y);
- }
-
- // xyyz
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xyyz(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.y, v.y, v.z);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xyyz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.y, v.y, v.z);
- }
-
- // xyyw
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xyyw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.y, v.y, v.w);
- }
-
- // xyzx
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xyzx(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.y, v.z, v.x);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xyzx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.y, v.z, v.x);
- }
-
- // xyzy
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xyzy(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.y, v.z, v.y);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xyzy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.y, v.z, v.y);
- }
-
- // xyzz
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xyzz(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.y, v.z, v.z);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xyzz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.y, v.z, v.z);
- }
-
- // xyzw
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xyzw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.y, v.z, v.w);
- }
-
- // xywx
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xywx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.y, v.w, v.x);
- }
-
- // xywy
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xywy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.y, v.w, v.y);
- }
-
- // xywz
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xywz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.y, v.w, v.z);
- }
-
- // xyww
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xyww(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.y, v.w, v.w);
- }
-
- // xzxx
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xzxx(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.z, v.x, v.x);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xzxx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.z, v.x, v.x);
- }
-
- // xzxy
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xzxy(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.z, v.x, v.y);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xzxy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.z, v.x, v.y);
- }
-
- // xzxz
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xzxz(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.z, v.x, v.z);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xzxz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.z, v.x, v.z);
- }
-
- // xzxw
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xzxw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.z, v.x, v.w);
- }
-
- // xzyx
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xzyx(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.z, v.y, v.x);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xzyx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.z, v.y, v.x);
- }
-
- // xzyy
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xzyy(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.z, v.y, v.y);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xzyy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.z, v.y, v.y);
- }
-
- // xzyz
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xzyz(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.z, v.y, v.z);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xzyz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.z, v.y, v.z);
- }
-
- // xzyw
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xzyw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.z, v.y, v.w);
- }
-
- // xzzx
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xzzx(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.z, v.z, v.x);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xzzx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.z, v.z, v.x);
- }
-
- // xzzy
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xzzy(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.z, v.z, v.y);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xzzy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.z, v.z, v.y);
- }
-
- // xzzz
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xzzz(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.z, v.z, v.z);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xzzz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.z, v.z, v.z);
- }
-
- // xzzw
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xzzw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.z, v.z, v.w);
- }
-
- // xzwx
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xzwx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.z, v.w, v.x);
- }
-
- // xzwy
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xzwy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.z, v.w, v.y);
- }
-
- // xzwz
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xzwz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.z, v.w, v.z);
- }
-
- // xzww
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xzww(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.z, v.w, v.w);
- }
-
- // xwxx
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xwxx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.w, v.x, v.x);
- }
-
- // xwxy
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xwxy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.w, v.x, v.y);
- }
-
- // xwxz
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xwxz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.w, v.x, v.z);
- }
-
- // xwxw
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xwxw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.w, v.x, v.w);
- }
-
- // xwyx
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xwyx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.w, v.y, v.x);
- }
-
- // xwyy
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xwyy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.w, v.y, v.y);
- }
-
- // xwyz
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xwyz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.w, v.y, v.z);
- }
-
- // xwyw
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xwyw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.w, v.y, v.w);
- }
-
- // xwzx
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xwzx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.w, v.z, v.x);
- }
-
- // xwzy
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xwzy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.w, v.z, v.y);
- }
-
- // xwzz
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xwzz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.w, v.z, v.z);
- }
-
- // xwzw
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xwzw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.w, v.z, v.w);
- }
-
- // xwwx
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xwwx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.w, v.w, v.x);
- }
-
- // xwwy
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xwwy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.w, v.w, v.y);
- }
-
- // xwwz
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xwwz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.w, v.w, v.z);
- }
-
- // xwww
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> xwww(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.x, v.w, v.w, v.w);
- }
-
- // yxxx
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> yxxx(const glm::vec<2, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.x, v.x, v.x);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> yxxx(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.x, v.x, v.x);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> yxxx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.x, v.x, v.x);
- }
-
- // yxxy
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> yxxy(const glm::vec<2, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.x, v.x, v.y);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> yxxy(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.x, v.x, v.y);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> yxxy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.x, v.x, v.y);
- }
-
- // yxxz
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> yxxz(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.x, v.x, v.z);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> yxxz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.x, v.x, v.z);
- }
-
- // yxxw
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> yxxw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.x, v.x, v.w);
- }
-
- // yxyx
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> yxyx(const glm::vec<2, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.x, v.y, v.x);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> yxyx(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.x, v.y, v.x);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> yxyx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.x, v.y, v.x);
- }
-
- // yxyy
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> yxyy(const glm::vec<2, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.x, v.y, v.y);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> yxyy(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.x, v.y, v.y);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> yxyy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.x, v.y, v.y);
- }
-
- // yxyz
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> yxyz(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.x, v.y, v.z);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> yxyz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.x, v.y, v.z);
- }
-
- // yxyw
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> yxyw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.x, v.y, v.w);
- }
-
- // yxzx
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> yxzx(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.x, v.z, v.x);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> yxzx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.x, v.z, v.x);
- }
-
- // yxzy
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> yxzy(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.x, v.z, v.y);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> yxzy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.x, v.z, v.y);
- }
-
- // yxzz
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> yxzz(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.x, v.z, v.z);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> yxzz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.x, v.z, v.z);
- }
-
- // yxzw
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> yxzw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.x, v.z, v.w);
- }
-
- // yxwx
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> yxwx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.x, v.w, v.x);
- }
-
- // yxwy
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> yxwy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.x, v.w, v.y);
- }
-
- // yxwz
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> yxwz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.x, v.w, v.z);
- }
-
- // yxww
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> yxww(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.x, v.w, v.w);
- }
-
- // yyxx
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> yyxx(const glm::vec<2, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.y, v.x, v.x);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> yyxx(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.y, v.x, v.x);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> yyxx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.y, v.x, v.x);
- }
-
- // yyxy
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> yyxy(const glm::vec<2, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.y, v.x, v.y);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> yyxy(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.y, v.x, v.y);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> yyxy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.y, v.x, v.y);
- }
-
- // yyxz
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> yyxz(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.y, v.x, v.z);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> yyxz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.y, v.x, v.z);
- }
-
- // yyxw
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> yyxw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.y, v.x, v.w);
- }
-
- // yyyx
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> yyyx(const glm::vec<2, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.y, v.y, v.x);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> yyyx(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.y, v.y, v.x);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> yyyx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.y, v.y, v.x);
- }
-
- // yyyy
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> yyyy(const glm::vec<2, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.y, v.y, v.y);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> yyyy(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.y, v.y, v.y);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> yyyy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.y, v.y, v.y);
- }
-
- // yyyz
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> yyyz(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.y, v.y, v.z);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> yyyz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.y, v.y, v.z);
- }
-
- // yyyw
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> yyyw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.y, v.y, v.w);
- }
-
- // yyzx
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> yyzx(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.y, v.z, v.x);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> yyzx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.y, v.z, v.x);
- }
-
- // yyzy
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> yyzy(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.y, v.z, v.y);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> yyzy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.y, v.z, v.y);
- }
-
- // yyzz
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> yyzz(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.y, v.z, v.z);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> yyzz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.y, v.z, v.z);
- }
-
- // yyzw
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> yyzw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.y, v.z, v.w);
- }
-
- // yywx
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> yywx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.y, v.w, v.x);
- }
-
- // yywy
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> yywy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.y, v.w, v.y);
- }
-
- // yywz
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> yywz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.y, v.w, v.z);
- }
-
- // yyww
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> yyww(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.y, v.w, v.w);
- }
-
- // yzxx
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> yzxx(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.z, v.x, v.x);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> yzxx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.z, v.x, v.x);
- }
-
- // yzxy
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> yzxy(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.z, v.x, v.y);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> yzxy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.z, v.x, v.y);
- }
-
- // yzxz
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> yzxz(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.z, v.x, v.z);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> yzxz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.z, v.x, v.z);
- }
-
- // yzxw
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> yzxw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.z, v.x, v.w);
- }
-
- // yzyx
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> yzyx(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.z, v.y, v.x);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> yzyx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.z, v.y, v.x);
- }
-
- // yzyy
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> yzyy(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.z, v.y, v.y);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> yzyy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.z, v.y, v.y);
- }
-
- // yzyz
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> yzyz(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.z, v.y, v.z);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> yzyz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.z, v.y, v.z);
- }
-
- // yzyw
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> yzyw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.z, v.y, v.w);
- }
-
- // yzzx
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> yzzx(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.z, v.z, v.x);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> yzzx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.z, v.z, v.x);
- }
-
- // yzzy
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> yzzy(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.z, v.z, v.y);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> yzzy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.z, v.z, v.y);
- }
-
- // yzzz
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> yzzz(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.z, v.z, v.z);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> yzzz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.z, v.z, v.z);
- }
-
- // yzzw
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> yzzw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.z, v.z, v.w);
- }
-
- // yzwx
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> yzwx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.z, v.w, v.x);
- }
-
- // yzwy
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> yzwy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.z, v.w, v.y);
- }
-
- // yzwz
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> yzwz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.z, v.w, v.z);
- }
-
- // yzww
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> yzww(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.z, v.w, v.w);
- }
-
- // ywxx
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> ywxx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.w, v.x, v.x);
- }
-
- // ywxy
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> ywxy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.w, v.x, v.y);
- }
-
- // ywxz
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> ywxz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.w, v.x, v.z);
- }
-
- // ywxw
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> ywxw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.w, v.x, v.w);
- }
-
- // ywyx
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> ywyx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.w, v.y, v.x);
- }
-
- // ywyy
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> ywyy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.w, v.y, v.y);
- }
-
- // ywyz
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> ywyz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.w, v.y, v.z);
- }
-
- // ywyw
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> ywyw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.w, v.y, v.w);
- }
-
- // ywzx
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> ywzx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.w, v.z, v.x);
- }
-
- // ywzy
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> ywzy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.w, v.z, v.y);
- }
-
- // ywzz
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> ywzz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.w, v.z, v.z);
- }
-
- // ywzw
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> ywzw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.w, v.z, v.w);
- }
-
- // ywwx
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> ywwx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.w, v.w, v.x);
- }
-
- // ywwy
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> ywwy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.w, v.w, v.y);
- }
-
- // ywwz
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> ywwz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.w, v.w, v.z);
- }
-
- // ywww
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> ywww(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.y, v.w, v.w, v.w);
- }
-
- // zxxx
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zxxx(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.x, v.x, v.x);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zxxx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.x, v.x, v.x);
- }
-
- // zxxy
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zxxy(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.x, v.x, v.y);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zxxy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.x, v.x, v.y);
- }
-
- // zxxz
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zxxz(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.x, v.x, v.z);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zxxz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.x, v.x, v.z);
- }
-
- // zxxw
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zxxw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.x, v.x, v.w);
- }
-
- // zxyx
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zxyx(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.x, v.y, v.x);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zxyx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.x, v.y, v.x);
- }
-
- // zxyy
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zxyy(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.x, v.y, v.y);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zxyy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.x, v.y, v.y);
- }
-
- // zxyz
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zxyz(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.x, v.y, v.z);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zxyz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.x, v.y, v.z);
- }
-
- // zxyw
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zxyw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.x, v.y, v.w);
- }
-
- // zxzx
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zxzx(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.x, v.z, v.x);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zxzx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.x, v.z, v.x);
- }
-
- // zxzy
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zxzy(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.x, v.z, v.y);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zxzy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.x, v.z, v.y);
- }
-
- // zxzz
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zxzz(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.x, v.z, v.z);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zxzz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.x, v.z, v.z);
- }
-
- // zxzw
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zxzw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.x, v.z, v.w);
- }
-
- // zxwx
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zxwx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.x, v.w, v.x);
- }
-
- // zxwy
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zxwy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.x, v.w, v.y);
- }
-
- // zxwz
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zxwz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.x, v.w, v.z);
- }
-
- // zxww
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zxww(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.x, v.w, v.w);
- }
-
- // zyxx
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zyxx(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.y, v.x, v.x);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zyxx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.y, v.x, v.x);
- }
-
- // zyxy
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zyxy(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.y, v.x, v.y);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zyxy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.y, v.x, v.y);
- }
-
- // zyxz
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zyxz(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.y, v.x, v.z);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zyxz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.y, v.x, v.z);
- }
-
- // zyxw
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zyxw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.y, v.x, v.w);
- }
-
- // zyyx
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zyyx(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.y, v.y, v.x);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zyyx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.y, v.y, v.x);
- }
-
- // zyyy
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zyyy(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.y, v.y, v.y);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zyyy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.y, v.y, v.y);
- }
-
- // zyyz
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zyyz(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.y, v.y, v.z);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zyyz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.y, v.y, v.z);
- }
-
- // zyyw
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zyyw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.y, v.y, v.w);
- }
-
- // zyzx
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zyzx(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.y, v.z, v.x);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zyzx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.y, v.z, v.x);
- }
-
- // zyzy
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zyzy(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.y, v.z, v.y);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zyzy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.y, v.z, v.y);
- }
-
- // zyzz
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zyzz(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.y, v.z, v.z);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zyzz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.y, v.z, v.z);
- }
-
- // zyzw
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zyzw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.y, v.z, v.w);
- }
-
- // zywx
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zywx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.y, v.w, v.x);
- }
-
- // zywy
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zywy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.y, v.w, v.y);
- }
-
- // zywz
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zywz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.y, v.w, v.z);
- }
-
- // zyww
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zyww(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.y, v.w, v.w);
- }
-
- // zzxx
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zzxx(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.z, v.x, v.x);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zzxx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.z, v.x, v.x);
- }
-
- // zzxy
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zzxy(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.z, v.x, v.y);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zzxy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.z, v.x, v.y);
- }
-
- // zzxz
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zzxz(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.z, v.x, v.z);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zzxz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.z, v.x, v.z);
- }
-
- // zzxw
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zzxw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.z, v.x, v.w);
- }
-
- // zzyx
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zzyx(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.z, v.y, v.x);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zzyx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.z, v.y, v.x);
- }
-
- // zzyy
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zzyy(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.z, v.y, v.y);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zzyy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.z, v.y, v.y);
- }
-
- // zzyz
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zzyz(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.z, v.y, v.z);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zzyz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.z, v.y, v.z);
- }
-
- // zzyw
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zzyw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.z, v.y, v.w);
- }
-
- // zzzx
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zzzx(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.z, v.z, v.x);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zzzx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.z, v.z, v.x);
- }
-
- // zzzy
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zzzy(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.z, v.z, v.y);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zzzy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.z, v.z, v.y);
- }
-
- // zzzz
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zzzz(const glm::vec<3, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.z, v.z, v.z);
- }
-
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zzzz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.z, v.z, v.z);
- }
-
- // zzzw
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zzzw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.z, v.z, v.w);
- }
-
- // zzwx
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zzwx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.z, v.w, v.x);
- }
-
- // zzwy
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zzwy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.z, v.w, v.y);
- }
-
- // zzwz
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zzwz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.z, v.w, v.z);
- }
-
- // zzww
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zzww(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.z, v.w, v.w);
- }
-
- // zwxx
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zwxx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.w, v.x, v.x);
- }
-
- // zwxy
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zwxy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.w, v.x, v.y);
- }
-
- // zwxz
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zwxz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.w, v.x, v.z);
- }
-
- // zwxw
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zwxw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.w, v.x, v.w);
- }
-
- // zwyx
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zwyx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.w, v.y, v.x);
- }
-
- // zwyy
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zwyy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.w, v.y, v.y);
- }
-
- // zwyz
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zwyz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.w, v.y, v.z);
- }
-
- // zwyw
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zwyw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.w, v.y, v.w);
- }
-
- // zwzx
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zwzx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.w, v.z, v.x);
- }
-
- // zwzy
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zwzy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.w, v.z, v.y);
- }
-
- // zwzz
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zwzz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.w, v.z, v.z);
- }
-
- // zwzw
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zwzw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.w, v.z, v.w);
- }
-
- // zwwx
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zwwx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.w, v.w, v.x);
- }
-
- // zwwy
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zwwy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.w, v.w, v.y);
- }
-
- // zwwz
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zwwz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.w, v.w, v.z);
- }
-
- // zwww
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> zwww(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.z, v.w, v.w, v.w);
- }
-
- // wxxx
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> wxxx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.x, v.x, v.x);
- }
-
- // wxxy
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> wxxy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.x, v.x, v.y);
- }
-
- // wxxz
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> wxxz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.x, v.x, v.z);
- }
-
- // wxxw
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> wxxw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.x, v.x, v.w);
- }
-
- // wxyx
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> wxyx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.x, v.y, v.x);
- }
-
- // wxyy
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> wxyy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.x, v.y, v.y);
- }
-
- // wxyz
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> wxyz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.x, v.y, v.z);
- }
-
- // wxyw
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> wxyw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.x, v.y, v.w);
- }
-
- // wxzx
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> wxzx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.x, v.z, v.x);
- }
-
- // wxzy
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> wxzy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.x, v.z, v.y);
- }
-
- // wxzz
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> wxzz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.x, v.z, v.z);
- }
-
- // wxzw
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> wxzw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.x, v.z, v.w);
- }
-
- // wxwx
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> wxwx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.x, v.w, v.x);
- }
-
- // wxwy
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> wxwy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.x, v.w, v.y);
- }
-
- // wxwz
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> wxwz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.x, v.w, v.z);
- }
-
- // wxww
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> wxww(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.x, v.w, v.w);
- }
-
- // wyxx
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> wyxx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.y, v.x, v.x);
- }
-
- // wyxy
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> wyxy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.y, v.x, v.y);
- }
-
- // wyxz
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> wyxz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.y, v.x, v.z);
- }
-
- // wyxw
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> wyxw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.y, v.x, v.w);
- }
-
- // wyyx
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> wyyx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.y, v.y, v.x);
- }
-
- // wyyy
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> wyyy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.y, v.y, v.y);
- }
-
- // wyyz
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> wyyz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.y, v.y, v.z);
- }
-
- // wyyw
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> wyyw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.y, v.y, v.w);
- }
-
- // wyzx
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> wyzx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.y, v.z, v.x);
- }
-
- // wyzy
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> wyzy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.y, v.z, v.y);
- }
-
- // wyzz
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> wyzz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.y, v.z, v.z);
- }
-
- // wyzw
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> wyzw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.y, v.z, v.w);
- }
-
- // wywx
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> wywx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.y, v.w, v.x);
- }
-
- // wywy
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> wywy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.y, v.w, v.y);
- }
-
- // wywz
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> wywz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.y, v.w, v.z);
- }
-
- // wyww
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> wyww(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.y, v.w, v.w);
- }
-
- // wzxx
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> wzxx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.z, v.x, v.x);
- }
-
- // wzxy
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> wzxy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.z, v.x, v.y);
- }
-
- // wzxz
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> wzxz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.z, v.x, v.z);
- }
-
- // wzxw
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> wzxw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.z, v.x, v.w);
- }
-
- // wzyx
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> wzyx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.z, v.y, v.x);
- }
-
- // wzyy
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> wzyy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.z, v.y, v.y);
- }
-
- // wzyz
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> wzyz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.z, v.y, v.z);
- }
-
- // wzyw
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> wzyw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.z, v.y, v.w);
- }
-
- // wzzx
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> wzzx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.z, v.z, v.x);
- }
-
- // wzzy
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> wzzy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.z, v.z, v.y);
- }
-
- // wzzz
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> wzzz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.z, v.z, v.z);
- }
-
- // wzzw
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> wzzw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.z, v.z, v.w);
- }
-
- // wzwx
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> wzwx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.z, v.w, v.x);
- }
-
- // wzwy
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> wzwy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.z, v.w, v.y);
- }
-
- // wzwz
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> wzwz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.z, v.w, v.z);
- }
-
- // wzww
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> wzww(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.z, v.w, v.w);
- }
-
- // wwxx
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> wwxx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.w, v.x, v.x);
- }
-
- // wwxy
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> wwxy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.w, v.x, v.y);
- }
-
- // wwxz
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> wwxz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.w, v.x, v.z);
- }
-
- // wwxw
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> wwxw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.w, v.x, v.w);
- }
-
- // wwyx
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> wwyx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.w, v.y, v.x);
- }
-
- // wwyy
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> wwyy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.w, v.y, v.y);
- }
-
- // wwyz
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> wwyz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.w, v.y, v.z);
- }
-
- // wwyw
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> wwyw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.w, v.y, v.w);
- }
-
- // wwzx
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> wwzx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.w, v.z, v.x);
- }
-
- // wwzy
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> wwzy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.w, v.z, v.y);
- }
-
- // wwzz
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> wwzz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.w, v.z, v.z);
- }
-
- // wwzw
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> wwzw(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.w, v.z, v.w);
- }
-
- // wwwx
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> wwwx(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.w, v.w, v.x);
- }
-
- // wwwy
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> wwwy(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.w, v.w, v.y);
- }
-
- // wwwz
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> wwwz(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.w, v.w, v.z);
- }
-
- // wwww
- template<typename T, qualifier Q>
- GLM_INLINE glm::vec<4, T, Q> wwww(const glm::vec<4, T, Q> &v) {
- return glm::vec<4, T, Q>(v.w, v.w, v.w, v.w);
- }
-
-}