summaryrefslogtreecommitdiff
path: root/servers/navigation/navigation_utilities.h
diff options
context:
space:
mode:
Diffstat (limited to 'servers/navigation/navigation_utilities.h')
-rw-r--r--servers/navigation/navigation_utilities.h18
1 files changed, 18 insertions, 0 deletions
diff --git a/servers/navigation/navigation_utilities.h b/servers/navigation/navigation_utilities.h
index e99c139528..c22a2ed952 100644
--- a/servers/navigation/navigation_utilities.h
+++ b/servers/navigation/navigation_utilities.h
@@ -32,6 +32,7 @@
#define NAVIGATION_UTILITIES_H
#include "core/math/vector3.h"
+#include "core/variant/typed_array.h"
namespace NavigationUtilities {
@@ -44,6 +45,19 @@ enum PathPostProcessing {
PATH_POSTPROCESSING_EDGECENTERED,
};
+enum PathSegmentType {
+ PATH_SEGMENT_TYPE_REGION = 0,
+ PATH_SEGMENT_TYPE_LINK
+};
+
+enum PathMetadataFlags {
+ PATH_INCLUDE_NONE = 0,
+ PATH_INCLUDE_TYPES = 1,
+ PATH_INCLUDE_RIDS = 2,
+ PATH_INCLUDE_OWNERS = 4,
+ PATH_INCLUDE_ALL = PATH_INCLUDE_TYPES | PATH_INCLUDE_RIDS | PATH_INCLUDE_OWNERS
+};
+
struct PathQueryParameters {
PathfindingAlgorithm pathfinding_algorithm = PATHFINDING_ALGORITHM_ASTAR;
PathPostProcessing path_postprocessing = PATH_POSTPROCESSING_CORRIDORFUNNEL;
@@ -51,10 +65,14 @@ struct PathQueryParameters {
Vector3 start_position;
Vector3 target_position;
uint32_t navigation_layers = 1;
+ BitField<PathMetadataFlags> metadata_flags = PATH_INCLUDE_ALL;
};
struct PathQueryResult {
Vector<Vector3> path;
+ Vector<int32_t> path_types;
+ TypedArray<RID> path_rids;
+ Vector<int64_t> path_owner_ids;
};
} //namespace NavigationUtilities