summaryrefslogtreecommitdiff
path: root/servers/navigation_server.h
diff options
context:
space:
mode:
Diffstat (limited to 'servers/navigation_server.h')
-rw-r--r--servers/navigation_server.h17
1 files changed, 12 insertions, 5 deletions
diff --git a/servers/navigation_server.h b/servers/navigation_server.h
index bcdbf84339..546e543db3 100644
--- a/servers/navigation_server.h
+++ b/servers/navigation_server.h
@@ -37,7 +37,7 @@
#include "core/object.h"
#include "core/rid.h"
-#include "scene/3d/navigation_mesh_instance.h"
+#include "scene/3d/navigation_region.h"
/// This server uses the concept of internal mutability.
/// All the constant functions can be called in multithread because internally
@@ -54,7 +54,7 @@ protected:
static void _bind_methods();
public:
- /// Thread safe, can be used accross many threads.
+ /// Thread safe, can be used across many threads.
static const NavigationServer *get_singleton();
/// MUST be used in single thread!
@@ -90,6 +90,11 @@ public:
/// Returns the navigation path to reach the destination from the origin.
virtual Vector<Vector3> map_get_path(RID p_map, Vector3 p_origin, Vector3 p_destination, bool p_optimize) const = 0;
+ virtual Vector3 map_get_closest_point_to_segment(RID p_map, const Vector3 &p_from, const Vector3 &p_to, const bool p_use_collision = false) const = 0;
+ virtual Vector3 map_get_closest_point(RID p_map, const Vector3 &p_point) const = 0;
+ virtual Vector3 map_get_closest_point_normal(RID p_map, const Vector3 &p_point) const = 0;
+ virtual RID map_get_closest_point_owner(RID p_map, const Vector3 &p_point) const = 0;
+
/// Creates a new region.
virtual RID region_create() const = 0;
@@ -170,9 +175,11 @@ public:
/// Control activation of this server.
virtual void set_active(bool p_active) const = 0;
- /// Step the server
- /// NOTE: This function is not Threadsafe and MUST be called in single thread.
- virtual void step(real_t delta_time) = 0;
+ /// Process the collision avoidance agents.
+ /// The result of this process is needed by the physics server,
+ /// so this must be called in the main thread.
+ /// Note: This function is not thread safe.
+ virtual void process(real_t delta_time) = 0;
NavigationServer();
virtual ~NavigationServer();