public final class PMatrix3D extends Object implements PMatrix
PMatrix
for a
general description. This matrix looks like the following when multiplying
a vector (x, y, z, w) in mult()
.
[m00 m01 m02 m03][x] [m00*x + m01*y + m02*z + m03*w] [x'] [m10 m11 m12 m13][y] = [m10*x + m11*y + m12*z + m13*w] = [y'] [m20 m21 m22 m23][z] [m20*x + m21*y + m22*z + m23*w] [z'] [m30 m31 m32 m33][w] [m30*x + m31*y + m32*z + m33*w] [w'](x', y', z', w') is returned. The values in the matrix determine the transformation. They are modified by the various transformation functions. To transform 3D coordinates, w is set to 1, amd w' is made to be 1 by setting the bottom row of the matrix to
[0 0 0 1]
. The
resulting point is then (x', y', z').Modifier and Type | Field and Description |
---|---|
float |
m00 |
float |
m01 |
float |
m02 |
float |
m03 |
float |
m10 |
float |
m11 |
float |
m12 |
float |
m13 |
float |
m20 |
float |
m21 |
float |
m22 |
float |
m23 |
float |
m30 |
float |
m31 |
float |
m32 |
float |
m33 |
Constructor and Description |
---|
PMatrix3D() |
PMatrix3D(float m00,
float m01,
float m02,
float m10,
float m11,
float m12) |
PMatrix3D(float m00,
float m01,
float m02,
float m03,
float m10,
float m11,
float m12,
float m13,
float m20,
float m21,
float m22,
float m23,
float m30,
float m31,
float m32,
float m33) |
PMatrix3D(PMatrix matrix) |
Modifier and Type | Method and Description |
---|---|
void |
apply(float n00,
float n01,
float n02,
float n10,
float n11,
float n12)
Multiply this matrix by another.
|
void |
apply(float n00,
float n01,
float n02,
float n03,
float n10,
float n11,
float n12,
float n13,
float n20,
float n21,
float n22,
float n23,
float n30,
float n31,
float n32,
float n33)
Multiply this matrix by another.
|
void |
apply(PMatrix source)
Multiply this matrix by another.
|
void |
apply(PMatrix2D source)
Multiply this matrix by another.
|
void |
apply(PMatrix3D source)
Multiply this matrix by another.
|
float |
determinant() |
PMatrix3D |
get()
Returns a copy of this PMatrix.
|
float[] |
get(float[] target)
Copies the matrix contents into a 16 entry float array.
|
boolean |
invert()
Invert this matrix.
|
float[] |
mult(float[] source,
float[] target)
Multiply a three or four element vector against this matrix.
|
PVector |
mult(PVector source,
PVector target)
Multiply source by this matrix, and return the result.
|
float |
multW(float x,
float y,
float z)
Returns the fourth element of the result of multiplying the vector
(x, y, z) by this matrix.
|
float |
multW(float x,
float y,
float z,
float w)
Returns the w-coordinate of the result of multiplying the vector
(x, y, z, w) by this matrix.
|
float |
multX(float x,
float y)
Returns the x-coordinate of the result of multiplying the point (x, y)
by this matrix.
|
float |
multX(float x,
float y,
float z)
Returns the x-coordinate of the result of multiplying the point (x, y, z)
by this matrix.
|
float |
multX(float x,
float y,
float z,
float w)
Returns the x-coordinate of the result of multiplying the vector
(x, y, z, w) by this matrix.
|
float |
multY(float x,
float y)
Returns the y-coordinate of the result of multiplying the point (x, y)
by this matrix.
|
float |
multY(float x,
float y,
float z)
Returns the y-coordinate of the result of multiplying the point (x, y, z)
by this matrix.
|
float |
multY(float x,
float y,
float z,
float w)
Returns the y-coordinate of the result of multiplying the vector
(x, y, z, w) by this matrix.
|
float |
multZ(float x,
float y,
float z)
Returns the z-coordinate of the result of multiplying the point (x, y, z)
by this matrix.
|
float |
multZ(float x,
float y,
float z,
float w)
Returns the z-coordinate of the result of multiplying the vector
(x, y, z, w) by this matrix.
|
void |
preApply(float n00,
float n01,
float n02,
float n10,
float n11,
float n12)
Apply the 3D equivalent of the 2D matrix supplied to the left of this one.
|
void |
preApply(float n00,
float n01,
float n02,
float n03,
float n10,
float n11,
float n12,
float n13,
float n20,
float n21,
float n22,
float n23,
float n30,
float n31,
float n32,
float n33)
Apply another matrix to the left of this one.
|
void |
preApply(PMatrix source)
Apply another matrix to the left of this one.
|
void |
preApply(PMatrix2D left)
Apply the 3D equivalent of the 2D matrix supplied to the left of this one.
|
void |
preApply(PMatrix3D left)
Apply another matrix to the left of this one.
|
void |
print() |
void |
reset()
Make this an identity matrix.
|
void |
rotate(float angle) |
void |
rotate(float angle,
float v0,
float v1,
float v2) |
void |
rotateX(float angle) |
void |
rotateY(float angle) |
void |
rotateZ(float angle) |
void |
scale(float s) |
void |
scale(float sx,
float sy) |
void |
scale(float x,
float y,
float z) |
void |
set(float[] source)
Set the contents of this matrix to the contents of source.
|
void |
set(float m00,
float m01,
float m02,
float m10,
float m11,
float m12)
Set the matrix content to this 2D matrix or its 3D equivalent.
|
void |
set(float m00,
float m01,
float m02,
float m03,
float m10,
float m11,
float m12,
float m13,
float m20,
float m21,
float m22,
float m23,
float m30,
float m31,
float m32,
float m33)
Set the matrix content to the 3D matrix supplied, if this matrix is 3D.
|
void |
set(PMatrix matrix)
Make this matrix become a copy of src.
|
void |
shearX(float angle) |
void |
shearY(float angle) |
void |
translate(float tx,
float ty) |
void |
translate(float tx,
float ty,
float tz) |
void |
transpose()
Transpose this matrix; rows become columns and columns rows.
|
public float m00
public float m01
public float m02
public float m03
public float m10
public float m11
public float m12
public float m13
public float m20
public float m21
public float m22
public float m23
public float m30
public float m31
public float m32
public float m33
public PMatrix3D()
public PMatrix3D(float m00, float m01, float m02, float m10, float m11, float m12)
public PMatrix3D(float m00, float m01, float m02, float m03, float m10, float m11, float m12, float m13, float m20, float m21, float m22, float m23, float m30, float m31, float m32, float m33)
public PMatrix3D(PMatrix matrix)
public void reset()
PMatrix
public float[] get(float[] target)
public void set(PMatrix matrix)
PMatrix
public void set(float[] source)
PMatrix
public void set(float m00, float m01, float m02, float m10, float m11, float m12)
PMatrix
public void set(float m00, float m01, float m02, float m03, float m10, float m11, float m12, float m13, float m20, float m21, float m22, float m23, float m30, float m31, float m32, float m33)
PMatrix
public void translate(float tx, float ty, float tz)
public void rotate(float angle, float v0, float v1, float v2)
public void apply(PMatrix source)
PMatrix
public void apply(PMatrix2D source)
PMatrix
public void apply(PMatrix3D source)
PMatrix
public void apply(float n00, float n01, float n02, float n10, float n11, float n12)
PMatrix
public void apply(float n00, float n01, float n02, float n03, float n10, float n11, float n12, float n13, float n20, float n21, float n22, float n23, float n30, float n31, float n32, float n33)
PMatrix
public void preApply(PMatrix2D left)
public void preApply(PMatrix source)
public void preApply(PMatrix3D left)
public void preApply(float n00, float n01, float n02, float n10, float n11, float n12)
public void preApply(float n00, float n01, float n02, float n03, float n10, float n11, float n12, float n13, float n20, float n21, float n22, float n23, float n30, float n31, float n32, float n33)
public PVector mult(PVector source, PVector target)
public float[] mult(float[] source, float[] target)
public float multX(float x, float y)
public float multY(float x, float y)
public float multX(float x, float y, float z)
public float multY(float x, float y, float z)
public float multZ(float x, float y, float z)
public float multW(float x, float y, float z)
public float multX(float x, float y, float z, float w)
public float multY(float x, float y, float z, float w)
public float multZ(float x, float y, float z, float w)
public float multW(float x, float y, float z, float w)
public void transpose()
public boolean invert()
public float determinant()
determinant
in interface PMatrix
public void print()