#ifndef EDITSCENE_NAVMESH_EDITOR_HPP
#define EDITSCENE_NAVMESH_EDITOR_HPP
#pragma once

#include "ComponentEditor.hpp"
#include "../components/NavMesh.hpp"

/**
 * Editor for NavMeshComponent.
 *
 * Provides controls for:
 * - Recast build parameters
 * - Manual rebuild
 * - Debug draw toggle
 * - Path testing (start/end points + find path)
 */
class NavMeshEditor : public ComponentEditor<NavMeshComponent> {
public:
	NavMeshEditor();
	const char *getName() const override { return "NavMesh"; }

protected:
	bool renderComponent(flecs::entity entity,
			     NavMeshComponent &comp) override;

private:
	void renderParams(NavMeshComponent &comp);
	void renderPathTester(flecs::entity navmeshEntity);

	float m_startPos[3] = { 0.0f, 0.0f, 0.0f };
	float m_endPos[3] = { 10.0f, 0.0f, 10.0f };
	std::vector<Ogre::Vector3> m_lastPath;
	bool m_pathValid = false;
};

#endif // EDITSCENE_NAVMESH_EDITOR_HPP
