#ifndef EDITOR_COMPONENT_HPP
#define EDITOR_COMPONENT_HPP

#include <array>
#include <entt/entity/fwd.hpp>
#include <glm/fwd.hpp>
#include <imgui.h>

namespace OpenEngine {

    void DrawVec3Control(const char* label, glm::vec3& values,
            float reset_value = 0.0f, float column_width = 100.0f,
            const std::array<const char*, 3> labels = {"x", "y", "z"});

    void TagOnImGuiRender(entt::registry& registry, entt::entity entity);
    void TransformOnImGuiRender(entt::registry& registry, entt::entity entity);
    void SpriteOnImGuiRender(entt::registry& registry, entt::entity entity);
    void CameraOnImGuiRender(entt::registry& registry, entt::entity entity);
    void MeshOnImGuiRender(entt::registry&registry, entt::entity entity);
    void MaterialOnImGuiRender(entt::registry& registry, entt::entity entity);
    void BodyOnImGuiRender(entt::registry& registry, entt::entity entity);
    void SphereShapeOnImGuiRender(entt::registry& registry, entt::entity entity);
    void BoxShapeOnImGuiRender(entt::registry& registry, entt::entity entity);
    void PlaneShapeOnImGuiRender(entt::registry& registry, entt::entity entity);
    void ModelOnImGuiRender(entt::registry& registry, entt::entity entity);
}

#endif // EDITOR_COMPONENT_HPP
