Commit Graph

16 Commits (master)

Author SHA1 Message Date
elsid 08b026e907
Store copies of ref_ptr for btCollisionShape wrappers in Navigator
To keep btCollisionShape lifetime.
3 years ago
psi29a c68cecb1eb Merge branch 'optimize_off_mesh_connections' into 'master'
Optimize off mesh connections

See merge request OpenMW/openmw!969

(cherry picked from commit 9dcea247d2cd7d25d719fabc142cef5360233e2a)

3e98db8d Fix styleguide
7f65a2c4 Remove unused code
81e569c3 Move OffMeshConnectionsManager implementation into cpp
a8ba9a0e Cleanup unused tile positions from OffMeshConnectionsManager
ff1af5e8 Use only off mesh connections starting or ending in a given tile
1552e7e3 Add pathgrid edges as one direction off mesh connection
4 years ago
elsid 4a6961b365
Trigger navmesh update on moved player only when player tile has been changed 4 years ago
psi29a f1f1703441 Merge branch 'fix_navmesh_wait' into 'master'
Fix redundant waiting until navmesh is generated

See merge request OpenMW/openmw!861
4 years ago
elsid 59f89d22f8
Apply min distance only for not present tiles
To avoid waiting when navmesh update is triggered by transformed object for
already present tiles.
4 years ago
jvoisin 28d5e5e8be Remove some superfluous includes in components/detournavigator 4 years ago
elsid f169f8e6f0
Wait until navmesh is generated for interior cells
Add special loading progress bar.

It should be fast enough to not keep loading screen for noticably long but
will provide better pathfinding for actors inside interior cells.
4 years ago
elsid 39c0ce9ddf
Build limited path for far destinations
When distance between start and end point is greater than max radius of area
possibly covered by navmesh there is no way to find path via navmesh. Also if
distance is greater than cell size navmesh might not exists withing mentioned
area because cell is not loaded therefore navmesh is not generated. So minumum
of these values is used to limit max path distance. Assuming that path
actually exists it's possible to build path to the edge of a circle. When
actor reaches initial edge path is built further. However it will not be
optimal.
4 years ago
Evil Eye eb07818f13 Ignore agents without bounding boxes 4 years ago
bzzt lost a hitlab login c1ebd9474b stop navmesh updates when ai off
Signed-off-by: Bret Curtis <psi29a@gmail.com>
5 years ago
elsid c4cd3b2c4f
Add pathgrid to navmesh as off mesh connection 5 years ago
elsid 7ae7cb181d
Support recast mesh rendering 5 years ago
elsid 4624f31788
Report navigator stats 6 years ago
elsid 8d2af94b75
Use default objects for NavigatorStub methods result 6 years ago
elsid 0479ebf5ae
Remove unused actors and navmeshes on update
When there is only one actor (player) on a scene and it moving to other
cell first it will be removed from navigator then added. Remove cause
navmesh removing for its half extents. After it is added navmesh for
same half extents is created and added. While this all happens there are
still jobs for old navmesh are processing. Old navmesh still exists
because it is stored by shared pointer. So jobs take tiles from cache
and place them into old navmesh. After that other jobs take same tiles
from cache (half extents and coordinates are equal) and place them into
other navmesh. dtNavMesh changes tile data on add and remove. Adding tile
to two dtNavMesh corrupts tile in both nameshes.
6 years ago
elsid 1d3668cd22
Add Navigator interface 6 years ago