< Summary

Class:DCL.Components.CylinderShape
Assembly:DCL.Components.ParametrizedShape
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Components/ParametrizedShapes/CylinderShape.cs
Covered lines:16
Uncovered lines:15
Coverable lines:31
Total lines:75
Line coverage:51.6% (16 of 31)
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%
CylinderShape()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/CylinderShape.cs

#LineLine coverage
 1using DCL.Helpers;
 2using DCL.Models;
 3using UnityEngine;
 4using Decentraland.Sdk.Ecs6;
 5
 6namespace DCL.Components
 7{
 8    public class CylinderShape : ParametrizedShape<CylinderShape.Model>
 9    {
 10        [System.Serializable]
 11        public new class Model : BaseShape.Model
 12        {
 3913            public float radiusTop = 1f;
 3914            public float radiusBottom = 1f;
 3915            public float segmentsHeight = 1f;
 3916            public float segmentsRadial = 36f;
 17            public bool openEnded;
 18            public float? radius;
 3919            public float arc = 360f;
 20
 21            public override BaseModel GetDataFromJSON(string json) =>
 2022                Utils.SafeFromJson<Model>(json);
 23
 24            public override BaseModel GetDataFromPb(ComponentBodyPayload pbModel)
 25            {
 026                if (pbModel.PayloadCase != ComponentBodyPayload.PayloadOneofCase.CylinderShape)
 027                    return Utils.SafeUnimplemented<CylinderShape, Model>(expected: ComponentBodyPayload.PayloadOneofCase
 28
 029                var pb = new Model();
 030                if (pbModel.CylinderShape.HasArc) pb.arc = pbModel.CylinderShape.Arc;
 031                if (pbModel.CylinderShape.HasRadius) pb.radius = pbModel.CylinderShape.Radius;
 032                if (pbModel.CylinderShape.HasOpenEnded) pb.openEnded = pbModel.CylinderShape.OpenEnded;
 033                if (pbModel.CylinderShape.HasRadiusBottom) pb.radiusBottom = pbModel.CylinderShape.RadiusBottom;
 034                if (pbModel.CylinderShape.HasRadiusTop) pb.radiusTop = pbModel.CylinderShape.RadiusTop;
 035                if (pbModel.CylinderShape.HasSegmentsHeight) pb.segmentsHeight = pbModel.CylinderShape.SegmentsHeight;
 036                if (pbModel.CylinderShape.HasSegmentsRadial) pb.segmentsRadial = pbModel.CylinderShape.SegmentsRadial;
 037                if (pbModel.CylinderShape.HasVisible) pb.visible = pbModel.CylinderShape.Visible;
 038                if (pbModel.CylinderShape.HasWithCollisions) pb.withCollisions = pbModel.CylinderShape.WithCollisions;
 039                if (pbModel.CylinderShape.HasIsPointerBlocker) pb.isPointerBlocker = pbModel.CylinderShape.IsPointerBloc
 40
 041                return pb;
 42            }
 43        }
 44
 945        public CylinderShape()
 46        {
 947            model = new Model();
 948        }
 49
 50        public override int GetClassId() =>
 051            (int) CLASS_ID.CYLINDER_SHAPE;
 52
 53        public override Mesh GenerateGeometry()
 54        {
 755            var model = (Model) this.model;
 756            return PrimitiveMeshBuilder.BuildCylinder(50, model.radiusTop, model.radiusBottom, 2f, 0f, true, false);
 57        }
 58
 59        protected override bool ShouldGenerateNewMesh(BaseShape.Model newModel)
 60        {
 2061            if (currentMesh == null)
 1162                return true;
 63
 964            Model newCylinderModel = newModel as Model;
 965            var model = (Model) this.model;
 966            return newCylinderModel.radius != model.radius
 67                   || newCylinderModel.radiusTop != model.radiusTop
 68                   || newCylinderModel.radiusBottom != model.radiusBottom
 69                   || newCylinderModel.segmentsHeight != model.segmentsHeight
 70                   || newCylinderModel.segmentsRadial != model.segmentsRadial
 71                   || newCylinderModel.openEnded != model.openEnded
 72                   || newCylinderModel.arc != model.arc;
 73        }
 74    }
 75}