示例#1
0
        /// <summary>
        /// Reads the data from the provided byte array.
        /// </summary>
        public static IVoxFile Read(byte[] data)
        {
            int versionNumber = BitConverter.ToInt32(data, 4);

            IChunk mainChunk = ChunkFactory.Parse(data.GetRange(8));

            var palette = new Palette(mainChunk.GetChild <IPaletteChunk>().Colors);

            var models = Helper.ExtractModels(mainChunk, palette).ToArray();

            return(new VoxFile(versionNumber, models, palette, mainChunk.Children));
        }
示例#2
0
        private static IChunk[] GetChunks(byte[] data)
        {
            var children = new List <IChunk>();

            int currentChunkOffset = 0;

            while (currentChunkOffset < data.Length)
            {
                IChunk childChunk = ChunkFactory.Parse(data.GetRange(currentChunkOffset));
                children.Add(childChunk);
                currentChunkOffset += childChunk.TotalBytes;
            }

            return(children.ToArray());
        }