< Summary

Class:DCL.CombineLayersList
Assembly:AvatarMeshCombiner
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Components/Avatar/AvatarMeshCombiner/CombineLayersList.cs
Covered lines:35
Uncovered lines:1
Coverable lines:36
Total lines:81
Line coverage:97.2% (35 of 36)
Covered branches:0
Total branches:0
Covered methods:15
Total methods:15
Method coverage:100% (15 of 15)

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
CombineLayersList()0%110100%
Add(...)0%110100%
AddRenderer(...)0%2.022083.33%
AddRenderers(...)0%110100%
Sanitize()0%110100%
AddToTotalMetrics(...)0%220100%
Dispose()0%220100%
Rent()0%110100%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Components/Avatar/AvatarMeshCombiner/CombineLayersList.cs

#LineLine coverage
 1using System;
 2using System.Collections.Generic;
 3using UnityEngine;
 4using UnityEngine.Pool;
 5
 6namespace DCL
 7{
 8    public class CombineLayersList : IDisposable
 9    {
 2910        private static readonly Predicate<CombineLayer> SANITIZE_LAYER_FUNC = x => x.Renderers.Count == 0;
 11
 12        private List<CombineLayer> layers;
 13
 6614        public IReadOnlyList<CombineLayer> Layers => layers;
 15
 28216        public int TotalVerticesCount { get; private set; }
 33017        public int TotalRenderersCount { get; private set; }
 7318        public int Count => layers.Count;
 19
 15520        public CombineLayer this[int index] => layers[index];
 21
 22        public void Add(CombineLayer combineLayer)
 23        {
 3924            layers.Add(combineLayer);
 3925            AddToTotalMetrics(combineLayer.Renderers);
 3926        }
 27
 28        public void AddRenderer(CombineLayer combineLayer, SkinnedMeshRenderer renderer)
 29        {
 10930            if (renderer == null)
 031                return;
 32
 10933            combineLayer.AddRenderer(renderer);
 10934            TotalVerticesCount += renderer.sharedMesh.vertexCount;
 10935            TotalRenderersCount++;
 10936        }
 37
 38        public void AddRenderers(CombineLayer combineLayer, IReadOnlyList<SkinnedMeshRenderer> renderers)
 39        {
 140            combineLayer.AddRenderers(renderers);
 141            AddToTotalMetrics(renderers);
 142        }
 43
 44        public void Sanitize()
 45        {
 1446            layers.RemoveAll(SANITIZE_LAYER_FUNC);
 1447        }
 48
 49        private void AddToTotalMetrics(IReadOnlyList<SkinnedMeshRenderer> renderers)
 50        {
 51            // ReSharper disable once ForCanBeConvertedToForeach
 10852            for (var i = 0; i < renderers.Count; i++)
 53            {
 1454                SkinnedMeshRenderer meshRenderer = renderers[i];
 1455                TotalVerticesCount += meshRenderer.sharedMesh.vertexCount;
 56            }
 57
 4058            TotalRenderersCount += renderers.Count;
 4059        }
 60
 61        public void Dispose()
 62        {
 1963            TotalVerticesCount = 0;
 1964            TotalRenderersCount = 0;
 65
 11266            foreach (CombineLayer layer in layers)
 3767                layer.Dispose();
 68
 1969            ListPool<CombineLayer>.Release(layers);
 1970            layers = null;
 1971            GenericPool<CombineLayersList>.Release(this);
 1972        }
 73
 74        public static CombineLayersList Rent()
 75        {
 2076            var instance = GenericPool<CombineLayersList>.Get();
 2077            instance.layers = ListPool<CombineLayer>.Get();
 2078            return instance;
 79        }
 80    }
 81}