< Summary

Class:AvatarSystem.Visibility
Assembly:AvatarSystem
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/AvatarSystem/Visibility.cs
Covered lines:9
Uncovered lines:38
Coverable lines:47
Total lines:111
Line coverage:19.1% (9 of 47)
Covered branches:0
Total branches:0
Covered methods:2
Total methods:14
Method coverage:14.2% (2 of 14)

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
Visibility()0%110100%
Bind(...)0%2100%
AddGlobalConstrain(...)0%2100%
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%12300%
UpdateFacialFeatureVisibility()0%20400%
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    {
 6118        internal readonly HashSet<string> globalConstrains = new HashSet<string>();
 6119        internal readonly HashSet<string> combinedRendererConstrains = new HashSet<string>();
 61110        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        {
 022            this.combinedRenderer = combinedRenderer;
 023            this.facialFeatures = facialFeatures;
 024            UpdateCombinedRendererVisibility();
 025            UpdateFacialFeatureVisibility();
 026        }
 27
 28        public void AddGlobalConstrain(string key)
 29        {
 030            globalConstrains.Add(key);
 031            UpdateCombinedRendererVisibility();
 032            UpdateFacialFeatureVisibility();
 033        }
 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        {
 083            if (combinedRenderer == null)
 084                return;
 85
 086            combinedRenderer.enabled = globalConstrains.Count == 0 && combinedRendererConstrains.Count == 0;
 087        }
 88
 89        internal void UpdateFacialFeatureVisibility()
 90        {
 091            if (facialFeatures == null)
 092                return;
 93
 094            bool facialFeaturesVisibility = globalConstrains.Count == 0 && facialFeaturesConstrains.Count == 0;
 095            for (int i = 0; i < facialFeatures.Count; i++)
 96            {
 097                facialFeatures[i].enabled = facialFeaturesVisibility;
 98            }
 099        }
 100
 101        public void Dispose()
 102        {
 521103            globalConstrains.Clear();
 521104            combinedRendererConstrains.Clear();
 521105            facialFeaturesConstrains.Clear();
 106
 521107            combinedRenderer = null;
 521108            facialFeatures = null;
 521109        }
 110    }
 111}