summaryrefslogtreecommitdiff
path: root/modules/navigation/navigation_mesh_generator.cpp
AgeCommit message (Collapse)Author
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".
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-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-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-09-14Exclude disabled CollisionShapes from Navigationmesh bakingsmix8
Excludes disabled CollisionShapes from the geometry parsing for the NavigationMesh baking.
2022-09-04Replace AABB has_no_volume with has_volumeAaron Franke
Also replace has_no_surface with has_surface
2022-08-05Add NavigationMesh baking for HeightMapShapesmix8
Adds HeightMapShape for StaticColliders and GridMap to the NavigationMeshGenerator for baking NavigationMesh.
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-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-04Add warnings when NavigationMesh bake settings result in precision losssmix8
Add warnings when NavigationMesh bake settings result in precision loss.
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-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-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-02Use CollisionObject3D API when baking the navmesh with static colliders, ↵trollodel
instead of collecting CollisionShape3D nodes
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-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-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-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-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-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-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-06-30Rename `GdNavigationServer` to `GodotNavigationServer`Rémi Verschelde
And rename `gdnavigation` module to simply `navigation`.