43 template <
typename T, precision P = defaultp>
46 typedef tvec4<T, P> col_type;
47 typedef tvec4<T, P> row_type;
48 typedef tmat4x4<T, P> type;
49 typedef tmat4x4<T, P> transpose_type;
52 template <
typename U, precision Q>
53 friend tvec4<U, Q> operator/(tmat4x4<U, Q>
const & m, tvec4<U, Q>
const & v);
54 template <
typename U, precision Q>
55 friend tvec4<U, Q> operator/(tvec4<U, Q>
const & v, tmat4x4<U, Q>
const & m);
64 GLM_FUNC_DECL tmat4x4();
65 template <precision Q>
66 GLM_FUNC_DECL tmat4x4(tmat4x4<T, Q>
const & m);
68 GLM_FUNC_DECL
explicit tmat4x4(ctor);
69 GLM_FUNC_DECL
explicit tmat4x4(T
const & x);
70 GLM_FUNC_DECL tmat4x4(
71 T
const & x0, T
const & y0, T
const & z0, T
const & w0,
72 T
const & x1, T
const & y1, T
const & z1, T
const & w1,
73 T
const & x2, T
const & y2, T
const & z2, T
const & w2,
74 T
const & x3, T
const & y3, T
const & z3, T
const & w3);
75 GLM_FUNC_DECL tmat4x4(
85 typename X1,
typename Y1,
typename Z1,
typename W1,
86 typename X2,
typename Y2,
typename Z2,
typename W2,
87 typename X3,
typename Y3,
typename Z3,
typename W3,
88 typename X4,
typename Y4,
typename Z4,
typename W4>
89 GLM_FUNC_DECL tmat4x4(
90 X1
const & x1, Y1
const & y1, Z1
const & z1, W1
const & w1,
91 X2
const & x2, Y2
const & y2, Z2
const & z2, W2
const & w2,
92 X3
const & x3, Y3
const & y3, Z3
const & z3, W3
const & w3,
93 X4
const & x4, Y4
const & y4, Z4
const & z4, W4
const & w4);
95 template <
typename V1,
typename V2,
typename V3,
typename V4>
96 GLM_FUNC_DECL tmat4x4(
97 tvec4<V1, P>
const & v1,
98 tvec4<V2, P>
const & v2,
99 tvec4<V3, P>
const & v3,
100 tvec4<V4, P>
const & v4);
105 # ifdef GLM_FORCE_EXPLICIT_CTOR
106 template <
typename U, precision Q>
107 GLM_FUNC_DECL
explicit tmat4x4(tmat4x4<U, Q>
const & m);
109 template <
typename U, precision Q>
110 GLM_FUNC_DECL tmat4x4(tmat4x4<U, Q>
const & m);
113 GLM_FUNC_DECL
explicit tmat4x4(tmat2x2<T, P>
const & x);
114 GLM_FUNC_DECL
explicit tmat4x4(tmat3x3<T, P>
const & x);
115 GLM_FUNC_DECL
explicit tmat4x4(tmat2x3<T, P>
const & x);
116 GLM_FUNC_DECL
explicit tmat4x4(tmat3x2<T, P>
const & x);
117 GLM_FUNC_DECL
explicit tmat4x4(tmat2x4<T, P>
const & x);
118 GLM_FUNC_DECL
explicit tmat4x4(tmat4x2<T, P>
const & x);
119 GLM_FUNC_DECL
explicit tmat4x4(tmat3x4<T, P>
const & x);
120 GLM_FUNC_DECL
explicit tmat4x4(tmat4x3<T, P>
const & x);
125 # ifdef GLM_FORCE_SIZE_FUNC
126 typedef size_t size_type;
127 GLM_FUNC_DECL GLM_CONSTEXPR
size_t size()
const;
129 GLM_FUNC_DECL col_type & operator[](size_type i);
130 GLM_FUNC_DECL col_type
const & operator[](size_type i)
const;
132 typedef length_t length_type;
133 GLM_FUNC_DECL GLM_CONSTEXPR length_type
length()
const;
135 GLM_FUNC_DECL col_type & operator[](length_type i);
136 GLM_FUNC_DECL col_type
const & operator[](length_type i)
const;
137 # endif//GLM_FORCE_SIZE_FUNC
142 template <
typename U>
143 GLM_FUNC_DECL tmat4x4<T, P> & operator=(tmat4x4<U, P>
const & m);
144 template <
typename U>
145 GLM_FUNC_DECL tmat4x4<T, P> & operator+=(U s);
146 template <
typename U>
147 GLM_FUNC_DECL tmat4x4<T, P> & operator+=(tmat4x4<U, P>
const & m);
148 template <
typename U>
149 GLM_FUNC_DECL tmat4x4<T, P> & operator-=(U s);
150 template <
typename U>
151 GLM_FUNC_DECL tmat4x4<T, P> & operator-=(tmat4x4<U, P>
const & m);
152 template <
typename U>
153 GLM_FUNC_DECL tmat4x4<T, P> & operator*=(U s);
154 template <
typename U>
155 GLM_FUNC_DECL tmat4x4<T, P> & operator*=(tmat4x4<U, P>
const & m);
156 template <
typename U>
157 GLM_FUNC_DECL tmat4x4<T, P> & operator/=(U s);
158 template <
typename U>
159 GLM_FUNC_DECL tmat4x4<T, P> & operator/=(tmat4x4<U, P>
const & m);
164 GLM_FUNC_DECL tmat4x4<T, P> & operator++();
165 GLM_FUNC_DECL tmat4x4<T, P> & operator--();
166 GLM_FUNC_DECL tmat4x4<T, P> operator++(
int);
167 GLM_FUNC_DECL tmat4x4<T, P> operator--(
int);
171 template <
typename T, precision P>
172 GLM_FUNC_DECL tmat4x4<T, P> operator+(tmat4x4<T, P>
const & m, T
const & s);
174 template <
typename T, precision P>
175 GLM_FUNC_DECL tmat4x4<T, P> operator+(T
const & s, tmat4x4<T, P>
const & m);
177 template <
typename T, precision P>
178 GLM_FUNC_DECL tmat4x4<T, P> operator+(tmat4x4<T, P>
const & m1, tmat4x4<T, P>
const & m2);
180 template <
typename T, precision P>
181 GLM_FUNC_DECL tmat4x4<T, P> operator-(tmat4x4<T, P>
const & m, T
const & s);
183 template <
typename T, precision P>
184 GLM_FUNC_DECL tmat4x4<T, P> operator-(T
const & s, tmat4x4<T, P>
const & m);
186 template <
typename T, precision P>
187 GLM_FUNC_DECL tmat4x4<T, P> operator-(tmat4x4<T, P>
const & m1, tmat4x4<T, P>
const & m2);
189 template <
typename T, precision P>
190 GLM_FUNC_DECL tmat4x4<T, P> operator*(tmat4x4<T, P>
const & m, T
const & s);
192 template <
typename T, precision P>
193 GLM_FUNC_DECL tmat4x4<T, P> operator*(T
const & s, tmat4x4<T, P>
const & m);
195 template <
typename T, precision P>
196 GLM_FUNC_DECL
typename tmat4x4<T, P>::col_type operator*(tmat4x4<T, P>
const & m,
typename tmat4x4<T, P>::row_type
const & v);
198 template <
typename T, precision P>
199 GLM_FUNC_DECL
typename tmat4x4<T, P>::row_type operator*(
typename tmat4x4<T, P>::col_type
const & v, tmat4x4<T, P>
const & m);
201 template <
typename T, precision P>
202 GLM_FUNC_DECL tmat2x4<T, P> operator*(tmat4x4<T, P>
const & m1, tmat2x4<T, P>
const & m2);
204 template <
typename T, precision P>
205 GLM_FUNC_DECL tmat3x4<T, P> operator*(tmat4x4<T, P>
const & m1, tmat3x4<T, P>
const & m2);
207 template <
typename T, precision P>
208 GLM_FUNC_DECL tmat4x4<T, P> operator*(tmat4x4<T, P>
const & m1, tmat4x4<T, P>
const & m2);
210 template <
typename T, precision P>
211 GLM_FUNC_DECL tmat4x4<T, P> operator/(tmat4x4<T, P>
const & m, T
const & s);
213 template <
typename T, precision P>
214 GLM_FUNC_DECL tmat4x4<T, P> operator/(T
const & s, tmat4x4<T, P>
const & m);
216 template <
typename T, precision P>
217 GLM_FUNC_DECL
typename tmat4x4<T, P>::col_type operator/(tmat4x4<T, P>
const & m,
typename tmat4x4<T, P>::row_type
const & v);
219 template <
typename T, precision P>
220 GLM_FUNC_DECL
typename tmat4x4<T, P>::row_type operator/(
typename tmat4x4<T, P>::col_type & v, tmat4x4<T, P>
const & m);
222 template <
typename T, precision P>
223 GLM_FUNC_DECL tmat4x4<T, P> operator/(tmat4x4<T, P>
const & m1, tmat4x4<T, P>
const & m2);
226 template <
typename T, precision P>
227 GLM_FUNC_DECL tmat4x4<T, P>
const operator-(tmat4x4<T, P>
const & m);
230 #ifndef GLM_EXTERNAL_TEMPLATE
231 #include "type_mat4x4.inl"
232 #endif//GLM_EXTERNAL_TEMPLATE
OpenGL Mathematics (glm.g-truc.net)
GLM_FUNC_DECL T length(vecType< T, P > const &x)
Returns the length of x, i.e., sqrt(x * x).
OpenGL Mathematics (glm.g-truc.net)