public Quaternion multLocal(Quaternion q) {
        float x1 = x * q.w + y * q.z - z * q.y + w * q.x;
        float y1 = -x * q.z + y * q.w + z * q.x + w * q.y;
        float z1 = x * q.y - y * q.x + z * q.w + w * q.z;
        w = -x * q.x - y * q.y - z * q.z + w * q.w;
        x = x1;
        y = y1;
        z = z1;
        return this;
    }
Multiplies by the argument and returns the (modified) current instance.

<p>This method is used to combine rotations. Note that quaternion
multiplication is noncommutative, so generally q * p != p * q.

@param q the right factor (not null, unaffected unless it's {@code this})
@return the (modified) current instance (for chaining)
jme3-core/src/main/java/com/jme3/math/Quaternion.java