OverviewFilesCommitsIssuesDocsReleasesPeers

dc-terrain / src / dc_terrain_utils.h

33 lines · c ref:
#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