< Summary

Class:DCL.ECS7.ComponentWrapper.TransformWrappedComponent
Assembly:ECS7Plugin.ComponentWrapper
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/DCLPlugins/ECS7/ComponentWrapper/TransformWrappedComponent.cs
Covered lines:4
Uncovered lines:39
Coverable lines:43
Total lines:82
Line coverage:9.3% (4 of 43)
Covered branches:0
Total branches:0
Covered methods:2
Total methods:8
Method coverage:25% (2 of 8)

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
implicit operator DCL.ECSComponents.ECSTransform(...)0%2100%
TransformWrappedComponent(...)0%110100%
SerializeTo(...)0%2100%
DeserializeFrom(...)0%2100%
ClearFields()0%2100%
WriteInt32(...)0%2100%
WriteSingle(...)0%2100%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/DCLPlugins/ECS7/ComponentWrapper/TransformWrappedComponent.cs

#LineLine coverage
 1using DCL.ECS7.ComponentWrapper.Generic;
 2using DCL.ECSComponents;
 3using Google.Protobuf;
 4using System;
 5using System.IO;
 6using UnityEngine;
 7
 8namespace DCL.ECS7.ComponentWrapper
 9{
 10    public record TransformWrappedComponent : IWrappedComponent<ECSTransform>
 11    {
 1912        public ECSTransform Model => model;
 13
 14        private readonly ECSTransform model;
 15
 16        public static implicit operator ECSTransform(TransformWrappedComponent wrapped) =>
 017            wrapped.model;
 18
 1319        public TransformWrappedComponent(ECSTransform model)
 20        {
 1321            this.model = model;
 1322        }
 23
 24        public void SerializeTo(MemoryStream buffer, CodedOutputStream _)
 25        {
 026            buffer.SetLength(0);
 27
 028            WriteSingle(model.position.x, buffer);
 029            WriteSingle(model.position.y, buffer);
 030            WriteSingle(model.position.z, buffer);
 31
 032            WriteSingle(model.rotation.x, buffer);
 033            WriteSingle(model.rotation.y, buffer);
 034            WriteSingle(model.rotation.z, buffer);
 035            WriteSingle(model.rotation.w, buffer);
 36
 037            WriteSingle(model.scale.x, buffer);
 038            WriteSingle(model.scale.y, buffer);
 039            WriteSingle(model.scale.z, buffer);
 40
 041            WriteInt32((int)model.parentId, buffer);
 042        }
 43
 44        public unsafe void DeserializeFrom(ReadOnlySpan<byte> bytes)
 045        {
 046            fixed (byte* numPtr = &bytes[0])
 47            {
 048                float* arr = (float*)numPtr;
 049                model.position.Set(arr[0], arr[1], arr[2]);
 050                model.rotation.Set(arr[3], arr[4], arr[5], arr[6]);
 051                model.scale.Set(arr[7], arr[8], arr[9]);
 052                model.parentId = *(int*)(numPtr + 40);
 53            }
 054        }
 55
 56        public void ClearFields()
 57        {
 058            model.position = Vector3.zero;
 059            model.rotation = Quaternion.identity;
 060            model.scale = Vector3.one;
 061            model.parentId = 0;
 062        }
 63
 64        private static unsafe void WriteInt32(int value, MemoryStream buffer)
 65        {
 066            byte* ptr = (byte*)&value;
 067            buffer.WriteByte(ptr[0]);
 068            buffer.WriteByte(ptr[1]);
 069            buffer.WriteByte(ptr[2]);
 070            buffer.WriteByte(ptr[3]);
 071        }
 72
 73        public unsafe void WriteSingle(float value, MemoryStream buffer)
 74        {
 075            byte* ptr = (byte*)&value;
 076            buffer.WriteByte(ptr[0]);
 077            buffer.WriteByte(ptr[1]);
 078            buffer.WriteByte(ptr[2]);
 079            buffer.WriteByte(ptr[3]);
 080        }
 81    }
 82}