< Summary

Class:DCL.Controllers.SceneBoundsFeedbackStyle_Simple
Assembly:DCL.Runtime
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/WorldRuntime/SceneBoundariesController/SceneBoundsFeedbackStyle_Simple.cs
Covered lines:20
Uncovered lines:6
Coverable lines:26
Total lines:67
Line coverage:76.9% (20 of 26)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
SceneBoundsFeedbackStyle_Simple()0%110100%
ApplyFeedback(...)0%18180100%
CleanFeedback()0%3.713057.14%
GetOriginalMaterials(...)0%6200%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/WorldRuntime/SceneBoundariesController/SceneBoundsFeedbackStyle_Simple.cs

#LineLine coverage
 1using DCL.Models;
 2using UnityEngine;
 3using System.Collections.Generic;
 4
 5namespace DCL.Controllers
 6{
 7    public class SceneBoundsFeedbackStyle_Simple : ISceneBoundsFeedbackStyle
 8    {
 6659        private readonly List<Renderer> disabledRenderers = new List<Renderer>();
 10
 11        public void ApplyFeedback(MeshesInfo meshesInfo, bool isInsideBoundaries)
 12        {
 52013            if (meshesInfo?.renderers == null || meshesInfo.renderers.Length == 0)
 35214                return;
 15
 16816            if (meshesInfo?.currentShape != null && !meshesInfo.currentShape.IsVisible())
 317                return;
 18
 74219            for (int i = 0; i < meshesInfo.renderers.Length; i++)
 20            {
 20621                if (meshesInfo.renderers[i] == null)
 22                    continue;
 23
 20624                if (isInsideBoundaries == meshesInfo.renderers[i].enabled)
 25                    continue;
 26
 27                //We add a check to stop the material transition controller in case its there and
 28                //needs to be turned off
 5929                MaterialTransitionController mtcController = meshesInfo.renderers[i].GetComponent<MaterialTransitionCont
 5930                if (!isInsideBoundaries && mtcController)
 31                {
 2232                    mtcController.ForceStop();
 33                }
 34
 5935                meshesInfo.renderers[i].enabled = isInsideBoundaries;
 36
 5937                if (isInsideBoundaries && disabledRenderers.Contains(meshesInfo.renderers[i]))
 2638                    disabledRenderers.Remove( meshesInfo.renderers[i]);
 3339                else if (!isInsideBoundaries && !disabledRenderers.Contains(meshesInfo.renderers[i]))
 2640                    disabledRenderers.Add( meshesInfo.renderers[i]);
 41            }
 16542        }
 43
 44        public void CleanFeedback()
 45        {
 6846            foreach (var renderer in disabledRenderers)
 47            {
 048                if (renderer != null)
 049                    renderer.enabled = true;
 50            }
 51
 3452            disabledRenderers.Clear();
 3453        }
 54
 55        public List<Material> GetOriginalMaterials(MeshesInfo meshesInfo)
 56        {
 057            List<Material> result = new List<Material>();
 58
 059            for (int i = 0; i < meshesInfo.renderers.Length; i++)
 60            {
 061                result.AddRange(meshesInfo.renderers[i].sharedMaterials);
 62            }
 63
 064            return result;
 65        }
 66    }
 67}