#pragma once #include "macros.h" #include "scene/3d/mesh_instance_3d.h" #include "scene/resources/surface_tool.h" class Terrain; class TerrainChunkMesh : public MeshInstance3D { GDCLASS(TerrainChunkMesh, MeshInstance3D); static void _bind_methods(); void generate_vertices(); void generate_faces(); public: void update_mesh(); size_t points_per_side() const; private: Ref surface{ memnew(SurfaceTool) }; Terrain *terrain{}; size_t detail{ 1 }; size_t size{ 1 }; public: GET_SET_FNS(Terrain *, terrain); GET_SET_FNS(size_t, detail); GET_SET_FNS(size_t, size); };