summaryrefslogtreecommitdiffstats
path: root/modules/navigation/navigation_mesh_generator.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Move 3D-only navigation code to its own subfolderAaron Franke2024-02-261-78/+0
|
* Move navigation mesh baking to NavigationServersmix82023-08-031-717/+3
| | | | Moves navigation mesh baking to NavigationServer.
* Fix NavigationMesh not clearing old polygonssmix82023-06-231-0/+1
| | | | Fixes NavigationMesh not clearing old polygons.
* Fix potential crashes in navmesh bake geometry functionssmix82023-06-191-0/+10
| | | | Fixes potential crashes in navmesh geometry functions.
* Fix for threaded NavigationMesh baking under new thread guardssmix82023-06-141-183/+137
| | | | Fixes threaded NavigationMesh baking under new SceneTree thread guards that blocked the process.
* Fix NavigationMesh baking for HeightMapShapesmix82023-04-181-4/+4
| | | | Fixes NavigationMesh baking for HeightMapShape.
* Use range iterators in LocalVector loopskobewi2023-01-211-6/+2
|
* Merge pull request #70904 from huangjiaminhhh/masterRémi Verschelde2023-01-121-3/+3
|\ | | | | Fix for navmesh baking when parsing StaticBody colliders
| * Fix for navmesh baking. Error message: Condition “!shapes.has(p_owner)” ↵huangjiamin2023-01-031-3/+3
| | | | | | | | is true
* | One Copyright Update to rule them allRémi Verschelde2023-01-051-29/+29
|/ | | | | | | | | | | | | | | | | | | | 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".
* Fix typo and ensure backwards compatibility for changed property namesJosh Jones2022-12-201-3/+3
| | | | | | | | | | | | | 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>
* Fix Navigation API abbreviations inconsistencysmix82022-12-171-51/+51
| | | | Schema for navigation to name user facing API with "navigation" without abbreviation and e.g. NavigationServer internals with abbr "nav".
* Optimize Convex CollisionJuan Linietsky2022-10-131-6/+6
| | | | | | | | 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.
* Exclude disabled CollisionShapes from Navigationmesh bakingsmix82022-09-141-0/+3
| | | | Excludes disabled CollisionShapes from the geometry parsing for the NavigationMesh baking.
* Replace AABB has_no_volume with has_volumeAaron Franke2022-09-041-5/+1
| | | | Also replace has_no_surface with has_surface
* Add NavigationMesh baking for HeightMapShapesmix82022-08-051-0/+89
| | | | Adds HeightMapShape for StaticColliders and GridMap to the NavigationMeshGenerator for baking NavigationMesh.
* Merge pull request #62293 from smix8/navigation_disable_editorprogress_bake_4.xRémi Verschelde2022-06-231-0/+7
|\
| * Disable thread-unsafe EditorProgress for navmesh bakingsmix82022-06-221-0/+7
| | | | | | | | 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.
* | Implement NavigationMesh bake areasmix82022-06-231-0/+15
|/ | | | Adds two new properties to NavigationMesh resources to restrict the navmesh baking to an area enclosed by an AABB with volume.
* Add warnings when NavigationMesh bake settings result in precision losssmix82022-06-041-0/+25
| | | | Add warnings when NavigationMesh bake settings result in precision loss.
* Fix MultiMeshInstance crash in navmesh baking when MultiMesh Resource is emptysmix82022-05-271-8/+10
| | | | Fix MultiMeshInstance crash in navmesh baking when MultiMesh Resource is empty
* Clamp NavigationMesh sample_distance above zerosmix82022-05-161-1/+1
| | | | | | | 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.
* Add Warning to NavigationMesh bake when source geometry is suspiciously bigsmix82022-05-111-0/+8
| | | | 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.
* Use CollisionObject3D API when baking the navmesh with static colliders, ↵trollodel2022-05-021-8/+10
| | | | instead of collecting CollisionShape3D nodes
* Fix navmesh bakingPawel Lampe2022-04-081-50/+54
| | | | | | | - 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
* Editor: Cleanup some includes dependenciesRémi Verschelde2022-02-151-1/+0
| | | | | | | | | | | 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.
* Fix transforms involved into navmesh bakingPawel Lampe2022-01-311-14/+9
| | | | | | | 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
* Consider gridmap collisions in navigation bakerafallus2022-01-161-8/+94
|
* Update copyright statements to 2022Rémi Verschelde2022-01-031-2/+2
| | | | Happy new year to the wonderful Godot community!
* NavigationMeshInstance: Fix typo to 'vertices'Rémi Verschelde2021-12-031-24/+24
|
* Let MultiMeshInstances affect NavigationMeshesCarlo Cabanilla2021-12-021-0/+16
|
* Modules: Make sure to include modules_enabled.gen.h where neededRémi Verschelde2021-11-121-1/+2
|
* Merge pull request #52367 from Duroxxigar/improve-nav-error-messagesRémi Verschelde2021-10-211-1/+1
|\ | | | | Improve readability for failing errors in nav area
| * Improved readability for failing error conditionsDuroxxigar2021-10-081-1/+1
| |
* | Rename WorldMarginShape to WorldBoundaryShapePouleyKetchoupp2021-09-141-1/+1
|/
* Make radius & height in CapsuleShape3D independentPouleyKetchoupp2021-08-111-1/+1
| | | | | Also changed CapsuleMesh to make settings consistent between render and physics.
* Improve NavigationMesh typing, parameter validation and documentationHaoyu Qiu2021-08-111-2/+2
|
* Use C++ iterators for Lists in many situationsAaron Franke2021-07-231-2/+2
|
* Misc cleanup of header includesRémi Verschelde2021-07-151-1/+1
| | | | | Was looking for misuse of module headers without checking that the module is actually enabled and got carried away...
* Rename `GdNavigationServer` to `GodotNavigationServer`Rémi Verschelde2021-06-301-0/+583
And rename `gdnavigation` module to simply `navigation`.