improved walkbot

This commit is contained in:
2026-04-12 12:05:40 +03:00
parent bb974da0e2
commit ea07d17dbb
2 changed files with 34 additions and 11 deletions

View File

@@ -5,16 +5,24 @@
#include "navigation_mesh.hpp"
#include "omath/linear_algebra/vector3.hpp"
#include <functional>
#include <memory>
namespace omath::pathfinding
{
class WalkBot
{
public:
void update(const Vector3<float>& bot_position, const Vector3<float>& target_position, float min_node_distance) const;
WalkBot() = default;
explicit WalkBot(std::shared_ptr<NavigationMesh> mesh);
void set_nav_mesh(std::shared_ptr<NavigationMesh> mesh);
void update(const Vector3<float>& bot_position, const Vector3<float>& target_position, float min_node_distance);
void on_path(std::function<void(const Vector3<float>&)> callback);
private:
std::weak_ptr<NavigationMesh> m_mav_mesh;
std::optional<std::function<void(const Vector3<float>&)>> m_on_next_path_node = nullptr;
std::optional<std::function<void(const Vector3<float>&)>> m_on_next_path_node;
std::optional<Vector3<float>> m_last_visited;
};
} // namespace omath::pathfinding