public void RefreshIPD()
        {
            if (!isConfigured)
            {
                return;
            }
            Vector3 lPos = leftEyeIPDTransform.localPosition;
            Vector3 rPos = rightEyeIPDTransform.localPosition;

            lPos.x = -ipd / 2f; rPos.x = ipd / 2f;
            lPos.y = heightOffset; rPos.y = heightOffset;
            lPos.z = depthOffset; rPos.z = depthOffset;
            leftEyeIPDTransform.localPosition  = lPos;
            rightEyeIPDTransform.localPosition = rPos;

            leapTransform.localEulerAngles = new Vector3(pitchOffset, yawOffset, 0f);

            //if (Application.isPlaying) {
            //  leftScreenTransform.localPosition = startingScreenLeft + (leftScreenTransform.localRotation * Vector3.forward) * screenForwardOffset;
            //  rightScreenTransform.localPosition = startingScreenRight + (rightScreenTransform.localRotation * Vector3.forward) * screenForwardOffset;
            //}

            OpticalCalibrationManager manager = GetComponent <OpticalCalibrationManager>();

            if (manager != null)
            {
                manager.currentCalibration.leftEye.eyePosition  = lPos;
                manager.currentCalibration.rightEye.eyePosition = rPos;
                manager.UpdateCalibrationFromObjects();
            }

            leftEyeARRaytracer.ScheduleCreateDistortionMesh();
            rightEyeARRaytracer.ScheduleCreateDistortionMesh();
        }
Exemple #2
0
        public float costFunction(float[] coordinate)
        {
            Testing.DenseOptimizer.setTransformsFromCoord(coordinate, ref TransformsToOptimize, rotationUnitRatio);
            manager.UpdateCalibrationFromObjects(true, true);

            float focalCost   = evaluateFocalPlane();
            float currentDist = Vector3.Distance(raytracer.eyePerspective.transform.position, planePos);

            return(focalCost + ((currentDist < startingDist) ? 100f : 0f));
        }