[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [31109] branches/soc-2010-nicks/source/ blender/editors/util/navmesh_conversion.cpp: fixed error in forming of navigation polygons: non-traversed polygons are allowed if and only if they haven' t border edges
Nick Samarin
nicks1987 at bigmir.net
Fri Aug 6 18:11:17 CEST 2010
Revision: 31109
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=31109
Author: nicks
Date: 2010-08-06 18:11:17 +0200 (Fri, 06 Aug 2010)
Log Message:
-----------
fixed error in forming of navigation polygons: non-traversed polygons are allowed if and only if they haven't border edges
Modified Paths:
--------------
branches/soc-2010-nicks/source/blender/editors/util/navmesh_conversion.cpp
Modified: branches/soc-2010-nicks/source/blender/editors/util/navmesh_conversion.cpp
===================================================================
--- branches/soc-2010-nicks/source/blender/editors/util/navmesh_conversion.cpp 2010-08-06 15:58:15 UTC (rev 31108)
+++ branches/soc-2010-nicks/source/blender/editors/util/navmesh_conversion.cpp 2010-08-06 16:11:17 UTC (rev 31109)
@@ -241,14 +241,26 @@
delete adjustedPoly;
nv = adjustedNv;
- bool allTraversed = true;
+ bool allBorderTraversed = true;
for (size_t i=0; i<(size_t)dtrisNum; i++)
{
if (traversedTris[i]==0)
- allTraversed = false;
+ {
+ //check whether it has border edges
+ int curpolytri = dtrisBase+i;
+ for (int k=0; k<3; k++)
+ {
+ unsigned short neighbortri = dtris[curpolytri*3*2+3+k];
+ if ( neighbortri==0xffff || dtrisToPolysMap[neighbortri]!=polyidx+1)
+ {
+ allBorderTraversed = false;
+ break;
+ }
+ }
+ }
}
- if (nv<=vertsPerPoly && allTraversed)
+ if (nv<=vertsPerPoly && allBorderTraversed)
{
for (int i=0; i<nv; i++)
{
More information about the Bf-blender-cvs
mailing list