processing.core
Class PMatrix

java.lang.Object
  extended by processing.core.PMatrix
All Implemented Interfaces:
PConstants

public final class PMatrix
extends java.lang.Object
implements PConstants

4x4 matrix implementation.


Field Summary
 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
           
 
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
 

Field Detail

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
Constructor Detail

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)
Method Detail

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()