size can become negative if req > maxPath. This may happen when visited buffer is larger than path buffer.
Add tests to cover different use cases of the function including Should add visited points not present in path up to the path capacity to cover the fix.
List tests files explicitly. When new file is added CMake does not add it to the already generated list if GLOB is used.
This adds some unit tests for the functions in RecastFilter.cpp, and updates docs around these functions. This also splits up the Tests_Recast.cpp file into a few smaller, more focused files.
* Code cleanup and minor refactor in RecastFilter.cpp rcFilterLedgeSpans
Because span.smax is always > 0, bot > 0 as well, and (-walkableClimb - bot) is always < -walkableClimb. Furthermore, as long as minNeighborHeight < -walkableClimb' at least once, there is no need to continue the traversal.
* Code cleanup and minor refactor in RecastFilter.cpp rcFilterLedgeSpans
Because span.smax is always > 0, bot > 0 as well, and (-walkableClimb - bot) is always < -walkableClimb. Furthermore, as long as minNeighborHeight < -walkableClimb' at least once, there is no need to continue the traversal.
* Update RecastFilter.cpp
Revise Comment
Added logo, updated doxyfile, fixed alignment of top-level readme, and changed the logo url to an s3-hosted file since github has restrictions that prevent it from loading on recastnav.com
A lot of the auxiliary project documentation was pretty old, redundant, or could use some polishing. This change fixes up some wording, grammar, layout and generally cleans up the docs a bit. It's not perfection, but it's an improvement
I also tried to streamline and beautify the top-level `README.md` to be more appealing, clear, and to direct people to the official docs. To this end, I moved the building instructions to This is based on what I've seen in some other popular github projects.
* Changed asserts to be explicitly disabled with RC_DISABLE_ASSERTS rather than using NDEBUG
This gives explicit control to users over when recast asserts are enabled or disabled. This is useful when users wish to disable asserts in debug mode or enable them in release mode. e.g. it's common to compile game code in debug alongside third party code in release.
* Added Integration.md with documentation on the integration process for Recast
* Cleanup compact heightfield functions in RecastArea.cpp
* More improved variable names for RecastArea.cpp
* Improved variable names and documentation in rcOffsetPoly
* Don't normalize the miter bisector in rcOffsetPoly since this needs to be proportional to both segment normals.
* Moved vector normalization out of rcOffsetPoly into a helper function rcVsafeNormalize
* Rename local variables in rcOffsetPoly
* Rename BMiterX/Z to cornerMIterX/Z
* Also fixed some comment descriptions
* Added docstring for rcVsafeNormalize
* Improved clarity of a few comments
* removed fixupCorridor and replaced function calls with dtMergeCorridorStartMoved
* removed fixupCorridor and replaced function calls with dtMergeCorridorStartMoved in NavMeshTesterTool.cpp
Fix#634
Previously, setting this option required either enabling this option by modifying the source, or doing some CMake hacking to inject the variables. Now this is a convenient option.
It's only used to detect if the segment is parallel to the polygon edge in question, and if so, skip actually doing the intersection test. This sets the epsilon to 1e-6, which is about 10x the machine epsilon for 32bit floats, so it's low enough to not give false positives but it's large enough to correctly detect segments and polygon edges that are very nearly parallel.
PDBs are not necessarily generated, even in Debug configuration. For example, if the CXX_FLAGS are set to /Z7, debug symbols are embedded, and so the PDBs are not generated. This prevents installing from failing by marking these PDBs as optional.
Fix#610