40 Commits

Author SHA1 Message Date
Gleb Mazovetskiy
e75adf86f9
Avoid reallocs of temp vectors (#467)
* Use clear() instead of resize(0) for temp vectors

Nicer style

* rcVectorBase::resize: Avoid realloc on grow

When capacity is sufficient, do not realloc the whole buffer

* rcVector: Grow exponentially on resize
2021-02-15 12:27:21 +01:00
Icecream95 (gitlab.com/icecream95)
57610fa6ef Explicitly define winding as being signed 2019-10-21 14:44:25 +02:00
Graham Pentheny
b7a83e0afb Fixed rule of 3 violations in many places.
* Added virtual qualifier to a few destructors in subclasses.
* Removed a few empty destructors that didn't need to be explicitly defined.
* Fixed a few typos
* Removed unnecessary empty virtual destructors in some classes with parent's who derrived from a class with a virtual destructor
2016-01-20 11:57:32 -05:00
Jakob Botsch Nielsen
b99d62047b Increase recover radius for unsampled heights
When the detail mesh sampling sees an unset height it previously tried
to recover by looking for heights of neighbors. When the heightfield was
not eroded this recovery would fail since the contour simplification
could mean that the nearest valid cell was further away than a neighbor.
We now walk adjacent cells in a spiral to find a height and do this
depending on the max simplification error.

Fix #153
2016-01-14 19:20:43 +01:00
Rafael Stahl
6d3c9b38ba add rcScopedTimer to fix timers not being stopped on all paths and to prevent it in the future. 2015-12-18 14:48:31 +01:00
Kromster80
519b148451 Update RecastContour.cpp 2014-11-10 15:06:43 +03:00
Mikko Mononen
129efa5833 Fix for issue #38 and improvements to detail mesh tessellation
- do circumCircle calculations relative to first vertex for adde
precision
- improved the results of triangulateHull(), produces less degen
triangles
- fixed case with contour merging when outline is null
2014-06-24 15:23:53 +03:00
Mikko Mononen
a89bb843d7 Added new method to partition heighfield
- added layer based heighfield partitioning
- the method is a bit slower than monotone partitioning, but does not
suffer from the long thin ploys
- the method partitions the heighfield into non-overlapping areas, but
does not try to resolve holes
- improved contour hole merging so that it can properly handle all
kinds of holes
- improved polygon triangulation to handle overlapping segments
- improved small and long polygon detail mesh generation
- updated samples to include all 3 partition methods and little
documentation to help to choose between them
2014-06-13 13:25:01 +03:00
Mikko Mononen
620f8fa130 Better detection of portal edges between tiles. 2012-02-27 18:40:16 +00:00
Mikko Mononen
e6b1d141d2 Fixed warnings when compiling with -Wshadow. 2012-02-22 17:25:46 +00:00
Mikko Mononen
5f652cd660 Fix for Issue 187 2011-12-06 11:38:39 +00:00
Stephen Pratt
6f5c9f9b82 Recast: Detail API documentation for the members declared in Recast.h. (Complete)
Recast.h: Completed rcPolyMeshDetail through end, plus updates to existing documentation.
Configuration: Removed DebugUtils directory from the document build.
Configuration: Fixed issue 179. (Backslashes)
2011-08-29 23:03:16 +00:00
Mikko Mononen
1de5e2f119 DETOUR API CHANGE!
- Detour Navmesh supports layers
- Allow to disable Navmesh BV-tree
- Added DetourTileCache
- Cleaned up Recast layer code
- Moved portal edge detection to Recast
- Removed polymesh border offset
- Removed lean heighfield
2011-03-25 09:16:38 +00:00
Mikko Mononen
6cb0413cc7 Layer progress: Fixed reg building with multiple areas. Added contour generation. 2011-03-06 08:26:55 +00:00
Mikko Mononen
5ba6518ed3 Detour compiles now with DT_VIRTUAL_QUERYFILTER. Fixed typos in comments. Fixed bug in findStraightPath() where leftPolyType was not used. 2010-08-26 18:57:53 +00:00
Mikko Mononen
5abddbf0cd Refactored rcBuildContext to be more customization friendly, changed name to rcContext. 2010-08-24 17:53:38 +00:00
Mikko Mononen
613d61f453 Removed Recast timer and log, added rcBuildContext, improved build time printout, fixed issue 67, issue 77, issue 87 2010-08-19 09:26:55 +00:00
Mikko Mononen
cd3a351f40 Custom allocator for Recast. 2010-07-09 12:55:14 +00:00
Mikko Mononen
5d91c09e00 fix for Issue 94:rcBuildContours fails when small area is marked near tile edge 2010-07-08 14:38:53 +00:00
Mikko Mononen
11386cedcf Added option to tesselate edges between areas. Fixed bug in orphan contour merging, which could create overlapping contour. 2010-05-26 09:20:57 +00:00
Mikko Mononen
10b330ffb4 Moved common functions behind name decoration. 2010-04-14 18:45:46 +00:00
Mikko Mononen
193f44a388 Issue 61: take 2, missing files. 2010-04-13 10:58:18 +00:00
Mikko Mononen
5119b5cb16 API CHANGE! Better serialization support. 2010-03-25 12:24:40 +00:00
Mikko Mononen
d9d9fa85a5 Added more bits to compact neighbour indices, moved region id to rcCompactSpan to save memory. 2010-03-05 09:10:13 +00:00
Mikko Mononen
af0d41f5ff Compact heighfield dump and debug project to load it. 2010-03-01 08:22:50 +00:00
Mikko Mononen
668484eb14 Better handling of contour problems. 2010-02-12 10:25:28 +00:00
Mikko Mononen
fa66b9a9f3 Compiles with -Wall (except stb_truetype) 2010-02-05 07:32:30 +00:00
Mikko Mononen
9b881bde8c NOTE: Changed the generation procedure, see samples! Erode walkable area before area is generated. Allow to mark areas on chf. Generate regions following areas (+ many fixes here and there to make it alwasy work). 2010-02-01 14:08:06 +00:00
Mikko Mononen
5651b7c5dd Changed many 0xffff:s to named consts. 2010-01-27 14:52:18 +00:00
Mikko Mononen
14d1c97f1a Added RC_NOT_CONNECTED which is used to check the return value of rcGetCon() 2009-11-15 11:24:20 +00:00
Mikko Mononen
2ef0db50c0 Issue 16 in recastnavigation: RecastContour.ccp : removeDegenerateSegments() : Contour vertex list left in invalid state. 2009-11-09 17:57:19 +00:00
Mikko Mononen
ed73b46308 - Changed gotos as cleanup mechanism to a scoped delete template.
- Removed unnecessary ptr casts to ints to allow to compile on 64bits systems.
- Added custom and portable qsort_r.
- Use gettimeofday() as performance timer on unix/bsd/osx
- Moved variables from rcCompactSpan to separate arrays.
2009-09-28 09:54:37 +00:00
Mikko Mononen
f142f33415 Few debugdraw tweaks.
Commented some magic flags.
2009-08-24 13:04:12 +00:00
Mikko Mononen
6de4d30705 Monster update which adds detail height meshes.
- Added detail height mesh generation (RecastDetailMesh.cpp) for single,tiled statmeshes as well as tilemesh.
- Added feature to contour tracing which detects extra vertices along tile edges which should be removed later.
- Changed the tiled stat mesh preprocess, so that it first generated polymeshes per tile and finally combines them.
- Fixed bug in the GUI code where invisible buttons could be pressed.
2009-08-24 12:44:44 +00:00
Mikko Mononen
e638624828 Version 1.2
Removed paris demo code.
Cleaned up the API and added missing comments.
2009-06-16 09:57:55 +00:00
Mikko Mononen
b1114cb5cd Paris demo build (does not compile from SVN).
Removed portal test from demo.cpp
Added new debug draw mode (regions connections).
Tweaked several debug draw modes to be more illustrative.
Added checks in the Detour code to allow to call the API even if the initialization failed.
2009-06-04 13:03:48 +00:00
Mikko Mononen
ab372964ad Tweaked debug draw to better fit the Paris conferene setup.
Rewrote fixup contours, now should handle all cases.
Added few more debug draw modes for the demo.
Changed the vertex welding to cope with slight imprecision in y-direction.
2009-06-03 07:35:25 +00:00
Mikko Mononen
c56ebb7e77 - (too) large refactoring of the generation and demo code to support tiled preprocessing
- added rcFixupAdjacentContours which adjust adjacent contour sets so that that they share all vertices (still buggy!)
- changed the demo stucture to handle tiled navmesh generation process (still ugly)
- the performance results are put into a struct instead of logged immediatelly
- added ChunkyTriMesh class which allows to partiotion a trimesh to smaller pieces using AABB tree
2009-05-17 13:31:09 +00:00
Mikko Mononen
4e6621a124 - Removed multipass blur test 2009-03-29 12:38:01 +00:00
Mikko Mononen
06832c885e Initial commit. 2009-03-29 10:30:52 +00:00