use super::{Voxels, VoxelsChunk, VoxelsChunkHeader};
use crate::math::IVector;
impl Voxels {
pub fn total_memory_size(&self) -> usize {
size_of::<Self>() + self.heap_memory_size()
}
pub fn heap_memory_size(&self) -> usize {
let Self {
chunk_bvh,
chunk_headers,
chunks,
free_chunks,
chunk_keys,
voxel_size: _,
} = self;
chunks.capacity() * size_of::<VoxelsChunk>()
+ free_chunks.capacity() * size_of::<usize>()
+ chunk_keys.capacity() * size_of::<IVector>()
+ chunk_headers.capacity() * (size_of::<VoxelsChunkHeader>() + size_of::<IVector>())
+ chunk_bvh.heap_memory_size()
}
}