public Vector3f projectLocal(Vector3f other) {
        float n = this.dot(other); // A . B
        float d = other.lengthSquared(); // |B|^2
        return set(other).multLocal(n / d);
    }
Projects onto the argument and returns the (modified) current instance.

@param other the vector to project onto (not null, unaffected unless it's
    <code>this</code>)
@return the (modified) current instance (for chaining)
jme3-core/src/main/java/com/jme3/math/Vector3f.java