Commit graph

48 commits

Author SHA1 Message Date
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
Josh Jones
3dd59013f4 Added node for Navigation links 2022-08-26 22:05:15 -07:00
smix8
8d4922cfb1 Replace Navigation std::vector use with LocalVector
Replace Navigation std::vector use with LocalVector.
2022-07-28 20:29:15 +02:00
Juan Linietsky
c7255388e1 Remove ThreadWorkPool, replace by WorkerThreadPool
The former needs to be allocated once per usage. The later is shared for all threads, which is more efficient.
It can also be better debugged.
2022-07-25 15:39:50 +02:00
K. S. Ernest (iFire) Lee
67052af918 Print NavMap error only once for invalid NavMesh. 2022-06-16 13:56:16 +02:00
smix8
245da150e7 Streamline Navigation layer function names.
Streamline Navigation layer function names.
2022-06-15 00:18:48 +02:00
smix8
cfdfd304f1 Add NavigationRegion costs for pathfinding
Add NavigationRegion costs for pathfinding.
2022-06-06 15:25:06 +02:00
reduz
746dddc067 Replace most uses of Map by HashMap
* Map is unnecessary and inefficient in almost every case.
* Replaced by the new HashMap.
* Renamed Map to RBMap and Set to RBSet for cases that still make sense
  (order matters) but use is discouraged.

There were very few cases where replacing by HashMap was undesired because
keeping the key order was intended.
I tried to keep those (as RBMap) as much as possible, but might have missed
some. Review appreciated!
2022-05-16 10:37:48 +02:00
bruvzg
40f0b23482
Create NavMap thread pool only when it's used, to prevent creating excessive amount of running threads. 2022-04-26 15:00:00 +03:00
Rémi Verschelde
c45202a89b
Merge pull request #60359 from adamscott/nav-map-thread-work-pool 2022-04-26 11:51:02 +02:00
Pawel Lampe
66856d5fb0 Fix crash in GodotNavigationServer::map_get_path 2022-04-22 18:49:45 +02:00
Adam Scott
732102cbc5 Use ThreadWorkPool instead of thread_process_array in NavMap 2022-04-19 18:35:15 -04:00
kleonc
9ab69b89f8 NavMap::get_path Fix not resetting least_cost_id 2022-04-14 17:13:53 +02:00
Pawel Lampe
dcab82ad43 Fix get_simple_path behavior in 2D & 3D 2022-04-05 23:26:37 +02:00
kleonc
5422d863e1 NavMap Fix polygons being treated like triangle strips instead of triangle fans 2022-02-13 19:26:17 +01:00
Rémi Verschelde
ba2bdc478b
Style: Remove inconsistently used @author docstrings
Each file in Godot has had multiple contributors who co-authored it over the
years, and the information of who was the original person to create that file
is not very relevant, especially when used so inconsistently.

`git blame` is a much better way to know who initially authored or later
modified a given chunk of code, and most IDEs now have good integration to
show this information.
2022-01-04 20:42:50 +01:00
Rémi Verschelde
fe52458154
Update copyright statements to 2022
Happy new year to the wonderful Godot community!
2022-01-03 21:27:34 +01:00
Lightning_A
c63b18507d Use range iterators for Map 2021-09-30 15:09:12 -06:00
Anilforextra
fc9767abb1 Use functions defined in the their classes. 2021-09-29 09:36:34 +05:45
Aaron Franke
78b0a7da03
Use is_equal_approx in more places 2021-07-21 00:32:37 -04:00
Rémi Verschelde
74dc5e27c8
Rename GdNavigationServer to GodotNavigationServer
And rename `gdnavigation` module to simply `navigation`.
2021-06-30 00:35:18 +02:00
Renamed from modules/gdnavigation/nav_map.cpp (Browse further)