< Summary

Class:DCL.Rendereable
Assembly:MeshesInfo
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/Scene/MeshesInfo/Rendereable.cs
Covered lines:10
Uncovered lines:6
Coverable lines:16
Total lines:52
Line coverage:62.5% (10 of 16)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
Rendereable()0%110100%
Equals(...)0%2100%
Clone()0%2100%
CreateFromGameObject(...)0%110100%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/Scene/MeshesInfo/Rendereable.cs

#LineLine coverage
 1using System;
 2using System.Collections.Generic;
 3using System.Linq;
 4using DCL.Models;
 5using UnityEngine;
 6
 7namespace DCL
 8{
 9    /// <summary>
 10    /// The Rendereable object represents any loaded object that should be visible in the world.
 11    ///
 12    /// In the future, we may want to add a Renderer[] list here.
 13    ///
 14    /// With this in place, the SceneBoundsChecker and CullingController implementations can
 15    /// be changed to be reactive, and lots of FindObjects and GetComponentsInChildren calls can be
 16    /// saved.
 17    /// </summary>
 18    public class Rendereable : ICloneable
 19    {
 20        public string ownerId;
 21        public GameObject container;
 29122        public List<Mesh> meshes = new List<Mesh>();
 29123        public Dictionary<Mesh, int> meshToTriangleCount = new Dictionary<Mesh, int>();
 29124        public List<Renderer> renderers = new List<Renderer>();
 25        public int totalTriangleCount = 0;
 26
 27        public bool Equals(Rendereable other)
 28        {
 029            return container == other.container;
 30        }
 31
 32        public object Clone()
 33        {
 034            var result = (Rendereable)this.MemberwiseClone();
 035            result.meshToTriangleCount = new Dictionary<Mesh, int>(meshToTriangleCount);
 036            result.renderers = new List<Renderer>(renderers);
 037            result.meshes = new List<Mesh>(meshes);
 038            return result;
 39        }
 40
 41        public static Rendereable CreateFromGameObject(GameObject go)
 42        {
 743            Rendereable rendereable = new Rendereable();
 744            rendereable.container = go;
 745            rendereable.renderers = go.GetComponentsInChildren<Renderer>().ToList();
 746            rendereable.meshes = MeshesInfoUtils.ExtractMeshes(go);
 747            rendereable.meshToTriangleCount = MeshesInfoUtils.ExtractMeshToTriangleMap(rendereable.meshes);
 748            rendereable.totalTriangleCount = MeshesInfoUtils.ComputeTotalTriangles(rendereable.renderers, rendereable.me
 749            return rendereable;
 50        }
 51    }
 52}