Commit Graph

70 Commits

Author SHA1 Message Date
Artem b8fc6b4979
NavigationServer3D.map_get_closest_point_to_segment - add an additional shortest distance check
For a case when shortest distance is between some point located on a face's
edge and some point located on a line segment.
2024-06-29 19:50:10 +02:00
smix8 40fc299aa3 Remove unused navigation polygon properties
Removes unused navigation polygon properties, a leftover from the old Godot 3 days that used polygon center to polygon center distance for (rather inaccurate) pathfinding cost calculation.
2024-06-22 21:55:48 +02:00
Artem 4ed747e255 Fixed closest edge and face check in NavigationServer3D.map_get_closest_point_to_segment 2024-06-17 15:34:46 +04:00
Per Melin 9b191f669c Fix NavigationServer3D.get_closest_point_to_segment() with use_collision 2024-06-07 14:24:39 +02:00
A Thousand Ships 86de59d60a
[Core] Add `LocalVector::has` for convenience 2024-05-06 18:03:37 +02:00
smix8 2da69294fc Improve NavigationServer NavMap sync error msgs
Improves NavigationServer NavMap sync error msgs.
2024-02-22 13:49:31 +01:00
smix8 313c1d1100 Add function to get navigation map iteration id from NavigationServer
Adds function to get navigation map iteration id from NavigationServer.
2024-02-22 09:45:49 +01:00
Rémi Verschelde 24bd30716e
Merge pull request #87959 from Scony/fix-navi-sync-errors
Add means for fixing navmap synchronization errors
2024-02-12 13:34:30 +01:00
Pawel Lampe 9ea8d4fa38 Add means for fixing navmap synchronization errors 2024-02-11 21:06:47 +01:00
smix8 4cc8748c47 Make navigation map spatial queries thread-safe
Makes navigation map spatial queries thread-safe by adding a readers–writer lock.
2024-02-06 19:27:59 +01:00
Yuri Sizov d4806d2d84 Merge pull request #85253 from sandygk/fix-reachable-polygon-closest-to-end-point
[Navigation] Do not use travel cost for minimum when re-selecting end point
2023-12-19 13:01:45 +01:00
Rémi Verschelde 84692c6252
Navigation: Fix GCC 12.3 `-Wtype-limits` warnings 2023-12-12 11:00:06 +01:00
smix8 64a56245d8 Add NavigationServer random point queries
Adds query functions to get random points on navigation mesh to the NavigationServer.
2023-12-08 00:18:05 +01:00
Rémi Verschelde 8a9e3ad8d5
Merge pull request #84816 from Scony/add-obstacle-navserver-tests
Fix memory leak in 'NavigationServer3D' involving static obstacles
2023-12-04 23:05:39 +01:00
Sandy Gutierrez 11e63d244e Do not use travel cost for minimum when re-selecting end point 2023-11-28 07:23:58 -05:00
Pawel Lampe a4b3546577 Fix memory leak in 'NavigationServer3D' involving static obstacles 2023-11-17 21:20:14 +01:00
smix8 3f26191d16 Fix NavigationObstacle height
Fixes NavigationObstacle height.
2023-11-13 21:32:22 +01:00
smix8 fc4cc27e66 Fix NavigationObstacle elevation
FixesNavigationObstacle elevation.
2023-11-13 06:55:31 +01:00
smix8 ade4d3cf28 Fix NavigationLink enabled toggle
Fixes NavigationLink enabled toggle.
2023-10-21 03:11:37 +02:00
Ben Rog-Wilhelm d0564f2466
Fix NavMesh `map_update_id` returning 0 results in errors 2023-08-03 18:57:35 +02:00
Yuri Sizov d7f07820aa Merge pull request #79228 from smix8/fix_funnel_4.x
Fix pathfinding funnel adding unwanted point
2023-08-02 21:36:46 +02:00
smix8 69fad39cf5 Add NavigationServer API to enable regions and links
Adds NavigationServer API to enable regions and links.
2023-07-26 01:20:15 +02:00
smix8 c51e264446 Fix pathfinding funnel adding unwanted point
Fixes pathfinding funnel adding unwanted point due to precision issues.
2023-07-23 03:24:14 +02:00
smix8 e5c24f7118 Fix closest possible navigation path position
Fixes closest possible navigation path position.
2023-07-08 23:16:47 +02:00
Rémi Verschelde d0c1dd16ee
Revert "Update RVO2 to git 2022.09"
This reverts commit c920881105.

Fixes #78826.
2023-06-29 12:50:49 +02:00
smix8 ae9dd47d0c Add agent pause mode to NavigationServer
Adds agent pause mode to NavigationServer.
2023-06-18 12:37:03 +02:00
Rémi Verschelde 25b2f1780a
Style: Harmonize header includes in modules
This applies our existing style guide, and adds a new rule to that style
guide for modular components such as platform ports and modules:

Includes from the platform port or module ("local" includes) should be listed
first in their own block using relative paths, before Godot's "core" includes
which use "absolute" (project folder relative) paths, and finally thirdparty
includes.

