Пример #1
0
 private void Arduino_AnalogPinUpdated(int pin, int value)
 {
     Task.Run(() =>
     {
         int?newBrightness = BrightnessAdjustment.AdjustBrightness(value);
         if (newBrightness.HasValue)
         {
             Console.WriteLine(newBrightness);
         }
     });
 }
Пример #2
0
    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;
    }