From bd2e60a00822af2bc8864a9cf38b5acd3f66e401 Mon Sep 17 00:00:00 2001 From: Mikko Mononen Date: Thu, 28 Jan 2010 15:04:01 +0000 Subject: [PATCH] Humble beginnings of test cases. --- .../Bin/Recast.app/Contents/MacOS/Recast | Bin 576348 -> 595112 bytes RecastDemo/Bin/Tests/movement_test.txt | 15 + RecastDemo/Bin/Tests/nav_mesh_test.txt | 23 + .../Xcode/Recast.xcodeproj/memon.pbxuser | 2415 ++++++++++++++++- .../Recast.xcodeproj/memon.perspectivev3 | 121 +- .../Xcode/Recast.xcodeproj/project.pbxproj | 6 + RecastDemo/Include/TestCase.h | 80 + RecastDemo/Source/NavMeshTesterTool.cpp | 30 + RecastDemo/Source/TestCase.cpp | 336 +++ RecastDemo/Source/imgui.cpp | 4 +- RecastDemo/Source/main.cpp | 155 +- 11 files changed, 3030 insertions(+), 155 deletions(-) create mode 100644 RecastDemo/Bin/Tests/movement_test.txt create mode 100644 RecastDemo/Bin/Tests/nav_mesh_test.txt create mode 100644 RecastDemo/Include/TestCase.h create mode 100644 RecastDemo/Source/TestCase.cpp diff --git a/RecastDemo/Bin/Recast.app/Contents/MacOS/Recast b/RecastDemo/Bin/Recast.app/Contents/MacOS/Recast index 9b66fdc248a8bdc9f5a20cf3a5eeeb63250ecfe1..df177b259b57897d47e917883209d62a126e9a6a 100755 GIT binary patch delta 144362 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

c>bhq;pW;uvvB-Avl+%q4Xb_lUdE-K4$C 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

YKoh_QhflIn(vxZQ4N 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 delta 130040 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 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();