private void OnEnable() { laserPointer = GetComponent <VoiceLaser>(); laserPointer.PointerIn += HandlePointerIn; laserPointer.PointerOut += HandlePointerOut; laserPointer.PointerStay += HandlePointerStay; }
void Update() { if (Input.GetKeyDown(KeyCode.Alpha1)) { bifocal = false; magnification = !magnification; } if (Input.GetKeyDown(KeyCode.Alpha2)) { magnification = false; bifocal = !bifocal; } if (Input.GetKeyDown(KeyCode.Alpha4)) { edgeEnhancement = false; highlight = !highlight; } if (Input.GetKeyDown(KeyCode.Alpha3)) { highlight = false; edgeEnhancement = !edgeEnhancement; } if (Input.GetKeyDown(KeyCode.Alpha5)) { brightness = !brightness; } if (Input.GetKeyDown(KeyCode.Alpha6)) { textToSpeech = !textToSpeech; } if (Input.GetKeyDown(KeyCode.Alpha7)) { objectDescription = !objectDescription; } if (Input.GetKeyDown(KeyCode.Alpha8)) { remapping = !remapping; } if (Input.GetKeyDown(KeyCode.Alpha9)) { guideline = !guideline; } magnificationObj.SetActive(magnification); magnificationObj.GetComponent <AdjustMagnificationLevel>().magnificationLevel = magnificationLevel; bifocalObj.SetActive(bifocal); bifocalObj.GetComponent <AdjustBifocal>().magnificationLevel = bifocalLevel; bifocalObj.transform.localPosition = new Vector3(0, -0.2f + bifocalShift, 0.5f); Camera cam = bifocalObj.GetComponentInChildren <Camera>(); if (cam != null) { cam.transform.localRotation = Quaternion.Euler(90 - Mathf.Atan2(-0.2f + bifocalShift, 0.5f) * 180 / Mathf.PI, 0, 0); cam.transform.localPosition = new Vector3(0, 5, 2 - 10 * bifocalShift); } remappingObj.SetActive(remapping); remappingObj.GetComponent <Renderer>().material.color = remappingEdgeColor; remappingObj.transform.localScale = new Vector3(0.2f + SizeShift, 0.2f + SizeShift, 0.01f); remappingObj.transform.localPosition = new Vector3(XShift, YShift, 0.5f + ZShift); Camera camBi = remappingObj.GetComponentInChildren <Camera>(); if (camBi != null) { camBi.transform.localPosition = new Vector3(XShift / 0.2f, -YShift / 0.2f, (0.5f + ZShift) / 0.01f); } brightnessAdjustment.enabled = brightness; brightnessAdjustment.intensity = brightnessLevel; contrastEnhance.enabled = contrast; contrastEnhance.intensity = contrastIntensity; edgeDetection.enabled = edgeEnhancement; edgeDetection.edgesColor = edgeColor; edgeDetection.sampleDist = edgeThickness; Camera magCam = magnificationObj.GetComponentInChildren <Camera>(); EdgeDetection magEdge = magCam.GetComponent <EdgeDetection>(); magEdge.enabled = edgeEnhancement; magEdge.edgesColor = edgeColor; magEdge.sampleDist = edgeThickness; Camera biCam = bifocalObj.GetComponentInChildren <Camera>(); EdgeDetection biEdge = biCam.GetComponent <EdgeDetection>(); biEdge.enabled = edgeEnhancement; biEdge.edgesColor = edgeColor; biEdge.sampleDist = edgeThickness; textAugment.isAugmented = textAugmentation; textAugment.dynamicScanning = textDynamicScanning; textAugment.fontSizeIncrease = fontSizeIncrease; textAugment.addColliderToText = addTextCollider; textAugment.bold = bold; if (leftVoice != null) { leftVoice.TextToSpeech = textToSpeech; leftVoice.objectDescription = objectDescription; VoiceLaser leftLaser = leftHand.GetComponent <VoiceLaser>(); leftLaser.rotateAngle = laserRotation; leftLaser.shiftDistance = laserShift; } if (rightVoice != null) { rightVoice.TextToSpeech = textToSpeech; rightVoice.objectDescription = objectDescription; VoiceLaser rightLaser = rightHand.GetComponent <VoiceLaser>(); rightLaser.rotateAngle = laserRotation; rightLaser.shiftDistance = laserShift; } if (leftDepth != null) { leftDepth.isDepthMeasured = depthMeasurement; leftDepth.color = depthColor; leftDepth.rotateAngle = laserRotation; leftDepth.shiftDistance = laserShift; } if (rightDepth != null) { rightDepth.isDepthMeasured = depthMeasurement; rightDepth.color = depthColor; rightDepth.rotateAngle = laserRotation; rightDepth.shiftDistance = laserShift; } highlightSalience.highlight = highlight; highlightSalience.highlightColor = highlightColor; highlightSalience.Guideline = guideline; highlightSalience.guidelineColor = guidelineColor; highlightSalience.forwardFactor = forwardFactor; highlightSalience.radius = radius; highlightSalience.dynamicScanning = salientObjDynamicScanning; recolorManagement.enableRecoloring = recoloring; recolorManagement.threshould = distanceThreshold; recolorManagement.dynamicScanning = objectDynamicScanning; }
void Start() { if (magnififcationPrefab != null) { magnificationObj = (GameObject)Instantiate(magnififcationPrefab); magnificationObj.transform.parent = mainCamera.transform; magnificationObj.GetComponent <AdjustMagnificationLevel>().magnificationLevel = 5; magnificationObj.transform.localPosition = new Vector3(0, 0, 0.5f); magnificationObj.transform.localRotation = Quaternion.Euler(-90, 0, 0); magnificationObj.transform.localScale = new Vector3(0.1f, 0.1f, 0.1f); magnificationObj.layer = 31; magnificationObj.transform.GetChild(0).gameObject.layer = 31; Camera cam = magnificationObj.GetComponentInChildren <Camera>(); if (cam != null) { cam.cullingMask &= ~((1 << 31)); cam.clearFlags = mainCamera.clearFlags; cam.backgroundColor = mainCamera.backgroundColor; } magnificationObj.SetActive(false); } if (bifocalPrefab != null) { bifocalObj = Instantiate(bifocalPrefab); bifocalObj.GetComponent <AdjustBifocal>().magnificationLevel = 5; bifocalObj.transform.parent = mainCamera.transform; bifocalObj.transform.localPosition = new Vector3(0, -0.2f + bifocalShift, 0.5f); bifocalObj.transform.localRotation = Quaternion.Euler(-90, 0, 0); bifocalObj.transform.localScale = new Vector3(0.1f, 0.1f, 0.1f); bifocalObj.layer = 31; bifocalObj.transform.GetChild(0).gameObject.layer = 31; Camera cam = bifocalObj.GetComponentInChildren <Camera>(); if (cam != null) { cam.cullingMask &= ~((1 << 31)); cam.transform.localRotation = Quaternion.Euler(90 - Mathf.Atan2(-0.2f + bifocalShift, 0.5f) * 180 / Mathf.PI, 0, 0); cam.transform.localPosition = new Vector3(0, 5, 2 - 10 * bifocalShift); cam.clearFlags = mainCamera.clearFlags; cam.backgroundColor = mainCamera.backgroundColor; } bifocalObj.SetActive(false); } if (remappingPrefab != null) { remappingObj = Instantiate(remappingPrefab); remappingObj.transform.parent = mainCamera.transform; remappingObj.transform.localScale = new Vector3(0.2f + SizeShift, 0.2f + SizeShift, 0.01f); remappingObj.transform.localPosition = new Vector3(XShift, YShift, 0.5f + ZShift); remappingObj.transform.localRotation = Quaternion.Euler(0, 180, 0); remappingObj.GetComponent <Renderer>().material.color = remappingEdgeColor; remappingObj.layer = 30; Camera cam = remappingObj.GetComponentInChildren <Camera>(); cam.cullingMask &= ~((1 << 31) | (1 << 30)); cam.transform.localPosition = new Vector3(XShift / 0.2f, -YShift / 0.2f, (0.5f + ZShift) / 0.01f); cam.clearFlags = mainCamera.clearFlags; cam.backgroundColor = mainCamera.backgroundColor; remappingObj.GetComponent <BoxCollider>().enabled = false; remappingObj.SetActive(false); } brightnessAdjustment = mainCamera.gameObject.AddComponent <BrightnessAdjustment>(); brightnessAdjustment.intensity = brightnessLevel; brightnessAdjustment.brightnessShader = Shader.Find("Custom/BrightnessShader"); brightnessAdjustment.enabled = false; contrastEnhance = mainCamera.gameObject.AddComponent <ContrastEnhance>(); contrastEnhance.contrastCompositeShader = Shader.Find("Hidden/ContrastComposite"); contrastEnhance.separableBlurShader = Shader.Find("Hidden/SeparableBlur"); contrastEnhance.threshold = 0; contrastEnhance.blurSpread = 1; contrastEnhance.intensity = contrastIntensity; contrastEnhance.enabled = false; edgeDetection = mainCamera.gameObject.AddComponent <EdgeDetection>(); edgeDetection.edgesOnly = 0; edgeDetection.edgesColor = edgeColor; edgeDetection.sampleDist = edgeThickness; edgeDetection.edgeDetectShader = Shader.Find("Hidden/EdgeDetect"); edgeDetection.enabled = false; augmentations = new GameObject("_augmentations"); textAugment = augmentations.AddComponent <TextAugmentationByShader>(); textAugment.addColliderToText = addTextCollider; textAugment.fontSizeIncrease = fontSizeIncrease; textAugment.bold = false; textAugment.isAugmented = false; textAugment.dynamicScanning = false; augmentations.AddComponent <WindowsVoice>(); if (leftHand != null) { leftVoice = leftHand.AddComponent <VoiceComponent>(); leftVoice.TextToSpeech = false; leftVoice.objectDescription = false; VoiceLaser leftLaser = leftHand.GetComponent <VoiceLaser>(); leftLaser.rotateAngle = laserRotation; leftLaser.shiftDistance = laserShift; leftDepth = leftHand.AddComponent <DepthLaser>(); leftDepth.isDepthMeasured = false; leftDepth.color = depthColor; leftDepth.rotateAngle = laserRotation; leftDepth.shiftDistance = laserShift; } if (rightHand != null) { rightVoice = rightHand.AddComponent <VoiceComponent>(); rightVoice.TextToSpeech = false; rightVoice.objectDescription = false; VoiceLaser rightLaser = rightHand.GetComponent <VoiceLaser>(); rightLaser.rotateAngle = laserRotation; rightLaser.shiftDistance = laserShift; rightDepth = rightHand.AddComponent <DepthLaser>(); rightDepth.isDepthMeasured = false; rightDepth.color = depthColor; rightDepth.rotateAngle = laserRotation; rightDepth.shiftDistance = laserShift; } highlightSalience = augmentations.AddComponent <HighlightSalience>(); highlightSalience.highlight = false; highlightSalience.highlightColor = highlightColor; highlightSalience.Guideline = false; highlightSalience.guidelineColor = guidelineColor; highlightSalience.forwardFactor = forwardFactor; highlightSalience.radius = radius; highlightSalience.dynamicScanning = salientObjDynamicScanning; recolorManagement = augmentations.AddComponent <RecolorManagement>(); recolorManagement.enableRecoloring = false; recolorManagement.threshould = distanceThreshold; recolorManagement.dynamicScanning = objectDynamicScanning; }