Files
omath/include/omath/pathfinding/navigation_mesh.hpp
T
2025-05-05 02:24:23 +03:00

38 lines
834 B
C++

//
// Created by Vlad on 28.07.2024.
//
#pragma once
#include "omath/vector3.hpp"
#include <expected>
#include <string>
#include <vector>
namespace omath::pathfinding
{
enum Error
{
};
class NavigationMesh final
{
public:
[[nodiscard]]
std::expected<Vector3<float>, std::string> get_closest_vertex(const Vector3<float>& point) const noexcept;
[[nodiscard]]
const std::vector<Vector3<float>>& get_neighbors(const Vector3<float>& vertex) const noexcept;
[[nodiscard]]
bool empty() const;
[[nodiscard]] std::vector<uint8_t> serialize() const noexcept;
void deserialize(const std::vector<uint8_t>& raw) noexcept;
std::unordered_map<Vector3<float>, std::vector<Vector3<float>>> m_vertex_map;
};
} // namespace omath::pathfinding