#pragma once #include "Voxel/Cell.h" namespace RBX { namespace Voxel { template ChunkMap::ChunkMap() { } template ValueType& ChunkMap::insert(const SpatialRegion::Id& id) { return values[id]; } template const ValueType* ChunkMap::find(const SpatialRegion::Id& id) const { typename ValueMap::const_iterator it = values.find(id); return (it == values.end()) ? NULL : &it->second; } template ValueType* ChunkMap::find(const SpatialRegion::Id& id) { typename ValueMap::iterator it = values.find(id); return (it == values.end()) ? NULL : &it->second; } template void ChunkMap::erase(const SpatialRegion::Id& id) { values.erase(id); } template std::vector ChunkMap::getChunks() const { std::vector result; result.reserve(values.size()); for (typename ValueMap::const_iterator it = values.begin(); it != values.end(); ++it) result.push_back(it->first); return result; } template size_t ChunkMap::size() const { return values.size(); } } }