2026-02-27 17:28:39 +01:00

42 lines
779 B
C++

#pragma once
#include "DeerCore/Tools/Memory.h"
#include "DeerCore/Tools/TypeDefs.h"
#include <string>
#include <unordered_map>
#include <vector>
#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();
~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<GPUMesh> buildCluster(int x, int y, int z);
Scope<VoxelBuilder> voxelBuilder;
#endif
private:
Scope<VoxelWorldData> voxelWorldData;
};
} // namespace Deer