Commit Graph

279 Commits

Author SHA1 Message Date
wrenge 0876d3adcf Merge branch 'risky_optimizations' 2024-11-13 13:55:25 +03:00
wrenge 815a83e3cb Use precached queue instead of linked list 2024-11-13 13:42:43 +03:00
wrenge 38a8029b6e Merge branch 'risky_optimizations' 2024-11-13 12:57:33 +03:00
wrenge 418a39a576 MergeCorridorEndMoved alloc fix 2024-11-13 12:57:19 +03:00
wrenge 05613f196f MergeCorridorStartShortcut alloc fix 2024-11-13 12:52:33 +03:00
wrenge 4dee6b20b5 typo fix 2024-11-13 12:48:02 +03:00
wrenge 49da3fb454 Removed allocations from MergeCorridorStartMoved 2024-11-13 12:09:48 +03:00
wrenge c7c6e53d61 Made list in DtPathCorridor.cs readonly 2024-11-13 11:32:38 +03:00
wrenge 858e094ea0 Revert "Allocation free merge corridor"
This reverts commit acd3f8d879.
2024-11-13 11:11:12 +03:00
wrenge acd3f8d879 Allocation free merge corridor 2024-11-13 10:22:04 +03:00
wrenge 2397f23fc3 Queries change 2024-11-12 16:56:11 +03:00
wrenge c0b916a0d1 Use object pools instead of allocating new lists 2024-11-12 14:47:57 +03:00
wrenge 3e754529e5 Node pool change 2024-11-12 14:10:20 +03:00
wrenge ff930712ee Use rented array instead of allocating 2024-11-12 11:18:14 +03:00
wrenge 6fe6844efd Span access 2024-11-11 14:26:35 +03:00
wrenge c8104cec4d Replaced arrays with spans in query. Replaced array allocation with buffer rent in query. 2024-11-11 14:19:43 +03:00
wrenge 724be6f3b2 Backport 20a86b5bae 2024-11-11 11:34:47 +03:00
wrenge 0f28fa26ec Merge branch 'main'
# Conflicts:
#	src/DotRecast.Detour.Crowd/DtObstacleAvoidanceQuery.cs
#	src/DotRecast.Detour/DtBVNode.cs
#	src/DotRecast.Detour/DtNavMesh.cs
#	src/DotRecast.Detour/DtNavMeshQuery.cs
#	src/DotRecast.Detour/DtPoly.cs
#	src/DotRecast.Detour/DtPolyDetail.cs
#	src/DotRecast.Recast.Toolset/RcNavMeshBuildSettings.cs
#	test/DotRecast.Core.Test/RcRentedArrayTest.cs
2024-11-11 11:09:29 +03:00
Georgiy Sadovnikov 20a86b5bae fix getting normal vector from raycast 2024-11-05 16:22:24 +03:00
ikpil ea437ef020 Changed bmin/bmax from int[] to RcVec3i for improved memory efficiency 2024-10-13 16:30:52 +09:00
ikpil f18bedb02d force utf-8 2024-09-05 22:57:28 +09:00
ikpil bc7818a1c5 [Upstream] fix: Fix raycast shortcuts (@Sarofc)
Raycast is performed in 2d and it might report reaching the given position even if the Y coordinate is different than the target. Therefore, it is necessary to check what poly is actually hit by raycast before taking a shortcut.

- https://github.com/recast4j/recast4j/issues/196
- https://github.com/recast4j/recast4j/pull/197
- https://github.com/ikpil/DotRecast/issues/72
2024-07-18 20:06:36 +09:00
ikpil cf7aec90ee Changed DtNavMeshQuery.GetPolyWallSegments() to use Span<T> for enhanced performance, memory efficiency. 2024-07-16 22:19:41 +09:00
ikpil 84419b1d52 Changed memory handling to use stackalloc in DtNavMeshQuery.GetPolyWallSegments for reducing SOH
Refactored to use stack-allocated Span<DtSegInterval> instead of dynamically allocating List<DtSegInterval>. This reduces potential heap allocations and improves performance by efficiently managing memory within a fixed size context.
2024-07-14 23:51:04 +09:00
ikpil c562f8f6a1 Changed new RcVec3f[3] to stackalloc RcVec3f[3] in DtNavMesh.GetPolyHeight() to reduce heap allocation. 2024-07-14 00:09:08 +09:00
ikpil ab2c520076 Changed `new float[]` to `stackalloc float[]` in `DtConvexConvexIntersections.Intersect()` 2024-07-05 00:15:03 +09:00
ikpil 4743ba68f9 Changed static readonly to const 2024-07-04 23:34:25 +09:00
ikpil fa2ff6f133 comment 2024-07-04 01:14:31 +09:00
ikpil a282a80356 Changed vertCount and triCount to byte in DtPolyDetail 2024-07-02 13:47:31 +09:00
ikpil 35f5c63d77 DtStraightPathFlags int to byte 2024-06-25 00:17:07 +09:00
ikpil e5d5867c56 rename RcVecUtils to RcVec 2024-06-25 00:02:59 +09:00
ikpil 320c7b4c65 Removed RcVecUtils.Dot2D(this RcVec3f @this, Span<float> v, int vi) 2024-06-08 20:56:55 +09:00
ikpil ed7173dd51 Removed RcVecUtils.Min(), RcVecUtils.Max() 2024-06-08 14:21:38 +09:00
ikpil 2a45ec021c added DT_NODE_PARENT_BITS 2024-05-31 23:25:35 +09:00
ikpil 34d2ef639a update `DotRecast Copyright (c) 2023-2024 Choi Ikpil ikpil@naver.com` 2024-05-25 22:42:57 +09:00
ikpil e6f515f08a update comment 2024-05-25 21:37:04 +09:00
ikpil aeefed7fbb add DT_VERTS_PER_POLYGON 2024-05-25 00:34:24 +09:00
ikpil 1b4f5af155 update comment 2024-05-24 22:14:57 +09:00
ikpil 886be3712f Changed `DtWriter` to a static class and renamed it to `RcIO` 2024-05-23 22:39:03 +09:00
ikpil 99224251dc Changed `List<DtStraightPath>` to `Span<DtStraightPath>` for enhanced memory efficiency 2024-05-23 21:19:16 +09:00
ikpil 5b6905bd8f Changed `MAX_STEER_POINTS` from class constant to local. 2024-05-22 23:49:15 +09:00
ikpil c7f03d00ff Changed `Dictionary<int, List<DtMeshTile>>` to `DtMeshTile[]` to optimize memory usage 2024-05-22 01:34:11 +09:00
ikpil ec9ebe28b9 long[] -> Span<long> 2024-05-20 00:16:36 +09:00
ikpil c9a54d4b4e Added `DtCollectPolysQuery` and `FindCollectPolyTest` 2024-05-19 09:16:25 +09:00
ikpil 3808c13876 Changed `IDtPolyQuery` interface to make `Process()` more versatile 2024-05-18 14:50:22 +09:00
ikpil 3b5e85eeb6 added Tile hash lookup size in DtNavMesh 2024-05-18 00:10:58 +09:00
ikpil 886afd20cd reduced memory usage of DtLink. 2024-05-17 23:46:48 +09:00
ikpil c3208f7968 changed polyLinks to firstLinks 2024-05-17 23:46:48 +09:00
ikpil 4543df0b90 update comment 2024-05-15 23:06:52 +09:00
ikpil a649081a5b update comment DtMeshTile class 2024-05-14 23:46:54 +09:00