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:
authorNick Samarin <nicks1987@bigmir.net>2010-07-29 18:06:48 +0400
committerNick Samarin <nicks1987@bigmir.net>2010-07-29 18:06:48 +0400
commit870e0e37e52ec644ad1e2e728b8b9b422b1a6dc4 (patch)
treec3c7c685ffb3cefba83d6bdd14056131ad89036a /extern/recastnavigation
parent14171324b7819842f89503f16bcb5fe4c8e91b1c (diff)
- fixed bug in steering actuator: calculate 2d distance to target for seeking and fleeing
- added possibility to add navmesh modifier manually in order to transform manually created mesh to navigation mesh (with navigation polygons data layer) - added possibility to use existed navigation mesh object for navmesh generation (so new object won't be created, but existed object will be updated)
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;
}