< Summary

Class:AvatarSystem.Visibility
Assembly:AvatarSystem
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/AvatarSystem/Visibility.cs
Covered lines:28
Uncovered lines:19
Coverable lines:47
Total lines:111
Line coverage:59.5% (28 of 47)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
Visibility()0%110100%
Bind(...)0%110100%
AddGlobalConstrain(...)0%110100%
RemoveGlobalConstrain(...)0%2100%
AddCombinedRendererConstrain(...)0%2100%
RemoveCombinedRendererConstrain(...)0%2100%
AddFacialFeaturesConstrain(...)0%2100%
RemoveFacialFeaturesConstrain(...)0%2100%
IsGloballyVisible()0%6200%
AreFacialFeaturesVisible()0%6200%
IsMainRenderVisible()0%6200%
UpdateCombinedRendererVisibility()0%330100%
UpdateFacialFeatureVisibility()0%440100%
Dispose()0%110100%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/AvatarSystem/Visibility.cs

#LineLine coverage
 1using System.Collections.Generic;
 2using UnityEngine;
 3
 4namespace AvatarSystem
 5{
 6    public class Visibility : IVisibility
 7    {
 7888        internal readonly HashSet<string> globalConstrains = new HashSet<string>();
 7889        internal readonly HashSet<string> combinedRendererConstrains = new HashSet<string>();
 78810        internal readonly HashSet<string> facialFeaturesConstrains = new HashSet<string>();
 11
 12        private Renderer combinedRenderer = null;
 13        private List<Renderer> facialFeatures = null;
 14
 15        /// <summary>
 16        /// Bind a set of renderers, previous renderers enabled wont be modified
 17        /// </summary>
 18        /// <param name="combinedRenderer"></param>
 19        /// <param name="facialFeatures"></param>
 20        public void Bind(Renderer combinedRenderer, List<Renderer> facialFeatures)
 21        {
 2622            this.combinedRenderer = combinedRenderer;
 2623            this.facialFeatures = facialFeatures;
 2624            UpdateCombinedRendererVisibility();
 2625            UpdateFacialFeatureVisibility();
 2626        }
 27
 28        public void AddGlobalConstrain(string key)
 29        {
 130            globalConstrains.Add(key);
 131            UpdateCombinedRendererVisibility();
 132            UpdateFacialFeatureVisibility();
 133        }
 34
 35        public void RemoveGlobalConstrain(string key)
 36        {
 037            globalConstrains.Remove(key);
 038            UpdateCombinedRendererVisibility();
 039            UpdateFacialFeatureVisibility();
 040        }
 41
 42        public void AddCombinedRendererConstrain(string key)
 43        {
 044            combinedRendererConstrains.Add(key);
 045            UpdateCombinedRendererVisibility();
 046        }
 47
 48        public void RemoveCombinedRendererConstrain(string key)
 49        {
 050            combinedRendererConstrains.Remove(key);
 051            UpdateCombinedRendererVisibility();
 052        }
 53
 54        public void AddFacialFeaturesConstrain(string key)
 55        {
 056            facialFeaturesConstrains.Add(key);
 057            UpdateFacialFeatureVisibility();
 058        }
 59
 60        public void RemoveFacialFeaturesConstrain(string key)
 61        {
 062            facialFeaturesConstrains.Remove(key);
 063            UpdateFacialFeatureVisibility();
 064        }
 65
 66        public bool IsGloballyVisible()
 67        {
 068            return AreFacialFeaturesVisible() && IsMainRenderVisible();
 69        }
 70
 71        public bool AreFacialFeaturesVisible()
 72        {
 073            return globalConstrains.Count == 0 && facialFeaturesConstrains.Count == 0;
 74        }
 75
 76        public bool IsMainRenderVisible()
 77        {
 078            return globalConstrains.Count == 0 && combinedRendererConstrains.Count == 0;
 79        }
 80
 81        internal void UpdateCombinedRendererVisibility()
 82        {
 4083            if (combinedRenderer == null)
 184                return;
 85
 3986            combinedRenderer.enabled = globalConstrains.Count == 0 && combinedRendererConstrains.Count == 0;
 3987        }
 88
 89        internal void UpdateFacialFeatureVisibility()
 90        {
 4091            if (facialFeatures == null)
 192                return;
 93
 3994            bool facialFeaturesVisibility = globalConstrains.Count == 0 && facialFeaturesConstrains.Count == 0;
 31295            for (int i = 0; i < facialFeatures.Count; i++)
 96            {
 11797                facialFeatures[i].enabled = facialFeaturesVisibility;
 98            }
 3999        }
 100
 101        public void Dispose()
 102        {
 668103            globalConstrains.Clear();
 668104            combinedRendererConstrains.Clear();
 668105            facialFeaturesConstrains.Clear();
 106
 668107            combinedRenderer = null;
 668108            facialFeatures = null;
 668109        }
 110    }
 111}