Lines Matching full:matrix
28 * Matrix operations.
33 * -# Transformation of a point p by a matrix M is: p' = M * p
50 #define MAT_FLAG_IDENTITY 0 /**< is an identity matrix flag.
52 * matrix is identified by the absense
55 #define MAT_FLAG_GENERAL 0x1 /**< is a general matrix flag */
56 #define MAT_FLAG_ROTATION 0x2 /**< is a rotation matrix flag */
57 #define MAT_FLAG_TRANSLATION 0x4 /**< is a translation matrix flag */
58 #define MAT_FLAG_UNIFORM_SCALE 0x8 /**< is an uniform scaling matrix flag */
59 #define MAT_FLAG_GENERAL_SCALE 0x10 /**< is a general scaling matrix flag */
60 #define MAT_FLAG_GENERAL_3D 0x20 /**< general 3D matrix flag */
61 #define MAT_FLAG_PERSPECTIVE 0x40 /**< is a perspective proj matrix flag */
62 #define MAT_FLAG_SINGULAR 0x80 /**< is a singular matrix flag */
63 #define MAT_DIRTY_TYPE 0x100 /**< matrix type is dirty */
64 #define MAT_DIRTY_FLAGS 0x200 /**< matrix flags are dirty */
65 #define MAT_DIRTY_INVERSE 0x400 /**< matrix inverse is dirty */
67 /** angle preserving matrix flags mask */
72 /** geometry related matrix flags mask */
82 /** length preserving matrix flags mask */
87 /** 3D (non-perspective) matrix flags mask */
94 /** dirty matrix flags mask */
103 * Test geometry related matrix flags.
108 * \returns non-zero if all geometry related matrix flags are contained within
131 * Identity matrix.
143 /** \name Matrix multiplication */
151 * Perform a full 4x4 matrix multiplication.
153 * \param a matrix.
154 * \param b matrix.
179 * \param a matrix.
180 * \param b matrix.
204 * Multiply a matrix by an array of floats with known properties.
207 * matrix, and that will receive the product result.
208 * \param m right multiplication matrix array.
209 * \param flags flags of the matrix \p m.
225 * Matrix multiplication.
227 * \param dest destination matrix.
228 * \param a left matrix.
229 * \param b right matrix.
249 * Matrix multiplication.
251 * \param dest left and destination matrix.
252 * \param m right matrix array.
254 * Marks the matrix flags with general flag, and type and inverse dirty flags.
272 /** \name Matrix output */
276 * Print a matrix array.
278 * \param m matrix array.
280 * Called by _math_matrix_print() to print a matrix or its inverse.
300 _mesa_debug(NULL, "Matrix type: %s, flags: %x\n", types[m->type], m->flags);
313 * References an element of 4x4 matrix.
315 * \param m matrix array.
327 /** \name Matrix inversion */
338 * Compute inverse of 4x4 transformation matrix.
340 * \param mat pointer to a GLmatrix structure. The matrix inverse will be
343 * \return GL_TRUE for success, GL_FALSE for failure (\p singular matrix).
348 * Calculates the inverse matrix by performing the gaussian matrix reduction
466 * Compute inverse of a general 3d transformation matrix.
468 * \param mat pointer to a GLmatrix structure. The matrix inverse will be
471 * \return GL_TRUE for success, GL_FALSE for failure (\p singular matrix).
476 * determinant and multiplying it to the symmetric adjust matrix of each
488 * determine if the matrix is singular.
540 * Compute inverse of a 3d transformation matrix.
542 * \param mat pointer to a GLmatrix structure. The matrix inverse will be
545 * \return GL_TRUE for success, GL_FALSE for failure (\p singular matrix).
547 * If the matrix is not an angle preserving matrix then calls
549 * the inverse matrix analyzing and inverting each of the scaling, rotation and
623 * Compute inverse of an identity transformation matrix.
625 * \param mat pointer to a GLmatrix structure. The matrix inverse will be
639 * Compute inverse of a no-rotation 3d transformation matrix.
641 * \param mat pointer to a GLmatrix structure. The matrix inverse will be
644 * \return GL_TRUE for success, GL_FALSE for failure (\p singular matrix).
671 * Compute inverse of a no-rotation 2d transformation matrix.
673 * \param mat pointer to a GLmatrix structure. The matrix inverse will be
676 * \return GL_TRUE for success, GL_FALSE for failure (\p singular matrix).
678 * Calculates the inverse matrix by applying the inverse scaling and
679 * translation to the identity matrix.
730 * Matrix inversion function pointer type.
735 * Table of the matrix inversion functions according to the matrix type.
742 /* Don't use this function for now - it fails when the projection matrix
755 * Compute inverse of a transformation matrix.
757 * \param mat pointer to a GLmatrix structure. The matrix inverse will be
760 * \return GL_TRUE for success, GL_FALSE for failure (\p singular matrix).
762 * Calls the matrix inversion function in inv_mat_tab corresponding to the
763 * given matrix type. In case of failure, updates the MAT_FLAG_SINGULAR flag,
764 * and copies the identity matrix into GLmatrix::inv.
782 /** \name Matrix generation */
786 * Generate a 4x4 transformation matrix from glRotate parameters, and
787 * post-multiply the input matrix by it.
872 * Arbitrary axis rotation matrix.
935 /* We already hold the identity-matrix so we can skip some statements */
964 * Apply a perspective projection matrix.
966 * \param mat matrix to apply the projection.
974 * Creates the projection matrix and multiplies it with \p mat, marking the
1004 * Apply an orthographic projection matrix.
1006 * \param mat matrix to apply the projection.
1014 * Creates the projection matrix and multiplies it with \p mat, marking the
1051 * Multiply a matrix with a general scaling matrix.
1053 * \param mat matrix.
1082 * Multiply a matrix with a translation matrix.
1084 * \param mat matrix.
1109 * Set matrix to do viewport and depthrange mapping.
1128 * Set a matrix to the identity matrix.
1130 * \param mat matrix.
1133 * Sets the matrix type to identity, and clear the dirty flags.
1151 /** \name Matrix analysis */
1197 * \param mat matrix.
1310 * Analyze a matrix given that its flags are accurate.
1353 * Analyze and update a matrix.
1355 * \param mat matrix.
1357 * If the matrix type is dirty then calls either analyse_from_scratch() or
1359 * are dirty or not, respectively. If the matrix has an inverse and it's dirty
1384 * Test if the given matrix preserves vector lengths.
1394 * Test if the given matrix does any rotation.
1425 /** \name Matrix setup */
1429 * Copy a matrix.
1431 * \param to destination matrix.
1432 * \param from source matrix.
1446 * Loads a matrix array into GLmatrix.
1448 * \param m matrix array.
1449 * \param mat matrix.
1462 * Matrix constructor.
1464 * \param m matrix.
1482 * Matrix destructor.
1484 * \param m matrix.
1505 /** \name Matrix transpose */
1509 * Transpose a GLfloat matrix.
1536 * Transpose a GLdouble matrix.
1563 * Transpose a GLdouble matrix and convert to GLfloat.
1593 * Transform a 4-element row vector (1x4 matrix) by a 4x4 matrix. This
1598 * m - transformation matrix