/// <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)); }
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()); }