Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'extern/recastnavigation')
-rw-r--r--extern/recastnavigation/BlenderNavMesh/NavMeshConversion.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/extern/recastnavigation/BlenderNavMesh/NavMeshConversion.cpp b/extern/recastnavigation/BlenderNavMesh/NavMeshConversion.cpp
index ed02a27cc43..ca11ed68c54 100644
--- a/extern/recastnavigation/BlenderNavMesh/NavMeshConversion.cpp
+++ b/extern/recastnavigation/BlenderNavMesh/NavMeshConversion.cpp
@@ -310,11 +310,18 @@ bool buildNavMeshData(const int nverts, const float* verts,
{
memcpy(dtris+3*2*i, tris+3*dtrisToTrisMap[i], sizeof(unsigned short)*3);
}
- //create new recast data corresponded to dtris
+ //create new recast data corresponded to dtris and renumber for continious indices
+ int prevPolyIdx=-1, curPolyIdx, newPolyIdx=0;
dtrisToPolysMap = new int[ndtris];
for (int i=0; i<ndtris; i++)
{
- dtrisToPolysMap[i] = recastData[trisToFacesMap[dtrisToTrisMap[i]]];
+ curPolyIdx = recastData[trisToFacesMap[dtrisToTrisMap[i]]];
+ if (curPolyIdx!=prevPolyIdx)
+ {
+ newPolyIdx++;
+ prevPolyIdx=curPolyIdx;
+ }
+ dtrisToPolysMap[i] = newPolyIdx;
}