diff options
author | Shauren <shauren.trinity@gmail.com> | 2018-04-22 00:59:45 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2018-04-22 00:59:45 +0200 |
commit | a4892d64fe2433814e92c39cfe9b0c425c08aae5 (patch) | |
tree | 6bf3ad0d0f59084271c2143f6dbf4b0e2093692b /dep/recastnavigation | |
parent | 577466bcfd90281bba3d1316a6f17a71e316dede (diff) |
Dep/Recast: Fixed area type merges
Diffstat (limited to 'dep/recastnavigation')
-rw-r--r-- | dep/recastnavigation/Recast/Source/RecastRasterization.cpp | 8 | ||||
-rw-r--r-- | dep/recastnavigation/recastnavigation_2_area_merge.diff | 25 |
2 files changed, 29 insertions, 4 deletions
diff --git a/dep/recastnavigation/Recast/Source/RecastRasterization.cpp b/dep/recastnavigation/Recast/Source/RecastRasterization.cpp index a4cef749098..2ffffae8b06 100644 --- a/dep/recastnavigation/Recast/Source/RecastRasterization.cpp +++ b/dep/recastnavigation/Recast/Source/RecastRasterization.cpp @@ -122,16 +122,16 @@ static bool addSpan(rcHeightfield& hf, const int x, const int y, } else { + // Merge flags. + if (rcAbs((int)s->smax - (int)cur->smax) <= flagMergeThr) + s->area = rcMax(s->area, cur->area); + // Merge spans. if (cur->smin < s->smin) s->smin = cur->smin; if (cur->smax > s->smax) s->smax = cur->smax; - // Merge flags. - if (rcAbs((int)s->smax - (int)cur->smax) <= flagMergeThr) - s->area = rcMax(s->area, cur->area); - // Remove current span. rcSpan* next = cur->next; freeSpan(hf, cur); diff --git a/dep/recastnavigation/recastnavigation_2_area_merge.diff b/dep/recastnavigation/recastnavigation_2_area_merge.diff new file mode 100644 index 00000000000..9b6bf3424f8 --- /dev/null +++ b/dep/recastnavigation/recastnavigation_2_area_merge.diff @@ -0,0 +1,25 @@ +diff --git a/dep/recastnavigation/Recast/Source/RecastRasterization.cpp b/dep/recastnavigation/Recast/Source/RecastRasterization.cpp +index a4cef74909..2ffffae8b0 100644 +--- a/dep/recastnavigation/Recast/Source/RecastRasterization.cpp ++++ b/dep/recastnavigation/Recast/Source/RecastRasterization.cpp +@@ -122,16 +122,16 @@ static bool addSpan(rcHeightfield& hf, const int x, const int y, + } + else + { ++ // Merge flags. ++ if (rcAbs((int)s->smax - (int)cur->smax) <= flagMergeThr) ++ s->area = rcMax(s->area, cur->area); ++ + // Merge spans. + if (cur->smin < s->smin) + s->smin = cur->smin; + if (cur->smax > s->smax) + s->smax = cur->smax; + +- // Merge flags. +- if (rcAbs((int)s->smax - (int)cur->smax) <= flagMergeThr) +- s->area = rcMax(s->area, cur->area); +- + // Remove current span. + rcSpan* next = cur->next; + freeSpan(hf, cur); |