123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- /**
- * Returns the transpose of the matrix. The input <code>matrix</code> can be
- * a <code>mat2</code>, <code>mat3</code>, or <code>mat4</code>.
- *
- * @name czm_transpose
- * @glslFunction
- *
- * @param {} matrix The matrix to transpose.
- *
- * @returns {} The transposed matrix.
- *
- * @example
- * // GLSL declarations
- * mat2 czm_transpose(mat2 matrix);
- * mat3 czm_transpose(mat3 matrix);
- * mat4 czm_transpose(mat4 matrix);
- *
- * // Transpose a 3x3 rotation matrix to find its inverse.
- * mat3 eastNorthUpToEye = czm_eastNorthUpToEyeCoordinates(
- * positionMC, normalEC);
- * mat3 eyeToEastNorthUp = czm_transpose(eastNorthUpToEye);
- */
- mat2 czm_transpose(mat2 matrix)
- {
- return mat2(
- matrix[0][0], matrix[1][0],
- matrix[0][1], matrix[1][1]);
- }
- mat3 czm_transpose(mat3 matrix)
- {
- return mat3(
- matrix[0][0], matrix[1][0], matrix[2][0],
- matrix[0][1], matrix[1][1], matrix[2][1],
- matrix[0][2], matrix[1][2], matrix[2][2]);
- }
- mat4 czm_transpose(mat4 matrix)
- {
- return mat4(
- matrix[0][0], matrix[1][0], matrix[2][0], matrix[3][0],
- matrix[0][1], matrix[1][1], matrix[2][1], matrix[3][1],
- matrix[0][2], matrix[1][2], matrix[2][2], matrix[3][2],
- matrix[0][3], matrix[1][3], matrix[2][3], matrix[3][3]);
- }
|