< Summary

Class:DCL.ECSComponents.ProtoConvertUtils
Assembly:ECSComponents.Utils
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/DCLPlugins/ECS7/ECSComponents/Utils/ProtoConvertUtils.cs
Covered lines:19
Uncovered lines:22
Coverable lines:41
Total lines:178
Line coverage:46.3% (19 of 41)
Covered branches:0
Total branches:0
Covered methods:13
Total methods:14
Method coverage:92.8% (13 of 14)

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
ToPBRaycasHit(...)0%2100%
ToPBRaycasHit(...)0%2.062075%
UnityVectorToPBVector(...)0%110100%
PBVectorToUnityVector(...)0%110100%
PBQuaternionToUnityQuaternion(...)0%110100%
PBCameraEnumToUnityEnum(...)0%5.673033.33%
UnityEnumToPBCameraEnum(...)0%330100%
ToUnityColor(...)0%110100%
ToUnityColor(...)0%110100%
ToFontName(...)0%110100%
ToUnityTextAlign(...)0%52.511030%
ToUnityBorder(...)0%220100%
ToDCLUVs(...)0%330100%
ToDCLImageScaleMode(...)0%10.45040%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/DCLPlugins/ECS7/ECSComponents/Utils/ProtoConvertUtils.cs

#LineLine coverage
 1using DCL.CameraTool;
 2using DCL.Configuration;
 3using DCL.Helpers;
 4using DCL.UIElements.Structures;
 5using Google.Protobuf.Collections;
 6using JetBrains.Annotations;
 7using Decentraland.Common;
 8using UnityEngine;
 9using Quaternion = Decentraland.Common.Quaternion;
 10using Vector3 = Decentraland.Common.Vector3;
 11
 12namespace DCL.ECSComponents
 13{
 14    public static class ProtoConvertUtils
 15    {
 16        public static RaycastHit ToPBRaycasHit(long entityId, string meshName, Ray ray, HitInfo rawHit)
 17        {
 018            var hit = new RaycastHit();
 019            hit.Length = rawHit.distance;
 020            hit.GlobalOrigin = UnityVectorToPBVector(ray.origin);
 021            hit.EntityId = (uint)entityId;
 022            hit.MeshName = meshName;
 023            hit.Position = UnityVectorToPBVector(rawHit.point);
 024            hit.NormalHit = UnityVectorToPBVector(rawHit.normal);
 025            hit.Direction = UnityVectorToPBVector(ray.direction);
 26
 027            return hit;
 28        }
 29
 30        public static RaycastHit ToPBRaycasHit(long entityId, string meshName, Ray ray,
 31            float hitDistance, UnityEngine.Vector3 hitPoint, UnityEngine.Vector3 hitNormal)
 32        {
 1533            var ret = new RaycastHit
 34            {
 35                Length = hitDistance,
 36                GlobalOrigin = UnityVectorToPBVector(ray.origin),
 37                Position = UnityVectorToPBVector(hitPoint),
 38                NormalHit = UnityVectorToPBVector(hitNormal),
 39                Direction = UnityVectorToPBVector(ray.direction),
 40                EntityId = (uint)entityId
 41            };
 42
 1543            if (!string.IsNullOrEmpty(meshName))
 44            {
 045                ret.MeshName = meshName;
 46            }
 47
 1548            return ret;
 49        }
 50
 51        public static Vector3 UnityVectorToPBVector(UnityEngine.Vector3 original) =>
 13552            new()
 53            {
 54                X = original.x,
 55                Y = original.y,
 56                Z = original.z
 57            };
 58
 59        public static UnityEngine.Vector3 PBVectorToUnityVector(Vector3 original) =>
 8760            new()
 61            {
 62                x = original.X,
 63                y = original.Y,
 64                z = original.Z
 65            };
 66
 67        public static UnityEngine.Quaternion PBQuaternionToUnityQuaternion(Quaternion original) =>
 668            new()
 69            {
 70                x = original.X,
 71                y = original.Y,
 72                z = original.Z,
 73                w = original.W
 74            };
 75
 76        public static CameraMode.ModeId PBCameraEnumToUnityEnum(CameraType mode)
 77        {
 78            switch (mode)
 79            {
 80                case CameraType.CtFirstPerson:
 481                    return CameraMode.ModeId.FirstPerson;
 82                case CameraType.CtThirdPerson:
 083                    return CameraMode.ModeId.ThirdPerson;
 84                default:
 085                    return CommonScriptableObjects.cameraMode.Get();
 86            }
 87        }
 88
 89        public static CameraType UnityEnumToPBCameraEnum(CameraMode.ModeId mode)
 90        {
 91            switch (mode)
 92            {
 93                case CameraMode.ModeId.FirstPerson:
 194                    return CameraType.CtFirstPerson;
 95                case CameraMode.ModeId.ThirdPerson:
 96                default:
 797                    return CameraType.CtThirdPerson;
 98            }
 99        }
 100
 101        public static Color ToUnityColor(this Color3 color)
 102        {
 39103            return new Color(color.R, color.G, color.B);
 104        }
 105
 106        public static Color ToUnityColor(this Color4 color)
 107        {
 56108            return new Color(color.R, color.G, color.B, color.A);
 109        }
 110
 111        public static string ToFontName(this Font font)
 112        {
 113            // TODO: add support for the rest of the fonts and discuss old font deprecation
 114            const string SANS_SERIF = "SansSerif";
 115
 116            switch (font)
 117            {
 118                case Font.FSansSerif:
 31119                    return SANS_SERIF;
 120                default:
 121                    return SANS_SERIF;
 122            }
 123        }
 124
 125        public static TextAnchor ToUnityTextAlign(this TextAlignMode align)
 126        {
 127            switch (align)
 128            {
 129                case TextAlignMode.TamTopCenter:
 0130                    return TextAnchor.UpperCenter;
 131                case TextAlignMode.TamTopLeft:
 0132                    return TextAnchor.UpperLeft;
 133                case TextAlignMode.TamTopRight:
 0134                    return TextAnchor.UpperRight;
 135
 136                case TextAlignMode.TamBottomCenter:
 5137                    return TextAnchor.LowerCenter;
 138                case TextAlignMode.TamBottomLeft:
 0139                    return TextAnchor.LowerLeft;
 140                case TextAlignMode.TamBottomRight:
 0141                    return TextAnchor.LowerRight;
 142
 143                case TextAlignMode.TamMiddleCenter:
 0144                    return TextAnchor.MiddleCenter;
 145                case TextAlignMode.TamMiddleLeft:
 4146                    return TextAnchor.MiddleLeft;
 147                case TextAlignMode.TamMiddleRight:
 1148                    return TextAnchor.MiddleRight;
 149
 150                default:
 0151                    return TextAnchor.MiddleCenter;
 152            }
 153        }
 154
 155        public static Vector4 ToUnityBorder([CanBeNull] this BorderRect rect) =>
 1156            rect == null ? Vector4.zero : new Vector4(rect.Left, rect.Top, rect.Right, rect.Bottom);
 157
 158        public static DCLUVs ToDCLUVs([CanBeNull] this RepeatedField<float> uvs) =>
 1159            uvs is not { Count: 8 }
 160                ? DCLUVs.Default
 161                : new DCLUVs(
 162                    new UnityEngine.Vector2(uvs[0], uvs[1]),
 163                    new UnityEngine.Vector2(uvs[2], uvs[3]),
 164                    new UnityEngine.Vector2(uvs[4], uvs[5]),
 165                    new UnityEngine.Vector2(uvs[6], uvs[7]));
 166
 167        public static DCLImageScaleMode ToDCLImageScaleMode(this BackgroundTextureMode textureMode)
 168        {
 1169            return textureMode switch
 170                   {
 0171                       BackgroundTextureMode.Center => DCLImageScaleMode.CENTER,
 0172                       BackgroundTextureMode.Stretch => DCLImageScaleMode.STRETCH,
 1173                       BackgroundTextureMode.NineSlices => DCLImageScaleMode.NINE_SLICES,
 0174                       _ => DCLImageScaleMode.STRETCH
 175                   };
 176        }
 177    }
 178}