#ifndef WORLD_H #define CAMERA_H #include #include #include "Mesh.h" // Hash function for glm::ivec3 to use with unordered_set namespace std { template <> struct hash { size_t operator()(const glm::ivec3& v) const { // Combine hash values of x, y, z components size_t h1 = hash()(v.x); size_t h2 = hash()(v.y); size_t h3 = hash()(v.z); // Use a simple hash combination algorithm return h1 ^ (h2 << 1) ^ (h3 << 2); } }; } class World { public: std::unordered_set voxels; World(); void generateMesh(); Mesh& getMesh(); private: Mesh m_mesh; }; #endif WORLD_H