2024-02-01 17:02:58 +03:00
|
|
|
# Changelog
|
|
|
|
|
|
|
|
All notable changes to this project will be documented in this file.
|
|
|
|
|
|
|
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
|
|
|
|
|
2024-02-01 17:18:01 +03:00
|
|
|
## [Unreleased] - yyyy-mm-dd
|
2024-02-01 17:02:58 +03:00
|
|
|
|
2024-06-03 17:33:14 +03:00
|
|
|
### Added
|
2024-08-04 12:15:16 +03:00
|
|
|
- Added RcBinaryMinHeap ([@Sarofc](https://github.com/Sarofc))
|
|
|
|
- Added DotRecast.Benchmark ([@Sarofc](https://github.com/Sarofc))
|
2024-06-03 17:33:14 +03:00
|
|
|
|
|
|
|
### Fixed
|
2024-07-18 14:04:54 +03:00
|
|
|
- Fix raycast shortcuts ([@Sarofc](https://github.com/Sarofc)) [#72](https://github.com/ikpil/DotRecast/issues/72)
|
2024-09-20 20:54:01 +03:00
|
|
|
- Fix dynamic mesh bounds calculation ([@ppiastucki](https://github.com/ppiastucki)) [#77](https://github.com/ikpil/DotRecast/issues/77)
|
|
|
|
- issuer : [@OhJeongrok](https://github.com/OhJeongrok)
|
2024-07-08 18:10:38 +03:00
|
|
|
|
|
|
|
### Changed
|
2024-07-12 17:55:35 +03:00
|
|
|
- Changed data structure of 'neis' from List<byte> to byte[] for optimized memory usage and improved access speed in `DtLayerMonotoneRegion`
|
2024-07-13 18:09:08 +03:00
|
|
|
- Changed new RcVec3f[3] to stackalloc RcVec3f[3] in DtNavMesh.GetPolyHeight() to reduce heap allocation
|
2024-07-14 17:51:04 +03:00
|
|
|
- Changed memory handling to use stackalloc in DtNavMeshQuery.GetPolyWallSegments for reducing SOH
|
2024-07-16 16:19:41 +03:00
|
|
|
- Changed DtNavMeshQuery.GetPolyWallSegments() to use Span<T> for enhanced performance, memory efficiency.
|
2024-07-08 18:10:38 +03:00
|
|
|
|
|
|
|
### Removed
|
|
|
|
- Nothing
|
|
|
|
|
|
|
|
### Special Thanks
|
|
|
|
- [@Doprez](https://github.com/Doprez)
|
|
|
|
|
|
|
|
|
|
|
|
## [2024.3.1] - 2024-07-09
|
|
|
|
|
|
|
|
### Added
|
|
|
|
- Nothing
|
|
|
|
|
|
|
|
### Fixed
|
|
|
|
- Fixed bug where the dynamic voxel save file browser doesn't appear in `Recast.Demo`
|
2024-06-03 17:33:14 +03:00
|
|
|
|
|
|
|
### Changed
|
2024-06-11 18:41:39 +03:00
|
|
|
- Changed to reuse samples and edges list in `BuildPolyDetail()`
|
|
|
|
- Changed `heights`, `areas`, `cons`, and `regs` arrays to byte arrays for uniformity and efficiency in `DtTileCacheLayer`
|
|
|
|
- Changed `reg`, `area` arrays to byte arrays for uniformity and efficiency in `DtTileCacheContour`
|
|
|
|
- Changed `RcChunkyTriMesh` to separate the function and variable.
|
2024-06-19 07:46:04 +03:00
|
|
|
- Changed to consolidate vector-related functions into one place.
|
2024-06-27 08:04:30 +03:00
|
|
|
- Changed stack handling from List to a fixed-size array with manual index management for optimization in `RcLayers.BuildHeightfieldLayers()`
|
|
|
|
- Changed to use Span<byte> and stackalloc for improved performance and memory management in `RcLayers.BuildHeightfieldLayers()`
|
2024-07-02 07:47:31 +03:00
|
|
|
- Changed vertCount and triCount to byte in `DtPolyDetail`
|
2024-07-04 18:15:03 +03:00
|
|
|
- Changed `new float[]` to `stackalloc float[]` in `DtConvexConvexIntersections.Intersect()`
|
2024-07-07 06:38:09 +03:00
|
|
|
- Changed agents management from list to dictionary in `DtCrowd`
|
2024-07-07 06:55:51 +03:00
|
|
|
- Changed to efficiently stack nearby DtCrowdAgents in `DtCrowd.GetNeighbours()`
|
2024-07-07 08:58:38 +03:00
|
|
|
- Changed to limit neighbor search to a maximum count and use array for memory efficiency in `DtCrowd.AddNeighbour()`
|
2024-06-26 17:48:24 +03:00
|
|
|
|
2024-06-03 17:33:14 +03:00
|
|
|
### Removed
|
2024-06-08 14:56:55 +03:00
|
|
|
- Removed RcMeshDetails.VdistSq2(float[], float[])
|
2024-06-03 18:34:07 +03:00
|
|
|
- Removed RcVecUtils.Dot()
|
2024-06-07 15:31:11 +03:00
|
|
|
- Removed RcVecUtils.Scale()
|
2024-06-07 15:44:59 +03:00
|
|
|
- Removed RcVecUtils.Subtract(RcVec3f i, float[] verts, int j)
|
2024-06-07 16:46:08 +03:00
|
|
|
- Removed RcVecUtils.Subtract(float[] verts, int i, int j)
|
2024-06-08 08:21:38 +03:00
|
|
|
- Removed RcVecUtils.Min(), RcVecUtils.Max()
|
2024-06-08 08:24:47 +03:00
|
|
|
- Removed RcVecUtils.Create(float[] values)
|
2024-06-08 14:56:55 +03:00
|
|
|
- Removed RcVecUtils.Dot2D(this RcVec3f @this, Span<float> v, int vi)
|
2024-06-03 17:33:14 +03:00
|
|
|
|
|
|
|
### Special Thanks
|
|
|
|
- [@Doprez](https://github.com/Doprez)
|
|
|
|
|
|
|
|
## [2024.2.3] - 2024-06-03
|
|
|
|
|
2024-05-18 03:26:07 +03:00
|
|
|
### Added
|
2024-05-19 03:16:25 +03:00
|
|
|
- Added `DtCollectPolysQuery` and `FindCollectPolyTest`
|
2024-05-18 03:26:07 +03:00
|
|
|
|
|
|
|
### Fixed
|
|
|
|
- Nothing
|
|
|
|
|
|
|
|
### Changed
|
2024-05-18 08:49:18 +03:00
|
|
|
- Changed `IDtPolyQuery` interface to make `Process()` more versatile
|
2024-05-19 03:16:25 +03:00
|
|
|
- Changed `PolyQueryInvoker` to `DtActionPolyQuery`
|
2024-05-20 18:10:24 +03:00
|
|
|
- Changed `DtTileCacheBuilder` to a static class
|
|
|
|
- Changed `DtTileCacheLayerHeaderReader` to a static class
|
2024-05-21 19:33:15 +03:00
|
|
|
- Changed `Dictionary<int, List<DtMeshTile>>` to `DtMeshTile[]` to optimize memory usage
|
2024-05-22 17:48:52 +03:00
|
|
|
- Changed `MAX_STEER_POINTS` from class constant to local.
|
2024-05-22 20:16:03 +03:00
|
|
|
- Changed `List<DtStraightPath>` to `Span<DtStraightPath>` for enhanced memory efficiency
|
2024-05-23 16:39:03 +03:00
|
|
|
- Changed `DtWriter` to a static class and renamed it to `RcIO`
|
2024-05-31 16:36:57 +03:00
|
|
|
- Changed class `Trajectory` to interface `ITrajectory`
|
2024-05-22 17:48:52 +03:00
|
|
|
|
2024-05-18 03:26:07 +03:00
|
|
|
### Removed
|
|
|
|
- Nothing
|
|
|
|
|
|
|
|
### Special Thanks
|
|
|
|
- [@Doprez](https://github.com/Doprez)
|
|
|
|
|
|
|
|
|
|
|
|
## [2024.2.2] - 2024-05-18
|
|
|
|
|
2024-05-04 04:02:16 +03:00
|
|
|
### Added
|
2024-05-05 07:11:12 +03:00
|
|
|
- Added RcSpans UnitTest
|
|
|
|
|
2024-05-04 04:02:16 +03:00
|
|
|
### Fixed
|
2024-05-17 17:44:58 +03:00
|
|
|
- Nothing
|
|
|
|
|
2024-05-04 04:02:16 +03:00
|
|
|
### Changed
|
2024-05-17 17:44:58 +03:00
|
|
|
- Changed class name of static functions to RcRecast and DtDetour
|
|
|
|
- Changed DtLink class member variable type from int to byte
|
|
|
|
- Changed initialization in DtNavMesh constructor to Init() function.
|
|
|
|
|
2024-05-04 04:02:16 +03:00
|
|
|
### Removed
|
2024-05-17 17:44:58 +03:00
|
|
|
- Nothing
|
|
|
|
|
2024-05-04 04:02:16 +03:00
|
|
|
### Special Thanks
|
2024-05-05 07:11:12 +03:00
|
|
|
- [@Doprez](https://github.com/Doprez)
|
2024-05-04 04:02:16 +03:00
|
|
|
|
|
|
|
|
|
|
|
## [2024.2.1] - 2024-05-04
|
|
|
|
|
2024-02-13 07:53:21 +03:00
|
|
|
### Added
|
2024-02-17 18:42:10 +03:00
|
|
|
- Added RcCircularBuffer<T> [@ikpil](https://github.com/ikpil)
|
2024-02-19 19:10:54 +03:00
|
|
|
- Added struct DtCrowdScopedTimer to avoid allocations in scoped timer calls. [@wrenge](https://github.com/wrenge)
|
2024-02-19 20:02:05 +03:00
|
|
|
- Added struct RcScopedTimer to avoid allocations in RcContext scoped timer [@ikpil](https://github.com/ikpil)
|
2024-05-04 04:02:16 +03:00
|
|
|
- Added RcSpans [@ikpil](https://github.com/ikpil)
|
2024-05-05 07:11:12 +03:00
|
|
|
|
2024-02-13 07:53:21 +03:00
|
|
|
### Fixed
|
2024-05-04 04:02:16 +03:00
|
|
|
- SOH issue [#14](https://github.com/ikpil/DotRecast/issues/41)
|
|
|
|
- Optimization: reduce number of allocations on hot path. [@awgil](https://github.com/awgil)
|
2024-02-13 07:53:21 +03:00
|
|
|
|
|
|
|
### Changed
|
2024-02-17 18:42:10 +03:00
|
|
|
- Changed DtPathCorridor.Init(int maxPath) function to allow setting the maximum path [@ikpil](https://github.com/ikpil)
|
|
|
|
- Changed from List<T> to RcCyclicBuffer in DtCrowdTelemetry execution timing sampling [@wrenge](https://github.com/wrenge)
|
2024-02-19 19:53:50 +03:00
|
|
|
- RcCyclicBuffer<T> optimizations [@wrenge](https://github.com/wrenge)
|
2024-02-13 07:53:21 +03:00
|
|
|
|
|
|
|
### Removed
|
|
|
|
|
|
|
|
### Special Thanks
|
|
|
|
- [@Doprez](https://github.com/Doprez)
|
|
|
|
- [@Arctium](https://github.com/Arctium)
|
|
|
|
|
|
|
|
|
|
|
|
## [2024.1.3] - 2024-02-13
|
|
|
|
|
2024-02-01 17:18:01 +03:00
|
|
|
### Added
|
2024-02-07 18:03:06 +03:00
|
|
|
- Added DtNodeQueue UnitTest [@ikpil](https://github.com/ikpil)
|
|
|
|
- Added RcSortedQueue UnitTest [@ikpil](https://github.com/ikpil)
|
2024-02-09 11:56:16 +03:00
|
|
|
- Added IComparable interface to RcAtomicLong [@ikpil](https://github.com/ikpil)
|
2024-02-11 09:39:34 +03:00
|
|
|
- Added Menu bar in Demo [@ikpil](https://github.com/ikpil)
|
2024-02-07 18:03:06 +03:00
|
|
|
|
2024-02-04 07:36:35 +03:00
|
|
|
### Fixed
|
|
|
|
|
|
|
|
### Changed
|
2024-02-07 16:54:52 +03:00
|
|
|
- Update Microsoft.NET.Test.Sdk 17.8.0 to 17.9.0
|
2024-02-09 11:56:16 +03:00
|
|
|
- Enhanced ToString method of DtNode to provide more detailed information.
|
2024-02-13 07:53:21 +03:00
|
|
|
- Reuse DtNode in DtNodePool
|
2024-02-09 11:56:16 +03:00
|
|
|
|
2024-02-04 07:36:35 +03:00
|
|
|
### Removed
|
|
|
|
|
2024-02-07 16:54:52 +03:00
|
|
|
### Special Thanks
|
|
|
|
- [@Doprez](https://github.com/Doprez)
|
|
|
|
- [@Arctium](https://github.com/Arctium)
|
|
|
|
|
2024-02-04 07:36:35 +03:00
|
|
|
## [2024.1.2] - 2024-02-04
|
|
|
|
|
|
|
|
### Added
|
|
|
|
- Added DtNodePool tests [@ikpil](https://github.com/ikpil)
|
|
|
|
- Added WangHash() for DtNodePool [@ikpil](https://github.com/ikpil)
|
|
|
|
- Added avg, min, max, sampling updated times in CrowdAgentProfilingTool [@ikpil](https://github.com/ikpil)
|
2024-02-01 18:29:24 +03:00
|
|
|
|
2024-02-01 17:18:01 +03:00
|
|
|
### Fixed
|
2024-02-04 07:36:35 +03:00
|
|
|
- Fixed SOH issue in DtNavMeshQuery.Raycast [@ikpil](https://github.com/ikpil)
|
|
|
|
- Fixed SOH issue in DtProximityGrid.QueryItems [@ikpil](https://github.com/ikpil)
|
2024-02-01 17:18:01 +03:00
|
|
|
|
|
|
|
### Changed
|
2024-02-02 19:23:57 +03:00
|
|
|
- Upgrade NUnit.Analyzers 4.0.1
|
2024-02-01 17:18:01 +03:00
|
|
|
|
|
|
|
### Removed
|
2024-02-01 17:02:58 +03:00
|
|
|
|
2024-02-04 07:49:09 +03:00
|
|
|
### Special Thanks
|
|
|
|
- [@Doprez](https://github.com/Doprez)
|
|
|
|
- [@Arctium](https://github.com/Arctium)
|
|
|
|
|
2024-02-01 17:02:58 +03:00
|
|
|
## [2024.1.1] - 2024-01-05
|
|
|
|
|
|
|
|
### Fixed
|
2024-02-01 17:18:01 +03:00
|
|
|
- Fix typo ([#25](https://github.com/ikpil/DotRecast/pull/25)) [@c0nd3v](https://github.com/c0nd3v)
|
|
|
|
- Fix updated struct version ([#23](https://github.com/ikpil/DotRecast/pull/23)) [@c0nd3v](https://github.com/c0nd3v)
|
|
|
|
- Allow Radius 0 in Demo ([#22](https://github.com/ikpil/DotRecast/pull/22)) [@c0nd3v](https://github.com/c0nd3v)
|
2024-02-01 17:02:58 +03:00
|
|
|
|
|
|
|
### Changed
|
2024-02-01 17:18:01 +03:00
|
|
|
- [Upstream] Cleanup filter code and improved documentation ([#30](https://github.com/ikpil/DotRecast/pull/30)) [@ikpil](https://github.com/ikpil)
|
|
|
|
- [Upstream] Make detail mesh edge detection more robust ([#26](https://github.com/ikpil/DotRecast/pull/26)) [@ikpil](https://github.com/ikpil)
|
|
|
|
- [Upstream] 248275e - Fix: typo error (#153) ([#21](https://github.com/ikpil/DotRecast/pull/21)) [@ikpil](https://github.com/ikpil)
|
|
|
|
- Code cleanup and small optimizations in RecastFilter.cpp ([#29](https://github.com/ikpil/DotRecast/pull/29)) [@ikpil](https://github.com/ikpil)
|
|
|
|
- Added UI scaling feature based on monitor resolution in Demo ([#28](https://github.com/ikpil/DotRecast/pull/28)) [@ikpil](https://github.com/ikpil)
|
|
|
|
|