Includes in `#ifdef`s come after their relevant section, i.e. the overall
structure is:

- Local includes
  * Conditional local includes
- Core includes
  * Conditional core includes
- Thirdparty includes
  * Conditional thirdparty includes
2023-06-15 14:35:45 +02:00
Rémi Verschelde 754a52a4ab
Merge pull request #78201 from smix8/navmesh_cell_height_4.x
Fix `cell_height` for navigation meshes
2023-06-14 09:27:33 +02:00
Rémi Verschelde 375156a637
Merge pull request #78099 from DeeJayLSP/rvo2023
Update RVO2 to git 2022.09
2023-06-14 09:25:10 +02:00
DeeJayLSP c920881105 Update RVO2 to git 2022.09 2023-06-13 21:13:21 -03:00
smix8 180a5cded1 Fix `cell_height` for navigation meshes
Fixes `cell_height` for navigation meshes.
2023-06-13 23:24:32 +02:00
Rémi Verschelde c3e4dd86ff
Merge pull request #77693 from smix8/navmap_sync_warnings_4.x
Add navigation map synchronization warnings
2023-06-13 13:52:46 +02:00
smix8 7f2417135f Improve navigation map synchronisation error msgs
Improves navigation map synchronisation error msgs related to mismatch of cell sizes.
2023-06-03 11:40:33 +02:00
smix8 fef7b4efdc Add navigation map synchronization warnings.
Adds navigation map synchronization warnings.
2023-05-31 16:23:27 +02:00
smix8 f986b52b3c Make navigation mesh edge connections optional
Makes navigation mesh edge connections optional.
2023-05-11 18:46:34 +02:00
smix8 7e1a261cc6 Prevent unnecessary navigation map synchronizations
Prevents unnecessary navigation map synchronizations triggered by redundant calls to setters of e.g. region, link or map properties.
2023-05-11 07:38:16 +02:00
smix8 a6ac305f96 Rework Navigation Avoidance
Rework Navigation Avoidance.
2023-05-10 05:01:58 +02:00
Rémi Verschelde 38094dfc4a
Merge pull request #74558 from smix8/navserver_real_t_4.x
Fix NavigationServer internals still using float instead of real_t
2023-04-03 16:00:42 +02:00
smix8 184427196f Fix NavigationAgent enable avoidance crash
Fixes NavigationAgent enable avoidance crash.
2023-04-01 12:52:15 +02:00
smix8 64ce93cee9 Fix agents with disabled avoidance getting added to avoidance simulation
Fixes that agents with disabled avoidance were getting added to avoidance simulation.
2023-03-14 04:20:57 +01:00
smix8 217a27014b Fix NavigationServer internals still using float instead of real_t
Fixes that some NavigationServer internals still used float instead of real_t in some parts.
2023-03-07 22:10:48 +01:00
smix8 0d80705f11 Rename NavigationServer internal RvoAgent to NavAgent
Renames the NavigationServer internal RvoAgent to NavAgent.
2023-02-01 22:27:48 +01:00
smix8 bf1571979c Rename Navigation uses of 'location' to 'position'
Contrary to the entire rest of the engine NavigationAgent's and NavigationLinks decided to deal with locations instead of positions.
2023-01-26 18:19:03 +01:00
Rémi Verschelde 5b1df48c6c
Convert en_GB spelling to en_US with codespell 2023-01-23 11:02:20 +01:00
kobewi 615c517034 Use range iterators in LocalVector loops 2023-01-21 18:44:42 +01:00
smix8 9802914f97 Add NavigationServer Performance Monitor
Adds Performance Monitor for NavigationServer3D.
2023-01-08 22:58:21 +01:00
Rémi Verschelde d95794ec8a
One Copyright Update to rule them all
As many open source projects have started doing it, we're removing the
current year from the copyright notice, so that we don't need to bump
it every year.

It seems like only the first year of publication is technically
relevant for copyright notices, and even that seems to be something
that many companies stopped listing altogether (in a version controlled
codebase, the commits are a much better source of date of publication
than a hardcoded copyright statement).

We also now list Godot Engine contributors first as we're collectively
the current maintainers of the project, and we clarify that the
"exclusive" copyright of the co-founders covers the timespan before
opensourcing (their further contributions are included as part of Godot
Engine contributors).

Also fixed "cf." Frenchism - it's meant as "refer to / see".
2023-01-05 13:25:55 +01:00
Josh Jones 5d8ba2b2d1 Add support for emitting a signal when entering a NavLink 2022-12-17 16:33:41 -08:00
Sean 9b525da531 Fix crash in navigation 3d when target is not reachable
The code that resets variables to retry navigation to the closest possible poly was not resetting 1 variable, which caused it to exceed the vector bounds
2022-10-02 13:18:33 -06:00
Haoyu Qiu 9d58454567 Fix heap-use-after-free in `NavMap::get_path()` 2022-09-28 10:50:03 +08:00