< Summary

Class:DCL.ECSComponents.ECSTransformSerialization
Assembly:DCL.ECSComponents.Transform.Serialization
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/DCLPlugins/ECS7/ECSComponents/Transform/Serialization/ECSTransformSerialization.cs
Covered lines:28
Uncovered lines:0
Coverable lines:28
Total lines:57
Line coverage:100% (28 of 28)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
ECSTransformSerialization()0%110100%
Deserialize(...)0%220100%
Serialize(...)0%110100%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/DCLPlugins/ECS7/ECSComponents/Transform/Serialization/ECSTransformSerialization.cs

#LineLine coverage
 1using System.IO;
 2using BinaryWriter = KernelCommunication.BinaryWriter;
 3
 4namespace DCL.ECSComponents
 5{
 6    public static class ECSTransformSerialization
 7    {
 8        private const int TRANSFORM_LENGTH = 44;
 9
 110        private static readonly byte[] toLittleEndianBuffer = new byte[TRANSFORM_LENGTH];
 111        private static readonly MemoryStream memoryStream = new MemoryStream(TRANSFORM_LENGTH);
 112        private static readonly BinaryWriter binaryWriter = new BinaryWriter(memoryStream);
 13
 14        public static unsafe ECSTransform Deserialize(object data)
 15        {
 616            byte[] bytes = (byte[])data;
 54017            for (int i = 0; i < TRANSFORM_LENGTH; i++)
 18            {
 26419                toLittleEndianBuffer[i] = bytes[TRANSFORM_LENGTH - 1 - i];
 20            }
 21
 622            ECSTransform model = new ECSTransform();
 623            fixed (byte* numPtr = &toLittleEndianBuffer[0])
 24            {
 625                float* arr = (float*)numPtr;
 626                model.position.Set(arr[10], arr[9], arr[8]);
 627                model.rotation.Set(arr[7], arr[6], arr[5], arr[4]);
 628                model.scale.Set(arr[3], arr[2], arr[1]);
 629                model.parentId = *(int*)numPtr;
 30            }
 31
 632            return model;
 33        }
 34
 35        public static byte[] Serialize(ECSTransform model)
 36        {
 837            binaryWriter.WriteSingle(model.position.x);
 838            binaryWriter.WriteSingle(model.position.y);
 839            binaryWriter.WriteSingle(model.position.z);
 40
 841            binaryWriter.WriteSingle(model.rotation.x);
 842            binaryWriter.WriteSingle(model.rotation.y);
 843            binaryWriter.WriteSingle(model.rotation.z);
 844            binaryWriter.WriteSingle(model.rotation.w);
 45
 846            binaryWriter.WriteSingle(model.scale.x);
 847            binaryWriter.WriteSingle(model.scale.y);
 848            binaryWriter.WriteSingle(model.scale.z);
 49
 850            binaryWriter.WriteInt32((int)model.parentId);
 51
 852            byte[] result = memoryStream.ToArray();
 853            memoryStream.SetLength(0);
 854            return result;
 55        }
 56    }
 57}