1#ifndef NNGN_MATH_VEC4_H
2#define NNGN_MATH_VEC4_H
21 : x{p_x}, y{p_y}, z{p_z},
w{p_w} {}
34 constexpr vec2_base<T> v0 ## v1() const { return {this->v0, this->v1}; }
40#define S(v0, v1, v2) \
41 constexpr vec3_base<T> v0 ## v1 ## v2() const \
42 { return {this->v0, this->v1, this->v2}; }
43 S(x,x,x)
S(x,x,y)
S(x,x,z)
S(x,x,
w)
S(x,y,x)
S(x,y,y)
S(x,y,z)
S(x,y,
w)
44 S(x,z,x)
S(x,z,y)
S(x,z,z)
S(x,z,
w)
S(x,
w,x)
S(x,
w,y)
S(x,
w,z)
S(x,
w,
w)
45 S(y,x,x)
S(y,x,y)
S(y,x,z)
S(y,x,
w)
S(y,y,x)
S(y,y,y)
S(y,y,z)
S(y,y,
w)
46 S(y,z,x)
S(y,z,y)
S(y,z,z)
S(y,z,
w)
S(y,
w,x)
S(y,
w,y)
S(y,
w,z)
S(y,
w,
w)
47 S(z,x,x)
S(z,x,y)
S(z,x,z)
S(z,x,
w)
S(z,y,x)
S(z,y,y)
S(z,y,z)
S(z,y,
w)
48 S(z,z,x)
S(z,z,y)
S(z,z,z)
S(z,z,
w)
S(z,
w,x)
S(z,
w,y)
S(z,
w,z)
S(z,
w,
w)
49 S(
w,x,x)
S(
w,x,y)
S(
w,x,z)
S(
w,x,
w)
S(
w,y,x)
S(
w,y,y)
S(
w,y,z)
S(
w,y,
w)
50 S(
w,z,x)
S(
w,z,y)
S(
w,z,z)
S(
w,z,
w)
S(
w,
w,x)
S(
w,
w,y)
S(
w,
w,z)
S(
w,
w,
w)
52#define S(v0, v1, v2, v3) \
53 constexpr vec4_base<T> v0 ## v1 ## v2 ## v3() const \
54 { return {this->v0, this->v1, this->v2, this->v3}; }
55 S(x,x,x,x)
S(x,x,x,y)
S(x,x,x,z)
S(x,x,x,
w)
56 S(x,x,y,x)
S(x,x,y,y)
S(x,x,y,z)
S(x,x,y,
w)
57 S(x,x,z,x)
S(x,x,z,y)
S(x,x,z,z)
S(x,x,z,
w)
58 S(x,x,
w,x)
S(x,x,
w,y)
S(x,x,
w,z)
S(x,x,
w,
w)
59 S(x,y,x,x)
S(x,y,x,y)
S(x,y,x,z)
S(x,y,x,
w)
60 S(x,y,y,x)
S(x,y,y,y)
S(x,y,y,z)
S(x,y,y,
w)
61 S(x,y,z,x)
S(x,y,z,y)
S(x,y,z,z)
S(x,y,z,
w)
62 S(x,y,
w,x)
S(x,y,
w,y)
S(x,y,
w,z)
S(x,y,
w,
w)
63 S(x,z,x,x)
S(x,z,x,y)
S(x,z,x,z)
S(x,z,x,
w)
64 S(x,z,y,x)
S(x,z,y,y)
S(x,z,y,z)
S(x,z,y,
w)
65 S(x,z,z,x)
S(x,z,z,y)
S(x,z,z,z)
S(x,z,z,
w)
66 S(x,z,
w,x)
S(x,z,
w,y)
S(x,z,
w,z)
S(x,z,
w,
w)
67 S(x,
w,x,x)
S(x,
w,x,y)
S(x,
w,x,z)
S(x,
w,x,
w)
68 S(x,
w,y,x)
S(x,
w,y,y)
S(x,
w,y,z)
S(x,
w,y,
w)
69 S(x,
w,z,x)
S(x,
w,z,y)
S(x,
w,z,z)
S(x,
w,z,
w)
70 S(x,
w,
w,x)
S(x,
w,
w,y)
S(x,
w,
w,z)
S(x,
w,
w,
w)
71 S(y,x,x,x)
S(y,x,x,y)
S(y,x,x,z)
S(y,x,x,
w)
72 S(y,x,y,x)
S(y,x,y,y)
S(y,x,y,z)
S(y,x,y,
w)
73 S(y,x,z,x)
S(y,x,z,y)
S(y,x,z,z)
S(y,x,z,
w)
74 S(y,x,
w,x)
S(y,x,
w,y)
S(y,x,
w,z)
S(y,x,
w,
w)
75 S(y,y,x,x)
S(y,y,x,y)
S(y,y,x,z)
S(y,y,x,
w)
76 S(y,y,y,x)
S(y,y,y,y)
S(y,y,y,z)
S(y,y,y,
w)
77 S(y,y,z,x)
S(y,y,z,y)
S(y,y,z,z)
S(y,y,z,
w)
78 S(y,y,
w,x)
S(y,y,
w,y)
S(y,y,
w,z)
S(y,y,
w,
w)
79 S(y,z,x,x)
S(y,z,x,y)
S(y,z,x,z)
S(y,z,x,
w)
80 S(y,z,y,x)
S(y,z,y,y)
S(y,z,y,z)
S(y,z,y,
w)
81 S(y,z,z,x)
S(y,z,z,y)
S(y,z,z,z)
S(y,z,z,
w)
82 S(y,z,
w,x)
S(y,z,
w,y)
S(y,z,
w,z)
S(y,z,
w,
w)
83 S(y,
w,x,x)
S(y,
w,x,y)
S(y,
w,x,z)
S(y,
w,x,
w)
84 S(y,
w,y,x)
S(y,
w,y,y)
S(y,
w,y,z)
S(y,
w,y,
w)
85 S(y,
w,z,x)
S(y,
w,z,y)
S(y,
w,z,z)
S(y,
w,z,
w)
86 S(y,
w,
w,x)
S(y,
w,
w,y)
S(y,
w,
w,z)
S(y,
w,
w,
w)
87 S(z,x,x,x)
S(z,x,x,y)
S(z,x,x,z)
S(z,x,x,
w)
88 S(z,x,y,x)
S(z,x,y,y)
S(z,x,y,z)
S(z,x,y,
w)
89 S(z,x,z,x)
S(z,x,z,y)
S(z,x,z,z)
S(z,x,z,
w)
90 S(z,x,
w,x)
S(z,x,
w,y)
S(z,x,
w,z)
S(z,x,
w,
w)
91 S(z,y,x,x)
S(z,y,x,y)
S(z,y,x,z)
S(z,y,x,
w)
92 S(z,y,y,x)
S(z,y,y,y)
S(z,y,y,z)
S(z,y,y,
w)
93 S(z,y,z,x)
S(z,y,z,y)
S(z,y,z,z)
S(z,y,z,
w)
94 S(z,y,
w,x)
S(z,y,
w,y)
S(z,y,
w,z)
S(z,y,
w,
w)
95 S(z,z,x,x)
S(z,z,x,y)
S(z,z,x,z)
S(z,z,x,
w)
96 S(z,z,y,x)
S(z,z,y,y)
S(z,z,y,z)
S(z,z,y,
w)
97 S(z,z,z,x)
S(z,z,z,y)
S(z,z,z,z)
S(z,z,z,
w)
98 S(z,z,
w,x)
S(z,z,
w,y)
S(z,z,
w,z)
S(z,z,
w,
w)
99 S(z,
w,x,x)
S(z,
w,x,y)
S(z,
w,x,z)
S(z,
w,x,
w)
100 S(z,
w,y,x)
S(z,
w,y,y)
S(z,
w,y,z)
S(z,
w,y,
w)
101 S(z,
w,z,x)
S(z,
w,z,y)
S(z,
w,z,z)
S(z,
w,z,
w)
102 S(z,
w,
w,x)
S(z,
w,
w,y)
S(z,
w,
w,z)
S(z,
w,
w,
w)
103 S(
w,x,x,x)
S(
w,x,x,y)
S(
w,x,x,z)
S(
w,x,x,
w)
104 S(
w,x,y,x)
S(
w,x,y,y)
S(
w,x,y,z)
S(
w,x,y,
w)
105 S(
w,x,z,x)
S(
w,x,z,y)
S(
w,x,z,z)
S(
w,x,z,
w)
106 S(
w,x,
w,x)
S(
w,x,
w,y)
S(
w,x,
w,z)
S(
w,x,
w,
w)
107 S(
w,y,x,x)
S(
w,y,x,y)
S(
w,y,x,z)
S(
w,y,x,
w)
108 S(
w,y,y,x)
S(
w,y,y,y)
S(
w,y,y,z)
S(
w,y,y,
w)
109 S(
w,y,z,x)
S(
w,y,z,y)
S(
w,y,z,z)
S(
w,y,z,
w)
110 S(
w,y,
w,x)
S(
w,y,
w,y)
S(
w,y,
w,z)
S(
w,y,
w,
w)
111 S(
w,z,x,x)
S(
w,z,x,y)
S(
w,z,x,z)
S(
w,z,x,
w)
112 S(
w,z,y,x)
S(
w,z,y,y)
S(
w,z,y,z)
S(
w,z,y,
w)
113 S(
w,z,z,x)
S(
w,z,z,y)
S(
w,z,z,z)
S(
w,z,z,
w)
114 S(
w,z,
w,x)
S(
w,z,
w,y)
S(
w,z,
w,z)
S(
w,z,
w,
w)
115 S(
w,
w,x,x)
S(
w,
w,x,y)
S(
w,
w,x,z)
S(
w,
w,x,
w)
116 S(
w,
w,y,x)
S(
w,
w,y,y)
S(
w,
w,y,z)
S(
w,
w,y,
w)
117 S(
w,
w,z,x)
S(
w,
w,z,y)
S(
w,
w,z,z)
S(
w,
w,z,
w)
118 S(
w,
w,
w,x)
S(
w,
w,
w,y)
S(
w,
w,
w,z)
S(
w,
w,
w,
w)
123struct vec_type<T, 4> : std::type_identity<vec4_base<T>> {};
v[1]
Definition: math.lua:19
w
Definition: strict.lua:12
constexpr vec4_base(T p_x, T p_y, T p_z)
Definition: vec4.h:18
constexpr vec4_base(T v)
Definition: vec4.h:15
constexpr vec4_base(T p_x, const vec2_base< T > &v, T p_w)
Definition: vec4.h:24
constexpr vec3_base< T > persp_div() const
Definition: vec4.h:32
constexpr vec4_base()=default
constexpr vec4_base(const vec2_base< T > &u, const vec2_base< T > &v)
Definition: vec4.h:26
constexpr vec4_base(const vec2_base< T > &v, T p_z, T p_w)
Definition: vec4.h:22
constexpr vec4_base(T p_x, T p_y, T p_z, T p_w)
Definition: vec4.h:20
constexpr vec4_base(const vec3_base< T > &v, T p_w)
Definition: vec4.h:28
constexpr vec4_base(T p_x, const vec3_base< T > &v)
Definition: vec4.h:30
constexpr vec4_base(T p_x, T p_y)
Definition: vec4.h:16
T type
Definition: vec.h:23
#define S(v0, v1)
Definition: vec4.h:52