summaryrefslogtreecommitdiff
path: root/modules/recast/navigation_mesh_generator.cpp
AgeCommit message (Collapse)Author
2019-10-16Add option to create navmesh from objects in groupjfons
Adds a new NavigationMesh property to select which objects will be taken into account for the generation. By default it will use all the NavigationMeshInstance children to keep compatibility. The new modes allow to build the NavigationMesh from all the nodes belonging to a specific group, and optionally include their children too.
2019-08-18Baking gridmap navmesh.lukasz.liberadzki
2019-06-13Take CSG into account for nav-mesh generationjfons
2019-05-23Various improvements to NavigationMesh generationjfons
* Expose EditorNavigationMeshGenerator as an engine singleton so users can generate navmesehes from `tool` scripts. * Add support for generating navmeshes from static colliders. All collision shapes are supported except for Plane (since Plane is an infinite collider and navmeshes need to have finite geometry). * When using static colliders as a geometry source, a layer mask can be specified to ignore certain colliders. * Don't rely on global transform. It still should give the exact same results but allows for building navmeshes on nodes that are not in the tree (useful in `tool` scripts). * Update navigation gizmos after every new bake. This work has been kindly sponsored by IMVU.
2019-05-11Fix orientation of generated navmeshesBojidar Marinov
Fixes #23817
2019-02-20Add -Wshadow=local to warnings and fix reported issues.marxin
Fixes #25316.
2019-01-01Update copyright statements to 2019Rémi Verschelde
Happy new year to the wonderful Godot community!
2018-07-26Reduce unnecessary COW on Vector by make writing explicitHein-Pieter van Braam
This commit makes operator[] on Vector const and adds a write proxy to it. From now on writes to Vectors need to happen through the .write proxy. So for instance: Vector<int> vec; vec.push_back(10); std::cout << vec[0] << std::endl; vec.write[0] = 20; Failing to use the .write proxy will cause a compilation error. In addition COWable datatypes can now embed a CowData pointer to their data. This means that String, CharString, and VMap no longer use or derive from Vector. _ALWAYS_INLINE_ and _FORCE_INLINE_ are now equivalent for debug and non-debug builds. This is a lot faster for Vector in the editor and while running tests. The reason why this difference used to exist is because force-inlined methods used to give a bad debugging experience. After extensive testing with modern compilers this is no longer the case.
2018-05-30Move NavigationMeshEditorPlugin to Recast module as should beRémi Verschelde
Modules can register their own editor plugins (like GridMap does), so no need to put module-specific classes in the `editor/` folder. Also cleans up the previous SCons env pollution from the Recast module, integrating its code into libmodules as other modules.