// Path: src/org/joml/jre/java/io/Externalizable.java
// public interface Externalizable extends java.io.Serializable {
//     void writeExternal(ObjectOutput out) throws IOException;
//     void readExternal(ObjectInput in) throws IOException, ClassNotFoundException;
// }
// 
// Path: src/org/joml/jre/java/io/ObjectInput.java
// public interface ObjectInput extends DataOutput {
// 
//     double readDouble() throws IOException;
//     float readFloat() throws IOException;
//     int readInt() throws IOException;
// 
// }
// 
// Path: src/org/joml/jre/java/io/ObjectOutput.java
// public interface ObjectOutput extends DataOutput {
//     void writeObject(Object obj);
// }
// 
// Path: src/org/joml/jre/java/text/DecimalFormat.java
// public class DecimalFormat extends NumberFormat {
// 
//     public DecimalFormat() {
//     }
//     public DecimalFormat(String pattern) {
//     }
//     public DecimalFormat (String pattern, DecimalFormatSymbols symbols) {
//     }
// 
//     public StringBuffer format(double number, StringBuffer toAppendTo, FieldPosition pos) {
//         return null;
//     }
//     public StringBuffer format(long number, StringBuffer toAppendTo, FieldPosition pos) {
//         return null;
//     }
//     public Number parse(String source, ParsePosition parsePosition) {
//         return null;
//     }
//     public StringBuffer format(Object obj, StringBuffer toAppendTo, FieldPosition pos) {
//         return null;
//     }
//     public Object parseObject(String source, ParsePosition pos) {
//         return null;
//     }
// 
// }
// 
// Path: src/org/joml/jre/java/text/NumberFormat.java
// public abstract class NumberFormat extends Format {
//     public final String format(double number) {
//         return Double.toString(number);
//     }
//     public final String format(long number) {
//         return Long.toString(number);
//     }
// }


import java.text.DecimalFormat;
import java.text.NumberFormat;
import com.google.gwt.typedarrays.shared.Float32Array;
import java.io.Externalizable;
import java.io.IOException;
import java.io.ObjectInput;
import java.io.ObjectOutput;
import java.nio.ByteBuffer;
import java.nio.FloatBuffer;
        dest.properties = properties & ~(PROPERTY_IDENTITY);
        return dest;
    }

    /**
     * Pre-multiply a translation to this matrix by translating by the given number of
     * units in x, y and z.
     * <p>
     * If <code>M</code> is <code>this</code> matrix and <code>T</code> the translation
     * matrix, then the new matrix will be <code>T * M</code>. So when
     * transforming a vector <code>v</code> with the new matrix by using
     * <code>T * M * v</code>, the translation will be applied last!
     * <p>
     * In order to set the matrix to a translation transformation without pre-multiplying
     * it, use {@link #translation(float, float, float)}.
     * 
     * @see #translation(float, float, float)
     * 
     * @param x
     *          the offset to translate in x
     * @param y
     *          the offset to translate in y
     * @param z
     *          the offset to translate in z
     * @return this
     */
    public Matrix4x3f translateLocal(float x, float y, float z) {
        return translateLocal(x, y, z, this);
    }

// Path: src/org/joml/jre/java/io/Externalizable.java
// public interface Externalizable extends java.io.Serializable {
//     void writeExternal(ObjectOutput out) throws IOException;
//     void readExternal(ObjectInput in) throws IOException, ClassNotFoundException;
// }
// 
// Path: src/org/joml/jre/java/io/ObjectInput.java
// public interface ObjectInput extends DataOutput {
// 
//     double readDouble() throws IOException;
//     float readFloat() throws IOException;
//     int readInt() throws IOException;
// 
// }
// 
// Path: src/org/joml/jre/java/io/ObjectOutput.java
// public interface ObjectOutput extends DataOutput {
//     void writeObject(Object obj);
// }
// 
// Path: src/org/joml/jre/java/text/DecimalFormat.java
// public class DecimalFormat extends NumberFormat {
// 
//     public DecimalFormat() {
//     }
//     public DecimalFormat(String pattern) {
//     }
//     public DecimalFormat (String pattern, DecimalFormatSymbols symbols) {
//     }
// 
//     public StringBuffer format(double number, StringBuffer toAppendTo, FieldPosition pos) {
//         return null;
//     }
//     public StringBuffer format(long number, StringBuffer toAppendTo, FieldPosition pos) {
//         return null;
//     }
//     public Number parse(String source, ParsePosition parsePosition) {
//         return null;
//     }
//     public StringBuffer format(Object obj, StringBuffer toAppendTo, FieldPosition pos) {
//         return null;
//     }
//     public Object parseObject(String source, ParsePosition pos) {
//         return null;
//     }
// 
// }
// 
// Path: src/org/joml/jre/java/text/NumberFormat.java
// public abstract class NumberFormat extends Format {
//     public final String format(double number) {
//         return Double.toString(number);
//     }
//     public final String format(long number) {
//         return Long.toString(number);
//     }
// }


// Path: src/org/joml/Matrix4x3f.java
import java.text.DecimalFormat;
import java.text.NumberFormat;
import com.google.gwt.typedarrays.shared.Float32Array;
import java.io.Externalizable;
import java.io.IOException;
import java.io.ObjectInput;
import java.io.ObjectOutput;
import java.nio.ByteBuffer;
import java.nio.FloatBuffer;

        dest.properties = properties & ~(PROPERTY_IDENTITY);
        return dest;
    }

    /**
     * Pre-multiply a translation to this matrix by translating by the given number of
     * units in x, y and z.
     * <p>
     * If <code>M</code> is <code>this</code> matrix and <code>T</code> the translation
     * matrix, then the new matrix will be <code>T * M</code>. So when
     * transforming a vector <code>v</code> with the new matrix by using
     * <code>T * M * v</code>, the translation will be applied last!
     * <p>
     * In order to set the matrix to a translation transformation without pre-multiplying
     * it, use {@link #translation(float, float, float)}.
     * 
     * @see #translation(float, float, float)
     * 
     * @param x
     *          the offset to translate in x
     * @param y
     *          the offset to translate in y
     * @param z
     *          the offset to translate in z
     * @return this
     */
    public Matrix4x3f translateLocal(float x, float y, float z) {
        return translateLocal(x, y, z, this);
    }

    public void writeExternal(ObjectOutput out) throws IOException {