summaryrefslogtreecommitdiff
path: root/modules/navigation
AgeCommit message (Collapse)Author
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.
2022-06-16Print NavMap error only once for invalid NavMesh.K. S. Ernest (iFire) Lee
2022-06-15Streamline Navigation layer function names.smix8
Streamline Navigation layer function names.
2022-06-14Fix crash of navigation agents callback when object is invalidsmix8
Fix crash of navigation agents callback when object is invalid.
2022-06-08Merge pull request #61682 from smix8/navigation_bake_config_precision_4.xRémi Verschelde
2022-06-08Merge pull request #61739 from smix8/navigation_region_cost_4.xRémi Verschelde
2022-06-06Add NavigationRegion costs for pathfindingsmix8
Add NavigationRegion costs for pathfinding.
2022-06-04Add warnings when NavigationMesh bake settings result in precision losssmix8
Add warnings when NavigationMesh bake settings result in precision loss.
2022-06-03Match NavMap and ProjectSettings with NavigationMesh defaultssmix8
Match NavMap and ProjectSettings with NavigationMesh defaults since the NavMap edge merging requires a matching cell_size with the NavigationMesh to create connections without issues.
2022-05-27Fix MultiMeshInstance crash in navmesh baking when MultiMesh Resource is emptysmix8
Fix MultiMeshInstance crash in navmesh baking when MultiMesh Resource is empty
2022-05-19Merge pull request #61128 from smix8/navigation_agent_process_mode_4.xRémi Verschelde
2022-05-18rvo2: Sync with upstream commit bfc0486Rémi Verschelde
https://github.com/snape/RVO2-3D/commit/bfc048670a4e85066e86a1f923d8ea92e3add3b2
2022-05-17Make Navigation Agents and Obstacles respect parent process modesmix8
Temporarily removes agent from navigation map when parent node cannot process due to SceneTree pause and process_mode property. Normal process_mode does not work as other agents would still avoid the paused agents because they were still active on the navigation map and the rvo world. Also fixes potential crash when region_get_map or agent_get_map is called while no map is set.
2022-05-16Merge pull request #61061 from smix8/navigation_mesh_sample_distance_range_4.xRémi Verschelde
2022-05-16Clamp NavigationMesh sample_distance above zerosmix8
While default ReCast library has support for 0.0 'sample_distance' the Godot implementation does not an crashes. Previously Godot would set all sample_distance values below 0.9 to 0 which causes the crashes. This limits the sample_distance range selection to 0.1 - 16.0 and also clamps sample_distance that are below 0.1 before ReCast receives them.
2022-05-16Merge pull request #60958 from smix8/navigation_server_rid_utility_4.xRémi Verschelde
2022-05-16Replace most uses of Map by HashMapreduz
* 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-12Add NavigationServer2D/3D API functions to find missing RID infosmix8
Utility functions for NavigationServer2D/3D to find missing RID information when working with Server API directly. e.g. from map to regions and agents, from agent or region to map, from region to map and agents and so on .... Requirement to work with NavigationServer API exklusive without SceneTree nodes and when juggling agents and regions between multiple navigation maps.
2022-05-11Add Warning to NavigationMesh bake when source geometry is suspiciously bigsmix8
Adds Warning when users try to bake a NavigationMesh with suspiciously big source geometry and small cellsizes as this baking process will likely fail or result in a NavigationMesh that will create serious pathfinding performance issues.
2022-05-04Refactor module initializationreduz
* Changed to use the same stages as extensions. * Makes the initialization more coherent, helping solve problems due to lack of stages. * Makes it easier to port between module and extension. * removed the DRIVER initialization level (no longer needed).
2022-05-02Use CollisionObject3D API when baking the navmesh with static colliders, ↵trollodel
instead of collecting CollisionShape3D nodes
2022-04-27Merge pull request #59979 from bruvzg/cpp_check2Rémi Verschelde
2022-04-26Create NavMap thread pool only when it's used, to prevent creating excessive ↵bruvzg
amount of running threads.
2022-04-26Merge pull request #60359 from adamscott/nav-map-thread-work-poolRémi Verschelde
2022-04-22Fix crash in `GodotNavigationServer::map_get_path`Pawel Lampe
2022-04-20Fix more issues found by cppcheck.bruvzg
2022-04-19Use ThreadWorkPool instead of thread_process_array in NavMapAdam Scott
2022-04-14NavMap::get_path Fix not resetting least_cost_idkleonc
2022-04-08Fix navmesh bakingPawel Lampe
- improved mesh data calculation from standalone static colliders so that no VisualServer calls are performed - and thus no VS mutexes need to be locked in case of on-thread baking - improved the same for GridMap's static colliders
2022-04-06Fix some issues found by cppcheck.bruvzg
2022-04-05Fix get_simple_path behavior in 2D & 3DPawel Lampe
2022-04-04Style: Apply clang-tidy to current code, add `readability-redundant-member-init`Rémi Verschelde
2022-04-04Zero initialize all pointer class and struct membersRémi Verschelde
This prevents the pitfall of UB when checking if they have been assigned something valid by comparing to nullptr.
2022-03-28Modules: Don't build editor-specific classes in templatesRémi Verschelde
They're moved to an `editor` subfolder so that we can easily handle them separately.
2022-03-09Remove VARIANT_ARG* macrosreduz
* Very old macros from the time Godot was created. * Limited arguments to 5 (then later changed to 8) in many places. * They were replaced by C++11 Variadic Templates. * Renamed methods that take argument pointers to have a "p" suffix. This was used in some places and not in others, so made it standard. * Also added a dereference check for Variant*. Helped catch a couple of bugs.
2022-02-19Core: Use forward declares for Vector3/Vector3iRémi Verschelde
Add add Vector3 operator in Vector3i.
2022-02-16Convert _notification methods to switch - Chunk CJakob Bouchard
2022-02-15Editor: Cleanup some includes dependenciesRémi Verschelde
Removes some unnecessary includes from `editor_node.h`, and instead add those where they're used. Removes unnecessary `editor_node.h` includes in various editor classes. Renames `dynamicfont` to `dynamic_font` in a couple files. Misc cleanup while jumping through that rabbit hole.
2022-02-14Remove the EditorNode parameter from EditorPlugins create methodstrollodel
Remove EditorNode usage from the Navigation editor plugin.
2022-02-13NavMap Fix polygons being treated like triangle strips instead of triangle fanskleonc