29 #ifndef glm_core_type_mat2x4
30 #define glm_core_type_mat2x4
37 template <
typename T>
struct tvec1;
38 template <
typename T>
struct tvec2;
39 template <
typename T>
struct tvec3;
40 template <
typename T>
struct tvec4;
41 template <
typename T>
struct tmat2x2;
42 template <
typename T>
struct tmat2x3;
43 template <
typename T>
struct tmat2x4;
44 template <
typename T>
struct tmat3x2;
45 template <
typename T>
struct tmat3x3;
46 template <
typename T>
struct tmat3x4;
47 template <
typename T>
struct tmat4x2;
48 template <
typename T>
struct tmat4x3;
49 template <
typename T>
struct tmat4x4;
56 typedef std::size_t size_type;
57 typedef tvec4<T> col_type;
58 typedef tvec2<T> row_type;
59 typedef tmat2x4<T> type;
60 typedef tmat4x2<T> transpose_type;
62 static GLM_FUNC_DECL size_type col_size();
63 static GLM_FUNC_DECL size_type row_size();
65 GLM_FUNC_DECL GLM_CONSTEXPR size_type
length()
const;
73 GLM_FUNC_DECL tmat2x4();
74 GLM_FUNC_DECL tmat2x4(tmat2x4
const & m);
76 GLM_FUNC_DECL
explicit tmat2x4(
78 GLM_FUNC_DECL
explicit tmat2x4(
79 value_type
const & s);
80 GLM_FUNC_DECL
explicit tmat2x4(
81 value_type
const & x0, value_type
const & y0, value_type
const & z0, value_type
const & w0,
82 value_type
const & x1, value_type
const & y1, value_type
const & z1, value_type
const & w1);
83 GLM_FUNC_DECL
explicit tmat2x4(
90 GLM_FUNC_DECL
explicit tmat2x4(
94 typename X1,
typename Y1,
typename Z1,
typename W1,
95 typename X2,
typename Y2,
typename Z2,
typename W2>
96 GLM_FUNC_DECL
explicit tmat2x4(
97 X1
const & x1, Y1
const & y1, Z1
const & z1, W1
const & w1,
98 X2
const & x2, Y2
const & y2, Z2
const & z2, W2
const & w2);
100 template <
typename U,
typename V>
101 GLM_FUNC_DECL
explicit tmat2x4(
103 tvec4<V>
const & v2);
107 template <
typename U>
108 GLM_FUNC_DECL
explicit tmat2x4(tmat2x4<U>
const & m);
110 GLM_FUNC_DECL
explicit tmat2x4(tmat2x2<T>
const & x);
111 GLM_FUNC_DECL
explicit tmat2x4(tmat3x3<T>
const & x);
112 GLM_FUNC_DECL
explicit tmat2x4(tmat4x4<T>
const & x);
113 GLM_FUNC_DECL
explicit tmat2x4(tmat2x3<T>
const & x);
114 GLM_FUNC_DECL
explicit tmat2x4(tmat3x2<T>
const & x);
115 GLM_FUNC_DECL
explicit tmat2x4(tmat3x4<T>
const & x);
116 GLM_FUNC_DECL
explicit tmat2x4(tmat4x2<T>
const & x);
117 GLM_FUNC_DECL
explicit tmat2x4(tmat4x3<T>
const & x);
120 GLM_FUNC_DECL col_type & operator[](size_type i);
121 GLM_FUNC_DECL col_type
const & operator[](size_type i)
const;
124 GLM_FUNC_DECL tmat2x4<T>& operator= (tmat2x4<T>
const & m);
125 template <
typename U>
126 GLM_FUNC_DECL tmat2x4<T>& operator= (tmat2x4<U>
const & m);
127 template <
typename U>
128 GLM_FUNC_DECL tmat2x4<T>& operator+= (U
const & s);
129 template <
typename U>
130 GLM_FUNC_DECL tmat2x4<T>& operator+= (tmat2x4<U>
const & m);
131 template <
typename U>
132 GLM_FUNC_DECL tmat2x4<T>& operator-= (U
const & s);
133 template <
typename U>
134 GLM_FUNC_DECL tmat2x4<T>& operator-= (tmat2x4<U>
const & m);
135 template <
typename U>
136 GLM_FUNC_DECL tmat2x4<T>& operator*= (U
const & s);
137 template <
typename U>
138 GLM_FUNC_DECL tmat2x4<T>& operator*= (tmat2x4<U>
const & m);
139 template <
typename U>
140 GLM_FUNC_DECL tmat2x4<T>& operator/= (U
const & s);
142 GLM_FUNC_DECL tmat2x4<T>& operator++ ();
143 GLM_FUNC_DECL tmat2x4<T>& operator-- ();
147 template <
typename T>
148 tmat2x4<T> operator+ (
149 tmat2x4<T>
const & m,
150 typename tmat2x4<T>::value_type
const & s);
152 template <
typename T>
153 tmat2x4<T> operator+ (
154 tmat2x4<T>
const & m1,
155 tmat2x4<T>
const & m2);
157 template <
typename T>
158 tmat2x4<T> operator- (
159 tmat2x4<T>
const & m,
160 typename tmat2x4<T>::value_type
const & s);
162 template <
typename T>
163 tmat2x4<T> operator- (
164 tmat2x4<T>
const & m1,
165 tmat2x4<T>
const & m2);
167 template <
typename T>
168 tmat2x4<T> operator* (
169 tmat2x4<T>
const & m,
170 typename tmat2x4<T>::value_type
const & s);
172 template <
typename T>
173 tmat2x4<T> operator* (
174 typename tmat2x4<T>::value_type
const & s,
175 tmat2x4<T>
const & m);
177 template <
typename T>
178 typename tmat2x4<T>::col_type operator* (
179 tmat2x4<T>
const & m,
180 typename tmat2x4<T>::row_type
const & v);
182 template <
typename T>
183 typename tmat2x4<T>::row_type operator* (
184 typename tmat2x4<T>::col_type
const & v,
185 tmat2x4<T>
const & m);
187 template <
typename T>
188 tmat4x4<T> operator* (
189 tmat2x4<T>
const & m1,
190 tmat4x2<T>
const & m2);
192 template <
typename T>
193 tmat2x4<T> operator* (
194 tmat2x4<T>
const & m1,
195 tmat2x2<T>
const & m2);
197 template <
typename T>
198 tmat3x4<T> operator* (
199 tmat2x4<T>
const & m1,
200 tmat3x2<T>
const & m2);
202 template <
typename T>
203 tmat2x4<T> operator/ (
204 tmat2x4<T>
const & m,
205 typename tmat2x4<T>::value_type
const & s);
207 template <
typename T>
208 tmat2x4<T> operator/ (
209 typename tmat2x4<T>::value_type
const & s,
210 tmat2x4<T>
const & m);
213 template <
typename T>
214 tmat2x4<T>
const operator- (
215 tmat2x4<T>
const & m);
217 template <
typename T>
218 tmat2x4<T>
const operator-- (
219 tmat2x4<T>
const & m,
222 template <
typename T>
223 tmat2x4<T>
const operator++ (
224 tmat2x4<T>
const & m,
256 #ifndef GLM_EXTERNAL_TEMPLATE
257 #include "type_mat2x4.inl"
260 #endif //glm_core_type_mat2x4