module re.gfx.shapes.grid;

import re.ecs;
import re.gfx;
import re.math;
import re.ng.diag;
static import raylib;

/// represents a 3d grid at the origin
class Grid3D : Component, Renderable3D {
    /// grid slices
    public int slices;
    /// grid line spacing
    public float spacing;

    this(int slices, float spacing) {
        this.slices = slices;
        this.spacing = spacing;
    }

    @property BoundingBox bounds() {
        auto edge = (slices / 2) * spacing;
        return BoundingBox(Vector3(-edge, 0, -edge), Vector3(edge, 0, edge));
    }

    public void render() {
        raylib.DrawGrid(slices, spacing);
    }

    public void debug_render() {
        // DebugRender.default_debug_render(this);
    }
}