public void positionGuiNow(float tpf) {
        if (environment != null){
            wantsReposition = false;
            if( environment.isInVR() == false ){
                return;
            }

            guiQuadNode.setLocalScale(guiDistance * guiScale * 4f, 4f * guiDistance * guiScale, 1f);

            switch( posMode ) {
            case MANUAL:
            case AUTO_CAM_ALL_SKIP_PITCH:
            case AUTO_CAM_ALL:
                if( camLeft != null && camRight != null ) {
                    // get middle point
                    temppos.set(camLeft.getLocation()).interpolateLocal(camRight.getLocation(), 0.5f);
                    positionTo(temppos, camLeft.getRotation(), tpf);
                }
                rotateScreenTo(camLeft.getRotation(), tpf);

                break;
            case AUTO_OBSERVER_POS_CAM_ROTATION:
                Object obs = environment.getObserver();
                if( obs != null ) {
                    if( obs instanceof Camera ) {
                        positionTo(((Camera)obs).getLocation(), camLeft.getRotation(), tpf);
                    } else {
                        positionTo(((Spatial)obs).getWorldTranslation(), camLeft.getRotation(), tpf);
                    }
                }
                rotateScreenTo(camLeft.getRotation(), tpf);

                break;
            case AUTO_OBSERVER_ALL:
            case AUTO_OBSERVER_ALL_CAMHEIGHT:
                obs = environment.getObserver();
                if( obs != null ) {
                    Quaternion q;
                    if( obs instanceof Camera ) {
                        q = ((Camera)obs).getRotation();
                        temppos.set(((Camera)obs).getLocation());
                    } else {
                        q = ((Spatial)obs).getWorldRotation();
                        temppos.set(((Spatial)obs).getWorldTranslation());
                    }
                    if( posMode == VRGUIPositioningMode.AUTO_OBSERVER_ALL_CAMHEIGHT ) {
                        temppos.y = camLeft.getLocation().y;
                    }
                    positionTo(temppos, q, tpf);
                    rotateScreenTo(q, tpf);

                }
                break;
            }
        } else {
            throw new IllegalStateException("VR GUI manager is not attached to any environment.");
        }
    }
Position the GUI without delay.
@param tpf the time per frame.
jme3-vr/src/main/java/com/jme3/util/VRGuiManager.java