summaryrefslogtreecommitdiff
path: root/modules/navigation
AgeCommit message (Collapse)Author
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
2022-02-12Improve compilation speed (forward declarations/includes cleanup)Hendrik Brucker
2022-01-31Fix transforms involved into navmesh bakingPawel Lampe
Within the context of parsing navigation geometry, this commit: - added missing transform of `MultiMeshInstance` - changed all transforms to global ones so that they don't need to be calculated by hand
2022-01-16Consider gridmap collisions in navigation bakerafallus
2022-01-04Style: Remove inconsistently used `@author` docstringsRémi Verschelde
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-03Update copyright statements to 2022Rémi Verschelde
Happy new year to the wonderful Godot community!
2021-12-03NavigationMeshInstance: Fix typo to 'vertices'Rémi Verschelde
2021-12-02Let MultiMeshInstances affect NavigationMeshesCarlo Cabanilla
2021-11-23Rename `remove()` to `remove_at()` when removing by indexLightning_A
2021-11-12Modules: Make sure to include modules_enabled.gen.h where neededRémi Verschelde
2021-10-21Merge pull request #52367 from Duroxxigar/improve-nav-error-messagesRémi Verschelde
Improve readability for failing errors in nav area
2021-10-08Improved readability for failing error conditionsDuroxxigar
2021-09-30Use range iterators for `Map`Lightning_A
2021-09-29Rename RID's `getornull()` to `get_or_null()`Hugo Locurcio
2021-09-29Use functions defined in the their classes.Anilforextra
2021-09-14Rename WorldMarginShape to WorldBoundaryShapePouleyKetchoupp
2021-08-11Make radius & height in CapsuleShape3D independentPouleyKetchoupp
Also changed CapsuleMesh to make settings consistent between render and physics.
2021-08-11Improve NavigationMesh typing, parameter validation and documentationHaoyu Qiu
2021-07-23Use C++ iterators for Lists in many situationsAaron Franke
2021-07-23Node3D gizmo improvementsjfons
* Clean-up of node_3d_editor_plugin.{h,cpp}: removed unused code, fixed some bugs. * Moved node_3d_editor_gizmos.{h,cpp} to editor/plugins. * Added support for multiple gizmos per node. This means custom gizmos will no longer override the built-in ones and that multiple gizmos can be used in more complex nodes. * Added support for handle IDs. When adding handles to a gizmo, an ID can be specified for each one, making it easier to work with gizmos that have a variable number of handles. * Added support for subgizmos, selectable elements that can be transformed without needing a node of their own. By overriding _subgizmo_intersect_frustum() and/or _subgizmo_intersect_ray() gizmos can define which subgizmos should be selected on a region or click selection. Subgizmo transformations are applied using get/set/commit virtual methods, similar to how handles work.
2021-07-21Use is_equal_approx in more placesAaron Franke
2021-07-18Optimize StringName usagereduz
* Added a new macro SNAME() that constructs and caches a local stringname. * Subsequent usages use the cached version. * Since these use a global static variable, a second refcounter of static usages need to be kept for cleanup time. * Replaced all theme usages by this new macro. * Replace all signal emission usages by this new macro. * Replace all call_deferred usages by this new macro. This is part of ongoing work to optimize GUI and the editor.
2021-07-15Misc cleanup of header includesRémi Verschelde
Was looking for misuse of module headers without checking that the module is actually enabled and got carried away...
2021-07-13Implement the ability to disable classesreduz
* This PR adds the ability to disable classes when building. * For now it's only possible to do this via command like: `scons disable_classes=RayCast2D,Area3D` * Eventually, a proper UI will be implemented to create a build config file to do this at large scale, as well as detect what is used in the project.