public class MatrixMathHelper
extends java.lang.Object
Modifier and Type | Class and Description |
---|---|
static class |
MatrixMathHelper.MatrixDecompositionContext |
Constructor and Description |
---|
MatrixMathHelper() |
Modifier and Type | Method and Description |
---|---|
static void |
applyPerspective(double[] m,
double perspective) |
static void |
applyRotateX(double[] m,
double radians) |
static void |
applyRotateY(double[] m,
double radians) |
static void |
applyRotateZ(double[] m,
double radians) |
static void |
applyScaleX(double[] m,
double factor) |
static void |
applyScaleY(double[] m,
double factor) |
static void |
applyScaleZ(double[] m,
double factor) |
static void |
applySkewX(double[] m,
double radians) |
static void |
applySkewY(double[] m,
double radians) |
static void |
applyTranslate2D(double[] m,
double x,
double y) |
static void |
applyTranslate3D(double[] m,
double x,
double y,
double z) |
static double[] |
createIdentityMatrix() |
static void |
decomposeMatrix(double[] transformMatrix,
MatrixMathHelper.MatrixDecompositionContext ctx) |
static double |
degreesToRadians(double degrees) |
static double |
determinant(double[] matrix) |
static double[] |
inverse(double[] matrix)
Inverse of a matrix.
|
static void |
multiplyInto(double[] out,
double[] a,
double[] b) |
static void |
multiplyVectorByMatrix(double[] v,
double[] m,
double[] result)
Based on: http://tog.acm.org/resources/GraphicsGems/gemsii/unmatrix.c
|
static void |
quaternionToDegreesXYZ(double[] q,
double[] result)
Based on:
http://www.euclideanspace.com/maths/geometry/rotations/conversions/quaternionToEuler/
and:
http://quat.zachbennett.com/
Note that this rounds degrees to the thousandth of a degree, due to
floating point errors in the creation of the quaternion.
|
static void |
resetIdentityMatrix(double[] matrix) |
static double |
roundTo3Places(double n) |
static double[] |
transpose(double[] m)
Turns columns into rows and rows into columns.
|
static double[] |
v3Combine(double[] a,
double[] b,
double aScale,
double bScale)
From:
http://www.opensource.apple.com/source/WebCore/WebCore-514/platform/graphics/transforms/TransformationMatrix.cpp
|
static double[] |
v3Cross(double[] a,
double[] b)
From:
http://www.opensource.apple.com/source/WebCore/WebCore-514/platform/graphics/transforms/TransformationMatrix.cpp
|
static double |
v3Dot(double[] a,
double[] b)
The dot product of a and b, two 3-element vectors.
|
static double |
v3Length(double[] a)
From: https://code.google.com/p/webgl-mjs/source/browse/mjs.js
|
static double[] |
v3Normalize(double[] vector,
double norm)
Based on: https://code.google.com/p/webgl-mjs/source/browse/mjs.js
|
public static void multiplyInto(double[] out, double[] a, double[] b)
public static void decomposeMatrix(double[] transformMatrix, MatrixMathHelper.MatrixDecompositionContext ctx)
transformMatrix
- 16-element array of numbers representing 4x4 transform matrixpublic static double determinant(double[] matrix)
public static double[] inverse(double[] matrix)
public static double[] transpose(double[] m)
public static void multiplyVectorByMatrix(double[] v, double[] m, double[] result)
public static double v3Length(double[] a)
public static double[] v3Normalize(double[] vector, double norm)
public static double v3Dot(double[] a, double[] b)
public static double[] v3Combine(double[] a, double[] b, double aScale, double bScale)
public static double[] v3Cross(double[] a, double[] b)
public static void quaternionToDegreesXYZ(double[] q, double[] result)
public static double roundTo3Places(double n)
public static double[] createIdentityMatrix()
public static double degreesToRadians(double degrees)
public static void resetIdentityMatrix(double[] matrix)
public static void applyPerspective(double[] m, double perspective)
public static void applyScaleX(double[] m, double factor)
public static void applyScaleY(double[] m, double factor)
public static void applyScaleZ(double[] m, double factor)
public static void applyTranslate2D(double[] m, double x, double y)
public static void applyTranslate3D(double[] m, double x, double y, double z)
public static void applySkewX(double[] m, double radians)
public static void applySkewY(double[] m, double radians)
public static void applyRotateX(double[] m, double radians)
public static void applyRotateY(double[] m, double radians)
public static void applyRotateZ(double[] m, double radians)