public CustomMeshObjectSegment(global::ZeroFormatter.DirtyTracker dirtyTracker, ArraySegment <byte> originalBytes)
        {
            var __array = originalBytes.Array;

            this.__originalBytes   = originalBytes;
            this.__tracker         = dirtyTracker = dirtyTracker.CreateChild();
            this.__binaryLastIndex = BinaryUtil.ReadInt32(ref __array, originalBytes.Offset + 4);

            this.__extraFixedBytes = ObjectSegmentHelper.CreateExtraFixedBytes(this.__binaryLastIndex, 3, __elementSizes);

            _vertices = ObjectSegmentHelper.DeserializeSegment <TTypeResolver, global::System.Collections.Generic.IList <float[]> >(originalBytes, 0, __binaryLastIndex, __tracker);
            _uvs      = ObjectSegmentHelper.DeserializeSegment <TTypeResolver, global::System.Collections.Generic.IList <float[]> >(originalBytes, 1, __binaryLastIndex, __tracker);
            _normals  = ObjectSegmentHelper.DeserializeSegment <TTypeResolver, global::System.Collections.Generic.IList <float[]> >(originalBytes, 2, __binaryLastIndex, __tracker);
            _faces    = ObjectSegmentHelper.DeserializeSegment <TTypeResolver, global::System.Collections.Generic.IList <int[]> >(originalBytes, 3, __binaryLastIndex, __tracker);
        }
 public override global::MeshStreaming.CustomMesh Deserialize(ref byte[] bytes, int offset, global::ZeroFormatter.DirtyTracker tracker, out int byteSize)
 {
     byteSize = BinaryUtil.ReadInt32(ref bytes, offset);
     if (byteSize == -1)
     {
         byteSize = 4;
         return(null);
     }
     return(new CustomMeshObjectSegment <TTypeResolver>(tracker, new ArraySegment <byte>(bytes, offset, byteSize)));
 }