< Summary

Class:DCL.Components.ConeShape
Assembly:DCL.Components.ParametrizedShape
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Components/ParametrizedShapes/ConeShape.cs
Covered lines:15
Uncovered lines:15
Coverable lines:30
Total lines:75
Line coverage:50% (15 of 30)
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%1561200%
ConeShape()0%110100%
GetClassId()0%2100%
GenerateGeometry()0%110100%
ShouldGenerateNewMesh(...)0%880100%

File(s)

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

#LineLine coverage
 1using DCL.Helpers;
 2using DCL.Models;
 3using UnityEngine;
 4using Decentraland.Sdk.Ecs6;
 5
 6namespace DCL.Components
 7{
 8    public class ConeShape : ParametrizedShape<ConeShape.Model>
 9    {
 10        [System.Serializable]
 11        public new class Model : BaseShape.Model
 12        {
 13            public float radiusTop;
 5614            public float radiusBottom = 1f;
 5615            public float segmentsHeight = 1f;
 5616            public float segmentsRadial = 36f;
 17            public bool openEnded;
 18            public float? radius;
 5619            public float arc = 360f;
 20
 21            public override BaseModel GetDataFromJSON(string json) =>
 2622                Utils.SafeFromJson<Model>(json);
 23
 24            public override BaseModel GetDataFromPb(ComponentBodyPayload pbModel)
 25            {
 026                if (pbModel.PayloadCase != ComponentBodyPayload.PayloadOneofCase.ConeShape)
 027                    return Utils.SafeUnimplemented<ConeShape, Model>(expected: ComponentBodyPayload.PayloadOneofCase.Con
 28
 029                var pb = new Model();
 030                if (pbModel.ConeShape.HasArc) pb.arc = pbModel.ConeShape.Arc;
 031                if (pbModel.ConeShape.HasRadius) pb.radius = pbModel.ConeShape.Radius;
 032                if (pbModel.ConeShape.HasOpenEnded) pb.openEnded = pbModel.ConeShape.OpenEnded;
 033                if (pbModel.ConeShape.HasRadiusBottom) pb.radiusBottom = pbModel.ConeShape.RadiusBottom;
 034                if (pbModel.ConeShape.HasRadiusTop) pb.radiusTop = pbModel.ConeShape.RadiusTop;
 035                if (pbModel.ConeShape.HasSegmentsHeight) pb.segmentsHeight = pbModel.ConeShape.SegmentsHeight;
 036                if (pbModel.ConeShape.HasSegmentsRadial) pb.segmentsRadial = pbModel.ConeShape.SegmentsRadial;
 037                if (pbModel.ConeShape.HasVisible) pb.visible = pbModel.ConeShape.Visible;
 038                if (pbModel.ConeShape.HasWithCollisions) pb.withCollisions = pbModel.ConeShape.WithCollisions;
 039                if (pbModel.ConeShape.HasIsPointerBlocker) pb.isPointerBlocker = pbModel.ConeShape.IsPointerBlocker;
 40
 041                return pb;
 42            }
 43        }
 44
 1345        public ConeShape()
 46        {
 1347            model = new Model();
 1348        }
 49
 50        public override int GetClassId() =>
 051            (int) CLASS_ID.CONE_SHAPE;
 52
 53        public override Mesh GenerateGeometry()
 54        {
 1255            var model = (Model) this.model;
 1256            return PrimitiveMeshBuilder.BuildCone(50, model.radiusTop, model.radiusBottom, 2f, 0f, true, false);
 57        }
 58
 59        protected override bool ShouldGenerateNewMesh(BaseShape.Model newModel)
 60        {
 2661            if (currentMesh == null)
 1662                return true;
 63
 1064            Model newConeModel = newModel as Model;
 1065            var model = (Model) this.model;
 1066            return newConeModel.radius != model.radius
 67                   || newConeModel.radiusTop != model.radiusTop
 68                   || newConeModel.radiusBottom != model.radiusBottom
 69                   || newConeModel.segmentsHeight != model.segmentsHeight
 70                   || newConeModel.segmentsRadial != model.segmentsRadial
 71                   || newConeModel.openEnded != model.openEnded
 72                   || newConeModel.arc != model.arc;
 73        }
 74    }
 75}