Comp 136 - Project 3


Implement the following class:

    public class Matrix3D {
        //
        // Constructors
        //
        public Matrix3D();                  // initialize with identity transform
        public Matrix3D(Matrix3D copy);     // initialize with copy of source

				 //
				 // General interface methods
        //        
        public void set(int j, int i, float value);          // set element (j,i) to value
        public float get(int j, int i);                      // return element (j,i)
        public void transform(float in[][], float out[][]);
        public final void compose(Matrix3D src);
        public void loadIdentity();

        public void translate(float tx, float ty, float tz);
        public void scale(float sx, float sy, float sz);
        public void rotate(float ax, float ay, float ay, float angle);
        
        public void lookAt(float eyex, float eyey, float eyez,
                           float atx,  float aty,  float atz,
                           float upx,  float upy,  float upz);

				 //
				 // Assume the following projection transformations
				 // transform points into the canonical viewing space
        //
        public void perspective(float left, float right,
                                float bottom, float top,
                                float near, float far);
        public void orthographic(float left, float right,
                                 float bottom, float top,
                                 float near, float far);
    }