29 #ifndef glm_core_type_mat3x4
30 #define glm_core_type_mat3x4
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 tvec3<T> row_type;
59 typedef tmat3x4<T> type;
60 typedef tmat4x3<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 tmat3x4();
74 GLM_FUNC_DECL tmat3x4(tmat3x4
const & m);
76 GLM_FUNC_DECL
explicit tmat3x4(
78 GLM_FUNC_DECL
explicit tmat3x4(
79 value_type
const & s);
80 GLM_FUNC_DECL
explicit tmat3x4(
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 value_type
const & x2, value_type
const & y2, value_type
const & z2, value_type
const & w2);
84 GLM_FUNC_DECL
explicit tmat3x4(
92 GLM_FUNC_DECL
explicit tmat3x4(
97 typename X1,
typename Y1,
typename Z1,
typename W1,
98 typename X2,
typename Y2,
typename Z2,
typename W2,
99 typename X3,
typename Y3,
typename Z3,
typename W3
101 GLM_FUNC_DECL
explicit tmat3x4(
102 X1
const & x1, Y1
const & y1, Z1
const & z1, W1
const & w1,
103 X2
const & x2, Y2
const & y2, Z2
const & z2, W2
const & w2,
104 X3
const & x3, Y3
const & y3, Z3
const & z3, W3
const & w3);
106 template <
typename V1,
typename V2,
typename V3>
107 GLM_FUNC_DECL
explicit tmat3x4(
108 tvec4<V1>
const & v1,
109 tvec4<V2>
const & v2,
110 tvec4<V3>
const & v3);
113 template <
typename U>
114 GLM_FUNC_DECL
explicit tmat3x4(tmat3x4<U>
const & m);
116 GLM_FUNC_DECL
explicit tmat3x4(tmat2x2<T>
const & x);
117 GLM_FUNC_DECL
explicit tmat3x4(tmat3x3<T>
const & x);
118 GLM_FUNC_DECL
explicit tmat3x4(tmat4x4<T>
const & x);
119 GLM_FUNC_DECL
explicit tmat3x4(tmat2x3<T>
const & x);
120 GLM_FUNC_DECL
explicit tmat3x4(tmat3x2<T>
const & x);
121 GLM_FUNC_DECL
explicit tmat3x4(tmat2x4<T>
const & x);
122 GLM_FUNC_DECL
explicit tmat3x4(tmat4x2<T>
const & x);
123 GLM_FUNC_DECL
explicit tmat3x4(tmat4x3<T>
const & x);
126 col_type & operator[](size_type i);
127 col_type
const & operator[](size_type i)
const;
130 GLM_FUNC_DECL tmat3x4<T> & operator= (tmat3x4<T>
const & m);
131 template <
typename U>
132 GLM_FUNC_DECL tmat3x4<T> & operator= (tmat3x4<U>
const & m);
133 template <
typename U>
134 GLM_FUNC_DECL tmat3x4<T> & operator+= (U
const & s);
135 template <
typename U>
136 GLM_FUNC_DECL tmat3x4<T> & operator+= (tmat3x4<U>
const & m);
137 template <
typename U>
138 GLM_FUNC_DECL tmat3x4<T> & operator-= (U
const & s);
139 template <
typename U>
140 GLM_FUNC_DECL tmat3x4<T> & operator-= (tmat3x4<U>
const & m);
141 template <
typename U>
142 GLM_FUNC_DECL tmat3x4<T> & operator*= (U
const & s);
143 template <
typename U>
144 GLM_FUNC_DECL tmat3x4<T> & operator*= (tmat3x4<U>
const & m);
145 template <
typename U>
146 GLM_FUNC_DECL tmat3x4<T> & operator/= (U
const & s);
148 GLM_FUNC_DECL tmat3x4<T> & operator++ ();
149 GLM_FUNC_DECL tmat3x4<T> & operator-- ();
153 template <
typename T>
154 tmat3x4<T> operator+ (
155 tmat3x4<T>
const & m,
156 typename tmat3x4<T>::value_type
const & s);
158 template <
typename T>
159 tmat3x4<T> operator+ (
160 tmat3x4<T>
const & m1,
161 tmat3x4<T>
const & m2);
163 template <
typename T>
164 tmat3x4<T> operator- (
165 tmat3x4<T>
const & m,
166 typename tmat3x4<T>::value_type
const & s);
168 template <
typename T>
169 tmat3x4<T> operator- (
170 tmat3x4<T>
const & m1,
171 tmat3x4<T>
const & m2);
173 template <
typename T>
174 tmat3x4<T> operator* (
175 tmat3x4<T>
const & m,
176 typename tmat3x4<T>::value_type
const & s);
178 template <
typename T>
179 tmat3x4<T> operator* (
180 typename tmat3x4<T>::value_type
const & s,
181 tmat3x4<T>
const & m);
183 template <
typename T>
184 typename tmat3x4<T>::col_type operator* (
185 tmat3x4<T>
const & m,
186 typename tmat3x4<T>::row_type
const & v);
188 template <
typename T>
189 typename tmat3x4<T>::row_type operator* (
190 typename tmat3x4<T>::col_type
const & v,
191 tmat3x4<T>
const & m);
193 template <
typename T>
194 tmat4x4<T> operator* (
195 tmat3x4<T>
const & m1,
196 tmat4x3<T>
const & m2);
198 template <
typename T>
199 tmat2x4<T> operator* (
200 tmat3x4<T>
const & m1,
201 tmat2x3<T>
const & m2);
203 template <
typename T>
204 tmat3x4<T> operator* (
205 tmat3x4<T>
const & m1,
206 tmat3x3<T>
const & m2);
208 template <
typename T>
209 tmat3x4<T> operator/ (
210 tmat3x4<T>
const & m,
211 typename tmat3x4<T>::value_type
const & s);
213 template <
typename T>
214 tmat3x4<T> operator/ (
215 typename tmat3x4<T>::value_type
const & s,
216 tmat3x4<T>
const & m);
219 template <
typename T>
220 tmat3x4<T>
const operator- (
221 tmat3x4<T>
const & m);
223 template <
typename T>
224 tmat3x4<T>
const operator-- (
225 tmat3x4<T>
const & m,
228 template <
typename T>
229 tmat3x4<T>
const operator++ (
230 tmat3x4<T>
const & m,
262 #ifndef GLM_EXTERNAL_TEMPLATE
263 #include "type_mat3x4.inl"
266 #endif //glm_core_type_mat3x4