#ifndef VOXEL_BLOCK_SERIALIZER_H #define VOXEL_BLOCK_SERIALIZER_H #include #include class VoxelBuffer; class VoxelBlockSerializer { public: const std::vector &serialize(VoxelBuffer &voxel_buffer); bool deserialize(const std::vector &p_data, VoxelBuffer &out_voxel_buffer); const std::vector &serialize_and_compress(VoxelBuffer &voxel_buffer); bool decompress_and_deserialize(const std::vector &p_data, VoxelBuffer &out_voxel_buffer); bool decompress_and_deserialize(FileAccess *f, unsigned int size_to_read, VoxelBuffer &out_voxel_buffer); private: unsigned int get_size_in_bytes(const VoxelBuffer &buffer); std::vector _data; std::vector _compressed_data; FileAccessMemory _file_access_memory; }; #endif // VOXEL_BLOCK_SERIALIZER_H