public Vector3f mult(Vector3f vec, Vector3f product) {
        if (null == product) {
            product = new Vector3f();
        }

        float x = vec.x;
        float y = vec.y;
        float z = vec.z;

        product.x = m00 * x + m01 * y + m02 * z;
        product.y = m10 * x + m11 * y + m12 * z;
        product.z = m20 * x + m21 * y + m22 * z;
        return product;
    }
Applies the linear transformation to specified vector and stores the
result in another vector. The matrix is unaffected.

<p>This can also be described as multiplying the matrix by a column
vector.

<p>It is safe for {@code vec} and {@code product} to be the same object.

@param vec the coordinates to transform (not null, unaffected unless it's
    {@code product})
@param product storage for the result, or null for a new Vector3f
@return either {@code product} or a new Vector3f
jme3-core/src/main/java/com/jme3/math/Matrix3f.java