processing.core
Class PMatrix
java.lang.Object
processing.core.PMatrix
- All Implemented Interfaces:
- PConstants
public final class PMatrix
- extends java.lang.Object
- implements PConstants
4x4 matrix implementation.
| Fields inherited from interface processing.core.PConstants |
ADD, ALPHA, ALPHA_MASK, ALT, AMBIENT, ARGB, ARROW, BACKSPACE, BASELINE, BEVEL, BLEND, BLUE_MASK, BLUR, BOTTOM, BURN, CENTER, CENTER_RADIUS, CHATTER, CLOSE, CMYK, CODED, COMPLAINT, CONTROL, CORNER, CORNERS, CROSS, CUSTOM, DARKEST, DEG_TO_RAD, DELETE, DIFFERENCE, DILATE, DIRECTIONAL, DISABLE_DEPTH_TEST, DISABLE_ERROR_REPORT, DISABLE_FLYING_POO, DODGE, DOWN, DXF, ENABLE_ACCURATE_TEXTURES, ENABLE_DEPTH_SORT, ENABLE_NATIVE_FONTS, ENABLE_OPENGL_2X_SMOOTH, ENABLE_OPENGL_4X_SMOOTH, ENTER, EPSILON, ERODE, ESC, EXCLUSION, GIF, GRAY, GREEN_MASK, HALF_PI, HAND, HARD_LIGHT, HINT_COUNT, HSB, IMAGE, INVERT, JAVA2D, JPEG, LEFT, LIGHTEST, LINES, LINUX, MACOS9, MACOSX, MAX_FLOAT, MAX_INT, MIN_FLOAT, MIN_INT, MITER, MODEL, MOVE, MULTIPLY, NORMALIZED, OPAQUE, OPEN, OPENGL, ORTHOGRAPHIC, OTHER, OVERLAY, P2D, P3D, PDF, PERSPECTIVE, PI, PIXEL_CENTER, POINT, POINTS, POLYGON, POSTERIZE, PROBLEM, PROJECT, QUAD_STRIP, QUADS, QUARTER_PI, RAD_TO_DEG, RADIUS, RED_MASK, REPLACE, RETURN, RGB, RIGHT, ROUND, SCREEN, SHAPE, SHIFT, SOFT_LIGHT, SPOT, SQUARE, SUBTRACT, TAB, TARGA, TEXT, THIRD_PI, THRESHOLD, TIFF, TOP, TRIANGLE_FAN, TRIANGLE_STRIP, TRIANGLES, TWO_PI, UP, WAIT, WHITESPACE, WINDOWS |
|
Constructor Summary |
PMatrix()
|
PMatrix(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(int stackDepth)
|
PMatrix(PMatrix src)
|
|
Method Summary |
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)
|
void |
apply(PMatrix rhs)
|
void |
clearStack()
|
float |
determinant()
|
boolean |
invApply(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)
|
boolean |
invApply(PMatrix rhs)
|
PMatrix |
invert()
Invert this matrix |
void |
invRotate(float angle)
|
void |
invRotate(float angle,
float v0,
float v1,
float v2)
|
void |
invRotateX(float angle)
|
void |
invRotateY(float angle)
|
void |
invRotateZ(float angle)
|
void |
invScale(float s)
|
void |
invScale(float sx,
float sy)
|
void |
invScale(float x,
float y,
float z)
|
void |
invTranslate(float tx,
float ty)
|
void |
invTranslate(float tx,
float ty,
float tz)
|
void |
mult(float[] vec,
float[] out)
|
void |
mult3(float[] vec,
float[] out)
|
boolean |
pop()
|
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)
|
void |
preApply(PMatrix lhs)
|
void |
print()
|
boolean |
push()
|
void |
reset()
|
void |
rotate(float angle)
Just calls rotateZ because two dimensional rotation
is the same as rotating along the z-axis. |
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 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)
|
void |
set(PMatrix src)
|
void |
translate(float tx,
float ty)
|
void |
translate(float tx,
float ty,
float tz)
|
PMatrix |
transpose()
|
| Methods inherited from class java.lang.Object |
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
m00
public float m00
m01
public float m01
m02
public float m02
m03
public float m03
m10
public float m10
m11
public float m11
m12
public float m12
m13
public float m13
m20
public float m20
m21
public float m21
m22
public float m22
m23
public float m23
m30
public float m30
m31
public float m31
m32
public float m32
m33
public float m33
PMatrix
public PMatrix()
PMatrix
public PMatrix(int stackDepth)
PMatrix
public PMatrix(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 PMatrix(PMatrix src)
reset
public void reset()
clearStack
public void clearStack()
push
public boolean push()
pop
public boolean pop()
set
public void set(PMatrix src)
set
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)
translate
public void translate(float tx,
float ty)
invTranslate
public void invTranslate(float tx,
float ty)
translate
public void translate(float tx,
float ty,
float tz)
invTranslate
public void invTranslate(float tx,
float ty,
float tz)
rotateX
public void rotateX(float angle)
invRotateX
public void invRotateX(float angle)
rotateY
public void rotateY(float angle)
invRotateY
public void invRotateY(float angle)
rotate
public void rotate(float angle)
- Just calls rotateZ because two dimensional rotation
is the same as rotating along the z-axis.
invRotate
public void invRotate(float angle)
rotateZ
public void rotateZ(float angle)
invRotateZ
public void invRotateZ(float angle)
rotate
public void rotate(float angle,
float v0,
float v1,
float v2)
invRotate
public void invRotate(float angle,
float v0,
float v1,
float v2)
scale
public void scale(float s)
invScale
public void invScale(float s)
scale
public void scale(float sx,
float sy)
invScale
public void invScale(float sx,
float sy)
scale
public void scale(float x,
float y,
float z)
invScale
public void invScale(float x,
float y,
float z)
preApply
public void preApply(PMatrix lhs)
preApply
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)
invApply
public boolean invApply(PMatrix rhs)
invApply
public boolean invApply(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
public void apply(PMatrix rhs)
apply
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)
mult3
public void mult3(float[] vec,
float[] out)
mult
public void mult(float[] vec,
float[] out)
determinant
public float determinant()
- Returns:
- the determinant of the matrix
transpose
public PMatrix transpose()
invert
public PMatrix invert()
- Invert this matrix
- Returns:
- this if successful, null otherwise
print
public void print()