## Uses of Class
com.io7m.jtensors.MatrixM4x4D

- Packages that use MatrixM4x4D
  Package | Description
  --- | ---
  com.io7m.jtensors |

- - ### Uses of MatrixM4x4D in com.io7m.jtensors

    Methods in com.io7m.jtensors that return MatrixM4x4D
    Modifier and Type | Method and Description
    --- | ---
    `static MatrixM4x4D` | MatrixM4x4D.`add(MatrixReadable4x4DType m0, MatrixReadable4x4DType m1, MatrixM4x4D out)` Elementwise add of matrices `m0` and `m1`.
    `static MatrixM4x4D` | MatrixM4x4D.`addInPlace(MatrixM4x4D m0, MatrixReadable4x4DType m1)` Elementwise add of matrices `m0` and `m1`, returning the result in `m0`.
    `static MatrixM4x4D` | MatrixM4x4D.`addRowScaled(MatrixReadable4x4DType m, int row_a, int row_b, int row_c, double r, MatrixM4x4D out)` Add the values in row `row_b` to the values in row `row_a` scaled by `r`, saving the resulting row in row `row_c` of the matrix `out`.
    `static MatrixM4x4D` | MatrixM4x4D.`addRowScaledInPlace(MatrixM4x4D m, int row_a, int row_b, int row_c, double r)` Add the values in row `row_b` to the values in row `row_a` scaled by `r`, saving the resulting row in row `row_c` of the matrix `m`.
    `static MatrixM4x4D` | MatrixM4x4D.`addRowScaledWithContext(MatrixM4x4D.Context context, MatrixReadable4x4DType m, int row_a, int row_b, int row_c, double r, MatrixM4x4D out)` Add the values in row `row_b` to the values in row `row_a` scaled by `r`, saving the resulting row in row `row_c` of the matrix `out`.
    `static MatrixM4x4D` | MatrixM4x4D.`copy(MatrixReadable4x4DType input, MatrixM4x4D output)` Copy the contents of the matrix `input` to the matrix `output`, completely replacing all elements.
    `static MatrixM4x4D` | MatrixM4x4D.`exchangeRows(MatrixReadable4x4DType m, int row_a, int row_b, MatrixM4x4D out)` Exchange the row `row_a` and row `row_b` of the matrix `m`, saving the exchanged rows to `out`.
    `static MatrixM4x4D` | MatrixM4x4D.`exchangeRowsInPlace(MatrixM4x4D m, int row_a, int row_b)` Exchange the row `row_a` and row `row_b` of the matrix `m`, saving the exchanged rows to `m`.
    `static MatrixM4x4D` | MatrixM4x4D.`exchangeRowsInPlaceWithContext(MatrixM4x4D.Context context, MatrixM4x4D m, int row_a, int row_b)` Exchange the row `row_a` and row `row_b` of the matrix `m`, saving the exchanged rows to `m`.
    `static MatrixM4x4D` | MatrixM4x4D.`exchangeRowsWithContext(MatrixM4x4D.Context context, MatrixReadable4x4DType m, int row_a, int row_b, MatrixM4x4D out)` Exchange two rows `row_a` and row `row_b` of the matrix `m`, saving the exchanged rows to `out` .
    `static MatrixM4x4D` | MatrixM4x4D.`makeRotation(double angle, VectorReadable3DType axis)` Generate and return a matrix that represents a rotation of `angle` radians around the axis `axis`.
    `static MatrixM4x4D` | MatrixM4x4D.`makeRotation(double angle, VectorReadable3DType axis, MatrixM4x4D out)` Generate a matrix that represents a rotation of `angle` radians around the axis `axis` and save to `out`.
    `static MatrixM4x4D` | QuaternionM4D.`makeRotationMatrix4x4(QuaternionReadable4DType q, MatrixM4x4D m)` Produce a rotation matrix from the quaternion `q`, saving the result to `m`.
    `static MatrixM4x4D` | QuaternionI4D.`makeRotationMatrix4x4(QuaternionReadable4DType q, MatrixM4x4D m)` Produce a rotation matrix from the quaternion `q`, saving the result to `m`.
    `static MatrixM4x4D` | MatrixM4x4D.`makeTranslation3D(VectorReadable3DType v)` Generate and return a matrix that represents a translation of `(v.x, v.y, v.z)` from the origin.
    `static MatrixM4x4D` | MatrixM4x4D.`makeTranslation3D(VectorReadable3DType v, MatrixM4x4D out)` Generate a matrix that represents a translation of `(v.x, v.y, v.z)` from the origin, and save to `out`.
    `static MatrixM4x4D` | MatrixM4x4D.`makeTranslation3I(VectorReadable3IType v)` Generate and return a matrix that represents a translation of `(v.x, v.y, v.z)` from the origin.
    `static MatrixM4x4D` | MatrixM4x4D.`makeTranslation3I(VectorReadable3IType v, MatrixM4x4D out)` Generate a matrix that represents a translation of `(v.x, v.y, v.z)` from the origin, and save to `out`.
    `static MatrixM4x4D` | MatrixM4x4D.`multiply(MatrixReadable4x4DType m0, MatrixReadable4x4DType m1, MatrixM4x4D out)` Multiply the matrix `m0` with the matrix `m1`, writing the result to `out`.
    `static MatrixM4x4D` | MatrixM4x4D.`multiplyInPlace(MatrixM4x4D m0, MatrixReadable4x4DType m1)` Multiply the matrix `m0` with the matrix `m1`, writing the result to `m0`.
    `static MatrixM4x4D` | MatrixM4x4D.`rotate(double angle, MatrixReadable4x4DType m, VectorReadable3DType axis, MatrixM4x4D out)` Rotate the matrix `m` by `angle` radians around the axis `axis`, saving the result into `out`.
    `static MatrixM4x4D` | MatrixM4x4D.`rotateInPlace(double angle, MatrixM4x4D m, VectorReadable3DType axis)` Rotate the matrix `m` by `angle` radians around the axis `axis`, saving the result into `m`.
    `static MatrixM4x4D` | MatrixM4x4D.`rotateInPlaceWithContext(MatrixM4x4D.Context context, double angle, MatrixM4x4D m, VectorReadable3DType axis)` Rotate the matrix `m` by `angle` radians around the axis `axis`, saving the result into `m`.
    `static MatrixM4x4D` | MatrixM4x4D.`rotateWithContext(MatrixM4x4D.Context context, double angle, MatrixReadable4x4DType m, VectorReadable3DType axis, MatrixM4x4D out)` Rotate the matrix `m` by `angle` radians around the axis `axis`, saving the result into `out`.
    `static MatrixM4x4D` | MatrixM4x4D.`scale(MatrixReadable4x4DType m, double r, MatrixM4x4D out)` Scale all elements of the matrix `m` by the scaling value `r`, saving the result in `out`.
    `static MatrixM4x4D` | MatrixM4x4D.`scaleInPlace(MatrixM4x4D m, double r)` Scale all elements of the matrix `m` by the scaling value `r`, saving the result in `m`.
    `static MatrixM4x4D` | MatrixM4x4D.`scaleRow(MatrixReadable4x4DType m, int row, double r, MatrixM4x4D out)` Scale row `r` of the matrix `m` by `r`, saving the result to row `r` of `out`.
    `static MatrixM4x4D` | MatrixM4x4D.`scaleRowInPlace(MatrixM4x4D m, int row, double r)` Scale row `row` of the matrix `m` by `r` , saving the result to row `r` of `m`.
    `static MatrixM4x4D` | MatrixM4x4D.`scaleRowInPlaceWithContext(MatrixM4x4D.Context context, MatrixM4x4D m, int row, double r)` Scale row `row` of the matrix `m` by `r` , saving the result to row `r` of `m`.
    `static MatrixM4x4D` | MatrixM4x4D.`scaleRowWithContext(MatrixM4x4D.Context context, MatrixReadable4x4DType m, int row, double r, MatrixM4x4D out)` Scale row `row` of the matrix `m` by `r` , saving the result to row `r` of `out`.
    `MatrixM4x4D` | MatrixM4x4D.`set(int row, int column, double value)` Set the value at the given row and column.
    `static MatrixM4x4D` | MatrixM4x4D.`set(MatrixM4x4D m, int row, int column, double value)` Set the value in the matrix `m` at row `row`, column `column` to `value`.
    `static MatrixM4x4D` | MatrixM4x4D.`setIdentity(MatrixM4x4D m)` Set the given matrix `m` to the identity matrix.
    `static MatrixM4x4D` | MatrixM4x4D.`setZero(MatrixM4x4D m)` Set the given matrix `m` to the zero matrix.
    `static MatrixM4x4D` | MatrixM4x4D.`translateByVector2D(MatrixReadable4x4DType m, VectorReadable2DType v, MatrixM4x4D out)` Translate the matrix `m` by the vector `v`, storing the resulting matrix in `out`.
    `static MatrixM4x4D` | MatrixM4x4D.`translateByVector2DInPlace(MatrixM4x4D m, VectorReadable2DType v)` Translate the matrix `m` by the vector `v`, storing the resulting matrix in `m`.
    `static MatrixM4x4D` | MatrixM4x4D.`translateByVector2I(MatrixReadable4x4DType m, VectorReadable2IType v, MatrixM4x4D out)` Translate the matrix `m` by the vector `v`, storing the resulting matrix in `out`.
    `static MatrixM4x4D` | MatrixM4x4D.`translateByVector2IInPlace(MatrixM4x4D m, VectorReadable2IType v)` Translate the matrix `m` by the vector `v`, storing the resulting matrix in `m`.
    `static MatrixM4x4D` | MatrixM4x4D.`translateByVector3D(MatrixReadable4x4DType m, VectorReadable3DType v, MatrixM4x4D out)` Translate the matrix `m` by the vector `v`, storing the resulting matrix in `out`.
    `static MatrixM4x4D` | MatrixM4x4D.`translateByVector3DInPlace(MatrixM4x4D m, VectorReadable3DType v)` Translate the matrix `m` by the vector `v`, storing the resulting matrix in `m`.
    `static MatrixM4x4D` | MatrixM4x4D.`translateByVector3I(MatrixReadable4x4DType m, VectorReadable3IType v, MatrixM4x4D out)` Translate the matrix `m` by the vector `v`, storing the resulting matrix in `out`.
    `static MatrixM4x4D` | MatrixM4x4D.`translateByVector3IInPlace(MatrixM4x4D m, VectorReadable3IType v)` Translate the matrix `m` by the vector `v`, storing the resulting matrix in `m`.
    `static MatrixM4x4D` | MatrixM4x4D.`transpose(MatrixReadable4x4DType m, MatrixM4x4D out)` Transpose the given matrix `m`, writing the resulting matrix to `out`.
    `static MatrixM4x4D` | MatrixM4x4D.`transposeInPlace(MatrixM4x4D m)` Transpose the given matrix `m`, writing the resulting matrix to `m`.

    Methods in com.io7m.jtensors that return types with arguments of type MatrixM4x4D
    Modifier and Type | Method and Description
    --- | ---
    `static com.io7m.jfunctional.OptionType<MatrixM4x4D>` | MatrixM4x4D.`invert(MatrixReadable4x4DType m, MatrixM4x4D out)` Calculate the inverse of the matrix `m`, saving the resulting matrix to `out`.
    `static com.io7m.jfunctional.OptionType<MatrixM4x4D>` | MatrixM4x4D.`invertInPlace(MatrixM4x4D m)` Calculate the inverse of the matrix `m`, saving the resulting matrix to `m`.
    `static com.io7m.jfunctional.OptionType<MatrixM4x4D>` | MatrixM4x4D.`invertInPlaceWithContext(MatrixM4x4D.Context context, MatrixM4x4D m)` Calculate the inverse of the matrix `m`, saving the resulting matrix to `m`.
    `static com.io7m.jfunctional.OptionType<MatrixM4x4D>` | MatrixM4x4D.`invertWithContext(MatrixM4x4D.Context context, MatrixReadable4x4DType m, MatrixM4x4D out)` Calculate the inverse of the matrix `m`, saving the resulting matrix to `out`.

    Methods in com.io7m.jtensors with parameters of type MatrixM4x4D
    Modifier and Type | Method and Description
    --- | ---
    `static MatrixM4x4D` | MatrixM4x4D.`add(MatrixReadable4x4DType m0, MatrixReadable4x4DType m1, MatrixM4x4D out)` Elementwise add of matrices `m0` and `m1`.
    `static MatrixM4x4D` | MatrixM4x4D.`addInPlace(MatrixM4x4D m0, MatrixReadable4x4DType m1)` Elementwise add of matrices `m0` and `m1`, returning the result in `m0`.
    `static MatrixM4x4D` | MatrixM4x4D.`addRowScaled(MatrixReadable4x4DType m, int row_a, int row_b, int row_c, double r, MatrixM4x4D out)` Add the values in row `row_b` to the values in row `row_a` scaled by `r`, saving the resulting row in row `row_c` of the matrix `out`.
    `static MatrixM4x4D` | MatrixM4x4D.`addRowScaledInPlace(MatrixM4x4D m, int row_a, int row_b, int row_c, double r)` Add the values in row `row_b` to the values in row `row_a` scaled by `r`, saving the resulting row in row `row_c` of the matrix `m`.
    `static MatrixM4x4D` | MatrixM4x4D.`addRowScaledWithContext(MatrixM4x4D.Context context, MatrixReadable4x4DType m, int row_a, int row_b, int row_c, double r, MatrixM4x4D out)` Add the values in row `row_b` to the values in row `row_a` scaled by `r`, saving the resulting row in row `row_c` of the matrix `out`.
    `static MatrixM4x4D` | MatrixM4x4D.`copy(MatrixReadable4x4DType input, MatrixM4x4D output)` Copy the contents of the matrix `input` to the matrix `output`, completely replacing all elements.
    `static DoubleBuffer` | MatrixM4x4D.`doubleBuffer(MatrixM4x4D m)`
    `static MatrixM4x4D` | MatrixM4x4D.`exchangeRows(MatrixReadable4x4DType m, int row_a, int row_b, MatrixM4x4D out)` Exchange the row `row_a` and row `row_b` of the matrix `m`, saving the exchanged rows to `out`.
    `static MatrixM4x4D` | MatrixM4x4D.`exchangeRowsInPlace(MatrixM4x4D m, int row_a, int row_b)` Exchange the row `row_a` and row `row_b` of the matrix `m`, saving the exchanged rows to `m`.
    `static MatrixM4x4D` | MatrixM4x4D.`exchangeRowsInPlaceWithContext(MatrixM4x4D.Context context, MatrixM4x4D m, int row_a, int row_b)` Exchange the row `row_a` and row `row_b` of the matrix `m`, saving the exchanged rows to `m`.
    `static MatrixM4x4D` | MatrixM4x4D.`exchangeRowsWithContext(MatrixM4x4D.Context context, MatrixReadable4x4DType m, int row_a, int row_b, MatrixM4x4D out)` Exchange two rows `row_a` and row `row_b` of the matrix `m`, saving the exchanged rows to `out` .
    `static com.io7m.jfunctional.OptionType<MatrixM4x4D>` | MatrixM4x4D.`invert(MatrixReadable4x4DType m, MatrixM4x4D out)` Calculate the inverse of the matrix `m`, saving the resulting matrix to `out`.
    `static com.io7m.jfunctional.OptionType<MatrixM4x4D>` | MatrixM4x4D.`invertInPlace(MatrixM4x4D m)` Calculate the inverse of the matrix `m`, saving the resulting matrix to `m`.
    `static com.io7m.jfunctional.OptionType<MatrixM4x4D>` | MatrixM4x4D.`invertInPlaceWithContext(MatrixM4x4D.Context context, MatrixM4x4D m)` Calculate the inverse of the matrix `m`, saving the resulting matrix to `m`.
    `static com.io7m.jfunctional.OptionType<MatrixM4x4D>` | MatrixM4x4D.`invertWithContext(MatrixM4x4D.Context context, MatrixReadable4x4DType m, MatrixM4x4D out)` Calculate the inverse of the matrix `m`, saving the resulting matrix to `out`.
    `static void` | MatrixM4x4D.`lookAtWithContext(MatrixM4x4D.Context context, VectorReadable3DType origin, VectorReadable3DType target, VectorReadable3DType up, MatrixM4x4D out_matrix)` Calculate a matrix representing a "camera" looking from the point `origin` to the point `target`.
    `static MatrixM4x4D` | MatrixM4x4D.`makeRotation(double angle, VectorReadable3DType axis, MatrixM4x4D out)` Generate a matrix that represents a rotation of `angle` radians around the axis `axis` and save to `out`.
    `static MatrixM4x4D` | QuaternionM4D.`makeRotationMatrix4x4(QuaternionReadable4DType q, MatrixM4x4D m)` Produce a rotation matrix from the quaternion `q`, saving the result to `m`.
    `static MatrixM4x4D` | QuaternionI4D.`makeRotationMatrix4x4(QuaternionReadable4DType q, MatrixM4x4D m)` Produce a rotation matrix from the quaternion `q`, saving the result to `m`.
    `static MatrixM4x4D` | MatrixM4x4D.`makeTranslation3D(VectorReadable3DType v, MatrixM4x4D out)` Generate a matrix that represents a translation of `(v.x, v.y, v.z)` from the origin, and save to `out`.
    `static MatrixM4x4D` | MatrixM4x4D.`makeTranslation3I(VectorReadable3IType v, MatrixM4x4D out)` Generate a matrix that represents a translation of `(v.x, v.y, v.z)` from the origin, and save to `out`.
    `static MatrixM4x4D` | MatrixM4x4D.`multiply(MatrixReadable4x4DType m0, MatrixReadable4x4DType m1, MatrixM4x4D out)` Multiply the matrix `m0` with the matrix `m1`, writing the result to `out`.
    `static MatrixM4x4D` | MatrixM4x4D.`multiplyInPlace(MatrixM4x4D m0, MatrixReadable4x4DType m1)` Multiply the matrix `m0` with the matrix `m1`, writing the result to `m0`.
    `static MatrixM4x4D` | MatrixM4x4D.`rotate(double angle, MatrixReadable4x4DType m, VectorReadable3DType axis, MatrixM4x4D out)` Rotate the matrix `m` by `angle` radians around the axis `axis`, saving the result into `out`.
    `static MatrixM4x4D` | MatrixM4x4D.`rotateInPlace(double angle, MatrixM4x4D m, VectorReadable3DType axis)` Rotate the matrix `m` by `angle` radians around the axis `axis`, saving the result into `m`.
    `static MatrixM4x4D` | MatrixM4x4D.`rotateInPlaceWithContext(MatrixM4x4D.Context context, double angle, MatrixM4x4D m, VectorReadable3DType axis)` Rotate the matrix `m` by `angle` radians around the axis `axis`, saving the result into `m`.
    `static MatrixM4x4D` | MatrixM4x4D.`rotateWithContext(MatrixM4x4D.Context context, double angle, MatrixReadable4x4DType m, VectorReadable3DType axis, MatrixM4x4D out)` Rotate the matrix `m` by `angle` radians around the axis `axis`, saving the result into `out`.
    `static MatrixM4x4D` | MatrixM4x4D.`scale(MatrixReadable4x4DType m, double r, MatrixM4x4D out)` Scale all elements of the matrix `m` by the scaling value `r`, saving the result in `out`.
    `static MatrixM4x4D` | MatrixM4x4D.`scaleInPlace(MatrixM4x4D m, double r)` Scale all elements of the matrix `m` by the scaling value `r`, saving the result in `m`.
    `static MatrixM4x4D` | MatrixM4x4D.`scaleRow(MatrixReadable4x4DType m, int row, double r, MatrixM4x4D out)` Scale row `r` of the matrix `m` by `r`, saving the result to row `r` of `out`.
    `static MatrixM4x4D` | MatrixM4x4D.`scaleRowInPlace(MatrixM4x4D m, int row, double r)` Scale row `row` of the matrix `m` by `r` , saving the result to row `r` of `m`.
    `static MatrixM4x4D` | MatrixM4x4D.`scaleRowInPlaceWithContext(MatrixM4x4D.Context context, MatrixM4x4D m, int row, double r)` Scale row `row` of the matrix `m` by `r` , saving the result to row `r` of `m`.
    `static MatrixM4x4D` | MatrixM4x4D.`scaleRowWithContext(MatrixM4x4D.Context context, MatrixReadable4x4DType m, int row, double r, MatrixM4x4D out)` Scale row `row` of the matrix `m` by `r` , saving the result to row `r` of `out`.
    `static MatrixM4x4D` | MatrixM4x4D.`set(MatrixM4x4D m, int row, int column, double value)` Set the value in the matrix `m` at row `row`, column `column` to `value`.
    `static MatrixM4x4D` | MatrixM4x4D.`setIdentity(MatrixM4x4D m)` Set the given matrix `m` to the identity matrix.
    `static MatrixM4x4D` | MatrixM4x4D.`setZero(MatrixM4x4D m)` Set the given matrix `m` to the zero matrix.
    `static MatrixM4x4D` | MatrixM4x4D.`translateByVector2D(MatrixReadable4x4DType m, VectorReadable2DType v, MatrixM4x4D out)` Translate the matrix `m` by the vector `v`, storing the resulting matrix in `out`.
    `static MatrixM4x4D` | MatrixM4x4D.`translateByVector2DInPlace(MatrixM4x4D m, VectorReadable2DType v)` Translate the matrix `m` by the vector `v`, storing the resulting matrix in `m`.
    `static MatrixM4x4D` | MatrixM4x4D.`translateByVector2I(MatrixReadable4x4DType m, VectorReadable2IType v, MatrixM4x4D out)` Translate the matrix `m` by the vector `v`, storing the resulting matrix in `out`.
    `static MatrixM4x4D` | MatrixM4x4D.`translateByVector2IInPlace(MatrixM4x4D m, VectorReadable2IType v)` Translate the matrix `m` by the vector `v`, storing the resulting matrix in `m`.
    `static MatrixM4x4D` | MatrixM4x4D.`translateByVector3D(MatrixReadable4x4DType m, VectorReadable3DType v, MatrixM4x4D out)` Translate the matrix `m` by the vector `v`, storing the resulting matrix in `out`.
    `static MatrixM4x4D` | MatrixM4x4D.`translateByVector3DInPlace(MatrixM4x4D m, VectorReadable3DType v)` Translate the matrix `m` by the vector `v`, storing the resulting matrix in `m`.
    `static MatrixM4x4D` | MatrixM4x4D.`translateByVector3I(MatrixReadable4x4DType m, VectorReadable3IType v, MatrixM4x4D out)` Translate the matrix `m` by the vector `v`, storing the resulting matrix in `out`.
    `static MatrixM4x4D` | MatrixM4x4D.`translateByVector3IInPlace(MatrixM4x4D m, VectorReadable3IType v)` Translate the matrix `m` by the vector `v`, storing the resulting matrix in `m`.
    `static MatrixM4x4D` | MatrixM4x4D.`transpose(MatrixReadable4x4DType m, MatrixM4x4D out)` Transpose the given matrix `m`, writing the resulting matrix to `out`.
    `static MatrixM4x4D` | MatrixM4x4D.`transposeInPlace(MatrixM4x4D m)` Transpose the given matrix `m`, writing the resulting matrix to `m`.

    Constructors in com.io7m.jtensors with parameters of type MatrixM4x4D
    Constructor and Description
    `MatrixM4x4D(MatrixM4x4D source)` Construct a new copy of the given matrix.

Copyright © 2014 <code@io7m.com> http://io7m.com