#pragma once #include "DeerCore/Tools/Memory.h" #include "DeerCore/Tools/TypeDefs.h" #include #include #include #define CLUSTER_SIZE 16 #ifdef DEER_RENDER #include "DeerRender/Resource.h" namespace Deer { class VoxelBuilder; class GPUMesh; } // namespace Deer #endif namespace Deer { class VoxelWorldData; struct VoxelType { std::string id; }; class VoxelEnvironment { public: VoxelEnvironment(); void modifyVoxel(uint32_t voxelId, int x, int y, int z); uint32_t getVoxel(int x, int y, int z); #ifdef DEER_RENDER public: Resource buildCluster(int x, int y, int z); Scope voxelBuilder; #endif private: Scope voxelWorldData; }; } // namespace Deer