Пример #1
0
        public byte[] ToBytes()
        {
            var header_length = 28;

            var featureTableJson   = BufferPadding.AddPadding(FeatureTableJson, header_length);
            var batchTableJson     = BufferPadding.AddPadding(BatchTableJson);
            var featureTableBinary = BufferPadding.AddPadding(FeatureTableBinary);
            var batchTableBinary   = BufferPadding.AddPadding(BatchTableBinary);

            B3dmHeader.ByteLength = GlbData.Length + header_length + featureTableJson.Length + batchTableJson.Length + batchTableBinary.Length + FeatureTableBinary.Length;

            B3dmHeader.FeatureTableJsonByteLength   = featureTableJson.Length;
            B3dmHeader.BatchTableJsonByteLength     = batchTableJson.Length;
            B3dmHeader.FeatureTableBinaryByteLength = featureTableBinary.Length;
            B3dmHeader.BatchTableBinaryByteLength   = batchTableBinary.Length;

            var memoryStream = new MemoryStream();
            var binaryWriter = new BinaryWriter(memoryStream);

            binaryWriter.Write(B3dmHeader.AsBinary());
            binaryWriter.Write(Encoding.UTF8.GetBytes(featureTableJson));
            if (featureTableBinary != null)
            {
                binaryWriter.Write(featureTableBinary);
            }
            binaryWriter.Write(Encoding.UTF8.GetBytes(batchTableJson));
            if (batchTableBinary != null)
            {
                binaryWriter.Write(batchTableBinary);
            }
            binaryWriter.Write(GlbData);
            binaryWriter.Flush();
            binaryWriter.Close();
            return(memoryStream.ToArray());
        }