Fonctions de gestion de matrix (inline).
Plus de détails...
Aller au code source de ce fichier.
|
INLINE GL4DMMatrix | gl4dmMatrixXMatrix (GL4DMMatrix mat1, GL4DMMatrix mat2) |
|
INLINE GL4DMVector | gl4dmMatrixXVector (GL4DMMatrix mat, GL4DMVector vec) |
|
INLINE GL4DMVector | gl4dmVectorXVector (GL4DMVector vec1, GL4DMVector vec2) |
|
INLINE GL4DMMatrix | gl4dmMatrixTranspose (GL4DMMatrix mat) |
|
INLINE GL4DMVector | gl4dmVector3Cross (GL4DMVector vec1, GL4DMVector vec2) |
|
INLINE float | gl4dmVector2Dot (GL4DMVector vec1, GL4DMVector vec2) |
|
INLINE float | gl4dmVector3Dot (GL4DMVector vec1, GL4DMVector vec2) |
|
INLINE float | gl4dmVector4Dot (GL4DMVector vec1, GL4DMVector vec2) |
|
INLINE GL4DMVector | gl4dmVector2Normalize (GL4DMVector vec) |
|
INLINE GL4DMVector | gl4dmVector3Normalize (GL4DMVector vec) |
|
INLINE GL4DMVector | gl4dmVector4Normalize (GL4DMVector vec) |
|
INLINE GL4DMMatrix | gl4dmMatrixIdentity (void) |
|
INLINE GL4DMMatrix | gl4dmMatrixTranslate (float x, float y, float z) |
|
INLINE GL4DMMatrix | gl4dmMatrixRotate (float angle, float x, float y, float z) |
|
INLINE GL4DMMatrix | gl4dmMatrixScale (float x, float y, float z) |
|
INLINE GL4DMMatrix | gl4dmMatrixLookAt (float eyeX, float eyeY, float eyeZ, float centerX, float centerY, float centerZ, float upX, float upY, float upZ) |
|
INLINE GL4DMMatrix | gl4dmMatrixPerspective (float fovy, float aspect, float znear, float zfar) |
|
INLINE GL4DMMatrix | gl4dmMatrixOrtho (float left, float right, float bottom, float top, float nearVal, float farVal) |
|
INLINE GL4DMMatrix | gl4dmMatrixInverse (GL4DMMatrix mat) |
|
INLINE void | gl4dmPrintVector (GL4DMVector vec) |
|
INLINE void | gl4dmPrintMatrix (GL4DMMatrix mat) |
|
Fonctions de gestion de matrix (inline).
- Auteur
- Kevin HAVRANEK mzart.nosp@m.ek@h.nosp@m.otmai.nosp@m.l.fr
- Date
- Mars 21, 2015
Définition dans le fichier gl4dm.inl.
◆ gl4dmMatrixIdentity()
◆ gl4dmMatrixInverse()
268 mat.
r[1].
y * mat.
r[2].
z * mat.
r[3].
w -
269 mat.
r[1].
y * mat.
r[3].
z * mat.
r[2].
w -
270 mat.
r[1].
z * mat.
r[2].
y * mat.
r[3].
w +
271 mat.
r[1].
z * mat.
r[3].
y * mat.
r[2].
w +
272 mat.
r[1].
w * mat.
r[2].
y * mat.
r[3].
z -
273 mat.
r[1].
w * mat.
r[3].
y * mat.
r[2].
z;
277 -mat.
r[0].
y * mat.
r[2].
z * mat.
r[3].
w +
278 mat.
r[0].
y * mat.
r[3].
z * mat.
r[2].
w +
279 mat.
r[0].
z * mat.
r[2].
y * mat.
r[3].
w -
280 mat.
r[0].
z * mat.
r[3].
y * mat.
r[2].
w -
281 mat.
r[0].
w * mat.
r[2].
y * mat.
r[3].
z +
282 mat.
r[0].
w * mat.
r[3].
y * mat.
r[2].
z;
286 mat.
r[0].
y * mat.
r[1].
z * mat.
r[3].
w -
287 mat.
r[0].
y * mat.
r[3].
z * mat.
r[1].
w -
288 mat.
r[0].
z * mat.
r[1].
y * mat.
r[3].
w +
289 mat.
r[0].
z * mat.
r[3].
y * mat.
r[1].
w +
290 mat.
r[0].
w * mat.
r[1].
y * mat.
r[3].
z -
291 mat.
r[0].
w * mat.
r[3].
y * mat.
r[1].
z;
295 -mat.
r[0].
y * mat.
r[1].
z * mat.
r[2].
w +
296 mat.
r[0].
y * mat.
r[2].
z * mat.
r[1].
w +
297 mat.
r[0].
z * mat.
r[1].
y * mat.
r[2].
w -
298 mat.
r[0].
z * mat.
r[2].
y * mat.
r[1].
w -
299 mat.
r[0].
w * mat.
r[1].
y * mat.
r[2].
z +
300 mat.
r[0].
w * mat.
r[2].
y * mat.
r[1].
z;
304 -mat.
r[1].
x * mat.
r[2].
z * mat.
r[3].
w +
305 mat.
r[1].
x * mat.
r[3].
z * mat.
r[2].
w +
306 mat.
r[1].
z * mat.
r[2].
x * mat.
r[3].
w -
307 mat.
r[1].
z * mat.
r[3].
x * mat.
r[2].
w -
308 mat.
r[1].
w * mat.
r[2].
x * mat.
r[3].
z +
309 mat.
r[1].
w * mat.
r[3].
x * mat.
r[2].
z;
313 mat.
r[0].
x * mat.
r[2].
z * mat.
r[3].
w -
314 mat.
r[0].
x * mat.
r[3].
z * mat.
r[2].
w -
315 mat.
r[0].
z * mat.
r[2].
x * mat.
r[3].
w +
316 mat.
r[0].
z * mat.
r[3].
x * mat.
r[2].
w +
317 mat.
r[0].
w * mat.
r[2].
x * mat.
r[3].
z -
318 mat.
r[0].
w * mat.
r[3].
x * mat.
r[2].
z;
322 -mat.
r[0].
x * mat.
r[1].
z * mat.
r[3].
w +
323 mat.
r[0].
x * mat.
r[3].
z * mat.
r[1].
w +
324 mat.
r[0].
z * mat.
r[1].
x * mat.
r[3].
w -
325 mat.
r[0].
z * mat.
r[3].
x * mat.
r[1].
w -
326 mat.
r[0].
w * mat.
r[1].
x * mat.
r[3].
z +
327 mat.
r[0].
w * mat.
r[3].
x * mat.
r[1].
z;
331 mat.
r[0].
x * mat.
r[1].
z * mat.
r[2].
w -
332 mat.
r[0].
x * mat.
r[2].
z * mat.
r[1].
w -
333 mat.
r[0].
z * mat.
r[1].
x * mat.
r[2].
w +
334 mat.
r[0].
z * mat.
r[2].
x * mat.
r[1].
w +
335 mat.
r[0].
w * mat.
r[1].
x * mat.
r[2].
z -
336 mat.
r[0].
w * mat.
r[2].
x * mat.
r[1].
z;
340 mat.
r[1].
x * mat.
r[2].
y * mat.
r[3].
w -
341 mat.
r[1].
x * mat.
r[3].
y * mat.
r[2].
w -
342 mat.
r[1].
y * mat.
r[2].
x * mat.
r[3].
w +
343 mat.
r[1].
y * mat.
r[3].
x * mat.
r[2].
w +
344 mat.
r[1].
w * mat.
r[2].
x * mat.
r[3].
y -
345 mat.
r[1].
w * mat.
r[3].
x * mat.
r[2].
y;
349 -mat.
r[0].
x * mat.
r[2].
y * mat.
r[3].
w +
350 mat.
r[0].
x * mat.
r[3].
y * mat.
r[2].
w +
351 mat.
r[0].
y * mat.
r[2].
x * mat.
r[3].
w -
352 mat.
r[0].
y * mat.
r[3].
x * mat.
r[2].
w -
353 mat.
r[0].
w * mat.
r[2].
x * mat.
r[3].
y +
354 mat.
r[0].
w * mat.
r[3].
x * mat.
r[2].
y;
358 mat.
r[0].
x * mat.
r[1].
y * mat.
r[3].
w -
359 mat.
r[0].
x * mat.
r[3].
y * mat.
r[1].
w -
360 mat.
r[0].
y * mat.
r[1].
x * mat.
r[3].
w +
361 mat.
r[0].
y * mat.
r[3].
x * mat.
r[1].
w +
362 mat.
r[0].
w * mat.
r[1].
x * mat.
r[3].
y -
363 mat.
r[0].
w * mat.
r[3].
x * mat.
r[1].
y;
367 -mat.
r[0].
x * mat.
r[1].
y * mat.
r[2].
w +
368 mat.
r[0].
x * mat.
r[2].
y * mat.
r[1].
w +
369 mat.
r[0].
y * mat.
r[1].
x * mat.
r[2].
w -
370 mat.
r[0].
y * mat.
r[2].
x * mat.
r[1].
w -
371 mat.
r[0].
w * mat.
r[1].
x * mat.
r[2].
y +
372 mat.
r[0].
w * mat.
r[2].
x * mat.
r[1].
y;
376 -mat.
r[1].
x * mat.
r[2].
y * mat.
r[3].
z +
377 mat.
r[1].
x * mat.
r[3].
y * mat.
r[2].
z +
378 mat.
r[1].
y * mat.
r[2].
x * mat.
r[3].
z -
379 mat.
r[1].
y * mat.
r[3].
x * mat.
r[2].
z -
380 mat.
r[1].
z * mat.
r[2].
x * mat.
r[3].
y +
381 mat.
r[1].
z * mat.
r[3].
x * mat.
r[2].
y;
385 mat.
r[0].
x * mat.
r[2].
y * mat.
r[3].
z -
386 mat.
r[0].
x * mat.
r[3].
y * mat.
r[2].
z -
387 mat.
r[0].
y * mat.
r[2].
x * mat.
r[3].
z +
388 mat.
r[0].
y * mat.
r[3].
x * mat.
r[2].
z +
389 mat.
r[0].
z * mat.
r[2].
x * mat.
r[3].
y -
390 mat.
r[0].
z * mat.
r[3].
x * mat.
r[2].
y;
394 -mat.
r[0].
x * mat.
r[1].
y * mat.
r[3].
z +
395 mat.
r[0].
x * mat.
r[3].
y * mat.
r[1].
z +
396 mat.
r[0].
y * mat.
r[1].
x * mat.
r[3].
z -
397 mat.
r[0].
y * mat.
r[3].
x * mat.
r[1].
z -
398 mat.
r[0].
z * mat.
r[1].
x * mat.
r[3].
y +
399 mat.
r[0].
z * mat.
r[3].
x * mat.
r[1].
y;
403 mat.
r[0].
x * mat.
r[1].
y * mat.
r[2].
z -
404 mat.
r[0].
x * mat.
r[2].
y * mat.
r[1].
z -
405 mat.
r[0].
y * mat.
r[1].
x * mat.
r[2].
z +
406 mat.
r[0].
y * mat.
r[2].
x * mat.
r[1].
z +
407 mat.
r[0].
z * mat.
r[1].
x * mat.
r[2].
y -
408 mat.
r[0].
z * mat.
r[2].
x * mat.
r[1].
y;
410 det = mat.
r[0].
x * res.
r[0].
x + mat.
r[1].
x * res.
r[0].
y + mat.
r[2].
x * res.
r[0].
z + mat.
r[3].
x * res.
r[0].
w;
412 if (det == 0)
return mat;
416 for (i = 0; i < 4; i++) {
Références GL4DMMatrix::r, GL4DMVector::w, GL4DMVector::x, GL4DMVector::y, et GL4DMVector::z.
◆ gl4dmMatrixLookAt()
INLINE GL4DMMatrix gl4dmMatrixLookAt |
( |
float |
eyeX, |
|
|
float |
eyeY, |
|
|
float |
eyeZ, |
|
|
float |
centerX, |
|
|
float |
centerY, |
|
|
float |
centerZ, |
|
|
float |
upX, |
|
|
float |
upY, |
|
|
float |
upZ |
|
) |
| |
203 GL4DMVector f = {centerX - eyeX, centerY - eyeY, centerZ - eyeZ, 1.0f};
208 memset(&res, 0,
sizeof res);
Références gl4dmMatrixTranslate(), gl4dmMatrixXMatrix(), gl4dmVector3Cross(), gl4dmVector3Normalize(), GL4DMMatrix::r, GL4DMVector::w, GL4DMVector::x, GL4DMVector::y, et GL4DMVector::z.
◆ gl4dmMatrixOrtho()
INLINE GL4DMMatrix gl4dmMatrixOrtho |
( |
float |
left, |
|
|
float |
right, |
|
|
float |
bottom, |
|
|
float |
top, |
|
|
float |
nearVal, |
|
|
float |
farVal |
|
) |
| |
249 memset(&res, 0,
sizeof res);
251 res.
r[0].
x = 2.0f / (right - left);
252 res.
r[1].
y = 2.0f / (top - bottom);
253 res.
r[2].
z = -2.0f / (farVal - nearVal);
255 res.
r[0].
w = -((right + left) / (right - left));
256 res.
r[1].
w = -((top + bottom) / (top - bottom));
257 res.
r[2].
w = -((farVal + nearVal) / (farVal - nearVal));
Références GL4DMMatrix::r, GL4DMVector::w, GL4DMVector::x, GL4DMVector::y, et GL4DMVector::z.
◆ gl4dmMatrixPerspective()
INLINE GL4DMMatrix gl4dmMatrixPerspective |
( |
float |
fovy, |
|
|
float |
aspect, |
|
|
float |
znear, |
|
|
float |
zfar |
|
) |
| |
◆ gl4dmMatrixRotate()
◆ gl4dmMatrixScale()
◆ gl4dmMatrixTranslate()
◆ gl4dmMatrixTranspose()
◆ gl4dmMatrixXMatrix()
11 res.
r[0].
x = mat1.
r[0].
x * mat2.
r[0].
x + mat1.
r[0].
y * mat2.
r[1].
x + mat1.
r[0].
z * mat2.
r[2].
x + mat1.
r[0].
w * mat2.
r[3].
x;
12 res.
r[0].
y = mat1.
r[0].
x * mat2.
r[0].
y + mat1.
r[0].
y * mat2.
r[1].
y + mat1.
r[0].
z * mat2.
r[2].
y + mat1.
r[0].
w * mat2.
r[3].
y;
13 res.
r[0].
z = mat1.
r[0].
x * mat2.
r[0].
z + mat1.
r[0].
y * mat2.
r[1].
z + mat1.
r[0].
z * mat2.
r[2].
z + mat1.
r[0].
w * mat2.
r[3].
z;
14 res.
r[0].
w = mat1.
r[0].
x * mat2.
r[0].
w + mat1.
r[0].
y * mat2.
r[1].
w + mat1.
r[0].
z * mat2.
r[2].
w + mat1.
r[0].
w * mat2.
r[3].
w;
16 res.
r[1].
x = mat1.
r[1].
x * mat2.
r[0].
x + mat1.
r[1].
y * mat2.
r[1].
x + mat1.
r[1].
z * mat2.
r[2].
x + mat1.
r[1].
w * mat2.
r[3].
x;
17 res.
r[1].
y = mat1.
r[1].
x * mat2.
r[0].
y + mat1.
r[1].
y * mat2.
r[1].
y + mat1.
r[1].
z * mat2.
r[2].
y + mat1.
r[1].
w * mat2.
r[3].
y;
18 res.
r[1].
z = mat1.
r[1].
x * mat2.
r[0].
z + mat1.
r[1].
y * mat2.
r[1].
z + mat1.
r[1].
z * mat2.
r[2].
z + mat1.
r[1].
w * mat2.
r[3].
z;
19 res.
r[1].
w = mat1.
r[1].
x * mat2.
r[0].
w + mat1.
r[1].
y * mat2.
r[1].
w + mat1.
r[1].
z * mat2.
r[2].
w + mat1.
r[1].
w * mat2.
r[3].
w;
21 res.
r[2].
x = mat1.
r[2].
x * mat2.
r[0].
x + mat1.
r[2].
y * mat2.
r[1].
x + mat1.
r[2].
z * mat2.
r[2].
x + mat1.
r[2].
w * mat2.
r[3].
x;
22 res.
r[2].
y = mat1.
r[2].
x * mat2.
r[0].
y + mat1.
r[2].
y * mat2.
r[1].
y + mat1.
r[2].
z * mat2.
r[2].
y + mat1.
r[2].
w * mat2.
r[3].
y;
23 res.
r[2].
z = mat1.
r[2].
x * mat2.
r[0].
z + mat1.
r[2].
y * mat2.
r[1].
z + mat1.
r[2].
z * mat2.
r[2].
z + mat1.
r[2].
w * mat2.
r[3].
z;
24 res.
r[2].
w = mat1.
r[2].
x * mat2.
r[0].
w + mat1.
r[2].
y * mat2.
r[1].
w + mat1.
r[2].
z * mat2.
r[2].
w + mat1.
r[2].
w * mat2.
r[3].
w;
26 res.
r[3].
x = mat1.
r[3].
x * mat2.
r[0].
x + mat1.
r[3].
y * mat2.
r[1].
x + mat1.
r[3].
z * mat2.
r[2].
x + mat1.
r[3].
w * mat2.
r[3].
x;
27 res.
r[3].
y = mat1.
r[3].
x * mat2.
r[0].
y + mat1.
r[3].
y * mat2.
r[1].
y + mat1.
r[3].
z * mat2.
r[2].
y + mat1.
r[3].
w * mat2.
r[3].
y;
28 res.
r[3].
z = mat1.
r[3].
x * mat2.
r[0].
z + mat1.
r[3].
y * mat2.
r[1].
z + mat1.
r[3].
z * mat2.
r[2].
z + mat1.
r[3].
w * mat2.
r[3].
z;
29 res.
r[3].
w = mat1.
r[3].
x * mat2.
r[0].
w + mat1.
r[3].
y * mat2.
r[1].
w + mat1.
r[3].
z * mat2.
r[2].
w + mat1.
r[3].
w * mat2.
r[3].
w;
Références GL4DMMatrix::r, GL4DMVector::w, GL4DMVector::x, GL4DMVector::y, et GL4DMVector::z.
Référencé par gl4dmMatrixLookAt().
◆ gl4dmMatrixXVector()
◆ gl4dmPrintMatrix()
◆ gl4dmPrintVector()
◆ gl4dmVector2Dot()
◆ gl4dmVector2Normalize()
◆ gl4dmVector3Cross()
◆ gl4dmVector3Dot()
◆ gl4dmVector3Normalize()
◆ gl4dmVector4Dot()
◆ gl4dmVector4Normalize()
◆ gl4dmVectorXVector()