#ifndef DC_TERRAIN_UTILS_H
#define DC_TERRAIN_UTILS_H
#include <godot_cpp/classes/ref_counted.hpp>
#include <godot_cpp/classes/array_mesh.hpp>
#include <godot_cpp/variant/vector3.hpp>
#include "dc_terrain_generator.h"
namespace godot {
class DCTerrainUtils : public RefCounted {
GDCLASS(DCTerrainUtils, RefCounted)
protected:
static void _bind_methods();
public:
// Mesh a generator into an ArrayMesh. Auto-detects bounds if origin is zero.
// origin: world-space corner of the meshing volume
// voxel_size: world units per voxel (smaller = more detail)
// grid_size: voxels per axis (32, 64, 128 typical)
static Ref<ArrayMesh> mesh_from_generator(Ref<DCTerrainGenerator> generator,
Vector3 origin, float voxel_size, int grid_size);
// Auto-bounds version: uses generator's get_bounds() with padding
static Ref<ArrayMesh> mesh_from_generator_auto(Ref<DCTerrainGenerator> generator,
float voxel_size);
};
} // namespace godot
#endif // DC_TERRAIN_UTILS_H