/**
 * Copyright (C) 2010 openecho
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 **/
package openecho.math;

/**
 *
 * @author openecho
 */
public class Transformation3 {

    Matrix4F rotation;
    Matrix4F scale, translation;

    public static final Vector3F X_UNIT, Y_UNIT, Z_UNIT;

    static {
        X_UNIT = Vector3F.X_UNIT;
        Y_UNIT = Vector3F.Y_UNIT;
        Z_UNIT = Vector3F.Z_UNIT;
    }

    public Transformation3() {
        rotation = new Matrix4F();
        scale = new Matrix4F();
        translation = new Matrix4F();
    }
   
    public static Matrix4F createRotationMatrix(float yaw, float pitch, float roll) {
        return null;
    }
        
    public static Matrix4F createRotationMatrix(float rotation, Vector3F axis) {
        return null;
    }

    public static Matrix4F createScaleMatrix(float xFactor, float yFactor, float zFactor) {
        return null;
    }

    public static Matrix4F createScaleMatrix(float factor, Vector3F axis) {
        return null;
    }

    public static Matrix4F createTranslationMatrix(float xTranslation, float yTranslation, float zTranslation) {
        return null;
    }

    public static Matrix4F createTranslationMatrix(float translation, Vector3F axis) {
        return null;
    }
}

@@ -1249,36 +1249,36 @@
 ation, Vector3F 
-axis
+unit
 ) %7B%0A        retu
@@ -1473,36 +1473,36 @@
 actor, Vector3F 
-axis
+unit
 ) %7B%0A        retu
@@ -1642,114 +1642,1490 @@
     
-return null;%0A    %7D%0A%0A    public static Matrix4F createTranslationMatrix(float translation, Vector3F axis) %7B
+Matrix4F trans = Matrix4F.identity();%0A        trans.m03 = xTranslation;%0A        trans.m13 = yTranslation;%0A        trans.m23 = zTranslation;%0A        return trans;%0A    %7D%0A%0A    public static Matrix4F createTranslationMatrix(float translation, Vector3F unit) %7B%0A        Matrix4F trans = Matrix4F.identity();%0A        if(unit == X_UNIT) %7B%0A            trans.m03 = translation;%0A        %7D else if(unit == Y_UNIT) %7B%0A            trans.m13 = translation;%0A        %7D else if(unit == Y_UNIT) %7B%0A            trans.m23 = translation;%0A        %7D else if(unit.equals(X_UNIT)) %7B%0A            trans.m03 = translation;%0A        %7D else if(unit.equals(Y_UNIT)) %7B%0A            trans.m13 = translation;%0A        %7D else if(unit.equals(Y_UNIT)) %7B%0A            trans.m23 = translation;%0A        %7D else %7B%0A            /**%0A             * TODO: Implement this.%0A             */%0A            throw new UnsupportedOperationException();%0A        %7D%0A        return trans;%0A    %7D%0A%0A    public static Matrix4F createXAxisRoationMatrix(float angle) %7B%0A        Matrix4F xRot = Matrix4F.identity();%0A        xRot.m11 = QuickMath.cos(angle);%0A        xRot.m21 = QuickMath.sin(angle);%0A        xRot.m12 = -xRot.m21; // -sin(a)%0A        xRot.m22 = xRot.m11; // cos(a)%0A        return xRot;%0A    %7D%0A%0A    public static Matrix4F createYAxisRoationMatrix(float angle) %7B%0A        Matrix4F yRot = Matrix4F.identity();%0A%0A        return null;%0A    %7D%0A%0A    public static Matrix4F createZAxisRoationMatrix(float angle) %7B%0A        Matrix4F Rot = Matrix4F.identity();%0A
 %0A   
@@ -3148,10 +3148,12 @@
 ;%0A    %7D%0A
+%0A%0A
 %7D%0A

Add translate methods and start of Rotate