summaryrefslogtreecommitdiff
path: root/modules/navigation
AgeCommit message (Collapse)Author
2023-02-16Fix includes of thirdparty libs which can be unbundled on LinuxRémi Verschelde
Changes `builtin_icu` and `builtin_recast` to match the folder names in `thirdparty`.
2023-02-13Improve NavigationServer.free() error msg when RID not foundsmix8
Improves the error msg when NavigationServer.free() does not find the RID e.g. because it was already deleted or did never exist in the first place.
2023-02-01Rename NavigationServer internal RvoAgent to NavAgentsmix8
Renames the NavigationServer internal RvoAgent to NavAgent.
2023-01-27Use Callable for Navigation Agent callbacksJosh Jones
2023-01-26Rename Navigation uses of 'location' to 'position'smix8
Contrary to the entire rest of the engine NavigationAgent's and NavigationLinks decided to deal with locations instead of positions.
2023-01-23Merge pull request #63251 from ↵Rémi Verschelde
SaracenOne/disable_data_generation_on_foreign_resources Disable navmesh, lightmap, and VoxelGI generation on foreign data
2023-01-23Convert en_GB spelling to en_US with codespellRémi Verschelde
2023-01-21Use range iterators in LocalVector loopskobewi
2023-01-12Merge pull request #70904 from huangjiaminhhh/masterRémi Verschelde
Fix for navmesh baking when parsing StaticBody colliders
2023-01-08Add NavigationServer Performance Monitorsmix8
Adds Performance Monitor for NavigationServer3D.
2023-01-07Rework const on NavigationServer methodsJosh Jones
`const` is used on all methods, even when they cause modification of the server. This reworks the methods of the server to only use `const` on method that don't change the state of the server.
2023-01-06Disable navmesh, lightmap, and VoxelGI generation on foreign dataSaracenOne
2023-01-05One Copyright Update to rule them allRémi Verschelde
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-03Fix for navmesh baking. Error message: Condition “!shapes.has(p_owner)” ↵huangjiamin
is true
2022-12-21Merge pull request #67111 from DarkKilauea/nav-queries-linkRémi Verschelde
Added signal to NavigationAgent when entering a link
2022-12-20Fix typo and ensure backwards compatibility for changed property namesJosh Jones
Changes to the name of the `navmesh` and `navpoly` properties on `NavigationRegion` caused navigation data to be lost on load. This PR creates uses `_set`/`_get` to handle compatibility with the older names on load, preserving the data. Also fixes a typo on `get_vertices_per_polygon` in `NavigationMesh`, and renames the property to remove the `polygon_` prefix which doesn't match the setter/getter. Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2022-12-17Add support for emitting a signal when entering a NavLinkJosh Jones
2022-12-17Fix Navigation API abbreviations inconsistencysmix8
Schema for navigation to name user facing API with "navigation" without abbreviation and e.g. NavigationServer internals with abbr "nav".
2022-12-12Merge pull request #69629 from smix8/agent_wild_callback_pointer_4.xRémi Verschelde
Fix Navigation agent callback wild pointer crash
2022-12-12Fix Navigation agent callback wild pointer crashsmix8
Fixes crash in sanitizer builds when callback agent or object are already freed.
2022-12-10Enable assigning an owner to navigation regions and linksJosh Jones
This allows users of the server APIs to get back the nodes that created certain regions and links.
2022-11-14Remove redundant Variant-types initializationsMarkus Sauermann
2022-11-11Use forward-declarations in EditorPlugin where possibletrollodel
2022-10-13Optimize Convex CollisionJuan Linietsky
Implements the Gauss Mapping optimization to SAT convex collision test. * Described [here](https://ubm-twvideo01.s3.amazonaws.com/o1/vault/gdc2013/slides/822403Gregorius_Dirk_TheSeparatingAxisTest.pdf) by Dirk Gregorius. * Requires adding of face information to edges in MeshData * Took the chance to convert MeshData to LocalVector for performance.
2022-10-02Fix crash in navigation 3d when target is not reachableSean
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-09-30Merge pull request #66242 from akien-mga/scons-unify-tools-targetRémi Verschelde
2022-09-28Fix heap-use-after-free in `NavMap::get_path()`Haoyu Qiu
2022-09-26SCons: Unify tools/target build type configurationRémi Verschelde
Implements https://github.com/godotengine/godot-proposals/issues/3371. New `target` presets ==================== The `tools` option is removed and `target` changes to use three new presets, which match the builds users are familiar with. These targets control the default optimization level and enable editor-specific and debugging code: - `editor`: Replaces `tools=yes target=release_debug`. * Defines: `TOOLS_ENABLED`, `DEBUG_ENABLED`, `-O2`/`/O2` - `template_debug`: Replaces `tools=no target=release_debug`. * Defines: `DEBUG_ENABLED`, `-O2`/`/O2` - `template_release`: Replaces `tools=no target=release`. * Defines: `-O3`/`/O2` New `dev_build` option ====================== The previous `target=debug` is now replaced by a separate `dev_build=yes` option, which can be used in combination with either of the three targets, and changes the following: - `dev_build`: Defines `DEV_ENABLED`, disables optimization (`-O0`/`/0d`), enables generating debug symbols, does not define `NDEBUG` so `assert()` works in thirdparty libraries, adds a `.dev` suffix to the binary name. Note: Unlike previously, `dev_build` defaults to off so that users who compile Godot from source get an optimized and small build by default. Engine contributors should now set `dev_build=yes` in their build scripts or IDE configuration manually. Changed binary names ==================== The name of generated binaries and object files are changed too, to follow this format: `godot.<platform>.<target>[.dev][.double].<arch>[.<extra_suffix>][.<ext>]` For example: - `godot.linuxbsd.editor.dev.arm64` - `godot.windows.template_release.double.x86_64.mono.exe` Be sure to update your links/scripts/IDE config accordingly. More flexible `optimize` and `debug_symbols` options ==================================================== The optimization level and whether to generate debug symbols can be further specified with the `optimize` and `debug_symbols` options. So the default values listed above for the various `target` and `dev_build` combinations are indicative and can be replaced when compiling, e.g.: `scons p=linuxbsd target=template_debug dev_build=yes optimize=debug` will make a "debug" export template with dev-only code enabled, `-Og` optimization level for GCC/Clang, and debug symbols. Perfect for debugging complex crashes at runtime in an exported project.
2022-09-21Merge pull request #62429 from smix8/navigation_path_query_4.xRémi Verschelde
Add NavigationPathQuery objects and NavigationServer query_path()
2022-09-20Add NavigationPathQuerysmix8
Adds NavigationPathQueryParameters objects that can be used with NavigationServer.query_path() to query a customized navigation path.
2022-09-14Exclude disabled CollisionShapes from Navigationmesh bakingsmix8
Excludes disabled CollisionShapes from the geometry parsing for the NavigationMesh baking.
2022-09-07Rename EditorInterface.get_editor_main_control to get_editor_main_screenYuri Sizov
2022-09-04Replace AABB has_no_volume with has_volumeAaron Franke
Also replace has_no_surface with has_surface
2022-09-01Merge pull request #63479 from DarkKilauea/nav-linkRémi Verschelde
2022-08-26Added node for Navigation linksJosh Jones
2022-08-27Rename `hint_tooltip` to `tooltip_text` & setgetMicky
`hint_tooltip` -> `tooltip_text` `set_tooltip` -> `set_tooltip_text` `_get_tooltip` -> `get_tooltip_text` Updates documentation, too.
2022-08-25Merge pull request #64354 from Mickeon/rename-navigation-distanceRémi Verschelde
2022-08-23Replace Array return types with TypedArray 2kobewi
2022-08-13Rename Navigation's `neighbor_dist` to `neightbor_distance`Micky
NavigationAgent2D/3D.`neighbor_dist` -> `neighbor_distance` (also affects setters and getters) NavigationServer2D/3D.`agent_set_neighbor_dist()` -> `agent_set_neighbor_distance()` Also changes their parameters' names. Doesn't affect "Agent.neighborDist_" in Agent.h
2022-08-05Add NavigationMesh baking for HeightMapShapesmix8
Adds HeightMapShape for StaticColliders and GridMap to the NavigationMeshGenerator for baking NavigationMesh.
2022-07-28Replace Navigation std::vector use with LocalVectorsmix8
Replace Navigation std::vector use with LocalVector.
2022-07-25Remove ThreadWorkPool, replace by WorkerThreadPoolJuan Linietsky
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-06-24Merge pull request #62300 from smix8/navigation_map_force_update_4.xRémi Verschelde
2022-06-23Add NavigationServer.region_owns_point() helper functionsmix8
Adds a helper function to check if a world space position is currently owned by a navigation region.
2022-06-23Add NavigationServer map_force_update() functionsmix8
Adds map_force_update() function to NavigationServer. This function immediately flushes the Navigationserver command queue and recalculates all navigationmeshes and region connections for a specific map.
2022-06-23Merge pull request #62312 from smix8/navigation_get_maps_4.xRémi Verschelde
2022-06-23Merge pull request #62293 from smix8/navigation_disable_editorprogress_bake_4.xRémi Verschelde
2022-06-23Implement NavigationMesh bake areasmix8
Adds two new properties to NavigationMesh resources to restrict the navmesh baking to an area enclosed by an AABB with volume.
2022-06-22Add Navigation function to get all navigation mapssmix8
Added new function that returns all created navigation map RIDs from the NavigationServer. The function returns both 2D and 3D created navigation maps as technically there is no distinction between them.
2022-06-22Disable thread-unsafe EditorProgress for navmesh bakingsmix8
Disables navmesh baking EditorProgress for now until fixed as EditorProgress is not thread-safe and uses hacks and Main::iteration() for steps which can result in random crashes when baking navmesh.