< 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        {
 216            byte[] bytes = (byte[])data;
 18017            for (int i = 0; i < TRANSFORM_LENGTH; i++)
 18            {
 8819                toLittleEndianBuffer[i] = bytes[TRANSFORM_LENGTH - 1 - i];
 20            }
 21
 222            ECSTransform model = new ECSTransform();
 223            fixed (byte* numPtr = &toLittleEndianBuffer[0])
 24            {
 225                float* arr = (float*)numPtr;
 226                model.position.Set(arr[10], arr[9], arr[8]);
 227                model.rotation.Set(arr[7], arr[6], arr[5], arr[4]);
 228                model.scale.Set(arr[3], arr[2], arr[1]);
 229                model.parentId = *(int*)numPtr;
 30            }
 31
 232            return model;
 33        }
 34
 35        public static byte[] Serialize(ECSTransform model)
 36        {
 237            binaryWriter.WriteSingle(model.position.x);
 238            binaryWriter.WriteSingle(model.position.y);
 239            binaryWriter.WriteSingle(model.position.z);
 40
 241            binaryWriter.WriteSingle(model.rotation.x);
 242            binaryWriter.WriteSingle(model.rotation.y);
 243            binaryWriter.WriteSingle(model.rotation.z);
 244            binaryWriter.WriteSingle(model.rotation.w);
 45
 246            binaryWriter.WriteSingle(model.scale.x);
 247            binaryWriter.WriteSingle(model.scale.y);
 248            binaryWriter.WriteSingle(model.scale.z);
 49
 250            binaryWriter.WriteInt32((int)model.parentId);
 51
 252            byte[] result = memoryStream.ToArray();
 253            memoryStream.SetLength(0);
 254            return result;
 55        }
 56    }
 57}