/**
|
* 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]);
|
}
|