elsid
5972520b1a
Make sure areas size is 2 for rectangle
2021-11-08 18:49:17 +01:00
elsid
0985d8e03d
Handle failed NavMesh allocation
2021-08-09 17:54:19 +02:00
elsid
86e6d3dac8
Do not cache navmesh when only object transformation is changed
...
This saves cache capacity when a scene contains objects contantly transforming
by scripts and causing changes in navmesh. The probability to get cache hit for
such states is almost zero because even a constant change in a single float
value may give up to 2^32 different states.
2021-08-08 02:38:20 +02:00
elsid
3cbe93358a
Move dtNavMeshParams initialization to where it's required
2021-08-08 02:30:48 +02:00
elsid
9a5ec5fd03
Store heightfields as array of heights instead of triangles
...
To reduce size of RecastMesh and therefore cache size.
2021-07-26 00:22:21 +02:00
elsid
24b802b3d8
Simplify adding water to recast mesh
...
Remove redundant computations and conversions.
2021-07-26 00:22:21 +02:00
elsid
5d6c93566d
Rename DetourNavigator::Water -> Cell
2021-07-26 00:22:21 +02:00
elsid
753767d6d9
Store only water shift
...
Rotation is not used.
2021-07-26 00:22:20 +02:00
elsid
a1549321d7
Move Water struct out of RecastMesh class
2021-07-26 00:22:20 +02:00
elsid
d60edb36aa
Make RecastMesh independent from recast scale factor
...
To avoid scaling until it's required by delaying coordinates conversion until
navmesh generation.
2021-07-26 00:22:20 +02:00
elsid
af7059373c
Make RecastMesh independent from the order of RecastMeshBuilder calls
...
To make sure RecastMesh objects are equal if built with the same data but in
different order. Will be used later when there will be more than one place
building RecasMesh objects.
2021-07-26 00:22:20 +02:00
elsid
07c70dfb73
Remove unused local variables
2021-07-26 00:22:20 +02:00
elsid
beeb882ea8
Do not use off mesh connections as a part of navmesh cache key
...
To reduce cache size and make it more flexible.
Adding off mesh connections to the navmesh is the last step of navmesh
generation and it's very fast comparing to other steps (microseconds vs
milliseconds). Having less cache size makes get and set operations almost 2x
times faster that also have an order of microseconds. So in total there is
no performance impact.
2021-07-14 12:19:17 +02:00
elsid
1552e7e3e3
Add pathgrid edges as one direction off mesh connection
2021-06-27 17:48:44 +02:00
jvoisin
28d5e5e8be
Remove some superfluous includes in components/detournavigator
2021-05-14 20:45:59 +02:00
elsid
ec87b3f8f7
Remove redundant ChunkyTriMesh
...
This AABB tree required when need to filter out input mesh that has not
influence navmesh tile output. This filtering is already done before. Each
recast mesh corresponds to a single navmesh tile and has appropriate bounds.
2021-05-04 13:00:06 +02:00
elsid
bce06df254
Add missing array header
2021-05-04 13:00:06 +02:00
elsid
22aebcea74
Remove useless rcMarkWalkableTriangles call
...
It fills areas.data with walkable triangles but right after it's overwritten
and rcClearUnwalkableTriangles is called instead that fills areas.data with
unwalkable triangles.
2021-05-04 02:23:07 +02:00
elsid
f2ebad5115
Return cached element when set existing
2021-03-25 19:28:41 +01:00
elsid
f637dc38bd
Add cached flag to update navmesh status
2020-10-08 19:55:55 +02:00
elsid
c4cd3b2c4f
Add pathgrid to navmesh as off mesh connection
2020-06-12 21:04:02 +02:00
Andrei Kortunov
14b756a692
Use a generic logging system for RecastNavigation
2019-04-08 20:31:21 +04: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
ccc709a316
Store guarded navmesh cache item in shared_ptr
...
Remove useless SharedGuarded type.
2019-03-10 17:06:19 +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
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
Grigory Latyshev
3872d7476b
Move makeOsgVec3f() to settingsutils.hpp
...
Remove all other makeOsgVec3f() implementations
2019-02-28 20:03:42 +00:00
Andrei Kortunov
3032b177a1
Remove redundant includes
2019-02-23 08:02:12 +04:00
Andrei Kortunov
4ee15ddcb9
Fix many Coverity Scan warnings
2018-11-14 11:21:49 +04:00
elsid
b477775e16
Use callback to iterate over chunks
2018-11-04 18:34:31 +03:00
elsid
abc51a8a17
Add settings option to set max number of polygons per navmesh tile
2018-10-28 15:36:47 +03:00
elsid
0f6a64ad54
Split makeNavMeshTileData
2018-10-13 22:22:15 +03:00
elsid
fb655cb04f
Remove macroses to check recastnavigation functions result
2018-10-13 22:22:15 +03:00
elsid
ed73d130f9
Cache navmesh tiles
...
Use LRU modification to hold currently used items. Use RecastMesh binary
data for item key.
Store original pointer of btCollisionShape in user pointer to make available
it as an identifier within all duplicates. Use pointer to heights data array
for btHeightfieldTerrainShape.
2018-10-13 22:22:12 +03:00
elsid
346e9e3141
Add off mesh connections for doors without teleport
2018-10-13 22:16:33 +03:00
elsid
c95cea414c
Support water for NavMesh
2018-10-13 22:16:32 +03:00
elsid
72f211ef28
Add enums for area type and flags
2018-10-13 22:16:32 +03:00
elsid
fa23b590a4
Add unwalkable areas to NavMesh
2018-10-13 22:16:32 +03:00
elsid
e24d4d7052
Explicitly use RC_NULL_AREA constant to mark unwalkable areas
2018-10-13 22:16:31 +03:00
elsid
84949bedb1
Remove and add tile in single critical section
2018-10-13 22:16:30 +03:00
elsid
4aba0fa85f
Limit number of NavMesh tiles to add by distance from player tile
2018-10-13 22:16:30 +03:00
elsid
d2fd9abd51
Split RecastMesh into tiles
2018-10-13 22:16:30 +03:00
elsid
c26773bd29
Log update NavMesh status
2018-10-13 22:16:29 +03:00
elsid
937e8e1803
Allow to create empty RecastMesh
2018-10-13 22:16:29 +03:00
elsid
dd5f4498f6
Increment NavMesh revision on remove or add tile
2018-10-13 22:16:29 +03:00
elsid
ed3a255f65
Do not use NavMesh to find changed tiles
2018-10-13 22:16:28 +03:00
elsid
f8909218ee
Store recast mesh bounds
2018-10-13 22:16:27 +03:00
elsid
d1d034a1ec
Update NavMesh one by one tile in order from nearest to player
2018-10-13 22:16:26 +03:00