From 65fc766edbf665f19a6b5455d34b1b64010caddd Mon Sep 17 00:00:00 2001 From: Gtker Date: Thu, 6 Jul 2023 17:27:01 +0200 Subject: [PATCH] Add line of sight to C API --- pathfind/pathfind_c_bindings.cpp | 22 ++++++++++++++++++++++ pathfind/pathfind_c_bindings.hpp | 5 +++++ 2 files changed, 27 insertions(+) diff --git a/pathfind/pathfind_c_bindings.cpp b/pathfind/pathfind_c_bindings.cpp index 6c41fba..3e2c49e 100644 --- a/pathfind/pathfind_c_bindings.cpp +++ b/pathfind/pathfind_c_bindings.cpp @@ -228,4 +228,26 @@ PathfindResultType pathfind_find_height(pathfind::Map* const map, float start_x, return static_cast(Result::UNKNOWN_EXCEPTION); } } + +PathfindResultType pathfind_line_of_sight(pathfind::Map* map, + float start_x, float start_y, float start_z, + float stop_x, float stop_y, float stop_z, + uint8_t* const line_of_sight) { + try + { + if (map->LineOfSight({start_x, start_y, start_z}, {stop_x, stop_y, stop_z})) { + *line_of_sight = 1; + } else { + *line_of_sight = 0; + } + } + catch (utility::exception& e) + { + return static_cast(e.ResultCode()); + } + catch (...) + { + return static_cast(Result::UNKNOWN_EXCEPTION); + } +} } // extern "C" diff --git a/pathfind/pathfind_c_bindings.hpp b/pathfind/pathfind_c_bindings.hpp index 8a4ac78..15789d4 100644 --- a/pathfind/pathfind_c_bindings.hpp +++ b/pathfind/pathfind_c_bindings.hpp @@ -49,5 +49,10 @@ PathfindResultType pathfind_find_height(pathfind::Map* const map, float start_x, float start_y, float start_z, float stop_x, float stop_y, float* const stop_z); + +PathfindResultType pathfind_line_of_sight(pathfind::Map* map, + float start_x, float start_y, float start_z, + float stop_x, float stop_y, float stop_z, + uint8_t* const line_of_sight); } // extern "C"