diff options
author | Nick Samarin <nicks1987@bigmir.net> | 2010-07-29 18:06:48 +0400 |
---|---|---|
committer | Nick Samarin <nicks1987@bigmir.net> | 2010-07-29 18:06:48 +0400 |
commit | 870e0e37e52ec644ad1e2e728b8b9b422b1a6dc4 (patch) | |
tree | c3c7c685ffb3cefba83d6bdd14056131ad89036a /extern/recastnavigation | |
parent | 14171324b7819842f89503f16bcb5fe4c8e91b1c (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.cpp | 11 |
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; } |