elsid
14d0ca4cd3
Cast float to btScalar
2020-05-13 18:44:11 +02:00
elsid
b150d681a9
Update same navmesh tile with limited frequency
2020-05-01 18:05:58 +02:00
elsid
10daadefbe
Add missing include
2020-04-30 21:58:00 +02:00
Bret Curtis
b7f7aabd8b
Merge pull request #2806 from elsid/detournavigator_tests
...
Add detournavigator test for multiple worker threads
2020-04-30 14:48:02 +02:00
elsid
899a6b5aa3
Workaround for GCC 5 bug
...
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61636
2020-04-29 13:54:52 +02:00
elsid
bd1ef4dd6d
Add detournavigator test for multiple worker threads
2020-04-26 22:00:55 +02:00
Alexei Dobrohotov
d42cb4f16d
Merge pull request #2805 from elsid/detournavigator_update_callback
...
Use callback to handle changed tiles
2020-04-26 22:52:40 +03:00
elsid
df6e85b619
Use callback to handle changed tiles
...
Instead of collecting changed tiles into a temporary vector.
2020-04-25 17:56:41 +02:00
elsid
7502db1570
Add number of thread jobs to update jobs stats
2020-04-25 17:51:50 +02:00
elsid
208a50340d
Specialize DetourNavigator::ObjectId ctor for pointers
...
To fix msvc error:
components\detournavigator\objectid.hpp(14,13): error C2440: 'reinterpret_cast': cannot convert from 'const T' to 'size_t'
with
[
T=unsigned long
]
2020-04-13 20:48:34 +02:00
Andrei Kortunov
2e7712a390
Fix C5204 warnings by adding default virtual destructors
2020-03-26 14:49:12 +04:00
elsid
5168f2059f
Compare revisions by equality to support overflow
2020-03-14 09:38:24 +01:00
elsid
7ae7cb181d
Support recast mesh rendering
2020-03-14 09:38:24 +01:00
elsid
349040ffb2
Use status codes to handle navigator errors instead of exceptions
...
For find path use case.
2020-02-04 22:33:56 +01:00
elsid
f7caeefddb
Fallback to straight path when navmesh and pathgrind are not available
2020-01-29 11:14:07 +01:00
elsid
1e106013a0
Use navmesh to find wander destination outside pathgrid for ground based actors
...
Use dtNavMeshQuery::findRandomPointAroundCircle from recastnavigation
2020-01-21 00:01:06 +01:00
Andrei Kortunov
3704acf857
Unify streams usage to support non-ASCII paths (bug #5239 )
2020-01-03 07:10:17 +04:00
Andrei Kortunov
cd81f81fb6
Initialize variables to avoid GCC warnings
2019-12-22 10:44:14 +04:00
elsid
7ec5a20c64
Filter recast mesh triangles by global bounding box
...
Except heightfields to reduce slow down.
2019-11-30 13:19:27 +01:00
elsid
7729e396b2
Fix exceptions logging
2019-11-30 10:33:14 +01:00
Andrei Kortunov
6832a2fa9a
Remove BOM from CPP files (allows to build OpenMW with LCC on Elbrus)
2019-05-21 19:22:34 +04:00
elsid
c683dc8565
Lock navmesh tile by thread while processing
...
To avoid duplicated work on a same tile by different threads.
If tile is locked by another thread, then post job into this thread queue.
2019-04-10 22:01:50 +02:00
Andrei Kortunov
14b756a692
Use a generic logging system for RecastNavigation
2019-04-08 20:31:21 +04:00
Bret Curtis
45221418bd
Merge pull request #2260 from elsid/fix_clean_unused_navmeshes
...
Fix clean unused navmeshes
2019-03-18 08:57:46 +01:00
elsid
4624f31788
Report navigator stats
2019-03-17 22:15:18 +03:00
elsid
8adc83f6e2
Fix clean unused navmeshes
...
weak_ptr doesn't have constructor for shared_ptr&& type, so ptr wasn't
moved, just copied.
2019-03-17 21:28:34 +03:00
elsid
dd0b45ede6
Do not pass nullptr to std::memcmp
2019-03-14 22:15:57 +03:00
Bret Curtis
cb1a5f3679
Merge pull request #2245 from elsid/navigator_refactor
...
Refactor navigator related code
2019-03-11 07:51:43 +01:00
Bret Curtis
7b793b8809
Merge pull request #2244 from elsid/navmesh_cache_item_refactor
...
Make NavMeshCacheItem consistent
2019-03-11 07:51:22 +01:00
elsid
68948bc847
Avoid key allocation to find tile in cache
2019-03-11 03:01:41 +03:00
elsid
849f2078c1
Swap outside critical section
2019-03-10 23:58:49 +03:00
elsid
8d2af94b75
Use default objects for NavigatorStub methods result
2019-03-10 23:58:49 +03:00
elsid
ece111d05a
Check for jobs using predicate
2019-03-10 23:58:49 +03:00
elsid
c05fc9e054
Add missing cleanup
2019-03-10 23:58:49 +03:00
elsid
ce9aebcba1
Clear all changed tiles after post
2019-03-10 23:58:48 +03:00
elsid
9d61c49478
Store key by reference in tiles map
2019-03-10 23:56:52 +03:00
elsid
614d5243c3
Make NavMeshCacheItem consistent
...
Move all logic related to this type into its methods.
2019-03-10 23:07:36 +03:00
elsid
f6a1d3cecf
Store weak pointers to navmesh in jobs queue
...
To avoid useless processing for removed navmeshes.
2019-03-10 17:06:19 +03:00
elsid
ccc709a316
Store guarded navmesh cache item in shared_ptr
...
Remove useless SharedGuarded type.
2019-03-10 17:06:19 +03:00
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.
2019-03-10 17:06:15 +03:00
Bret Curtis
c20e69ef24
Merge pull request #2227 from elsid/fix_twitchy_massive_creatures
...
Fix twitchy movement for massive creatures (bug #4907 )
2019-03-09 02:11:11 +01:00
elsid
b9f21ec81a
Use custom steps size to make smooth path depending on half extents
2019-03-08 22:33:34 +03:00
elsid
f2e47d640d
Add option to limit max number of navmesh tiles
2019-03-08 17:39:04 +03:00
elsid
ff47df4f2c
Repost navmesh update jobs when failed because of out of memory
...
DT_OUT_OF_MEMORY error is returned when limit of tiles is reached.
2019-03-08 17:39:04 +03:00
elsid
82e2739bae
Notify workers when only at least one job is posted
2019-03-08 15:27:16 +03:00
elsid
b9b8ed177c
Store priority values as named fields
2019-03-08 15:23:36 +03:00
elsid
0c16fef285
Add navmesh update status builder
2019-03-08 15:07:07 +03:00
elsid
14c9190f49
Move tile replacement into separate function
2019-03-08 15:06:11 +03:00
elsid
b6243e7d1f
Fix name styleguide
2019-03-08 15:02:49 +03:00
elsid
27d7452267
Update scaled objects in navigator
2019-03-04 22:59:39 +03:00