void OnGUI() { UnityGUI.Header("Coordinates"); headset = UnityGUI.Enum("Headset", headset); UnityGUI.Space(); UnityGUI.BeginHorizontal(); UnityGUI.Label(" ", "X", UnityGUI.BoldLabel); UnityGUI.Label("Y", UnityGUI.BoldLabel); UnityGUI.EndHorizontal(); UnityGUI.BeginHorizontal(); UnityGUI.Label("Resolution", headset.GetWidth().ToString()); UnityGUI.Label(headset.GetHeight().ToString()); UnityGUI.EndHorizontal(); UnityGUI.BeginHorizontal(); UnityGUI.Label("Field of View", ((int)headset.GetFieldOfView(Axis.Horizontal)).ToString()); UnityGUI.Label(((int)headset.GetFieldOfView(Axis.Vertical)).ToString()); UnityGUI.EndHorizontal(); UnityGUI.BeginHorizontal(); UnityGUI.Label("Diameter (um)", ((int)headset.GetRetinalDiameter(Axis.Horizontal)).ToString()); UnityGUI.Label(((int)headset.GetRetinalDiameter(Axis.Vertical)).ToString()); UnityGUI.EndHorizontal(); UnityGUI.Space(); Draw("Pixel", ref pixel); Draw("Visual Angle", ref angle); Draw("Retina (um)", ref retina); Draw("Polar", ref polar); UnityGUI.Separator(); UnityGUI.Header("Electrode Count"); UnityGUI.BeginChangeCheck(); pattern = UnityGUI.Enum("Pattern", pattern); layout = UnityGUI.Enum("Layout", layout); fieldOfView = UnityGUI.Float("Field of View", fieldOfView); var changed = UnityGUI.EndChangeCheck(); if (changed) { numElectrodes = pattern.GetElectrodePositions(layout, fieldOfView).Length; } UnityGUI.Space(); UnityGUI.Label("Electode Count", numElectrodes.ToString()); }
/* * Protected methods */ protected void Initialise(string phosShader, string tailShader) { // load shaders phos = new Material(Shader.Find(phosShader)); tail = new Material(Shader.Find(tailShader)); if (phos == null || tail == null) { Debug.LogError($"{name} does not have a material."); return; } // upload electrode/axon textures to the GPU phos.SetTexture(SP.electrodeTexture, epiretinalData.GetPhospheneTexture(headset, pattern, layout)); tail.SetTexture(SP.axonTexture, epiretinalData.GetAxonTexture(headset)); // create texture for the fading data fadeRT = new DoubleBufferedRenderTexture(headset.GetWidth(), headset.GetHeight()); fadeRT.Initialise(new Color(1, 0, 0, 0)); // overrides if (overrideCameraFOV) { Prosthesis.Instance.Camera.fieldOfView = headset.GetFieldOfView(Axis.Vertical); } if (overrideRefreshRate) { Application.targetFrameRate = headset.GetRefreshRate(); } // cache texture-related variables lastHeadset = headset; lastPattern = pattern; lastLayout = layout; // initialise eye gaze tracking EyeGaze.Initialise(eyeGazeSource, headset); // initialise camera target eye UpdateCameraTargetEye(); }
public static float GetRetinalDiameter(this HeadsetModel headset, Axis axis) { return(CoordinateSystem.FovToRetinalDiameter(headset.GetFieldOfView(axis))); }