< Summary

Class:DCL.Components.PlaneShape
Assembly:DCL.Components.ParametrizedShape
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Components/ParametrizedShapes/PlaneShape.cs
Covered lines:18
Uncovered lines:15
Coverable lines:33
Total lines:83
Line coverage:54.5% (18 of 33)
Covered branches:0
Total branches:0
Covered methods:5
Total methods:7
Method coverage:71.4% (5 of 7)

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
Model()0%110100%
GetDataFromJSON(...)0%110100%
GetDataFromPb(...)0%90900%
PlaneShape()0%110100%
GetClassId()0%2100%
GenerateGeometry()0%330100%
ShouldGenerateNewMesh(...)0%129066.67%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Components/ParametrizedShapes/PlaneShape.cs

#LineLine coverage
 1using DCL.Helpers;
 2using DCL.Models;
 3using UnityEngine;
 4using Decentraland.Sdk.Ecs6;
 5using System.Linq;
 6
 7namespace DCL.Components
 8{
 9    public class PlaneShape : ParametrizedShape<PlaneShape.Model>
 10    {
 11        [System.Serializable]
 12        public new class Model : BaseShape.Model
 13        {
 14            public float[] uvs;
 12315            public float width = 1f; // Plane
 12316            public float height = 1f; // Plane
 17
 18            public override BaseModel GetDataFromJSON(string json) =>
 4919                Utils.SafeFromJson<Model>(json);
 20
 21            public override BaseModel GetDataFromPb(ComponentBodyPayload pbModel)
 22            {
 023                if (pbModel.PayloadCase != ComponentBodyPayload.PayloadOneofCase.PlaneShape)
 024                    return Utils.SafeUnimplemented<PlaneShape, Model>(expected: ComponentBodyPayload.PayloadOneofCase.Pl
 25
 026                var pb = new Model();
 027                if (pbModel.PlaneShape.Uvs is { Count: > 0 }) pb.uvs = pbModel.PlaneShape.Uvs.ToArray();
 028                if (pbModel.PlaneShape.HasHeight) pb.height = pbModel.PlaneShape.Height;
 029                if (pbModel.PlaneShape.HasWidth) pb.width = pbModel.PlaneShape.Width;
 030                if (pbModel.PlaneShape.HasVisible) pb.visible = pbModel.PlaneShape.Visible;
 031                if (pbModel.PlaneShape.HasWithCollisions) pb.withCollisions = pbModel.PlaneShape.WithCollisions;
 032                if (pbModel.PlaneShape.HasIsPointerBlocker) pb.isPointerBlocker = pbModel.PlaneShape.IsPointerBlocker;
 33
 034                return pb;
 35            }
 36        }
 37
 10838        public PlaneShape() { model = new Model(); }
 39
 040        public override int GetClassId() { return (int) CLASS_ID.PLANE_SHAPE; }
 41
 42        public override Mesh GenerateGeometry()
 43        {
 3644            var model = (Model) this.model;
 45
 3646            Mesh mesh = PrimitiveMeshBuilder.BuildPlane(1f);
 3647            if (model.uvs != null && model.uvs.Length > 0)
 48            {
 349                mesh.uv = Utils.FloatArrayToV2List(model.uvs);
 50            }
 51
 3652            return mesh;
 53        }
 54
 55        protected override bool ShouldGenerateNewMesh(BaseShape.Model previousModel)
 56        {
 4957            if (currentMesh == null)
 3858                return true;
 59
 1160            PlaneShape.Model newPlaneModel = (PlaneShape.Model) this.model;
 1161            PlaneShape.Model oldPlaneModel = (PlaneShape.Model) previousModel;
 62
 1163            if (newPlaneModel.uvs != null && oldPlaneModel.uvs != null)
 64            {
 1165                if (newPlaneModel.uvs.Length != oldPlaneModel.uvs.Length)
 266                    return true;
 67
 1868                for (int i = 0; i < newPlaneModel.uvs.Length; i++)
 69                {
 070                    if (newPlaneModel.uvs[i] != oldPlaneModel.uvs[i])
 071                        return true;
 72                }
 73            }
 74            else
 75            {
 076                if (newPlaneModel.uvs != oldPlaneModel.uvs)
 077                    return true;
 78            }
 79
 980            return newPlaneModel.width != oldPlaneModel.width || newPlaneModel.height != oldPlaneModel.height;
 81        }
 82    }
 83}