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(); }
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)); }