diff --git a/RecastDemo/Bin/Recast.app/Contents/MacOS/Recast b/RecastDemo/Bin/Recast.app/Contents/MacOS/Recast index 9b66fdc..df177b2 100755 Binary files a/RecastDemo/Bin/Recast.app/Contents/MacOS/Recast and b/RecastDemo/Bin/Recast.app/Contents/MacOS/Recast differ diff --git a/RecastDemo/Bin/Tests/movement_test.txt b/RecastDemo/Bin/Tests/movement_test.txt new file mode 100644 index 0000000..b80a401 --- /dev/null +++ b/RecastDemo/Bin/Tests/movement_test.txt @@ -0,0 +1,15 @@ +s Solo Mesh Simple +f movement.obj +pf -100.539185 -1.000000 54.028996 62.582016 15.757828 52.842243 0x3 0x0 +pf -100.539185 -1.000000 54.028996 -1.259964 -1.000000 50.116970 0x3 0x0 +pf -100.539185 -1.000000 54.028996 1.598934 -1.000000 23.528656 0x3 0x0 +pf -100.539185 -1.000000 54.028996 3.652847 -1.000000 -5.022881 0x3 0x0 +pf -100.539185 -1.000000 54.028996 -39.182816 8.999985 -24.697731 0x3 0x0 +pf -100.539185 -1.000000 54.028996 -66.847992 -1.000000 -28.908646 0x3 0x0 +pf -100.539185 -1.000000 54.028996 -90.966019 -1.000000 -3.219864 0x3 0x0 +pf -43.394421 -1.000000 13.312424 -90.966019 -1.000000 -3.219864 0x3 0x0 +pf -43.394421 -1.000000 13.312424 -36.447182 3.999992 -25.008087 0x3 0x0 +pf -43.394421 -1.000000 13.312424 26.394167 15.757812 -13.491264 0x3 0x0 +pf -43.394421 -1.000000 13.312424 -4.140746 6.944923 4.888435 0x3 0x0 +pf -43.394421 -1.000000 13.312424 -73.532791 -1.062469 23.137051 0x3 0x0 +pf -43.394421 -1.000000 13.312424 -72.902054 7.996834 15.076473 0x3 0x0 \ No newline at end of file diff --git a/RecastDemo/Bin/Tests/nav_mesh_test.txt b/RecastDemo/Bin/Tests/nav_mesh_test.txt new file mode 100644 index 0000000..aca6e12 --- /dev/null +++ b/RecastDemo/Bin/Tests/nav_mesh_test.txt @@ -0,0 +1,23 @@ +s Solo Mesh Simple +f nav_test.obj +pf 18.138550 -2.370003 -21.319118 -19.206181 -2.369133 24.802742 0x3 0x0 +pf 18.252758 -2.368240 -7.000238 -19.206181 -2.369133 24.802742 0x3 0x0 +pf 18.252758 -2.368240 -7.000238 -22.759071 -2.369453 2.003946 0x3 0x0 +pf 18.252758 -2.368240 -7.000238 -24.483898 -2.369728 -6.778278 0x3 0x0 +pf 18.252758 -2.368240 -7.000238 -24.068850 -2.370285 -18.879251 0x3 0x0 +pf 18.252758 -2.368240 -7.000238 12.124170 -2.369637 -21.222471 0x3 0x0 +pf 10.830146 -2.366791 19.002508 12.124170 -2.369637 -21.222471 0x3 0x0 +pf 10.830146 -2.366791 19.002508 -7.146484 -2.368736 -16.031403 0x3 0x0 +pf 10.830146 -2.366791 19.002508 -21.615391 -2.368706 -3.264029 0x3 0x0 +pf 10.830146 -2.366791 19.002508 -22.651268 -2.369354 1.053217 0x3 0x0 +pf 10.830146 -2.366791 19.002508 19.181122 -2.368134 3.011776 0x3 0x0 +pf 10.830146 -2.366791 19.002508 19.041592 -2.368713 -7.404587 0x3 0x0 +pf 6.054083 -2.365402 3.330421 19.041592 -2.368713 -7.404587 0x3 0x0 +pf 6.054083 -2.365402 3.330421 21.846087 -2.368568 17.918859 0x3 0x0 +pf 6.054083 -2.365402 3.330421 0.967449 -2.368439 25.767756 0x3 0x0 +pf 6.054083 -2.365402 3.330421 -17.518076 -2.368477 26.569633 0x3 0x0 +pf 6.054083 -2.365402 3.330421 -22.141787 -2.369209 2.440046 0x3 0x0 +pf 6.054083 -2.365402 3.330421 -23.296972 -2.369797 -17.411043 0x3 0x0 +pf 6.054083 -2.365402 3.330421 -1.564062 -2.369926 -20.452827 0x3 0x0 +pf 6.054083 -2.365402 3.330421 16.905643 -2.370193 -21.811655 0x3 0x0 +pf 6.054083 -2.365402 3.330421 19.289761 -2.368813 -6.954918 0x3 0x0 diff --git a/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.pbxuser b/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.pbxuser index 42b1bcc..6cf5ed8 100644 --- a/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.pbxuser +++ b/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.pbxuser @@ -18,7 +18,6 @@ breakpoints = ( 6B84BDF5110DF38D007D997B /* DetourNavMesh.cpp:251 */, 6B84BE1D110DF6C6007D997B /* Sample_TileMesh.cpp:496 */, - 6BF7BE04110EF78F002B3F46 /* InputGeom.cpp:183 */, ); codeSenseManager = 6B8632AA0F78115100E2684A /* Code sense */; executables = ( @@ -382,6 +381,208 @@ 6BF7C12D11116FFB002B3F46 /* PBXTextBookmark */ = 6BF7C12D11116FFB002B3F46 /* PBXTextBookmark */; 6BF7C12E11116FFB002B3F46 /* PBXTextBookmark */ = 6BF7C12E11116FFB002B3F46 /* PBXTextBookmark */; 6BF7C12F11116FFB002B3F46 /* PBXTextBookmark */ = 6BF7C12F11116FFB002B3F46 /* PBXTextBookmark */; + 6BF7C13411118CEB002B3F46 /* PBXTextBookmark */ = 6BF7C13411118CEB002B3F46 /* PBXTextBookmark */; + 6BF7C13511118CEB002B3F46 /* PBXTextBookmark */ = 6BF7C13511118CEB002B3F46 /* PBXTextBookmark */; + 6BF7C13611118CEB002B3F46 /* PBXTextBookmark */ = 6BF7C13611118CEB002B3F46 /* PBXTextBookmark */; + 6BF7C13711118CEB002B3F46 /* PBXTextBookmark */ = 6BF7C13711118CEB002B3F46 /* PBXTextBookmark */; + 6BF7C13811118CEB002B3F46 /* PBXTextBookmark */ = 6BF7C13811118CEB002B3F46 /* PBXTextBookmark */; + 6BF7C13911118CEB002B3F46 /* PBXTextBookmark */ = 6BF7C13911118CEB002B3F46 /* PBXTextBookmark */; + 6BF7C13A11118CEB002B3F46 /* PBXTextBookmark */ = 6BF7C13A11118CEB002B3F46 /* PBXTextBookmark */; + 6BF7C13B11118CEB002B3F46 /* PBXTextBookmark */ = 6BF7C13B11118CEB002B3F46 /* PBXTextBookmark */; + 6BF7C13C11118CEB002B3F46 /* PBXTextBookmark */ = 6BF7C13C11118CEB002B3F46 /* PBXTextBookmark */; + 6BF7C14411119BB4002B3F46 /* PBXTextBookmark */ = 6BF7C14411119BB4002B3F46 /* PBXTextBookmark */; + 6BF7C14511119BB4002B3F46 /* PBXTextBookmark */ = 6BF7C14511119BB4002B3F46 /* PBXTextBookmark */; + 6BF7C14611119BB4002B3F46 /* PBXTextBookmark */ = 6BF7C14611119BB4002B3F46 /* PBXTextBookmark */; + 6BF7C14711119BB4002B3F46 /* PBXTextBookmark */ = 6BF7C14711119BB4002B3F46 /* PBXTextBookmark */; + 6BF7C14811119BB4002B3F46 /* PBXTextBookmark */ = 6BF7C14811119BB4002B3F46 /* PBXTextBookmark */; + 6BF7C14911119BB4002B3F46 /* PBXTextBookmark */ = 6BF7C14911119BB4002B3F46 /* PBXTextBookmark */; + 6BF7C14A11119BB4002B3F46 /* PBXTextBookmark */ = 6BF7C14A11119BB4002B3F46 /* PBXTextBookmark */; + 6BF7C14B11119BB4002B3F46 /* PBXTextBookmark */ = 6BF7C14B11119BB4002B3F46 /* PBXTextBookmark */; + 6BF7C14C11119BB4002B3F46 /* PBXTextBookmark */ = 6BF7C14C11119BB4002B3F46 /* PBXTextBookmark */; + 6BF7C14D11119BB4002B3F46 /* PBXTextBookmark */ = 6BF7C14D11119BB4002B3F46 /* PBXTextBookmark */; + 6BF7C14E11119BB4002B3F46 /* PBXTextBookmark */ = 6BF7C14E11119BB4002B3F46 /* PBXTextBookmark */; + 6BF7C14F11119BB4002B3F46 /* PBXTextBookmark */ = 6BF7C14F11119BB4002B3F46 /* PBXTextBookmark */; + 6BF7C15011119BB4002B3F46 /* PBXTextBookmark */ = 6BF7C15011119BB4002B3F46 /* PBXTextBookmark */; + 6BF7C15111119BB4002B3F46 /* PBXTextBookmark */ = 6BF7C15111119BB4002B3F46 /* PBXTextBookmark */; + 6BF7C15211119BB4002B3F46 /* PBXTextBookmark */ = 6BF7C15211119BB4002B3F46 /* PBXTextBookmark */; + 6BF7C15311119BB4002B3F46 /* PBXTextBookmark */ = 6BF7C15311119BB4002B3F46 /* PBXTextBookmark */; + 6BF7C15411119BB4002B3F46 /* PBXTextBookmark */ = 6BF7C15411119BB4002B3F46 /* PBXTextBookmark */; + 6BF7C15511119BB4002B3F46 /* PBXTextBookmark */ = 6BF7C15511119BB4002B3F46 /* PBXTextBookmark */; + 6BF7C15611119BB4002B3F46 /* PBXTextBookmark */ = 6BF7C15611119BB4002B3F46 /* PBXTextBookmark */; + 6BF7C15711119BB4002B3F46 /* PBXTextBookmark */ = 6BF7C15711119BB4002B3F46 /* PBXTextBookmark */; + 6BF7C15811119BB4002B3F46 /* PBXTextBookmark */ = 6BF7C15811119BB4002B3F46 /* PBXTextBookmark */; + 6BF7C15911119BBC002B3F46 /* PBXTextBookmark */ = 6BF7C15911119BBC002B3F46 /* PBXTextBookmark */; + 6BF7C15A11119BCE002B3F46 /* PBXTextBookmark */ = 6BF7C15A11119BCE002B3F46 /* PBXTextBookmark */; + 6BF7C15B11119BCE002B3F46 /* PBXTextBookmark */ = 6BF7C15B11119BCE002B3F46 /* PBXTextBookmark */; + 6BF7C15C11119BCE002B3F46 /* PBXTextBookmark */ = 6BF7C15C11119BCE002B3F46 /* PBXTextBookmark */; + 6BF7C15D11119BCE002B3F46 /* PBXTextBookmark */ = 6BF7C15D11119BCE002B3F46 /* PBXTextBookmark */; + 6BF7C15E11119BE8002B3F46 /* PBXTextBookmark */ = 6BF7C15E11119BE8002B3F46 /* PBXTextBookmark */; + 6BF7C15F11119BF7002B3F46 /* PBXTextBookmark */ = 6BF7C15F11119BF7002B3F46 /* PBXTextBookmark */; + 6BF7C16011119C3C002B3F46 /* PBXTextBookmark */ = 6BF7C16011119C3C002B3F46 /* PBXTextBookmark */; + 6BF7C16111119C3C002B3F46 /* PBXTextBookmark */ = 6BF7C16111119C3C002B3F46 /* PBXTextBookmark */; + 6BF7C16211119C69002B3F46 /* PBXTextBookmark */ = 6BF7C16211119C69002B3F46 /* PBXTextBookmark */; + 6BF7C16311119C69002B3F46 /* PBXTextBookmark */ = 6BF7C16311119C69002B3F46 /* PBXTextBookmark */; + 6BF7C16411119C69002B3F46 /* PBXTextBookmark */ = 6BF7C16411119C69002B3F46 /* PBXTextBookmark */; + 6BF7C16511119C69002B3F46 /* PBXTextBookmark */ = 6BF7C16511119C69002B3F46 /* PBXTextBookmark */; + 6BF7C16611119C69002B3F46 /* PBXTextBookmark */ = 6BF7C16611119C69002B3F46 /* PBXTextBookmark */; + 6BF7C16711119C69002B3F46 /* PBXTextBookmark */ = 6BF7C16711119C69002B3F46 /* PBXTextBookmark */; + 6BF7C16811119C69002B3F46 /* PBXTextBookmark */ = 6BF7C16811119C69002B3F46 /* PBXTextBookmark */; + 6BF7C16911119C69002B3F46 /* PBXTextBookmark */ = 6BF7C16911119C69002B3F46 /* PBXTextBookmark */; + 6BF7C16A11119C69002B3F46 /* PBXTextBookmark */ = 6BF7C16A11119C69002B3F46 /* PBXTextBookmark */; + 6BF7C16B11119D8F002B3F46 /* PBXTextBookmark */ = 6BF7C16B11119D8F002B3F46 /* PBXTextBookmark */; + 6BF7C16C11119D8F002B3F46 /* PBXTextBookmark */ = 6BF7C16C11119D8F002B3F46 /* PBXTextBookmark */; + 6BF7C16D11119D8F002B3F46 /* PBXTextBookmark */ = 6BF7C16D11119D8F002B3F46 /* PBXTextBookmark */; + 6BF7C16E11119D8F002B3F46 /* PBXTextBookmark */ = 6BF7C16E11119D8F002B3F46 /* PBXTextBookmark */; + 6BF7C16F11119D8F002B3F46 /* PBXTextBookmark */ = 6BF7C16F11119D8F002B3F46 /* PBXTextBookmark */; + 6BF7C17011119D8F002B3F46 /* PBXTextBookmark */ = 6BF7C17011119D8F002B3F46 /* PBXTextBookmark */; + 6BF7C17111119DC5002B3F46 /* PBXTextBookmark */ = 6BF7C17111119DC5002B3F46 /* PBXTextBookmark */; + 6BF7C17211119EDD002B3F46 /* PBXTextBookmark */ = 6BF7C17211119EDD002B3F46 /* PBXTextBookmark */; + 6BF7C17311119EDD002B3F46 /* PBXTextBookmark */ = 6BF7C17311119EDD002B3F46 /* PBXTextBookmark */; + 6BF7C17411119EDD002B3F46 /* PBXTextBookmark */ = 6BF7C17411119EDD002B3F46 /* PBXTextBookmark */; + 6BF7C17511119EDD002B3F46 /* PBXTextBookmark */ = 6BF7C17511119EDD002B3F46 /* PBXTextBookmark */; + 6BF7C17611119EDD002B3F46 /* PBXTextBookmark */ = 6BF7C17611119EDD002B3F46 /* PBXTextBookmark */; + 6BF7C17711119EDD002B3F46 /* PBXTextBookmark */ = 6BF7C17711119EDD002B3F46 /* PBXTextBookmark */; + 6BF7C17811119EDD002B3F46 /* PBXTextBookmark */ = 6BF7C17811119EDD002B3F46 /* PBXTextBookmark */; + 6BF7C17911119EDD002B3F46 /* PBXTextBookmark */ = 6BF7C17911119EDD002B3F46 /* PBXTextBookmark */; + 6BF7C17A11119EDD002B3F46 /* PBXTextBookmark */ = 6BF7C17A11119EDD002B3F46 /* PBXTextBookmark */; + 6BF7C17B11119EDD002B3F46 /* PBXTextBookmark */ = 6BF7C17B11119EDD002B3F46 /* PBXTextBookmark */; + 6BF7C17C11119EDD002B3F46 /* PBXTextBookmark */ = 6BF7C17C11119EDD002B3F46 /* PBXTextBookmark */; + 6BF7C17D11119EDD002B3F46 /* PBXTextBookmark */ = 6BF7C17D11119EDD002B3F46 /* PBXTextBookmark */; + 6BF7C17E11119EDD002B3F46 /* PBXTextBookmark */ = 6BF7C17E11119EDD002B3F46 /* PBXTextBookmark */; + 6BF7C17F11119F2B002B3F46 /* PBXTextBookmark */ = 6BF7C17F11119F2B002B3F46 /* PBXTextBookmark */; + 6BF7C18011119F2B002B3F46 /* PBXTextBookmark */ = 6BF7C18011119F2B002B3F46 /* PBXTextBookmark */; + 6BF7C18111119F2B002B3F46 /* PBXTextBookmark */ = 6BF7C18111119F2B002B3F46 /* PBXTextBookmark */; + 6BF7C18211119F2B002B3F46 /* PBXTextBookmark */ = 6BF7C18211119F2B002B3F46 /* PBXTextBookmark */; + 6BF7C18311119F2B002B3F46 /* PBXTextBookmark */ = 6BF7C18311119F2B002B3F46 /* PBXTextBookmark */; + 6BF7C18411119F45002B3F46 /* PBXTextBookmark */ = 6BF7C18411119F45002B3F46 /* PBXTextBookmark */; + 6BF7C1881111A0A2002B3F46 /* PBXTextBookmark */ = 6BF7C1881111A0A2002B3F46 /* PBXTextBookmark */; + 6BF7C1891111A0A2002B3F46 /* PBXTextBookmark */ = 6BF7C1891111A0A2002B3F46 /* PBXTextBookmark */; + 6BF7C18A1111A0A2002B3F46 /* PBXTextBookmark */ = 6BF7C18A1111A0A2002B3F46 /* PBXTextBookmark */; + 6BF7C18B1111A0A2002B3F46 /* PBXTextBookmark */ = 6BF7C18B1111A0A2002B3F46 /* PBXTextBookmark */; + 6BF7C1921111A8DB002B3F46 /* PBXTextBookmark */ = 6BF7C1921111A8DB002B3F46 /* PBXTextBookmark */; + 6BF7C1931111A8DB002B3F46 /* PBXTextBookmark */ = 6BF7C1931111A8DB002B3F46 /* PBXTextBookmark */; + 6BF7C1941111A8DB002B3F46 /* PBXTextBookmark */ = 6BF7C1941111A8DB002B3F46 /* PBXTextBookmark */; + 6BF7C1951111A8DB002B3F46 /* PBXTextBookmark */ = 6BF7C1951111A8DB002B3F46 /* PBXTextBookmark */; + 6BF7C1961111A8DB002B3F46 /* PBXTextBookmark */ = 6BF7C1961111A8DB002B3F46 /* PBXTextBookmark */; + 6BF7C1971111A8DB002B3F46 /* PBXTextBookmark */ = 6BF7C1971111A8DB002B3F46 /* PBXTextBookmark */; + 6BF7C1981111A8DB002B3F46 /* PBXTextBookmark */ = 6BF7C1981111A8DB002B3F46 /* PBXTextBookmark */; + 6BF7C1991111A8DB002B3F46 /* PBXTextBookmark */ = 6BF7C1991111A8DB002B3F46 /* PBXTextBookmark */; + 6BF7C19A1111A8DB002B3F46 /* PBXTextBookmark */ = 6BF7C19A1111A8DB002B3F46 /* PBXTextBookmark */; + 6BF7C19B1111A8E3002B3F46 /* PBXTextBookmark */ = 6BF7C19B1111A8E3002B3F46 /* PBXTextBookmark */; + 6BF7C19C1111A8E7002B3F46 /* PBXTextBookmark */ = 6BF7C19C1111A8E7002B3F46 /* PBXTextBookmark */; + 6BF7C19D1111A8E7002B3F46 /* PBXTextBookmark */ = 6BF7C19D1111A8E7002B3F46 /* PBXTextBookmark */; + 6BF7C1A11111A9C0002B3F46 /* PBXTextBookmark */ = 6BF7C1A11111A9C0002B3F46 /* PBXTextBookmark */; + 6BF7C1A21111A9C0002B3F46 /* PBXTextBookmark */ = 6BF7C1A21111A9C0002B3F46 /* PBXTextBookmark */; + 6BF7C1A31111A9C0002B3F46 /* PBXTextBookmark */ = 6BF7C1A31111A9C0002B3F46 /* PBXTextBookmark */; + 6BF7C1A41111A9C0002B3F46 /* PBXTextBookmark */ = 6BF7C1A41111A9C0002B3F46 /* PBXTextBookmark */; + 6BF7C1A51111A9C0002B3F46 /* PBXTextBookmark */ = 6BF7C1A51111A9C0002B3F46 /* PBXTextBookmark */; + 6BF7C1A61111A9C0002B3F46 /* PBXTextBookmark */ = 6BF7C1A61111A9C0002B3F46 /* PBXTextBookmark */; + 6BF7C1A71111A9C0002B3F46 /* PBXTextBookmark */ = 6BF7C1A71111A9C0002B3F46 /* PBXTextBookmark */; + 6BF7C1AC1111AA73002B3F46 /* PBXTextBookmark */ = 6BF7C1AC1111AA73002B3F46 /* PBXTextBookmark */; + 6BF7C1AD1111AA73002B3F46 /* PBXTextBookmark */ = 6BF7C1AD1111AA73002B3F46 /* PBXTextBookmark */; + 6BF7C1AE1111AA73002B3F46 /* PBXTextBookmark */ = 6BF7C1AE1111AA73002B3F46 /* PBXTextBookmark */; + 6BF7C1AF1111AA73002B3F46 /* PBXTextBookmark */ = 6BF7C1AF1111AA73002B3F46 /* PBXTextBookmark */; + 6BF7C1B21111AAC2002B3F46 /* PBXTextBookmark */ = 6BF7C1B21111AAC2002B3F46 /* PBXTextBookmark */; + 6BF7C1B41111AB0A002B3F46 /* PBXTextBookmark */ = 6BF7C1B41111AB0A002B3F46 /* PBXTextBookmark */; + 6BF7C1B61111AB1F002B3F46 /* PBXTextBookmark */ = 6BF7C1B61111AB1F002B3F46 /* PBXTextBookmark */; + 6BF7C1B91111AB3C002B3F46 /* PBXTextBookmark */ = 6BF7C1B91111AB3C002B3F46 /* PBXTextBookmark */; + 6BF7C1BA1111AB3C002B3F46 /* PBXTextBookmark */ = 6BF7C1BA1111AB3C002B3F46 /* PBXTextBookmark */; + 6BF7C1BB1111AB3C002B3F46 /* PBXTextBookmark */ = 6BF7C1BB1111AB3C002B3F46 /* PBXTextBookmark */; + 6BF7C1BC1111AB3C002B3F46 /* PBXTextBookmark */ = 6BF7C1BC1111AB3C002B3F46 /* PBXTextBookmark */; + 6BF7C1BD1111AB4B002B3F46 /* PBXTextBookmark */ = 6BF7C1BD1111AB4B002B3F46 /* PBXTextBookmark */; + 6BF7C1BE1111AB4F002B3F46 /* PBXTextBookmark */ = 6BF7C1BE1111AB4F002B3F46 /* PBXTextBookmark */; + 6BF7C1C11111AB89002B3F46 /* PBXTextBookmark */ = 6BF7C1C11111AB89002B3F46 /* PBXTextBookmark */; + 6BF7C1C31111AB95002B3F46 /* PBXTextBookmark */ = 6BF7C1C31111AB95002B3F46 /* PBXTextBookmark */; + 6BF7C1C41111AB95002B3F46 /* PBXTextBookmark */ = 6BF7C1C41111AB95002B3F46 /* PBXTextBookmark */; + 6BF7C1C51111AB95002B3F46 /* PBXTextBookmark */ = 6BF7C1C51111AB95002B3F46 /* PBXTextBookmark */; + 6BF7C1C61111AB95002B3F46 /* PBXTextBookmark */ = 6BF7C1C61111AB95002B3F46 /* PBXTextBookmark */; + 6BF7C1C81111ABA2002B3F46 /* PBXTextBookmark */ = 6BF7C1C81111ABA2002B3F46 /* PBXTextBookmark */; + 6BF7C1CE1111BCF2002B3F46 /* PBXTextBookmark */ = 6BF7C1CE1111BCF2002B3F46 /* PBXTextBookmark */; + 6BF7C1CF1111BCF2002B3F46 /* PBXTextBookmark */ = 6BF7C1CF1111BCF2002B3F46 /* PBXTextBookmark */; + 6BF7C1D01111BCF2002B3F46 /* PBXTextBookmark */ = 6BF7C1D01111BCF2002B3F46 /* PBXTextBookmark */; + 6BF7C1D11111BCF2002B3F46 /* PBXTextBookmark */ = 6BF7C1D11111BCF2002B3F46 /* PBXTextBookmark */; + 6BF7C1D21111BCF2002B3F46 /* PBXTextBookmark */ = 6BF7C1D21111BCF2002B3F46 /* PBXTextBookmark */; + 6BF7C1D31111BCF2002B3F46 /* PBXTextBookmark */ = 6BF7C1D31111BCF2002B3F46 /* PBXTextBookmark */; + 6BF7C1D41111BCF2002B3F46 /* PBXTextBookmark */ = 6BF7C1D41111BCF2002B3F46 /* PBXTextBookmark */; + 6BF7C1D51111BCF2002B3F46 /* PBXTextBookmark */ = 6BF7C1D51111BCF2002B3F46 /* PBXTextBookmark */; + 6BF7C1D61111BCF2002B3F46 /* PBXTextBookmark */ = 6BF7C1D61111BCF2002B3F46 /* PBXTextBookmark */; + 6BF7C1D81111BD01002B3F46 /* PBXTextBookmark */ = 6BF7C1D81111BD01002B3F46 /* PBXTextBookmark */; + 6BF7C1DB1111BD29002B3F46 /* PBXTextBookmark */ = 6BF7C1DB1111BD29002B3F46 /* PBXTextBookmark */; + 6BF7C1DC1111BD29002B3F46 /* PBXTextBookmark */ = 6BF7C1DC1111BD29002B3F46 /* PBXTextBookmark */; + 6BF7C1DD1111BD29002B3F46 /* PBXTextBookmark */ = 6BF7C1DD1111BD29002B3F46 /* PBXTextBookmark */; + 6BF7C1DE1111BD29002B3F46 /* PBXTextBookmark */ = 6BF7C1DE1111BD29002B3F46 /* PBXTextBookmark */; + 6BF7C1DF1111BD29002B3F46 /* PBXTextBookmark */ = 6BF7C1DF1111BD29002B3F46 /* PBXTextBookmark */; + 6BF7C1E21111BD81002B3F46 /* PBXTextBookmark */ = 6BF7C1E21111BD81002B3F46 /* PBXTextBookmark */; + 6BF7C1E31111BD81002B3F46 /* PBXTextBookmark */ = 6BF7C1E31111BD81002B3F46 /* PBXTextBookmark */; + 6BF7C1E41111BD81002B3F46 /* PBXTextBookmark */ = 6BF7C1E41111BD81002B3F46 /* PBXTextBookmark */; + 6BF7C1E51111BD81002B3F46 /* PBXTextBookmark */ = 6BF7C1E51111BD81002B3F46 /* PBXTextBookmark */; + 6BF7C1E61111BD81002B3F46 /* PBXTextBookmark */ = 6BF7C1E61111BD81002B3F46 /* PBXTextBookmark */; + 6BF7C1E91111BDBE002B3F46 /* PBXTextBookmark */ = 6BF7C1E91111BDBE002B3F46 /* PBXTextBookmark */; + 6BF7C1EA1111C0A6002B3F46 /* PBXTextBookmark */ = 6BF7C1EA1111C0A6002B3F46 /* PBXTextBookmark */; + 6BF7C1EB1111C0A6002B3F46 /* PBXTextBookmark */ = 6BF7C1EB1111C0A6002B3F46 /* PBXTextBookmark */; + 6BF7C1EC1111C0A6002B3F46 /* PBXTextBookmark */ = 6BF7C1EC1111C0A6002B3F46 /* PBXTextBookmark */; + 6BF7C1ED1111C0A6002B3F46 /* PBXTextBookmark */ = 6BF7C1ED1111C0A6002B3F46 /* PBXTextBookmark */; + 6BF7C1EE1111C0A6002B3F46 /* PBXTextBookmark */ = 6BF7C1EE1111C0A6002B3F46 /* PBXTextBookmark */; + 6BF7C1EF1111C0A6002B3F46 /* PBXTextBookmark */ = 6BF7C1EF1111C0A6002B3F46 /* PBXTextBookmark */; + 6BF7C1F01111C0A6002B3F46 /* PBXTextBookmark */ = 6BF7C1F01111C0A6002B3F46 /* PBXTextBookmark */; + 6BF7C1F11111C0A6002B3F46 /* PBXTextBookmark */ = 6BF7C1F11111C0A6002B3F46 /* PBXTextBookmark */; + 6BF7C1F21111C0A6002B3F46 /* PBXTextBookmark */ = 6BF7C1F21111C0A6002B3F46 /* PBXTextBookmark */; + 6BF7C1F31111C0A6002B3F46 /* PBXTextBookmark */ = 6BF7C1F31111C0A6002B3F46 /* PBXTextBookmark */; + 6BF7C1F41111C0A6002B3F46 /* PBXTextBookmark */ = 6BF7C1F41111C0A6002B3F46 /* PBXTextBookmark */; + 6BF7C1F91111D204002B3F46 /* PBXTextBookmark */ = 6BF7C1F91111D204002B3F46 /* PBXTextBookmark */; + 6BF7C1FA1111D204002B3F46 /* PBXTextBookmark */ = 6BF7C1FA1111D204002B3F46 /* PBXTextBookmark */; + 6BF7C1FB1111D204002B3F46 /* PBXTextBookmark */ = 6BF7C1FB1111D204002B3F46 /* PBXTextBookmark */; + 6BF7C1FC1111D204002B3F46 /* PBXTextBookmark */ = 6BF7C1FC1111D204002B3F46 /* PBXTextBookmark */; + 6BF7C1FD1111D213002B3F46 /* PBXTextBookmark */ = 6BF7C1FD1111D213002B3F46 /* PBXTextBookmark */; + 6BF7C1FE1111D222002B3F46 /* PBXTextBookmark */ = 6BF7C1FE1111D222002B3F46 /* PBXTextBookmark */; + 6BF7C1FF1111D222002B3F46 /* PBXTextBookmark */ = 6BF7C1FF1111D222002B3F46 /* PBXTextBookmark */; + 6BF7C2031111D22F002B3F46 /* PBXTextBookmark */ = 6BF7C2031111D22F002B3F46 /* PBXTextBookmark */; + 6BF7C2051111D276002B3F46 /* PBXTextBookmark */ = 6BF7C2051111D276002B3F46 /* PBXTextBookmark */; + 6BF7C2091111D299002B3F46 /* PBXTextBookmark */ = 6BF7C2091111D299002B3F46 /* PBXTextBookmark */; + 6BF7C20A1111D299002B3F46 /* PBXTextBookmark */ = 6BF7C20A1111D299002B3F46 /* PBXTextBookmark */; + 6BF7C20B1111D299002B3F46 /* PBXTextBookmark */ = 6BF7C20B1111D299002B3F46 /* PBXTextBookmark */; + 6BF7C20C1111D299002B3F46 /* PBXTextBookmark */ = 6BF7C20C1111D299002B3F46 /* PBXTextBookmark */; + 6BF7C20F1111D361002B3F46 /* PBXTextBookmark */ = 6BF7C20F1111D361002B3F46 /* PBXTextBookmark */; + 6BF7C2101111D361002B3F46 /* PBXTextBookmark */ = 6BF7C2101111D361002B3F46 /* PBXTextBookmark */; + 6BF7C2111111D361002B3F46 /* PBXTextBookmark */ = 6BF7C2111111D361002B3F46 /* PBXTextBookmark */; + 6BF7C2121111D361002B3F46 /* PBXTextBookmark */ = 6BF7C2121111D361002B3F46 /* PBXTextBookmark */; + 6BF7C2131111D361002B3F46 /* PBXTextBookmark */ = 6BF7C2131111D361002B3F46 /* PBXTextBookmark */; + 6BF7C2141111D361002B3F46 /* PBXTextBookmark */ = 6BF7C2141111D361002B3F46 /* PBXTextBookmark */; + 6BF7C2151111D361002B3F46 /* PBXTextBookmark */ = 6BF7C2151111D361002B3F46 /* PBXTextBookmark */; + 6BF7C2161111D361002B3F46 /* PBXTextBookmark */ = 6BF7C2161111D361002B3F46 /* PBXTextBookmark */; + 6BF7C2171111D361002B3F46 /* PBXTextBookmark */ = 6BF7C2171111D361002B3F46 /* PBXTextBookmark */; + 6BF7C2181111D361002B3F46 /* PBXTextBookmark */ = 6BF7C2181111D361002B3F46 /* PBXTextBookmark */; + 6BF7C2191111D361002B3F46 /* PBXTextBookmark */ = 6BF7C2191111D361002B3F46 /* PBXTextBookmark */; + 6BF7C21A1111D361002B3F46 /* PBXTextBookmark */ = 6BF7C21A1111D361002B3F46 /* PBXTextBookmark */; + 6BF7C21B1111D361002B3F46 /* PBXTextBookmark */ = 6BF7C21B1111D361002B3F46 /* PBXTextBookmark */; + 6BF7C21C1111D361002B3F46 /* PBXTextBookmark */ = 6BF7C21C1111D361002B3F46 /* PBXTextBookmark */; + 6BF7C21D1111D361002B3F46 /* PBXTextBookmark */ = 6BF7C21D1111D361002B3F46 /* PBXTextBookmark */; + 6BF7C21E1111D361002B3F46 /* PBXTextBookmark */ = 6BF7C21E1111D361002B3F46 /* PBXTextBookmark */; + 6BF7C21F1111D361002B3F46 /* PBXTextBookmark */ = 6BF7C21F1111D361002B3F46 /* PBXTextBookmark */; + 6BF7C2201111D361002B3F46 /* PBXTextBookmark */ = 6BF7C2201111D361002B3F46 /* PBXTextBookmark */; + 6BF7C2211111D361002B3F46 /* PBXTextBookmark */ = 6BF7C2211111D361002B3F46 /* PBXTextBookmark */; + 6BF7C2241111D491002B3F46 /* PBXTextBookmark */ = 6BF7C2241111D491002B3F46 /* PBXTextBookmark */; + 6BF7C2251111D491002B3F46 /* PBXTextBookmark */ = 6BF7C2251111D491002B3F46 /* PBXTextBookmark */; + 6BF7C2261111D491002B3F46 /* PBXTextBookmark */ = 6BF7C2261111D491002B3F46 /* PBXTextBookmark */; + 6BF7C2271111D491002B3F46 /* PBXTextBookmark */ = 6BF7C2271111D491002B3F46 /* PBXTextBookmark */; + 6BF7C2281111D491002B3F46 /* PBXTextBookmark */ = 6BF7C2281111D491002B3F46 /* PBXTextBookmark */; + 6BF7C22A1111D49E002B3F46 /* PBXTextBookmark */ = 6BF7C22A1111D49E002B3F46 /* PBXTextBookmark */; + 6BF7C22C1111D4AC002B3F46 /* PBXTextBookmark */ = 6BF7C22C1111D4AC002B3F46 /* PBXTextBookmark */; + 6BF7C22E1111D4BE002B3F46 /* PBXTextBookmark */ = 6BF7C22E1111D4BE002B3F46 /* PBXTextBookmark */; + 6BF7C2311111D541002B3F46 /* PBXTextBookmark */ = 6BF7C2311111D541002B3F46 /* PBXTextBookmark */; + 6BF7C2321111D54C002B3F46 /* PBXTextBookmark */ = 6BF7C2321111D54C002B3F46 /* PBXTextBookmark */; + 6BF7C2341111D5F6002B3F46 /* PBXTextBookmark */ = 6BF7C2341111D5F6002B3F46 /* PBXTextBookmark */; + 6BF7C2351111D5FD002B3F46 /* PBXTextBookmark */ = 6BF7C2351111D5FD002B3F46 /* PBXTextBookmark */; + 6BF7C23D1111D687002B3F46 /* PBXTextBookmark */ = 6BF7C23D1111D687002B3F46 /* PBXTextBookmark */; + 6BF7C2421111DAC1002B3F46 /* PBXTextBookmark */ = 6BF7C2421111DAC1002B3F46 /* PBXTextBookmark */; + 6BF7C2431111DAC1002B3F46 /* PBXTextBookmark */ = 6BF7C2431111DAC1002B3F46 /* PBXTextBookmark */; + 6BF7C2441111DAC1002B3F46 /* PBXTextBookmark */ = 6BF7C2441111DAC1002B3F46 /* PBXTextBookmark */; + 6BF7C2451111DAC1002B3F46 /* PBXTextBookmark */ = 6BF7C2451111DAC1002B3F46 /* PBXTextBookmark */; + 6BF7C2461111DAC1002B3F46 /* PBXTextBookmark */ = 6BF7C2461111DAC1002B3F46 /* PBXTextBookmark */; + 6BF7C2471111DAC1002B3F46 /* PBXTextBookmark */ = 6BF7C2471111DAC1002B3F46 /* PBXTextBookmark */; + 6BF7C2481111DAC1002B3F46 /* PBXTextBookmark */ = 6BF7C2481111DAC1002B3F46 /* PBXTextBookmark */; + 6BF7C2491111DAC1002B3F46 /* PBXTextBookmark */ = 6BF7C2491111DAC1002B3F46 /* PBXTextBookmark */; + 6BF7C24A1111DAC1002B3F46 /* PBXTextBookmark */ = 6BF7C24A1111DAC1002B3F46 /* PBXTextBookmark */; }; sourceControlManager = 6B8632A90F78115100E2684A /* Source Control */; userBookmarkGroup = 6B8DE6F010A88F0500DF20FB /* PBXBookmarkGroup */; @@ -412,9 +613,9 @@ }; 6B1185FC10068B040018F96F /* DetourCommon.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {815, 3168}}"; - sepNavSelRange = "{3638, 6}"; - sepNavVisRange = "{3497, 446}"; + sepNavIntBoundsRect = "{{0, 0}, {815, 3200}}"; + sepNavSelRange = "{1541, 0}"; + sepNavVisRange = "{391, 1377}"; }; }; 6B1185FD10068B150018F96F /* DetourCommon.cpp */ = { @@ -426,16 +627,16 @@ }; 6B137C6C0F7FCBBB00459200 /* imgui.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1219, 9760}}"; - sepNavSelRange = "{1365, 0}"; - sepNavVisRange = "{1195, 415}"; + sepNavIntBoundsRect = "{{0, 0}, {1153, 9296}}"; + sepNavSelRange = "{13511, 0}"; + sepNavVisRange = "{12844, 1029}"; }; }; 6B137C6D0F7FCBBB00459200 /* MeshLoaderObj.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {915, 3360}}"; - sepNavSelRange = "{4298, 380}"; - sepNavVisRange = "{4033, 664}"; + sepNavIntBoundsRect = "{{0, 0}, {815, 3520}}"; + sepNavSelRange = "{1981, 578}"; + sepNavVisRange = "{1756, 600}"; }; }; 6B137C6E0F7FCBBB00459200 /* SDLMain.m */ = { @@ -447,8 +648,8 @@ }; 6B137C7A0F7FCBE400459200 /* imgui.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {915, 1568}}"; - sepNavSelRange = "{1582, 0}"; + sepNavIntBoundsRect = "{{0, 0}, {815, 1568}}"; + sepNavSelRange = "{1729, 73}"; sepNavVisRange = "{1480, 806}"; }; }; @@ -468,9 +669,9 @@ }; 6B137C7E0F7FCBFE00459200 /* Recast.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {815, 9232}}"; - sepNavSelRange = "{9288, 0}"; - sepNavVisRange = "{8685, 767}"; + sepNavIntBoundsRect = "{{0, 0}, {815, 9696}}"; + sepNavSelRange = "{11424, 0}"; + sepNavVisRange = "{11079, 579}"; }; }; 6B137C800F7FCBFE00459200 /* RecastLog.h */ = { @@ -548,8 +749,8 @@ 6B25B6100FFA62AD004F1BC4 /* Sample.h */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {815, 1744}}"; - sepNavSelRange = "{2656, 0}"; - sepNavVisRange = "{2258, 962}"; + sepNavSelRange = "{2375, 0}"; + sepNavVisRange = "{2216, 1034}"; }; }; 6B25B6140FFA62BE004F1BC4 /* Sample.cpp */ = { @@ -561,9 +762,9 @@ }; 6B25B6180FFA62BE004F1BC4 /* main.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1195, 10560}}"; - sepNavSelRange = "{3164, 0}"; - sepNavVisRange = "{3026, 253}"; + sepNavIntBoundsRect = "{{0, 0}, {1195, 12832}}"; + sepNavSelRange = "{17852, 0}"; + sepNavVisRange = "{16485, 417}"; }; }; 6B2AEC510FFB8946005BE9CC /* Sample_TileMesh.h */ = { @@ -617,7 +818,7 @@ fRef = 6B8DE88810B69E3E00DF20FB /* DetourNavMeshBuilder.cpp */; name = "DetourNavMeshBuilder.cpp: 639"; rLen = 0; - rLoc = 20002; + rLoc = 19896; rType = 0; vrLen = 0; vrLoc = 15319; @@ -715,7 +916,7 @@ ignoreCount = 0; lineNumber = 251; location = Recast; - modificationTime = 286193552.49837; + modificationTime = 286380664.846203; state = 1; }; 6B84BE1D110DF6C6007D997B /* Sample_TileMesh.cpp:496 */ = { @@ -732,7 +933,7 @@ ignoreCount = 0; lineNumber = 496; location = Recast; - modificationTime = 286193552.498781; + modificationTime = 286380664.846485; state = 1; }; 6B84BED0110E1818007D997B /* PBXTextBookmark */ = { @@ -760,7 +961,7 @@ fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; name = "main.cpp: 145"; rLen = 0; - rLoc = 3176; + rLoc = 3198; rType = 0; vrLen = 893; vrLoc = 2716; @@ -863,24 +1064,24 @@ }; 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {815, 33360}}"; - sepNavSelRange = "{14099, 0}"; - sepNavVisRange = "{13291, 1238}"; + sepNavIntBoundsRect = "{{0, 0}, {815, 32400}}"; + sepNavSelRange = "{16427, 0}"; + sepNavVisRange = "{15325, 1486}"; sepNavWindowFrame = "{{15, 51}, {1214, 722}}"; }; }; 6B8DE88810B69E3E00DF20FB /* DetourNavMeshBuilder.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {815, 11280}}"; - sepNavSelRange = "{15253, 20}"; - sepNavVisRange = "{14483, 947}"; + sepNavIntBoundsRect = "{{0, 0}, {1195, 11056}}"; + sepNavSelRange = "{7091, 0}"; + sepNavVisRange = "{6778, 515}"; }; }; 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {815, 7536}}"; - sepNavSelRange = "{1371, 0}"; - sepNavVisRange = "{706, 1149}"; + sepNavIntBoundsRect = "{{0, 0}, {815, 7584}}"; + sepNavSelRange = "{1866, 13}"; + sepNavVisRange = "{1445, 1158}"; }; }; 6B8DE88C10B69E4C00DF20FB /* DetourNavMeshBuilder.h */ = { @@ -1014,16 +1215,16 @@ }; 6BB7FC0910EBB6AA006DA0A6 /* NavMeshTesterTool.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {815, 1344}}"; - sepNavSelRange = "{1248, 0}"; - sepNavVisRange = "{1070, 688}"; + sepNavIntBoundsRect = "{{0, 0}, {815, 1376}}"; + sepNavSelRange = "{1832, 0}"; + sepNavVisRange = "{1387, 733}"; }; }; 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {887, 10720}}"; - sepNavSelRange = "{5610, 0}"; - sepNavVisRange = "{4972, 1068}"; + sepNavIntBoundsRect = "{{0, 0}, {887, 10992}}"; + sepNavSelRange = "{6277, 0}"; + sepNavVisRange = "{5905, 622}"; }; }; 6BB7FD6310F3564B006DA0A6 /* PBXTextBookmark */ = { @@ -1038,16 +1239,16 @@ }; 6BB7FDA310F36EFC006DA0A6 /* InputGeom.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {815, 992}}"; - sepNavSelRange = "{1344, 0}"; - sepNavVisRange = "{1091, 1163}"; + sepNavIntBoundsRect = "{{0, 0}, {815, 1072}}"; + sepNavSelRange = "{0, 918}"; + sepNavVisRange = "{0, 1014}"; }; }; 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {815, 3424}}"; - sepNavSelRange = "{4531, 0}"; - sepNavVisRange = "{5062, 705}"; + sepNavIntBoundsRect = "{{0, 0}, {815, 3216}}"; + sepNavSelRange = "{5207, 0}"; + sepNavVisRange = "{4669, 1053}"; }; }; 6BB7FDC010F37703006DA0A6 /* PBXTextBookmark */ = { @@ -1075,7 +1276,7 @@ fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; name = "main.cpp: 106"; rLen = 0; - rLoc = 2654; + rLoc = 2676; rType = 0; vrLen = 546; vrLoc = 0; @@ -1260,9 +1461,9 @@ }; 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {815, 7936}}"; - sepNavSelRange = "{2062, 0}"; - sepNavVisRange = "{1925, 807}"; + sepNavIntBoundsRect = "{{0, 0}, {815, 7728}}"; + sepNavSelRange = "{1246, 0}"; + sepNavVisRange = "{837, 552}"; }; }; 6BB93C7C10CFE1D500F74F2B /* RecastDebugDraw.cpp */ = { @@ -1397,8 +1598,8 @@ 6BCF32351104CD05009445BF /* OffMeshConnectionTool.cpp */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {815, 2560}}"; - sepNavSelRange = "{1963, 0}"; - sepNavVisRange = "{1522, 645}"; + sepNavSelRange = "{3938, 0}"; + sepNavVisRange = "{3036, 904}"; }; }; 6BCF32441104CDB5009445BF /* PBXTextBookmark */ = { @@ -1556,7 +1757,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 397"; rLen = 0; - rLoc = 5734; + rLoc = 5807; rType = 0; vrLen = 747; vrLoc = 10424; @@ -1608,7 +1809,7 @@ rLen = 0; rLoc = 2368; rType = 0; - vrLen = 1311; + vrLen = 1266; vrLoc = 1128; }; 6BF7BDC9110EF674002B3F46 /* PBXTextBookmark */ = { @@ -1688,7 +1889,7 @@ rLen = 0; rLoc = 5137; rType = 0; - vrLen = 1014; + vrLen = 273; vrLoc = 5494; }; 6BF7BDD1110EF674002B3F46 /* PBXTextBookmark */ = { @@ -1738,7 +1939,7 @@ rLen = 0; rLoc = 4941; rType = 0; - vrLen = 735; + vrLen = 375; vrLoc = 5392; }; 6BF7BDD6110EF674002B3F46 /* PBXTextBookmark */ = { @@ -1968,8 +2169,8 @@ rLen = 0; rLoc = 5101; rType = 0; - vrLen = 901; - vrLoc = 5833; + vrLen = 0; + vrLoc = 5767; }; 6BF7BDF9110EF76D002B3F46 /* PBXTextBookmark */ = { isa = PBXTextBookmark; @@ -1978,7 +2179,7 @@ rLen = 0; rLoc = 2365; rType = 0; - vrLen = 1315; + vrLen = 1213; vrLoc = 1181; }; 6BF7BDFA110EF76D002B3F46 /* PBXTextBookmark */ = { @@ -1988,25 +2189,8 @@ rLen = 0; rLoc = 5010; rType = 0; - vrLen = 886; - vrLoc = 5833; - }; - 6BF7BE04110EF78F002B3F46 /* InputGeom.cpp:183 */ = { - isa = PBXFileBreakpoint; - actions = ( - ); - breakpointStyle = 0; - continueAfterActions = 0; - countType = 0; - delayBeforeContinue = 0; - fileReference = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; - functionName = "InputGeom::updateOffMeshConnectionVisibility(dtNavMesh* navmesh)"; - hitCount = 4; - ignoreCount = 0; - lineNumber = 183; - location = Recast; - modificationTime = 286193590.326185; - state = 1; + vrLen = 0; + vrLoc = 5767; }; 6BF7BE07110EF794002B3F46 /* PBXTextBookmark */ = { isa = PBXTextBookmark; @@ -2025,7 +2209,7 @@ rLen = 0; rLoc = 4941; rType = 0; - vrLen = 785; + vrLen = 640; vrLoc = 5127; }; 6BF7BE1A110F023C002B3F46 /* PBXTextBookmark */ = { @@ -2055,7 +2239,7 @@ rLen = 0; rLoc = 1842; rType = 0; - vrLen = 1317; + vrLen = 1215; vrLoc = 1179; }; 6BF7BE1E110F0792002B3F46 /* PBXTextBookmark */ = { @@ -2135,7 +2319,7 @@ rLen = 0; rLoc = 4941; rType = 0; - vrLen = 677; + vrLen = 321; vrLoc = 5446; }; 6BF7BE2D110F13F9002B3F46 /* PBXTextBookmark */ = { @@ -2145,7 +2329,7 @@ rLen = 0; rLoc = 2368; rType = 0; - vrLen = 1323; + vrLen = 1158; vrLoc = 1236; }; 6BF7BE39110F1576002B3F46 /* PBXTextBookmark */ = { @@ -2165,8 +2349,8 @@ rLen = 0; rLoc = 5105; rType = 0; - vrLen = 835; - vrLoc = 5918; + vrLen = 0; + vrLoc = 5767; }; 6BF7BE41110F1576002B3F46 /* PBXTextBookmark */ = { isa = PBXTextBookmark; @@ -2283,7 +2467,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 74"; rLen = 51; - rLoc = 2060; + rLoc = 2133; rType = 0; vrLen = 522; vrLoc = 2163; @@ -2325,7 +2509,7 @@ rLen = 0; rLoc = 2367; rType = 0; - vrLen = 1049; + vrLen = 884; vrLoc = 1510; }; 6BF7BE5C110F170A002B3F46 /* PBXTextBookmark */ = { @@ -2375,8 +2559,8 @@ rLen = 0; rLoc = 5211; rType = 0; - vrLen = 700; - vrLoc = 6029; + vrLen = 0; + vrLoc = 5767; }; 6BF7BE65110F170A002B3F46 /* PBXTextBookmark */ = { isa = PBXTextBookmark; @@ -2423,7 +2607,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 97"; rLen = 0; - rLoc = 2697; + rLoc = 2770; rType = 0; vrLen = 830; vrLoc = 13403; @@ -2455,8 +2639,8 @@ rLen = 0; rLoc = 5338; rType = 0; - vrLen = 830; - vrLoc = 5923; + vrLen = 0; + vrLoc = 5767; }; 6BF7BE6D110F170A002B3F46 /* PBXTextBookmark */ = { isa = PBXTextBookmark; @@ -2465,7 +2649,7 @@ rLen = 14; rLoc = 2343; rType = 0; - vrLen = 1119; + vrLen = 932; vrLoc = 1462; }; 6BF7BE73110F1832002B3F46 /* PBXTextBookmark */ = { @@ -2613,7 +2797,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 97"; rLen = 0; - rLoc = 2697; + rLoc = 2770; rType = 0; vrLen = 1052; vrLoc = 13201; @@ -2633,7 +2817,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 102"; rLen = 0; - rLoc = 2771; + rLoc = 2844; rType = 0; vrLen = 768; vrLoc = 2362; @@ -2653,7 +2837,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 52"; rLen = 0; - rLoc = 1681; + rLoc = 1754; rType = 0; vrLen = 673; vrLoc = 1538; @@ -2673,7 +2857,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 52"; rLen = 0; - rLoc = 1681; + rLoc = 1754; rType = 0; vrLen = 673; vrLoc = 1538; @@ -2953,7 +3137,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 216"; rLen = 0; - rLoc = 5610; + rLoc = 5683; rType = 0; vrLen = 1068; vrLoc = 4972; @@ -2963,7 +3147,7 @@ fRef = 6B8DE88810B69E3E00DF20FB /* DetourNavMeshBuilder.cpp */; name = "DetourNavMeshBuilder.cpp: 571"; rLen = 0; - rLoc = 16108; + rLoc = 16002; rType = 0; vrLen = 636; vrLoc = 15717; @@ -3233,7 +3417,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 216"; rLen = 0; - rLoc = 5610; + rLoc = 5683; rType = 0; vrLen = 1068; vrLoc = 4972; @@ -3273,7 +3457,7 @@ fRef = 6B8DE88810B69E3E00DF20FB /* DetourNavMeshBuilder.cpp */; name = "DetourNavMeshBuilder.cpp: 575"; rLen = 0; - rLoc = 16299; + rLoc = 16193; rType = 0; vrLen = 803; vrLoc = 15718; @@ -3293,7 +3477,7 @@ fRef = 6B8DE88810B69E3E00DF20FB /* DetourNavMeshBuilder.cpp */; name = "DetourNavMeshBuilder.cpp: 571"; rLen = 0; - rLoc = 16108; + rLoc = 16002; rType = 0; vrLen = 636; vrLoc = 15717; @@ -3393,7 +3577,7 @@ fRef = 6B8DE88810B69E3E00DF20FB /* DetourNavMeshBuilder.cpp */; name = "DetourNavMeshBuilder.cpp: 518"; rLen = 20; - rLoc = 15253; + rLoc = 15147; rType = 0; vrLen = 947; vrLoc = 14483; @@ -3443,7 +3627,7 @@ fRef = 6B8DE88810B69E3E00DF20FB /* DetourNavMeshBuilder.cpp */; name = "DetourNavMeshBuilder.cpp: 518"; rLen = 20; - rLoc = 15253; + rLoc = 15147; rType = 0; vrLen = 947; vrLoc = 14483; @@ -3468,6 +3652,2033 @@ vrLen = 1238; vrLoc = 13291; }; + 6BF7C13411118CEB002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B1185FC10068B040018F96F /* DetourCommon.h */; + name = "DetourCommon.h: 31"; + rLen = 0; + rLoc = 1541; + rType = 0; + vrLen = 1377; + vrLoc = 391; + }; + 6BF7C13511118CEB002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 565"; + rLen = 0; + rLoc = 16427; + rType = 0; + vrLen = 1486; + vrLoc = 15325; + }; + 6BF7C13611118CEB002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; + name = "main.cpp: 153"; + rLen = 0; + rLoc = 3362; + rType = 0; + vrLen = 858; + vrLoc = 3056; + }; + 6BF7C13711118CEB002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; + name = "DetourNavMesh.h: 53"; + rLen = 12; + rLoc = 1958; + rType = 0; + vrLen = 1295; + vrLoc = 1445; + }; + 6BF7C13811118CEB002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; + name = "NavMeshTesterTool.cpp: 261"; + rLen = 0; + rLoc = 6716; + rType = 0; + vrLen = 1034; + vrLoc = 6152; + }; + 6BF7C13911118CEB002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 565"; + rLen = 0; + rLoc = 16427; + rType = 0; + vrLen = 1486; + vrLoc = 15325; + }; + 6BF7C13A11118CEB002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; + name = "main.cpp: 153"; + rLen = 0; + rLoc = 3362; + rType = 0; + vrLen = 858; + vrLoc = 3056; + }; + 6BF7C13B11118CEB002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; + name = "DetourNavMesh.h: 53"; + rLen = 12; + rLoc = 1958; + rType = 0; + vrLen = 1295; + vrLoc = 1445; + }; + 6BF7C13C11118CEB002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; + name = "NavMeshTesterTool.cpp: 40"; + rLen = 0; + rLoc = 1374; + rType = 0; + vrLen = 775; + vrLoc = 837; + }; + 6BF7C13E11119520002B3F46 /* TestCase.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {815, 1280}}"; + sepNavSelRange = "{919, 0}"; + sepNavVisRange = "{0, 1085}"; + }; + }; + 6BF7C13F1111953A002B3F46 /* TestCase.cpp */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {815, 5328}}"; + sepNavSelRange = "{919, 0}"; + sepNavVisRange = "{0, 1163}"; + }; + }; + 6BF7C14411119BB4002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; + name = "NavMeshTesterTool.cpp: 36"; + rLen = 0; + rLoc = 1300; + rType = 0; + vrLen = 775; + vrLoc = 837; + }; + 6BF7C14511119BB4002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6100FFA62AD004F1BC4 /* Sample.h */; + name = "Sample.h: 85"; + rLen = 0; + rLoc = 2375; + rType = 0; + vrLen = 1034; + vrLoc = 2216; + }; + 6BF7C14611119BB4002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; + name = "main.cpp: 135"; + rLen = 0; + rLoc = 2961; + rType = 0; + vrLen = 744; + vrLoc = 2433; + }; + 6BF7C14711119BB4002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; + name = "TestCase.cpp: 16"; + rLen = 0; + rLoc = 3057; + rType = 0; + vrLen = 371; + vrLoc = 0; + }; + 6BF7C14811119BB4002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + comments = "error: 'm_filename' was not declared in this scope"; + fRef = 6BF7C13E11119520002B3F46 /* TestCase.h */; + rLen = 0; + rLoc = 0; + rType = 1; + }; + 6BF7C14911119BB4002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; + name = "NavMeshTesterTool.cpp: 36"; + rLen = 0; + rLoc = 1300; + rType = 0; + vrLen = 775; + vrLoc = 837; + }; + 6BF7C14A11119BB4002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; + name = "main.cpp: 652"; + rLen = 0; + rLoc = 15170; + rType = 0; + vrLen = 633; + vrLoc = 2275; + }; + 6BF7C14B11119BB4002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13E11119520002B3F46 /* TestCase.h */; + name = "TestCase.h: 1"; + rLen = 0; + rLoc = 1970; + rType = 0; + vrLen = 0; + vrLoc = 0; + }; + 6BF7C14C11119BB4002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13E11119520002B3F46 /* TestCase.h */; + name = "TestCase.h: 4"; + rLen = 938; + rLoc = 1011; + rType = 0; + vrLen = 249; + vrLoc = 0; + }; + 6BF7C14D11119BB4002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13E11119520002B3F46 /* TestCase.h */; + name = "TestCase.h: 18"; + rLen = 0; + rLoc = 1858; + rType = 0; + vrLen = 320; + vrLoc = 0; + }; + 6BF7C14E11119BB4002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; + name = "main.cpp: 425"; + rLen = 0; + rLoc = 10010; + rType = 0; + vrLen = 714; + vrLoc = 9395; + }; + 6BF7C14F11119BB4002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6100FFA62AD004F1BC4 /* Sample.h */; + name = "Sample.h: 88"; + rLen = 105; + rLoc = 2464; + rType = 0; + vrLen = 1090; + vrLoc = 2133; + }; + 6BF7C15011119BB4002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13E11119520002B3F46 /* TestCase.h */; + name = "TestCase.h: 17"; + rLen = 89; + rLoc = 1857; + rType = 0; + vrLen = 356; + vrLoc = 0; + }; + 6BF7C15111119BB4002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13E11119520002B3F46 /* TestCase.h */; + name = "TestCase.h: 17"; + rLen = 89; + rLoc = 1857; + rType = 0; + vrLen = 356; + vrLoc = 0; + }; + 6BF7C15211119BB4002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13E11119520002B3F46 /* TestCase.h */; + name = "TestCase.h: 23"; + rLen = 0; + rLoc = 1946; + rType = 0; + vrLen = 461; + vrLoc = 0; + }; + 6BF7C15311119BB4002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13E11119520002B3F46 /* TestCase.h */; + name = "TestCase.h: 23"; + rLen = 0; + rLoc = 1946; + rType = 0; + vrLen = 461; + vrLoc = 0; + }; + 6BF7C15411119BB4002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6100FFA62AD004F1BC4 /* Sample.h */; + name = "Sample.h: 85"; + rLen = 0; + rLoc = 2375; + rType = 0; + vrLen = 1034; + vrLoc = 2216; + }; + 6BF7C15511119BB4002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13E11119520002B3F46 /* TestCase.h */; + name = "TestCase.h: 17"; + rLen = 0; + rLoc = 1811; + rType = 0; + vrLen = 461; + vrLoc = 0; + }; + 6BF7C15611119BB4002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13E11119520002B3F46 /* TestCase.h */; + name = "TestCase.h: 14"; + rLen = 0; + rLoc = 1638; + rType = 0; + vrLen = 461; + vrLoc = 0; + }; + 6BF7C15711119BB4002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; + name = "TestCase.cpp: 16"; + rLen = 0; + rLoc = 3057; + rType = 0; + vrLen = 371; + vrLoc = 0; + }; + 6BF7C15811119BB4002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13E11119520002B3F46 /* TestCase.h */; + name = "TestCase.h: 23"; + rLen = 0; + rLoc = 1948; + rType = 0; + vrLen = 461; + vrLoc = 0; + }; + 6BF7C15911119BBC002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13E11119520002B3F46 /* TestCase.h */; + name = "TestCase.h: 23"; + rLen = 0; + rLoc = 1948; + rType = 0; + vrLen = 320; + vrLoc = 141; + }; + 6BF7C15A11119BCE002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13E11119520002B3F46 /* TestCase.h */; + name = "TestCase.h: 23"; + rLen = 0; + rLoc = 1948; + rType = 0; + vrLen = 461; + vrLoc = 0; + }; + 6BF7C15B11119BCE002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88810B69E3E00DF20FB /* DetourNavMeshBuilder.cpp */; + name = "DetourNavMeshBuilder.cpp: 518"; + rLen = 20; + rLoc = 15147; + rType = 0; + vrLen = 1032; + vrLoc = 14396; + }; + 6BF7C15C11119BCE002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13E11119520002B3F46 /* TestCase.h */; + name = "TestCase.h: 23"; + rLen = 0; + rLoc = 1948; + rType = 0; + vrLen = 461; + vrLoc = 0; + }; + 6BF7C15D11119BCE002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88810B69E3E00DF20FB /* DetourNavMeshBuilder.cpp */; + name = "DetourNavMeshBuilder.cpp: 271"; + rLen = 0; + rLoc = 7091; + rType = 0; + vrLen = 1256; + vrLoc = 6313; + }; + 6BF7C15E11119BE8002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88810B69E3E00DF20FB /* DetourNavMeshBuilder.cpp */; + name = "DetourNavMeshBuilder.cpp: 271"; + rLen = 0; + rLoc = 7091; + rType = 0; + vrLen = 1256; + vrLoc = 6313; + }; + 6BF7C15F11119BF7002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88810B69E3E00DF20FB /* DetourNavMeshBuilder.cpp */; + name = "DetourNavMeshBuilder.cpp: 271"; + rLen = 0; + rLoc = 7091; + rType = 0; + vrLen = 1213; + vrLoc = 6463; + }; + 6BF7C16011119C3C002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13E11119520002B3F46 /* TestCase.h */; + name = "TestCase.h: 23"; + rLen = 0; + rLoc = 1948; + rType = 0; + vrLen = 320; + vrLoc = 141; + }; + 6BF7C16111119C3C002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88810B69E3E00DF20FB /* DetourNavMeshBuilder.cpp */; + name = "DetourNavMeshBuilder.cpp: 271"; + rLen = 0; + rLoc = 7091; + rType = 0; + vrLen = 501; + vrLoc = 6863; + }; + 6BF7C16211119C69002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88810B69E3E00DF20FB /* DetourNavMeshBuilder.cpp */; + name = "DetourNavMeshBuilder.cpp: 273"; + rLen = 0; + rLoc = 7184; + rType = 0; + vrLen = 1183; + vrLoc = 6479; + }; + 6BF7C16311119C69002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C6D0F7FCBBB00459200 /* MeshLoaderObj.cpp */; + name = "MeshLoaderObj.cpp: 157"; + rLen = 0; + rLoc = 3402; + rType = 0; + vrLen = 569; + vrLoc = 2952; + }; + 6BF7C16411119C69002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13E11119520002B3F46 /* TestCase.h */; + name = "TestCase.h: 14"; + rLen = 0; + rLoc = 1643; + rType = 0; + vrLen = 461; + vrLoc = 0; + }; + 6BF7C16511119C69002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; + name = "TestCase.cpp: 32"; + rLen = 0; + rLoc = 3057; + rType = 0; + vrLen = 448; + vrLoc = 166; + }; + 6BF7C16611119C69002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88810B69E3E00DF20FB /* DetourNavMeshBuilder.cpp */; + name = "DetourNavMeshBuilder.cpp: 273"; + rLen = 0; + rLoc = 7184; + rType = 0; + vrLen = 1183; + vrLoc = 6479; + }; + 6BF7C16711119C69002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C6D0F7FCBBB00459200 /* MeshLoaderObj.cpp */; + name = "MeshLoaderObj.cpp: 157"; + rLen = 0; + rLoc = 3402; + rType = 0; + vrLen = 569; + vrLoc = 2952; + }; + 6BF7C16811119C69002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; + name = "TestCase.cpp: 32"; + rLen = 0; + rLoc = 3057; + rType = 0; + vrLen = 448; + vrLoc = 166; + }; + 6BF7C16911119C69002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13E11119520002B3F46 /* TestCase.h */; + name = "TestCase.h: 14"; + rLen = 0; + rLoc = 1643; + rType = 0; + vrLen = 461; + vrLoc = 0; + }; + 6BF7C16A11119C69002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; + name = "TestCase.cpp: 31"; + rLen = 0; + rLoc = 2319; + rType = 0; + vrLen = 427; + vrLoc = 94; + }; + 6BF7C16B11119D8F002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13E11119520002B3F46 /* TestCase.h */; + name = "TestCase.h: 22"; + rLen = 7; + rLoc = 1569; + rType = 0; + vrLen = 543; + vrLoc = 0; + }; + 6BF7C16C11119D8F002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C6D0F7FCBBB00459200 /* MeshLoaderObj.cpp */; + name = "MeshLoaderObj.cpp: 78"; + rLen = 578; + rLoc = 1981; + rType = 0; + vrLen = 600; + vrLoc = 1756; + }; + 6BF7C16D11119D8F002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; + name = "TestCase.cpp: 47"; + rLen = 0; + rLoc = 3026; + rType = 0; + vrLen = 570; + vrLoc = 173; + }; + 6BF7C16E11119D8F002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13E11119520002B3F46 /* TestCase.h */; + name = "TestCase.h: 22"; + rLen = 7; + rLoc = 1569; + rType = 0; + vrLen = 543; + vrLoc = 0; + }; + 6BF7C16F11119D8F002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C6D0F7FCBBB00459200 /* MeshLoaderObj.cpp */; + name = "MeshLoaderObj.cpp: 78"; + rLen = 578; + rLoc = 1981; + rType = 0; + vrLen = 600; + vrLoc = 1756; + }; + 6BF7C17011119D8F002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; + name = "TestCase.cpp: 82"; + rLen = 0; + rLoc = 3021; + rType = 0; + vrLen = 542; + vrLoc = 939; + }; + 6BF7C17111119DC5002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; + name = "TestCase.cpp: 92"; + rLen = 0; + rLoc = 2633; + rType = 0; + vrLen = 479; + vrLoc = 976; + }; + 6BF7C17211119EDD002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13E11119520002B3F46 /* TestCase.h */; + name = "TestCase.h: 8"; + rLen = 13; + rLoc = 1048; + rType = 0; + vrLen = 602; + vrLoc = 39; + }; + 6BF7C17311119EDD002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; + name = "TestCase.cpp: 106"; + rLen = 0; + rLoc = 2814; + rType = 0; + vrLen = 576; + vrLoc = 1259; + }; + 6BF7C17411119EDD002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; + name = "TestCase.cpp: 84"; + rLen = 0; + rLoc = 2494; + rType = 0; + vrLen = 505; + vrLoc = 976; + }; + 6BF7C17511119EDD002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13E11119520002B3F46 /* TestCase.h */; + name = "TestCase.h: 20"; + rLen = 12; + rLoc = 1516; + rType = 0; + vrLen = 602; + vrLoc = 39; + }; + 6BF7C17611119EDD002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; + name = "TestCase.cpp: 90"; + rLen = 0; + rLoc = 2572; + rType = 0; + vrLen = 538; + vrLoc = 976; + }; + 6BF7C17711119EDD002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13E11119520002B3F46 /* TestCase.h */; + name = "TestCase.h: 20"; + rLen = 12; + rLoc = 1516; + rType = 0; + vrLen = 602; + vrLoc = 39; + }; + 6BF7C17811119EDD002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; + name = "TestCase.cpp: 104"; + rLen = 0; + rLoc = 3017; + rType = 0; + vrLen = 546; + vrLoc = 1228; + }; + 6BF7C17911119EDD002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13E11119520002B3F46 /* TestCase.h */; + name = "TestCase.h: 11"; + rLen = 4; + rLoc = 1077; + rType = 0; + vrLen = 602; + vrLoc = 39; + }; + 6BF7C17A11119EDD002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; + name = "TestCase.cpp: 105"; + rLen = 0; + rLoc = 2814; + rType = 0; + vrLen = 529; + vrLoc = 1259; + }; + 6BF7C17B11119EDD002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13E11119520002B3F46 /* TestCase.h */; + name = "TestCase.h: 11"; + rLen = 0; + rLoc = 1077; + rType = 0; + vrLen = 602; + vrLoc = 39; + }; + 6BF7C17C11119EDD002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; + name = "TestCase.cpp: 106"; + rLen = 0; + rLoc = 2814; + rType = 0; + vrLen = 576; + vrLoc = 1259; + }; + 6BF7C17D11119EDD002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13E11119520002B3F46 /* TestCase.h */; + name = "TestCase.h: 8"; + rLen = 13; + rLoc = 1048; + rType = 0; + vrLen = 602; + vrLoc = 39; + }; + 6BF7C17E11119EDD002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; + name = "TestCase.cpp: 109"; + rLen = 0; + rLoc = 2832; + rType = 0; + vrLen = 614; + vrLoc = 1259; + }; + 6BF7C17F11119F2B002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13E11119520002B3F46 /* TestCase.h */; + name = "TestCase.h: 16"; + rLen = 0; + rLoc = 1275; + rType = 0; + vrLen = 591; + vrLoc = 39; + }; + 6BF7C18011119F2B002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; + name = "TestCase.cpp: 110"; + rLen = 0; + rLoc = 3017; + rType = 0; + vrLen = 614; + vrLoc = 1259; + }; + 6BF7C18111119F2B002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; + name = "TestCase.cpp: 110"; + rLen = 0; + rLoc = 3017; + rType = 0; + vrLen = 614; + vrLoc = 1259; + }; + 6BF7C18211119F2B002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13E11119520002B3F46 /* TestCase.h */; + name = "TestCase.h: 16"; + rLen = 0; + rLoc = 1275; + rType = 0; + vrLen = 591; + vrLoc = 39; + }; + 6BF7C18311119F2B002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; + name = "TestCase.cpp: 116"; + rLen = 0; + rLoc = 3026; + rType = 0; + vrLen = 733; + vrLoc = 1336; + }; + 6BF7C18411119F45002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; + name = "TestCase.cpp: 116"; + rLen = 0; + rLoc = 3026; + rType = 0; + vrLen = 747; + vrLoc = 1336; + }; + 6BF7C1881111A0A2002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; + name = "TestCase.cpp: 68"; + rLen = 0; + rLoc = 2002; + rType = 0; + vrLen = 636; + vrLoc = 763; + }; + 6BF7C1891111A0A2002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; + name = "main.cpp: 135"; + rLen = 0; + rLoc = 2961; + rType = 0; + vrLen = 742; + vrLoc = 2435; + }; + 6BF7C18A1111A0A2002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; + name = "TestCase.cpp: 68"; + rLen = 0; + rLoc = 2002; + rType = 0; + vrLen = 636; + vrLoc = 763; + }; + 6BF7C18B1111A0A2002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; + name = "main.cpp: 675"; + rLen = 0; + rLoc = 15805; + rType = 0; + vrLen = 665; + vrLoc = 14782; + }; + 6BF7C1921111A8DB002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13E11119520002B3F46 /* TestCase.h */; + name = "TestCase.h: 31"; + rLen = 0; + rLoc = 1768; + rType = 0; + vrLen = 603; + vrLoc = 39; + }; + 6BF7C1931111A8DB002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; + name = "TestCase.cpp: 116"; + rLen = 0; + rLoc = 3026; + rType = 0; + vrLen = 840; + vrLoc = 1568; + }; + 6BF7C1941111A8DB002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + comments = "error: no matching function for call to 'TestCase::doTests()'"; + fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; + rLen = 1; + rLoc = 748; + rType = 1; + }; + 6BF7C1951111A8DB002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; + name = "main.cpp: 694"; + rLen = 0; + rLoc = 15863; + rType = 0; + vrLen = 765; + vrLoc = 15658; + }; + 6BF7C1961111A8DB002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13E11119520002B3F46 /* TestCase.h */; + name = "TestCase.h: 31"; + rLen = 0; + rLoc = 1768; + rType = 0; + vrLen = 603; + vrLoc = 39; + }; + 6BF7C1971111A8DB002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; + name = "TestCase.cpp: 99"; + rLen = 0; + rLoc = 2572; + rType = 0; + vrLen = 650; + vrLoc = 1121; + }; + 6BF7C1981111A8DB002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; + name = "main.cpp: 716"; + rLen = 0; + rLoc = 16369; + rType = 0; + vrLen = 859; + vrLoc = 16199; + }; + 6BF7C1991111A8DB002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; + name = "TestCase.cpp: 116"; + rLen = 0; + rLoc = 3026; + rType = 0; + vrLen = 840; + vrLoc = 1568; + }; + 6BF7C19A1111A8DB002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; + name = "main.cpp: 740"; + rLen = 0; + rLoc = 17288; + rType = 0; + vrLen = 751; + vrLoc = 16572; + }; + 6BF7C19B1111A8E3002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; + name = "main.cpp: 740"; + rLen = 0; + rLoc = 17288; + rType = 0; + vrLen = 780; + vrLoc = 16572; + }; + 6BF7C19C1111A8E7002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88810B69E3E00DF20FB /* DetourNavMeshBuilder.cpp */; + name = "DetourNavMeshBuilder.cpp: 271"; + rLen = 0; + rLoc = 7091; + rType = 0; + vrLen = 515; + vrLoc = 6778; + }; + 6BF7C19D1111A8E7002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; + name = "main.cpp: 740"; + rLen = 0; + rLoc = 17288; + rType = 0; + vrLen = 232; + vrLoc = 16857; + }; + 6BF7C1A11111A9C0002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; + name = "main.cpp: 738"; + rLen = 0; + rLoc = 17230; + rType = 0; + vrLen = 780; + vrLoc = 16572; + }; + 6BF7C1A21111A9C0002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BCF32351104CD05009445BF /* OffMeshConnectionTool.cpp */; + name = "OffMeshConnectionTool.cpp: 159"; + rLen = 0; + rLoc = 3938; + rType = 0; + vrLen = 904; + vrLoc = 3036; + }; + 6BF7C1A31111A9C0002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; + name = "NavMeshTesterTool.cpp: 26"; + rLen = 0; + rLoc = 1062; + rType = 0; + vrLen = 1173; + vrLoc = 128; + }; + 6BF7C1A41111A9C0002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; + name = "TestCase.cpp: 141"; + rLen = 0; + rLoc = 5526; + rType = 0; + vrLen = 551; + vrLoc = 2360; + }; + 6BF7C1A51111A9C0002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; + name = "main.cpp: 738"; + rLen = 0; + rLoc = 17230; + rType = 0; + vrLen = 780; + vrLoc = 16572; + }; + 6BF7C1A61111A9C0002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; + name = "NavMeshTesterTool.cpp: 26"; + rLen = 0; + rLoc = 1062; + rType = 0; + vrLen = 1173; + vrLoc = 128; + }; + 6BF7C1A71111A9C0002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; + name = "TestCase.cpp: 154"; + rLen = 0; + rLoc = 6319; + rType = 0; + vrLen = 730; + vrLoc = 2282; + }; + 6BF7C1AC1111AA73002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; + name = "Recast.h: 346"; + rLen = 38; + rLoc = 11617; + rType = 0; + vrLen = 579; + vrLoc = 11079; + }; + 6BF7C1AD1111AA73002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; + name = "TestCase.cpp: 175"; + rLen = 0; + rLoc = 6998; + rType = 0; + vrLen = 955; + vrLoc = 2779; + }; + 6BF7C1AE1111AA73002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; + name = "Recast.h: 346"; + rLen = 38; + rLoc = 11617; + rType = 0; + vrLen = 579; + vrLoc = 11079; + }; + 6BF7C1AF1111AA73002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; + name = "TestCase.cpp: 175"; + rLen = 0; + rLoc = 6814; + rType = 0; + vrLen = 902; + vrLoc = 2859; + }; + 6BF7C1B21111AAC2002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; + name = "TestCase.cpp: 175"; + rLen = 0; + rLoc = 6814; + rType = 0; + vrLen = 850; + vrLoc = 2921; + }; + 6BF7C1B41111AB0A002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; + name = "TestCase.cpp: 191"; + rLen = 0; + rLoc = 8235; + rType = 0; + vrLen = 758; + vrLoc = 3206; + }; + 6BF7C1B61111AB1F002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; + name = "TestCase.cpp: 190"; + rLen = 0; + rLoc = 8168; + rType = 0; + vrLen = 762; + vrLoc = 3206; + }; + 6BF7C1B91111AB3C002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; + name = "TestCase.cpp: 190"; + rLen = 0; + rLoc = 8166; + rType = 0; + vrLen = 764; + vrLoc = 3206; + }; + 6BF7C1BA1111AB3C002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; + name = "main.cpp: 738"; + rLen = 0; + rLoc = 17230; + rType = 0; + vrLen = 780; + vrLoc = 16572; + }; + 6BF7C1BB1111AB3C002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; + name = "TestCase.cpp: 190"; + rLen = 0; + rLoc = 8166; + rType = 0; + vrLen = 764; + vrLoc = 3206; + }; + 6BF7C1BC1111AB3C002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; + name = "main.cpp: 759"; + rLen = 0; + rLoc = 17640; + rType = 0; + vrLen = 722; + vrLoc = 17055; + }; + 6BF7C1BD1111AB4B002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; + name = "main.cpp: 766"; + rLen = 0; + rLoc = 17852; + rType = 0; + vrLen = 744; + vrLoc = 17055; + }; + 6BF7C1BE1111AB4F002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; + name = "main.cpp: 766"; + rLen = 0; + rLoc = 17852; + rType = 0; + vrLen = 268; + vrLoc = 17055; + }; + 6BF7C1C11111AB89002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; + name = "main.cpp: 727"; + rLen = 0; + rLoc = 16635; + rType = 0; + vrLen = 842; + vrLoc = 16067; + }; + 6BF7C1C31111AB95002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; + name = "main.cpp: 727"; + rLen = 0; + rLoc = 16635; + rType = 0; + vrLen = 932; + vrLoc = 16067; + }; + 6BF7C1C41111AB95002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; + name = "TestCase.cpp: 190"; + rLen = 0; + rLoc = 8166; + rType = 0; + vrLen = 764; + vrLoc = 3206; + }; + 6BF7C1C51111AB95002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; + name = "main.cpp: 727"; + rLen = 0; + rLoc = 16635; + rType = 0; + vrLen = 932; + vrLoc = 16067; + }; + 6BF7C1C61111AB95002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; + name = "TestCase.cpp: 190"; + rLen = 0; + rLoc = 8166; + rType = 0; + vrLen = 762; + vrLoc = 3206; + }; + 6BF7C1C81111ABA2002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; + name = "TestCase.cpp: 190"; + rLen = 0; + rLoc = 8168; + rType = 0; + vrLen = 762; + vrLoc = 3206; + }; + 6BF7C1CE1111BCF2002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13E11119520002B3F46 /* TestCase.h */; + name = "TestCase.h: 37"; + rLen = 0; + rLoc = 1946; + rType = 0; + vrLen = 589; + vrLoc = 74; + }; + 6BF7C1CF1111BCF2002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; + name = "main.cpp: 431"; + rLen = 0; + rLoc = 10039; + rType = 0; + vrLen = 772; + vrLoc = 9844; + }; + 6BF7C1D01111BCF2002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C7A0F7FCBE400459200 /* imgui.h */; + name = "imgui.h: 53"; + rLen = 73; + rLoc = 1729; + rType = 0; + vrLen = 806; + vrLoc = 1480; + }; + 6BF7C1D11111BCF2002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; + name = "TestCase.cpp: 195"; + rLen = 0; + rLoc = 8137; + rType = 0; + vrLen = 766; + vrLoc = 3411; + }; + 6BF7C1D21111BCF2002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13E11119520002B3F46 /* TestCase.h */; + name = "TestCase.h: 16"; + rLen = 0; + rLoc = 1490; + rType = 0; + vrLen = 589; + vrLoc = 74; + }; + 6BF7C1D31111BCF2002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; + name = "main.cpp: 769"; + rLen = 167; + rLoc = 17686; + rType = 0; + vrLen = 744; + vrLoc = 17274; + }; + 6BF7C1D41111BCF2002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13E11119520002B3F46 /* TestCase.h */; + name = "TestCase.h: 37"; + rLen = 0; + rLoc = 1946; + rType = 0; + vrLen = 589; + vrLoc = 74; + }; + 6BF7C1D51111BCF2002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C7A0F7FCBE400459200 /* imgui.h */; + name = "imgui.h: 53"; + rLen = 73; + rLoc = 1729; + rType = 0; + vrLen = 806; + vrLoc = 1480; + }; + 6BF7C1D61111BCF2002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; + name = "TestCase.cpp: 187"; + rLen = 0; + rLoc = 7405; + rType = 0; + vrLen = 811; + vrLoc = 3284; + }; + 6BF7C1D81111BD01002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; + name = "TestCase.cpp: 187"; + rLen = 0; + rLoc = 7405; + rType = 0; + vrLen = 786; + vrLoc = 3411; + }; + 6BF7C1DB1111BD29002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13E11119520002B3F46 /* TestCase.h */; + name = "TestCase.h: 17"; + rLen = 6; + rLoc = 1311; + rType = 0; + vrLen = 584; + vrLoc = 74; + }; + 6BF7C1DC1111BD29002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; + name = "TestCase.cpp: 183"; + rLen = 0; + rLoc = 7267; + rType = 0; + vrLen = 811; + vrLoc = 3411; + }; + 6BF7C1DD1111BD29002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; + name = "TestCase.cpp: 183"; + rLen = 0; + rLoc = 7267; + rType = 0; + vrLen = 811; + vrLoc = 3411; + }; + 6BF7C1DE1111BD29002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13E11119520002B3F46 /* TestCase.h */; + name = "TestCase.h: 17"; + rLen = 6; + rLoc = 1311; + rType = 0; + vrLen = 584; + vrLoc = 74; + }; + 6BF7C1DF1111BD29002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; + name = "TestCase.cpp: 197"; + rLen = 0; + rLoc = 8053; + rType = 0; + vrLen = 787; + vrLoc = 3527; + }; + 6BF7C1E21111BD81002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C6C0F7FCBBB00459200 /* imgui.cpp */; + name = "imgui.cpp: 513"; + rLen = 0; + rLoc = 13511; + rType = 0; + vrLen = 1029; + vrLoc = 12844; + }; + 6BF7C1E31111BD81002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; + name = "TestCase.cpp: 198"; + rLen = 0; + rLoc = 8137; + rType = 0; + vrLen = 789; + vrLoc = 3527; + }; + 6BF7C1E41111BD81002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; + name = "TestCase.cpp: 198"; + rLen = 0; + rLoc = 8137; + rType = 0; + vrLen = 789; + vrLoc = 3527; + }; + 6BF7C1E51111BD81002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C6C0F7FCBBB00459200 /* imgui.cpp */; + name = "imgui.cpp: 513"; + rLen = 0; + rLoc = 13511; + rType = 0; + vrLen = 1029; + vrLoc = 12844; + }; + 6BF7C1E61111BD81002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; + name = "TestCase.cpp: 200"; + rLen = 0; + rLoc = 7736; + rType = 0; + vrLen = 855; + vrLoc = 3527; + }; + 6BF7C1E91111BDBE002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; + name = "TestCase.cpp: 184"; + rLen = 0; + rLoc = 7178; + rType = 0; + vrLen = 819; + vrLoc = 3231; + }; + 6BF7C1EA1111C0A6002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13E11119520002B3F46 /* TestCase.h */; + name = "TestCase.h: 28"; + rLen = 0; + rLoc = 1340; + rType = 0; + vrLen = 456; + vrLoc = 82; + }; + 6BF7C1EB1111C0A6002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; + name = "NavMeshTesterTool.cpp: 246"; + rLen = 0; + rLoc = 6277; + rType = 0; + vrLen = 622; + vrLoc = 5905; + }; + 6BF7C1EC1111C0A6002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0910EBB6AA006DA0A6 /* NavMeshTesterTool.h */; + name = "NavMeshTesterTool.h: 63"; + rLen = 0; + rLoc = 1832; + rType = 0; + vrLen = 733; + vrLoc = 1387; + }; + 6BF7C1ED1111C0A6002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; + name = "DetourNavMesh.h: 50"; + rLen = 13; + rLoc = 1866; + rType = 0; + vrLen = 1158; + vrLoc = 1445; + }; + 6BF7C1EE1111C0A6002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; + name = "TestCase.cpp: 156"; + rLen = 0; + rLoc = 3751; + rType = 0; + vrLen = 827; + vrLoc = 2484; + }; + 6BF7C1EF1111C0A6002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13E11119520002B3F46 /* TestCase.h */; + name = "TestCase.h: 18"; + rLen = 0; + rLoc = 1504; + rType = 0; + vrLen = 520; + vrLoc = 0; + }; + 6BF7C1F01111C0A6002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13E11119520002B3F46 /* TestCase.h */; + name = "TestCase.h: 28"; + rLen = 0; + rLoc = 1340; + rType = 0; + vrLen = 456; + vrLoc = 82; + }; + 6BF7C1F11111C0A6002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; + name = "NavMeshTesterTool.cpp: 21"; + rLen = 0; + rLoc = 981; + rType = 0; + vrLen = 1173; + vrLoc = 128; + }; + 6BF7C1F21111C0A6002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0910EBB6AA006DA0A6 /* NavMeshTesterTool.h */; + name = "NavMeshTesterTool.h: 63"; + rLen = 0; + rLoc = 1832; + rType = 0; + vrLen = 733; + vrLoc = 1387; + }; + 6BF7C1F31111C0A6002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; + name = "DetourNavMesh.h: 50"; + rLen = 13; + rLoc = 1866; + rType = 0; + vrLen = 1158; + vrLoc = 1445; + }; + 6BF7C1F41111C0A6002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; + name = "TestCase.cpp: 233"; + rLen = 0; + rLoc = 6640; + rType = 0; + vrLen = 690; + vrLoc = 4843; + }; + 6BF7C1F91111D204002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; + name = "Recast.h: 334"; + rLen = 0; + rLoc = 11424; + rType = 0; + vrLen = 579; + vrLoc = 11079; + }; + 6BF7C1FA1111D204002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; + name = "TestCase.cpp: 235"; + rLen = 0; + rLoc = 6645; + rType = 0; + vrLen = 668; + vrLoc = 4968; + }; + 6BF7C1FB1111D204002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; + name = "Recast.h: 334"; + rLen = 0; + rLoc = 11424; + rType = 0; + vrLen = 579; + vrLoc = 11079; + }; + 6BF7C1FC1111D204002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; + name = "TestCase.cpp: 244"; + rLen = 0; + rLoc = 6811; + rType = 0; + vrLen = 678; + vrLoc = 4968; + }; + 6BF7C1FD1111D213002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; + name = "TestCase.cpp: 241"; + rLen = 0; + rLoc = 6796; + rType = 0; + vrLen = 735; + vrLoc = 4968; + }; + 6BF7C1FE1111D222002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; + name = "main.cpp: 775"; + rLen = 0; + rLoc = 17852; + rType = 0; + vrLen = 417; + vrLoc = 16485; + }; + 6BF7C1FF1111D222002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; + name = "TestCase.cpp: 122"; + rLen = 0; + rLoc = 3026; + rType = 0; + vrLen = 292; + vrLoc = 1895; + }; + 6BF7C2031111D22F002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; + name = "TestCase.cpp: 130"; + rLen = 0; + rLoc = 3307; + rType = 0; + vrLen = 672; + vrLoc = 1876; + }; + 6BF7C2051111D276002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; + name = "TestCase.cpp: 114"; + rLen = 0; + rLoc = 2794; + rType = 0; + vrLen = 646; + vrLoc = 1498; + }; + 6BF7C2091111D299002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; + name = "TestCase.cpp: 114"; + rLen = 0; + rLoc = 2794; + rType = 0; + vrLen = 941; + vrLoc = 2189; + }; + 6BF7C20A1111D299002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + rLen = 0; + rLoc = 185; + rType = 1; + }; + 6BF7C20B1111D299002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; + name = "TestCase.cpp: 114"; + rLen = 0; + rLoc = 2794; + rType = 0; + vrLen = 941; + vrLoc = 2189; + }; + 6BF7C20C1111D299002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 186"; + rLen = 0; + rLoc = 5014; + rType = 0; + vrLen = 991; + vrLoc = 4669; + }; + 6BF7C20F1111D361002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 191"; + rLen = 0; + rLoc = 5207; + rType = 0; + vrLen = 1053; + vrLoc = 4669; + }; + 6BF7C2101111D361002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA310F36EFC006DA0A6 /* InputGeom.h */; + name = "InputGeom.h: 36"; + rLen = 0; + rLoc = 1344; + rType = 0; + vrLen = 904; + vrLoc = 939; + }; + 6BF7C2111111D361002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13E11119520002B3F46 /* TestCase.h */; + name = "TestCase.h: 34"; + rLen = 93; + rLoc = 1395; + rType = 0; + vrLen = 627; + vrLoc = 400; + }; + 6BF7C2121111D361002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; + name = "TestCase.cpp: 132"; + rLen = 0; + rLoc = 3241; + rType = 0; + vrLen = 654; + vrLoc = 2141; + }; + 6BF7C2131111D361002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 191"; + rLen = 0; + rLoc = 5207; + rType = 0; + vrLen = 1053; + vrLoc = 4669; + }; + 6BF7C2141111D361002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA310F36EFC006DA0A6 /* InputGeom.h */; + name = "InputGeom.h: 36"; + rLen = 0; + rLoc = 1344; + rType = 0; + vrLen = 904; + vrLoc = 939; + }; + 6BF7C2151111D361002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; + name = "TestCase.cpp: 146"; + rLen = 0; + rLoc = 3667; + rType = 0; + vrLen = 985; + vrLoc = 2189; + }; + 6BF7C2161111D361002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13E11119520002B3F46 /* TestCase.h */; + name = "TestCase.h: 34"; + rLen = 0; + rLoc = 1487; + rType = 0; + vrLen = 454; + vrLoc = 109; + }; + 6BF7C2171111D361002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; + name = "TestCase.cpp: 146"; + rLen = 0; + rLoc = 3667; + rType = 0; + vrLen = 985; + vrLoc = 2189; + }; + 6BF7C2181111D361002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13E11119520002B3F46 /* TestCase.h */; + name = "TestCase.h: 35"; + rLen = 0; + rLoc = 1487; + rType = 0; + vrLen = 460; + vrLoc = 109; + }; + 6BF7C2191111D361002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; + name = "TestCase.cpp: 146"; + rLen = 0; + rLoc = 3667; + rType = 0; + vrLen = 990; + vrLoc = 2352; + }; + 6BF7C21A1111D361002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13E11119520002B3F46 /* TestCase.h */; + name = "TestCase.h: 36"; + rLen = 0; + rLoc = 1487; + rType = 0; + vrLen = 461; + vrLoc = 109; + }; + 6BF7C21B1111D361002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; + name = "TestCase.cpp: 146"; + rLen = 0; + rLoc = 3667; + rType = 0; + vrLen = 990; + vrLoc = 2352; + }; + 6BF7C21C1111D361002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13E11119520002B3F46 /* TestCase.h */; + name = "TestCase.h: 34"; + rLen = 0; + rLoc = 1395; + rType = 0; + vrLen = 482; + vrLoc = 109; + }; + 6BF7C21D1111D361002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; + name = "TestCase.cpp: 131"; + rLen = 0; + rLoc = 3317; + rType = 0; + vrLen = 698; + vrLoc = 1994; + }; + 6BF7C21E1111D361002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13E11119520002B3F46 /* TestCase.h */; + name = "TestCase.h: 45"; + rLen = 20; + rLoc = 1580; + rType = 0; + vrLen = 627; + vrLoc = 400; + }; + 6BF7C21F1111D361002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; + name = "TestCase.cpp: 132"; + rLen = 0; + rLoc = 3241; + rType = 0; + vrLen = 654; + vrLoc = 2141; + }; + 6BF7C2201111D361002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13E11119520002B3F46 /* TestCase.h */; + name = "TestCase.h: 34"; + rLen = 93; + rLoc = 1395; + rType = 0; + vrLen = 627; + vrLoc = 400; + }; + 6BF7C2211111D361002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; + name = "TestCase.cpp: 157"; + rLen = 0; + rLoc = 3664; + rType = 0; + vrLen = 865; + vrLoc = 2374; + }; + 6BF7C2241111D491002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13E11119520002B3F46 /* TestCase.h */; + name = "TestCase.h: 34"; + rLen = 93; + rLoc = 1395; + rType = 0; + vrLen = 627; + vrLoc = 400; + }; + 6BF7C2251111D491002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; + name = "TestCase.cpp: 303"; + rLen = 0; + rLoc = 8053; + rType = 0; + vrLen = 893; + vrLoc = 6232; + }; + 6BF7C2261111D491002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; + name = "TestCase.cpp: 303"; + rLen = 0; + rLoc = 8053; + rType = 0; + vrLen = 893; + vrLoc = 6232; + }; + 6BF7C2271111D491002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13E11119520002B3F46 /* TestCase.h */; + name = "TestCase.h: 34"; + rLen = 93; + rLoc = 1395; + rType = 0; + vrLen = 627; + vrLoc = 400; + }; + 6BF7C2281111D491002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; + name = "TestCase.cpp: 307"; + rLen = 0; + rLoc = 8107; + rType = 0; + vrLen = 951; + vrLoc = 6381; + }; + 6BF7C22A1111D49E002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; + name = "TestCase.cpp: 300"; + rLen = 0; + rLoc = 7785; + rType = 0; + vrLen = 976; + vrLoc = 6381; + }; + 6BF7C22C1111D4AC002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; + name = "TestCase.cpp: 303"; + rLen = 0; + rLoc = 7866; + rType = 0; + vrLen = 936; + vrLoc = 6381; + }; + 6BF7C22E1111D4BE002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; + name = "TestCase.cpp: 297"; + rLen = 0; + rLoc = 7671; + rType = 0; + vrLen = 940; + vrLoc = 6381; + }; + 6BF7C2311111D541002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; + name = "TestCase.cpp: 292"; + rLen = 0; + rLoc = 7539; + rType = 0; + vrLen = 965; + vrLoc = 6381; + }; + 6BF7C2321111D54C002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; + name = "TestCase.cpp: 292"; + rLen = 0; + rLoc = 7539; + rType = 0; + vrLen = 1008; + vrLoc = 6211; + }; + 6BF7C2341111D5F6002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; + name = "TestCase.cpp: 292"; + rLen = 0; + rLoc = 7539; + rType = 0; + vrLen = 338; + vrLoc = 6381; + }; + 6BF7C2351111D5FD002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; + name = "TestCase.cpp: 296"; + rLen = 0; + rLoc = 7637; + rType = 0; + vrLen = 1008; + vrLoc = 6211; + }; + 6BF7C23D1111D687002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; + name = "TestCase.cpp: 278"; + rLen = 0; + rLoc = 7186; + rType = 0; + vrLen = 1008; + vrLoc = 6211; + }; + 6BF7C2421111DAC1002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; + name = "DetourDebugDraw.cpp: 32"; + rLen = 0; + rLoc = 1246; + rType = 0; + vrLen = 552; + vrLoc = 837; + }; + 6BF7C2431111DAC1002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA310F36EFC006DA0A6 /* InputGeom.h */; + name = "InputGeom.h: 1"; + rLen = 918; + rLoc = 0; + rType = 0; + vrLen = 1014; + vrLoc = 0; + }; + 6BF7C2441111DAC1002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13E11119520002B3F46 /* TestCase.h */; + name = "TestCase.h: 19"; + rLen = 0; + rLoc = 919; + rType = 0; + vrLen = 1085; + vrLoc = 0; + }; + 6BF7C2451111DAC1002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; + name = "TestCase.cpp: 278"; + rLen = 0; + rLoc = 7186; + rType = 0; + vrLen = 1008; + vrLoc = 6211; + }; + 6BF7C2461111DAC1002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; + name = "TestCase.cpp: 278"; + rLen = 0; + rLoc = 7186; + rType = 0; + vrLen = 1008; + vrLoc = 6211; + }; + 6BF7C2471111DAC1002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; + name = "DetourDebugDraw.cpp: 32"; + rLen = 0; + rLoc = 1246; + rType = 0; + vrLen = 552; + vrLoc = 837; + }; + 6BF7C2481111DAC1002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA310F36EFC006DA0A6 /* InputGeom.h */; + name = "InputGeom.h: 1"; + rLen = 918; + rLoc = 0; + rType = 0; + vrLen = 1014; + vrLoc = 0; + }; + 6BF7C2491111DAC1002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13E11119520002B3F46 /* TestCase.h */; + name = "TestCase.h: 19"; + rLen = 0; + rLoc = 919; + rType = 0; + vrLen = 1085; + vrLoc = 0; + }; + 6BF7C24A1111DAC1002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; + name = "TestCase.cpp: 19"; + rLen = 0; + rLoc = 919; + rType = 0; + vrLen = 1163; + vrLoc = 0; + }; 8D1107260486CEB800E47090 /* Recast */ = { activeExec = 0; executables = ( diff --git a/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.perspectivev3 b/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.perspectivev3 index 749c4d6..bd11bb5 100644 --- a/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.perspectivev3 +++ b/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.perspectivev3 @@ -281,14 +281,13 @@ PBXSmartGroupTreeModuleOutlineStateSelectionKey - 13 - 12 + 61 1 0 PBXSmartGroupTreeModuleOutlineStateVisibleRectKey - {{0, 115}, {358, 643}} + {{0, 539}, {358, 643}} PBXTopSmartGroupGIDs @@ -323,7 +322,7 @@ PBXProjectModuleGUID 6B8632A30F78115100E2684A PBXProjectModuleLabel - DetourNavMesh.cpp + TestCase.cpp PBXSplitModuleInNavigatorKey Split0 @@ -331,19 +330,17 @@ PBXProjectModuleGUID 6B8632A40F78115100E2684A PBXProjectModuleLabel - DetourNavMesh.cpp + TestCase.cpp _historyCapacity 0 bookmark - 6BF7C12F11116FFB002B3F46 + 6BF7C24A1111DAC1002B3F46 history - 6B57D358108C66B200DDD053 6B8DE70D10B01BBF00DF20FB 6BB4965F10C8F2AE00BC0805 6BB93D1510CFFC6D00F74F2B 6BBB883C10EA9B6F008FEA1F - 6BBB884E10EA9ECC008FEA1F 6BB7FDC010F37703006DA0A6 6BB7FDC110F37703006DA0A6 6BB7FE1010F37CF7006DA0A6 @@ -355,38 +352,43 @@ 6BCF34031105E98C009445BF 6BCF341A1105EC43009445BF 6B4260301109E1EE00C48C36 - 6B84BED0110E1818007D997B - 6B84BEFE110E1E10007D997B 6BF7BE1F110F0792002B3F46 - 6BF7BE39110F1576002B3F46 6BF7BE5C110F170A002B3F46 6BF7BE5D110F170A002B3F46 6BF7BE60110F170A002B3F46 - 6BF7BE73110F1832002B3F46 - 6BF7BE74110F1832002B3F46 6BF7BE75110F1832002B3F46 - 6BF7BE76110F1832002B3F46 6BF7BE82110F196C002B3F46 - 6BF7BE83110F196C002B3F46 6BF7C0E311116E74002B3F46 - 6BF7C0E411116E74002B3F46 6BF7C0E511116E74002B3F46 6BF7C0E611116E74002B3F46 6BF7C0E711116E74002B3F46 6BF7C0E811116E74002B3F46 6BF7C0E911116E74002B3F46 6BF7C0EA11116E74002B3F46 - 6BF7C0EB11116E74002B3F46 6BF7C0EC11116E74002B3F46 6BF7C0ED11116E74002B3F46 6BF7C0EE11116E74002B3F46 6BF7C0EF11116E74002B3F46 6BF7C0F011116E74002B3F46 - 6BF7C0F111116E74002B3F46 6BF7C0F311116E74002B3F46 - 6BF7C12811116FFB002B3F46 - 6BF7C12911116FFB002B3F46 - 6BF7C12A11116FFB002B3F46 + 6BF7C13411118CEB002B3F46 + 6BF7C13511118CEB002B3F46 + 6BF7C14511119BB4002B3F46 + 6BF7C16211119C69002B3F46 + 6BF7C16C11119D8F002B3F46 + 6BF7C1A21111A9C0002B3F46 + 6BF7C1CF1111BCF2002B3F46 + 6BF7C1D01111BCF2002B3F46 + 6BF7C1E21111BD81002B3F46 + 6BF7C1EB1111C0A6002B3F46 + 6BF7C1EC1111C0A6002B3F46 + 6BF7C1ED1111C0A6002B3F46 + 6BF7C1F91111D204002B3F46 + 6BF7C20F1111D361002B3F46 + 6BF7C2421111DAC1002B3F46 + 6BF7C2431111DAC1002B3F46 + 6BF7C2441111DAC1002B3F46 + 6BF7C2451111DAC1002B3F46 prevStack @@ -396,7 +398,6 @@ 6BBB883F10EA9B6F008FEA1F 6BBB885510EA9ECC008FEA1F 6BBB889D10EAA094008FEA1F - 6BB7FD6310F3564B006DA0A6 6BB7FDC710F37703006DA0A6 6BB7FDD910F37703006DA0A6 6BB7FDDA10F37703006DA0A6 @@ -421,11 +422,6 @@ 6BCF33811105BBA2009445BF 6BCF340B1105E98C009445BF 6BCF340C1105E98C009445BF - 6B4260411109E27F00C48C36 - 6BF7C0CD1110857A002B3F46 - 6BF7C0CF1110857A002B3F46 - 6BF7C0D11110857A002B3F46 - 6BF7C0D31110857A002B3F46 6BF7C0F611116E74002B3F46 6BF7C0F711116E74002B3F46 6BF7C0F811116E74002B3F46 @@ -449,23 +445,68 @@ 6BF7C10A11116E74002B3F46 6BF7C10B11116E74002B3F46 6BF7C10C11116E74002B3F46 - 6BF7C10D11116E74002B3F46 6BF7C10E11116E74002B3F46 6BF7C10F11116E74002B3F46 6BF7C11011116E74002B3F46 - 6BF7C11111116E74002B3F46 6BF7C11211116E74002B3F46 - 6BF7C11311116E74002B3F46 6BF7C11411116E74002B3F46 6BF7C11511116E74002B3F46 - 6BF7C11611116E74002B3F46 6BF7C11711116E74002B3F46 - 6BF7C11811116E74002B3F46 6BF7C11911116E74002B3F46 - 6BF7C12B11116FFB002B3F46 6BF7C12C11116FFB002B3F46 - 6BF7C12D11116FFB002B3F46 6BF7C12E11116FFB002B3F46 + 6BF7C13911118CEB002B3F46 + 6BF7C13A11118CEB002B3F46 + 6BF7C14911119BB4002B3F46 + 6BF7C14A11119BB4002B3F46 + 6BF7C14E11119BB4002B3F46 + 6BF7C14F11119BB4002B3F46 + 6BF7C15411119BB4002B3F46 + 6BF7C16611119C69002B3F46 + 6BF7C16711119C69002B3F46 + 6BF7C16E11119D8F002B3F46 + 6BF7C17511119EDD002B3F46 + 6BF7C17711119EDD002B3F46 + 6BF7C17911119EDD002B3F46 + 6BF7C17B11119EDD002B3F46 + 6BF7C17D11119EDD002B3F46 + 6BF7C18211119F2B002B3F46 + 6BF7C1951111A8DB002B3F46 + 6BF7C1961111A8DB002B3F46 + 6BF7C1981111A8DB002B3F46 + 6BF7C1A51111A9C0002B3F46 + 6BF7C1C51111AB95002B3F46 + 6BF7C1D21111BCF2002B3F46 + 6BF7C1D31111BCF2002B3F46 + 6BF7C1D41111BCF2002B3F46 + 6BF7C1DE1111BD29002B3F46 + 6BF7C1E51111BD81002B3F46 + 6BF7C1EF1111C0A6002B3F46 + 6BF7C1F01111C0A6002B3F46 + 6BF7C1F11111C0A6002B3F46 + 6BF7C1F21111C0A6002B3F46 + 6BF7C15711119BB4002B3F46 + 6BF7C20B1111D299002B3F46 + 6BF7C2131111D361002B3F46 + 6BF7C2141111D361002B3F46 + 6BF7C2151111D361002B3F46 + 6BF7C2161111D361002B3F46 + 6BF7C2171111D361002B3F46 + 6BF7C2181111D361002B3F46 + 6BF7C2191111D361002B3F46 + 6BF7C21A1111D361002B3F46 + 6BF7C21B1111D361002B3F46 + 6BF7C21C1111D361002B3F46 + 6BF7C21D1111D361002B3F46 + 6BF7C21E1111D361002B3F46 + 6BF7C21F1111D361002B3F46 + 6BF7C2201111D361002B3F46 + 6BF7C2261111D491002B3F46 + 6BF7C2271111D491002B3F46 + 6BF7C2461111DAC1002B3F46 + 6BF7C2471111DAC1002B3F46 + 6BF7C2481111DAC1002B3F46 + 6BF7C2491111DAC1002B3F46 SplitCount @@ -479,18 +520,18 @@ GeometryConfiguration Frame - {{0, 0}, {876, 569}} + {{0, 0}, {876, 555}} RubberWindowFrame 11 76 1256 702 0 0 1280 778 Module PBXNavigatorGroup Proportion - 569pt + 555pt Proportion - 87pt + 101pt Tabs @@ -558,7 +599,7 @@ GeometryConfiguration Frame - {{10, 27}, {876, 60}} + {{10, 27}, {876, 74}} RubberWindowFrame 11 76 1256 702 0 0 1280 778 @@ -684,7 +725,7 @@ sizes {{0, 0}, {1256, 80}} - {{0, 76}, {1256, 213}} + {{0, 79}, {1256, 210}} @@ -780,6 +821,8 @@ 5 WindowOrderList + 6BF7C2061111D276002B3F46 + 6BF7C2071111D276002B3F46 /Users/memon/Code/recastnavigation/RecastDemo/Build/Xcode/Recast.xcodeproj WindowString diff --git a/RecastDemo/Build/Xcode/Recast.xcodeproj/project.pbxproj b/RecastDemo/Build/Xcode/Recast.xcodeproj/project.pbxproj index e3c1913..275a01d 100644 --- a/RecastDemo/Build/Xcode/Recast.xcodeproj/project.pbxproj +++ b/RecastDemo/Build/Xcode/Recast.xcodeproj/project.pbxproj @@ -41,6 +41,7 @@ 6BB93C7F10CFE1D500F74F2B /* RecastDebugDraw.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6BB93C7C10CFE1D500F74F2B /* RecastDebugDraw.cpp */; }; 6BB93CF610CFEC4500F74F2B /* RecastDump.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6BB93CF510CFEC4500F74F2B /* RecastDump.cpp */; }; 6BCF32361104CD05009445BF /* OffMeshConnectionTool.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6BCF32351104CD05009445BF /* OffMeshConnectionTool.cpp */; }; + 6BF7C1401111953A002B3F46 /* TestCase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; }; 8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */; }; 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; /* End PBXBuildFile section */ @@ -110,6 +111,8 @@ 6BB93CF510CFEC4500F74F2B /* RecastDump.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RecastDump.cpp; path = ../../../DebugUtils/Source/RecastDump.cpp; sourceTree = SOURCE_ROOT; }; 6BCF32341104CD05009445BF /* OffMeshConnectionTool.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OffMeshConnectionTool.h; path = ../../Include/OffMeshConnectionTool.h; sourceTree = SOURCE_ROOT; }; 6BCF32351104CD05009445BF /* OffMeshConnectionTool.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = OffMeshConnectionTool.cpp; path = ../../Source/OffMeshConnectionTool.cpp; sourceTree = SOURCE_ROOT; }; + 6BF7C13E11119520002B3F46 /* TestCase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TestCase.h; path = ../../Include/TestCase.h; sourceTree = SOURCE_ROOT; }; + 6BF7C13F1111953A002B3F46 /* TestCase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = TestCase.cpp; path = ../../Source/TestCase.cpp; sourceTree = SOURCE_ROOT; }; 8D1107310486CEB800E47090 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 8D1107320486CEB800E47090 /* Recast.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Recast.app; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ @@ -150,6 +153,8 @@ 6B137C6E0F7FCBBB00459200 /* SDLMain.m */, 6BB7FDA310F36EFC006DA0A6 /* InputGeom.h */, 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */, + 6BF7C13E11119520002B3F46 /* TestCase.h */, + 6BF7C13F1111953A002B3F46 /* TestCase.cpp */, ); name = Classes; sourceTree = ""; @@ -383,6 +388,7 @@ 6BB7FC0B10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp in Sources */, 6BB7FDA510F36F0E006DA0A6 /* InputGeom.cpp in Sources */, 6BCF32361104CD05009445BF /* OffMeshConnectionTool.cpp in Sources */, + 6BF7C1401111953A002B3F46 /* TestCase.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/RecastDemo/Include/TestCase.h b/RecastDemo/Include/TestCase.h new file mode 100644 index 0000000..45d3d5b --- /dev/null +++ b/RecastDemo/Include/TestCase.h @@ -0,0 +1,80 @@ +// +// Copyright (c) 2009 Mikko Mononen memon@inside.org +// +// This software is provided 'as-is', without any express or implied +// warranty. In no event will the authors be held liable for any damages +// arising from the use of this software. +// Permission is granted to anyone to use this software for any purpose, +// including commercial applications, and to alter it and redistribute it +// freely, subject to the following restrictions: +// 1. The origin of this software must not be misrepresented; you must not +// claim that you wrote the original software. If you use this software +// in a product, an acknowledgment in the product documentation would be +// appreciated but is not required. +// 2. Altered source versions must be plainly marked as such, and must not be +// misrepresented as being the original software. +// 3. This notice may not be removed or altered from any source distribution. +// + +#ifndef TESTCASE_H +#define TESTCASE_H + +#include "DetourNavMesh.h" +#include "RecastTimer.h" + +class TestCase +{ + enum TestType + { + TEST_PATHFIND, + }; + + struct Test + { + Test() : straight(0), nstraight(0), polys(0), npolys(0) {}; + ~Test() + { + delete [] straight; + delete [] polys; + } + + TestType type; + float spos[3], epos[3]; + float radius; + int includeFlags, excludeFlags; + bool expand; + + float* straight; + int nstraight; + dtPolyRef* polys; + int npolys; + + rcTimeVal findNearestPolyTime; + rcTimeVal findPathTime; + rcTimeVal findStraightPathTime; + + Test* next; + }; + + char m_sampleName[256]; + char m_geomFileName[256]; + Test* m_tests; + + void resetTimes(); + +public: + TestCase(); + ~TestCase(); + + bool load(const char* filePath); + + inline const char* getSampleName() const { return m_sampleName; } + inline const char* getGeomFileName() const { return m_geomFileName; } + + void doTests(class dtNavMesh* navmesh); + + void handleRender(); + bool handleRenderOverlay(double* proj, double* model, int* view); +}; + +#endif // TESTCASE_H \ No newline at end of file diff --git a/RecastDemo/Source/NavMeshTesterTool.cpp b/RecastDemo/Source/NavMeshTesterTool.cpp index 6c7c6df..6fd3926 100644 --- a/RecastDemo/Source/NavMeshTesterTool.cpp +++ b/RecastDemo/Source/NavMeshTesterTool.cpp @@ -35,6 +35,9 @@ # define snprintf _snprintf #endif +// Uncomment this to dump all the requests in stdout. +#define DUMP_REQS + inline bool inRange(const float* v1, const float* v2, const float r, const float h) { const float dx = v2[0] - v1[0]; @@ -252,6 +255,11 @@ void NavMeshTesterTool::recalc() { if (m_sposSet && m_eposSet && m_startRef && m_endRef) { +#ifdef DUMP_REQS + printf("pi %f %f %f %f %f %f 0x%x 0x%x\n", + m_spos[0],m_spos[1],m_spos[2], m_epos[0],m_epos[1],m_epos[2], + m_filter.includeFlags, m_filter.excludeFlags); +#endif m_npolys = m_navMesh->findPath(m_startRef, m_endRef, m_spos, m_epos, &m_filter, m_polys, MAX_POLYS); m_nsmoothPath = 0; @@ -386,6 +394,11 @@ void NavMeshTesterTool::recalc() { if (m_sposSet && m_eposSet && m_startRef && m_endRef) { +#ifdef DUMP_REQS + printf("ps %f %f %f %f %f %f 0x%x 0x%x\n", + m_spos[0],m_spos[1],m_spos[2], m_epos[0],m_epos[1],m_epos[2], + m_filter.includeFlags, m_filter.excludeFlags); +#endif m_npolys = m_navMesh->findPath(m_startRef, m_endRef, m_spos, m_epos, &m_filter, m_polys, MAX_POLYS); m_nstraightPath = 0; if (m_npolys) @@ -406,6 +419,11 @@ void NavMeshTesterTool::recalc() m_nstraightPath = 0; if (m_sposSet && m_eposSet && m_startRef) { +#ifdef DUMP_REQS + printf("rc %f %f %f %f %f %f 0x%x 0x%x\n", + m_spos[0],m_spos[1],m_spos[2], m_epos[0],m_epos[1],m_epos[2], + m_filter.includeFlags, m_filter.excludeFlags); +#endif float t = 0; m_npolys = 0; m_nstraightPath = 2; @@ -427,7 +445,14 @@ void NavMeshTesterTool::recalc() { m_distanceToWall = 0; if (m_sposSet && m_startRef) + { +#ifdef DUMP_REQS + printf("dw %f %f %f %f 0x%x 0x%x\n", + m_spos[0],m_spos[1],m_spos[2], 100.0f, + m_filter.includeFlags, m_filter.excludeFlags); +#endif m_distanceToWall = m_navMesh->findDistanceToWall(m_startRef, m_spos, 100.0f, &m_filter, m_hitPos, m_hitNormal); + } } else if (m_toolMode == TOOLMODE_FIND_POLYS_AROUND) { @@ -436,6 +461,11 @@ void NavMeshTesterTool::recalc() const float dx = m_epos[0] - m_spos[0]; const float dz = m_epos[2] - m_spos[2]; float dist = sqrtf(dx*dx + dz*dz); +#ifdef DUMP_REQS + printf("fp %f %f %f %f 0x%x 0x%x\n", + m_spos[0],m_spos[1],m_spos[2], dist, + m_filter.includeFlags, m_filter.excludeFlags); +#endif m_npolys = m_navMesh->findPolysAround(m_startRef, m_spos, dist, &m_filter, m_polys, m_parent, 0, MAX_POLYS); } } diff --git a/RecastDemo/Source/TestCase.cpp b/RecastDemo/Source/TestCase.cpp new file mode 100644 index 0000000..1892465 --- /dev/null +++ b/RecastDemo/Source/TestCase.cpp @@ -0,0 +1,336 @@ +// +// Copyright (c) 2009 Mikko Mononen memon@inside.org +// +// This software is provided 'as-is', without any express or implied +// warranty. In no event will the authors be held liable for any damages +// arising from the use of this software. +// Permission is granted to anyone to use this software for any purpose, +// including commercial applications, and to alter it and redistribute it +// freely, subject to the following restrictions: +// 1. The origin of this software must not be misrepresented; you must not +// claim that you wrote the original software. If you use this software +// in a product, an acknowledgment in the product documentation would be +// appreciated but is not required. +// 2. Altered source versions must be plainly marked as such, and must not be +// misrepresented as being the original software. +// 3. This notice may not be removed or altered from any source distribution. +// + +#include +#include +#include +#include +#include "TestCase.h" +#include "DetourNavMesh.h" +#include "SDL.h" +#include "SDL_opengl.h" +#include "imgui.h" +#include "Recast.h" + + +TestCase::TestCase() : + m_tests(0) +{ +} + +TestCase::~TestCase() +{ + Test* iter = m_tests; + while (iter) + { + Test* next = iter->next; + delete iter; + iter = next; + } +} + + +static char* parseRow(char* buf, char* bufEnd, char* row, int len) +{ + bool start = true; + bool done = false; + int n = 0; + while (!done && buf < bufEnd) + { + char c = *buf; + buf++; + // multirow + switch (c) + { + case '\n': + if (start) break; + done = true; + break; + case '\r': + break; + case '\t': + case ' ': + if (start) break; + default: + start = false; + row[n++] = c; + if (n >= len-1) + done = true; + break; + } + } + row[n] = '\0'; + return buf; +} + +static void copyName(char* dst, const char* src) +{ + // Skip white spaces + while (*src && isspace(*src)) + src++; + strcpy(dst, src); +} + +bool TestCase::load(const char* filePath) +{ + char* buf = 0; + FILE* fp = fopen(filePath, "rb"); + if (!fp) + return false; + fseek(fp, 0, SEEK_END); + int bufSize = ftell(fp); + fseek(fp, 0, SEEK_SET); + buf = new char[bufSize]; + if (!buf) + { + fclose(fp); + return false; + } + fread(buf, bufSize, 1, fp); + fclose(fp); + + char* src = buf; + char* srcEnd = buf + bufSize; + char row[512]; + while (src < srcEnd) + { + // Parse one row + row[0] = '\0'; + src = parseRow(src, srcEnd, row, sizeof(row)/sizeof(char)); + if (row[0] == 's') + { + // Sample name. + copyName(m_sampleName, row+1); + } + else if (row[0] == 'f') + { + // File name. + copyName(m_geomFileName, row+1); + } + else if (row[0] == 'p' && row[1] == 'f') + { + // Pathfind test. + Test* test = new Test; + memset(test, 0, sizeof(Test)); + test->type = TEST_PATHFIND; + test->expand = false; + test->next = m_tests; + m_tests = test; + sscanf(row+2, "%f %f %f %f %f %f %x %x", + &test->spos[0], &test->spos[1], &test->spos[2], + &test->epos[0], &test->epos[1], &test->epos[2], + &test->includeFlags, &test->excludeFlags); + } + } + + delete [] buf; + + return true; +} + +void TestCase::resetTimes() +{ + for (Test* iter = m_tests; iter; iter = iter->next) + { + iter->findNearestPolyTime = 0; + iter->findPathTime = 0; + iter->findStraightPathTime = 0; + } +} + +void TestCase::doTests(dtNavMesh* navmesh) +{ + if (!navmesh) + return; + + resetTimes(); + + static const int MAX_POLYS = 256; + dtPolyRef polys[MAX_POLYS]; + float straight[MAX_POLYS*3]; + const float polyPickExt[3] = {2,4,2}; + + for (Test* iter = m_tests; iter; iter = iter->next) + { + delete [] iter->polys; + iter->polys = 0; + iter->npolys = 0; + delete [] iter->straight; + iter->straight = 0; + iter->nstraight = 0; + + dtQueryFilter filter; + filter.includeFlags = (unsigned short)iter->includeFlags; + filter.excludeFlags = (unsigned short)iter->excludeFlags; + + // Find start points + rcTimeVal findNearestPolyStart = rcGetPerformanceTimer(); + + dtPolyRef startRef = navmesh->findNearestPoly(iter->spos, polyPickExt, &filter, 0); + dtPolyRef endRef = navmesh->findNearestPoly(iter->epos, polyPickExt, &filter, 0); + + rcTimeVal findNearestPolyEnd = rcGetPerformanceTimer(); + iter->findNearestPolyTime += rcGetDeltaTimeUsec(findNearestPolyStart, findNearestPolyEnd); + + if (!startRef || ! endRef) + continue; + + // Find path + rcTimeVal findPathStart = rcGetPerformanceTimer(); + + iter->npolys = navmesh->findPath(startRef, endRef, iter->spos, iter->epos, &filter, polys, MAX_POLYS); + + rcTimeVal findPathEnd = rcGetPerformanceTimer(); + iter->findPathTime += rcGetDeltaTimeUsec(findPathStart, findPathEnd); + + // Find straight path + if (iter->npolys) + { + rcTimeVal findStraightPathStart = rcGetPerformanceTimer(); + + iter->nstraight = navmesh->findStraightPath(iter->spos, iter->epos, polys, iter->npolys, + straight, 0, 0, MAX_POLYS); + rcTimeVal findStraightPathEnd = rcGetPerformanceTimer(); + iter->findStraightPathTime += rcGetDeltaTimeUsec(findStraightPathStart, findStraightPathEnd); + } + + // Copy results + if (iter->npolys) + { + iter->polys = new dtPolyRef[iter->npolys]; + memcpy(iter->polys, polys, sizeof(dtPolyRef)*iter->npolys); + } + if (iter->nstraight) + { + iter->straight = new float[iter->nstraight*3]; + memcpy(iter->straight, straight, sizeof(float)*3*iter->nstraight); + } + + } +} + +void TestCase::handleRender() +{ + glLineWidth(2.0f); + glBegin(GL_LINES); + for (Test* iter = m_tests; iter; iter = iter->next) + { + float dir[3]; + vsub(dir, iter->epos, iter->spos); + vnormalize(dir); + glColor4ub(128,25,0,192); + glVertex3f(iter->spos[0],iter->spos[1]-0.3f,iter->spos[2]); + glVertex3f(iter->spos[0],iter->spos[1]+0.3f,iter->spos[2]); + glVertex3f(iter->spos[0],iter->spos[1]+0.3f,iter->spos[2]); + glVertex3f(iter->spos[0]+dir[0]*0.3f,iter->spos[1]+0.3f+dir[1]*0.3f,iter->spos[2]+dir[2]*0.3f); + glColor4ub(51,102,0,129); + glVertex3f(iter->epos[0],iter->epos[1]-0.3f,iter->epos[2]); + glVertex3f(iter->epos[0],iter->epos[1]+0.3f,iter->epos[2]); + + if (iter->expand) + glColor4ub(255,192,0,255); + else + glColor4ub(0,0,0,64); + + for (int i = 0; i < iter->nstraight-1; ++i) + { + glVertex3f(iter->straight[i*3+0],iter->straight[i*3+1]+0.3f,iter->straight[i*3+2]); + glVertex3f(iter->straight[(i+1)*3+0],iter->straight[(i+1)*3+1]+0.3f,iter->straight[(i+1)*3+2]); + } + } + glEnd(); + glLineWidth(1.0f); +} + +bool TestCase::handleRenderOverlay(double* proj, double* model, int* view) +{ + GLdouble x, y, z; + char text[64]; + int n = 0; + + static const float LABEL_DIST = 1.0f; + + for (Test* iter = m_tests; iter; iter = iter->next) + { + float pt[3], dir[3]; + if (iter->nstraight) + { + vcopy(pt, &iter->straight[3]); + if (vdist(pt, iter->spos) > LABEL_DIST) + { + vsub(dir, pt, iter->spos); + vnormalize(dir); + vmad(pt, iter->spos, dir, LABEL_DIST); + } + pt[1]+=0.5f; + } + else + { + vsub(dir, iter->epos, iter->spos); + vnormalize(dir); + vmad(pt, iter->spos, dir, LABEL_DIST); + pt[1]+=0.5f; + } + + if (gluProject((GLdouble)pt[0], (GLdouble)pt[1], (GLdouble)pt[2], + model, proj, view, &x, &y, &z)) + { + snprintf(text, 64, "Path %d\n", n); + unsigned int col = imguiRGBA(0,0,0,128); + if (iter->expand) + col = imguiRGBA(255,192,0,220); + imguiDrawText((int)x, (int)(y-25), IMGUI_ALIGN_CENTER, text, col); + } + n++; + } + + static int resScroll = 0; + bool mouseOverMenu = imguiBeginScrollArea("Test Results", 10, view[3] - 10 - 350, 200, 350, &resScroll); +// mouseOverMenu = true; + + n = 0; + for (Test* iter = m_tests; iter; iter = iter->next) + { + snprintf(text, 64, "Path %d\n", n); + + if (imguiCollapse(text, iter->expand)) + iter->expand = !iter->expand; + if (iter->expand) + { + snprintf(text, 64, "Poly: %.4f ms\n", (float)iter->findNearestPolyTime/1000.0f); + imguiValue(text); + + snprintf(text, 64, "Path: %.4f ms\n", (float)iter->findPathTime/1000.0f); + imguiValue(text); + + snprintf(text, 64, "Straight: %.4f ms\n", (float)iter->findStraightPathTime/1000.0f); + imguiValue(text); + } + rcTimeVal total = iter->findNearestPolyTime + iter->findPathTime + iter->findStraightPathTime; + snprintf(text, 64, "Total: %.4f ms\n", (float)total/1000.0f); + imguiValue(text); + + +// imguiDrawText(10, 700-n*20, IMGUI_ALIGN_LEFT, text, imguiRGBA(255,255,255,220)); + n++; + } + + imguiEndScrollArea(); + + return mouseOverMenu; +} diff --git a/RecastDemo/Source/imgui.cpp b/RecastDemo/Source/imgui.cpp index 831f4d7..c86bc0f 100644 --- a/RecastDemo/Source/imgui.cpp +++ b/RecastDemo/Source/imgui.cpp @@ -508,9 +508,9 @@ bool imguiCollapse(const char* text, bool checked, bool enabled) bool res = buttonLogic(id, over); if (checked) - addGfxCmdTriangle(cx, cy, CHECK_SIZE, CHECK_SIZE, 1, imguiRGBA(255,255,255,isActive(id)?255:200)); - else addGfxCmdTriangle(cx, cy, CHECK_SIZE, CHECK_SIZE, 2, imguiRGBA(255,255,255,isActive(id)?255:200)); + else + addGfxCmdTriangle(cx, cy, CHECK_SIZE, CHECK_SIZE, 1, imguiRGBA(255,255,255,isActive(id)?255:200)); addGfxCmdText(x+BUTTON_HEIGHT, y+BUTTON_HEIGHT/2-TEXT_HEIGHT/2, IMGUI_ALIGN_LEFT, text, isHot(id) ? imguiRGBA(255,196,0,255) : imguiRGBA(255,255,255,200)); diff --git a/RecastDemo/Source/main.cpp b/RecastDemo/Source/main.cpp index 5a75952..b1cd3de 100644 --- a/RecastDemo/Source/main.cpp +++ b/RecastDemo/Source/main.cpp @@ -32,6 +32,7 @@ #include "Recast.h" #include "RecastDebugDraw.h" #include "InputGeom.h" +#include "TestCase.h" #include "Sample_SoloMeshSimple.h" #include "Sample_SoloMeshTiled.h" @@ -195,6 +196,7 @@ int main(int argc, char *argv[]) bool showTools = true; bool showLevels = false; bool showSample = false; + bool showTestCases = false; int propScroll = 0; int logScroll = 0; @@ -203,15 +205,15 @@ int main(int argc, char *argv[]) char sampleName[64] = "Choose Sample..."; - FileList meshFiles; + FileList files; char meshName[128] = "Choose Mesh..."; - InputGeom* geom = 0; - float mpos[3]; bool mposSet = false; + InputGeom* geom = 0; Sample* sample = 0; + TestCase* test = 0; rcLog log; log.clear(); @@ -247,6 +249,13 @@ int main(int argc, char *argv[]) { done = true; } + else if (event.key.keysym.sym == SDLK_TAB) + { + showLevels = false; + showSample = false; + showTestCases = true; + scanDirectory("Tests", ".txt", files); + } break; case SDL_MOUSEBUTTONDOWN: @@ -404,6 +413,8 @@ int main(int argc, char *argv[]) if (sample) sample->handleRender(); + if (test) + test->handleRender(); glDisable(GL_FOG); @@ -415,12 +426,19 @@ int main(int argc, char *argv[]) glMatrixMode(GL_MODELVIEW); glLoadIdentity(); + mouseOverMenu = false; + imguiBeginFrame(mx,my,mbut,mscroll); if (sample) { sample->handleRenderOverlay((double*)proj, (double*)model, (int*)view); } + if (test) + { + if (test->handleRenderOverlay((double*)proj, (double*)model, (int*)view)) + mouseOverMenu = true; + } // Help text. if (showMenu) @@ -429,8 +447,6 @@ int main(int argc, char *argv[]) imguiDrawText(width/2, height-20, IMGUI_ALIGN_CENTER, msg, imguiRGBA(255,255,255,128)); } - mouseOverMenu = false; - if (showMenu) { int propDiv = showDebugMode ? (int)(height*0.6f) : height; @@ -458,6 +474,7 @@ int main(int argc, char *argv[]) { showSample = true; showLevels = false; + showTestCases = false; } } @@ -474,8 +491,9 @@ int main(int argc, char *argv[]) else { showSample = false; + showTestCases = false; showLevels = true; - scanDirectory("Meshes", ".obj", meshFiles); + scanDirectory("Meshes", ".obj", files); } } if (geom) @@ -504,6 +522,10 @@ int main(int argc, char *argv[]) printf("Build log %s:\n", meshName); for (int i = 0; i < log.getMessageCount(); ++i) printf("%s\n", log.getMessageText(i)); + + // Clear test. + delete test; + test = 0; } imguiSeparator(); @@ -564,15 +586,15 @@ int main(int argc, char *argv[]) mouseOverMenu = true; int levelToLoad = -1; - for (int i = 0; i < meshFiles.size; ++i) + for (int i = 0; i < files.size; ++i) { - if (imguiItem(meshFiles.files[i])) + if (imguiItem(files.files[i])) levelToLoad = i; } if (levelToLoad != -1) { - strncpy(meshName, meshFiles.files[levelToLoad], sizeof(meshName)); + strncpy(meshName, files.files[levelToLoad], sizeof(meshName)); meshName[sizeof(meshName)-1] = '\0'; showLevels = false; @@ -591,7 +613,7 @@ int main(int argc, char *argv[]) showLog = true; logScroll = 0; - printf("Build log %s:\n", meshName); + printf("Geom load log %s:\n", meshName); for (int i = 0; i < log.getMessageCount(); ++i) printf("%s\n", log.getMessageText(i)); } @@ -623,6 +645,115 @@ int main(int argc, char *argv[]) } + // Test cases + if (showTestCases) + { + static int testScroll = 0; + if (imguiBeginScrollArea("Choose Test To Run", width-10-250-10-200, height-10-450, 200, 450, &testScroll)) + mouseOverMenu = true; + + int testToLoad = -1; + for (int i = 0; i < files.size; ++i) + { + if (imguiItem(files.files[i])) + testToLoad = i; + } + + if (testToLoad != -1) + { + char path[256]; + strcpy(path, "Tests/"); + strcat(path, files.files[testToLoad]); + test = new TestCase; + if (test) + { + // Load the test. + if (!test->load(path)) + { + delete test; + test = 0; + } + + // Create sample + Sample* newSample = 0; + for (int i = 0; i < g_nsamples; ++i) + { + if (strcmp(g_samples[i].name, test->getSampleName()) == 0) + { + newSample = g_samples[i].create(); + if (newSample) strcpy(sampleName, g_samples[i].name); + } + } + if (newSample) + { + delete sample; + sample = newSample; + showSample = false; + } + + // Load geom. + strcpy(meshName, test->getGeomFileName()); + meshName[sizeof(meshName)-1] = '\0'; + + delete geom; + geom = 0; + + strcpy(path, "Meshes/"); + strcat(path, meshName); + + geom = new InputGeom; + if (!geom || !geom->loadMesh(path)) + { + delete geom; + geom = 0; + + showLog = true; + logScroll = 0; + printf("Geom load log %s:\n", meshName); + for (int i = 0; i < log.getMessageCount(); ++i) + printf("%s\n", log.getMessageText(i)); + } + if (sample && geom) + { + sample->handleMeshChanged(geom); + } + + log.clear(); + if (sample && !sample->handleBuild()) + { + printf("Build log %s:\n", meshName); + for (int i = 0; i < log.getMessageCount(); ++i) + printf("%s\n", log.getMessageText(i)); + } + + if (geom) + { + const float* bmin = geom->getMeshBoundsMin(); + const float* bmax = geom->getMeshBoundsMax(); + // Reset camera and fog to match the mesh bounds. + camr = sqrtf(rcSqr(bmax[0]-bmin[0]) + + rcSqr(bmax[1]-bmin[1]) + + rcSqr(bmax[2]-bmin[2])) / 2; + camx = (bmax[0] + bmin[0]) / 2 + camr; + camy = (bmax[1] + bmin[1]) / 2 + camr; + camz = (bmax[2] + bmin[2]) / 2 + camr; + camr *= 3; + rx = 45; + ry = -45; + glFogf(GL_FOG_START, camr*0.2f); + glFogf(GL_FOG_END, camr*1.25f); + } + + // Do the tests. + if (sample) + test->doTests(sample->getNavMesh()); + } + } + + imguiEndScrollArea(); + } + + // Log if (showLog && showMenu) { @@ -634,9 +765,9 @@ int main(int argc, char *argv[]) } // Tools - if (showTools && showMenu && geom && sample) + if (!showTestCases && showTools && showMenu && geom && sample) { - if (imguiBeginScrollArea("Tools", 10, height - 10 - 250, 200, 250, &toolsScroll)) + if (imguiBeginScrollArea("Tools", 10, height - 10 - 350, 200, 350, &toolsScroll)) mouseOverMenu = true; sample->handleTools();