diff --git a/RecastDemo/Bin/Recast.app/Contents/MacOS/Recast b/RecastDemo/Bin/Recast.app/Contents/MacOS/Recast index c279932..72b20cb 100755 Binary files a/RecastDemo/Bin/Recast.app/Contents/MacOS/Recast and b/RecastDemo/Bin/Recast.app/Contents/MacOS/Recast differ diff --git a/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.pbxuser b/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.pbxuser index 836ffa8..2413aa5 100644 --- a/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.pbxuser +++ b/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.pbxuser @@ -809,6 +809,115 @@ 6BF7C3771112FE75002B3F46 /* PBXTextBookmark */ = 6BF7C3771112FE75002B3F46 /* PBXTextBookmark */; 6BF7C3781112FE75002B3F46 /* PBXTextBookmark */ = 6BF7C3781112FE75002B3F46 /* PBXTextBookmark */; 6BF7C3791112FE75002B3F46 /* PBXTextBookmark */ = 6BF7C3791112FE75002B3F46 /* PBXTextBookmark */; + 6BF7C37B1113026E002B3F46 /* PBXTextBookmark */ = 6BF7C37B1113026E002B3F46 /* PBXTextBookmark */; + 6BF7C37C1113026E002B3F46 /* PBXTextBookmark */ = 6BF7C37C1113026E002B3F46 /* PBXTextBookmark */; + 6BF7C37D1113026E002B3F46 /* PBXTextBookmark */ = 6BF7C37D1113026E002B3F46 /* PBXTextBookmark */; + 6BF7C37E1113026E002B3F46 /* PBXTextBookmark */ = 6BF7C37E1113026E002B3F46 /* PBXTextBookmark */; + 6BF7C37F1113026E002B3F46 /* PBXTextBookmark */ = 6BF7C37F1113026E002B3F46 /* PBXTextBookmark */; + 6BF7C3801113026E002B3F46 /* PBXTextBookmark */ = 6BF7C3801113026E002B3F46 /* PBXTextBookmark */; + 6BF7C3811113026E002B3F46 /* PBXTextBookmark */ = 6BF7C3811113026E002B3F46 /* PBXTextBookmark */; + 6BF7C3821113026E002B3F46 /* PBXTextBookmark */ = 6BF7C3821113026E002B3F46 /* PBXTextBookmark */; + 6BF7C384111302A2002B3F46 /* PBXTextBookmark */ = 6BF7C384111302A2002B3F46 /* PBXTextBookmark */; + 6BF7C3871113030C002B3F46 /* PBXTextBookmark */ = 6BF7C3871113030C002B3F46 /* PBXTextBookmark */; + 6BF7C38811130EA2002B3F46 /* PBXTextBookmark */ = 6BF7C38811130EA2002B3F46 /* PBXTextBookmark */; + 6BF7C38911130EA2002B3F46 /* PBXTextBookmark */ = 6BF7C38911130EA2002B3F46 /* PBXTextBookmark */; + 6BF7C38A11130EA2002B3F46 /* PBXTextBookmark */ = 6BF7C38A11130EA2002B3F46 /* PBXTextBookmark */; + 6BF7C38B11130EA2002B3F46 /* PBXTextBookmark */ = 6BF7C38B11130EA2002B3F46 /* PBXTextBookmark */; + 6BF7C38C111313CC002B3F46 /* PBXTextBookmark */ = 6BF7C38C111313CC002B3F46 /* PBXTextBookmark */; + 6BF7C38D111313CC002B3F46 /* PBXTextBookmark */ = 6BF7C38D111313CC002B3F46 /* PBXTextBookmark */; + 6BF7C38E111313CC002B3F46 /* PBXTextBookmark */ = 6BF7C38E111313CC002B3F46 /* PBXTextBookmark */; + 6BF7C38F111313CC002B3F46 /* PBXTextBookmark */ = 6BF7C38F111313CC002B3F46 /* PBXTextBookmark */; + 6BF7C390111313CC002B3F46 /* PBXTextBookmark */ = 6BF7C390111313CC002B3F46 /* PBXTextBookmark */; + 6BF7C391111313CC002B3F46 /* PBXTextBookmark */ = 6BF7C391111313CC002B3F46 /* PBXTextBookmark */; + 6BF7C392111316AD002B3F46 /* PBXTextBookmark */ = 6BF7C392111316AD002B3F46 /* PBXTextBookmark */; + 6BF7C393111316AD002B3F46 /* PBXTextBookmark */ = 6BF7C393111316AD002B3F46 /* PBXTextBookmark */; + 6BF7C394111316AD002B3F46 /* PBXTextBookmark */ = 6BF7C394111316AD002B3F46 /* PBXTextBookmark */; + 6BF7C395111316AD002B3F46 /* PBXTextBookmark */ = 6BF7C395111316AD002B3F46 /* PBXTextBookmark */; + 6BF7C396111316AD002B3F46 /* PBXTextBookmark */ = 6BF7C396111316AD002B3F46 /* PBXTextBookmark */; + 6BF7C397111316AD002B3F46 /* PBXTextBookmark */ = 6BF7C397111316AD002B3F46 /* PBXTextBookmark */; + 6BF7C398111316AD002B3F46 /* PBXTextBookmark */ = 6BF7C398111316AD002B3F46 /* PBXTextBookmark */; + 6BF7C399111316AD002B3F46 /* PBXTextBookmark */ = 6BF7C399111316AD002B3F46 /* PBXTextBookmark */; + 6BF7C39A111316AD002B3F46 /* PBXTextBookmark */ = 6BF7C39A111316AD002B3F46 /* PBXTextBookmark */; + 6BF7C39B111316AD002B3F46 /* PBXTextBookmark */ = 6BF7C39B111316AD002B3F46 /* PBXTextBookmark */; + 6BF7C39C111316AD002B3F46 /* PBXTextBookmark */ = 6BF7C39C111316AD002B3F46 /* PBXTextBookmark */; + 6BF7C39D111316AD002B3F46 /* PBXTextBookmark */ = 6BF7C39D111316AD002B3F46 /* PBXTextBookmark */; + 6BF7C39E111316AD002B3F46 /* PBXTextBookmark */ = 6BF7C39E111316AD002B3F46 /* PBXTextBookmark */; + 6BF7C39F111316AD002B3F46 /* PBXTextBookmark */ = 6BF7C39F111316AD002B3F46 /* PBXTextBookmark */; + 6BF7C3A0111316AD002B3F46 /* PBXTextBookmark */ = 6BF7C3A0111316AD002B3F46 /* PBXTextBookmark */; + 6BF7C3A1111316AD002B3F46 /* PBXTextBookmark */ = 6BF7C3A1111316AD002B3F46 /* PBXTextBookmark */; + 6BF7C3A2111316AD002B3F46 /* PBXTextBookmark */ = 6BF7C3A2111316AD002B3F46 /* PBXTextBookmark */; + 6BF7C3A3111316AD002B3F46 /* PBXTextBookmark */ = 6BF7C3A3111316AD002B3F46 /* PBXTextBookmark */; + 6BF7C3A4111316AD002B3F46 /* PBXTextBookmark */ = 6BF7C3A4111316AD002B3F46 /* PBXTextBookmark */; + 6BF7C3A5111316AD002B3F46 /* PBXTextBookmark */ = 6BF7C3A5111316AD002B3F46 /* PBXTextBookmark */; + 6BF7C3AF111317BF002B3F46 /* PBXTextBookmark */ = 6BF7C3AF111317BF002B3F46 /* PBXTextBookmark */; + 6BF7C3B0111317BF002B3F46 /* PBXTextBookmark */ = 6BF7C3B0111317BF002B3F46 /* PBXTextBookmark */; + 6BF7C3B1111317BF002B3F46 /* PBXTextBookmark */ = 6BF7C3B1111317BF002B3F46 /* PBXTextBookmark */; + 6BF7C3B2111317BF002B3F46 /* PBXTextBookmark */ = 6BF7C3B2111317BF002B3F46 /* PBXTextBookmark */; + 6BF7C3B511131858002B3F46 /* PBXTextBookmark */ = 6BF7C3B511131858002B3F46 /* PBXTextBookmark */; + 6BF7C3B71113186C002B3F46 /* PBXTextBookmark */ = 6BF7C3B71113186C002B3F46 /* PBXTextBookmark */; + 6BF7C3B811131885002B3F46 /* PBXTextBookmark */ = 6BF7C3B811131885002B3F46 /* PBXTextBookmark */; + 6BF7C3B911131894002B3F46 /* PBXTextBookmark */ = 6BF7C3B911131894002B3F46 /* PBXTextBookmark */; + 6BF7C3BA11131894002B3F46 /* PBXTextBookmark */ = 6BF7C3BA11131894002B3F46 /* PBXTextBookmark */; + 6BF7C3BB11131897002B3F46 /* PBXTextBookmark */ = 6BF7C3BB11131897002B3F46 /* PBXTextBookmark */; + 6BF7C3BC111318BA002B3F46 /* PBXTextBookmark */ = 6BF7C3BC111318BA002B3F46 /* PBXTextBookmark */; + 6BF7C3BD111318BA002B3F46 /* PBXTextBookmark */ = 6BF7C3BD111318BA002B3F46 /* PBXTextBookmark */; + 6BF7C3BE111318BA002B3F46 /* PBXTextBookmark */ = 6BF7C3BE111318BA002B3F46 /* PBXTextBookmark */; + 6BF7C3BF111318BA002B3F46 /* PBXTextBookmark */ = 6BF7C3BF111318BA002B3F46 /* PBXTextBookmark */; + 6BF7C3C2111318CB002B3F46 /* PBXTextBookmark */ = 6BF7C3C2111318CB002B3F46 /* PBXTextBookmark */; + 6BF7C3CC11131F26002B3F46 /* PBXTextBookmark */ = 6BF7C3CC11131F26002B3F46 /* PBXTextBookmark */; + 6BF7C3CD11131F26002B3F46 /* PBXTextBookmark */ = 6BF7C3CD11131F26002B3F46 /* PBXTextBookmark */; + 6BF7C3CE11131F26002B3F46 /* PBXTextBookmark */ = 6BF7C3CE11131F26002B3F46 /* PBXTextBookmark */; + 6BF7C3CF11131F26002B3F46 /* PBXTextBookmark */ = 6BF7C3CF11131F26002B3F46 /* PBXTextBookmark */; + 6BF7C3D011131F26002B3F46 /* PBXTextBookmark */ = 6BF7C3D011131F26002B3F46 /* PBXTextBookmark */; + 6BF7C3D111131F26002B3F46 /* PBXTextBookmark */ = 6BF7C3D111131F26002B3F46 /* PBXTextBookmark */; + 6BF7C3D211131F26002B3F46 /* PBXTextBookmark */ = 6BF7C3D211131F26002B3F46 /* PBXTextBookmark */; + 6BF7C3D311131F26002B3F46 /* PBXTextBookmark */ = 6BF7C3D311131F26002B3F46 /* PBXTextBookmark */; + 6BF7C3D411131F26002B3F46 /* PBXTextBookmark */ = 6BF7C3D411131F26002B3F46 /* PBXTextBookmark */; + 6BF7C3D511131F26002B3F46 /* PBXTextBookmark */ = 6BF7C3D511131F26002B3F46 /* PBXTextBookmark */; + 6BF7C3D611131F26002B3F46 /* PBXTextBookmark */ = 6BF7C3D611131F26002B3F46 /* PBXTextBookmark */; + 6BF7C3D711131F26002B3F46 /* PBXTextBookmark */ = 6BF7C3D711131F26002B3F46 /* PBXTextBookmark */; + 6BF7C3D811131F26002B3F46 /* PBXTextBookmark */ = 6BF7C3D811131F26002B3F46 /* PBXTextBookmark */; + 6BF7C3D911131F26002B3F46 /* PBXTextBookmark */ = 6BF7C3D911131F26002B3F46 /* PBXTextBookmark */; + 6BF7C3DA11131F26002B3F46 /* PBXTextBookmark */ = 6BF7C3DA11131F26002B3F46 /* PBXTextBookmark */; + 6BF7C3DB11131F26002B3F46 /* PBXTextBookmark */ = 6BF7C3DB11131F26002B3F46 /* PBXTextBookmark */; + 6BF7C3DC11131F26002B3F46 /* PBXTextBookmark */ = 6BF7C3DC11131F26002B3F46 /* PBXTextBookmark */; + 6BF7C3DD11131F26002B3F46 /* PBXTextBookmark */ = 6BF7C3DD11131F26002B3F46 /* PBXTextBookmark */; + 6BF7C3DE11131F26002B3F46 /* PBXTextBookmark */ = 6BF7C3DE11131F26002B3F46 /* PBXTextBookmark */; + 6BF7C3DF11131F26002B3F46 /* PBXTextBookmark */ = 6BF7C3DF11131F26002B3F46 /* PBXTextBookmark */; + 6BF7C3E011131F26002B3F46 /* PBXTextBookmark */ = 6BF7C3E011131F26002B3F46 /* PBXTextBookmark */; + 6BF7C3E111131F26002B3F46 /* PBXTextBookmark */ = 6BF7C3E111131F26002B3F46 /* PBXTextBookmark */; + 6BF7C3E211131F26002B3F46 /* PBXTextBookmark */ = 6BF7C3E211131F26002B3F46 /* PBXTextBookmark */; + 6BF7C3E311131F26002B3F46 /* PBXTextBookmark */ = 6BF7C3E311131F26002B3F46 /* PBXTextBookmark */; + 6BF7C3E411131F26002B3F46 /* PBXTextBookmark */ = 6BF7C3E411131F26002B3F46 /* PBXTextBookmark */; + 6BF7C3E511131F26002B3F46 /* PBXTextBookmark */ = 6BF7C3E511131F26002B3F46 /* PBXTextBookmark */; + 6BF7C3E611131F26002B3F46 /* PBXTextBookmark */ = 6BF7C3E611131F26002B3F46 /* PBXTextBookmark */; + 6BF7C3E711131F26002B3F46 /* PBXTextBookmark */ = 6BF7C3E711131F26002B3F46 /* PBXTextBookmark */; + 6BF7C3E811131F26002B3F46 /* PBXTextBookmark */ = 6BF7C3E811131F26002B3F46 /* PBXTextBookmark */; + 6BF7C3E911131F26002B3F46 /* PBXTextBookmark */ = 6BF7C3E911131F26002B3F46 /* PBXTextBookmark */; + 6BF7C3EA11131F26002B3F46 /* PBXTextBookmark */ = 6BF7C3EA11131F26002B3F46 /* PBXTextBookmark */; + 6BF7C3EB11131F26002B3F46 /* PBXTextBookmark */ = 6BF7C3EB11131F26002B3F46 /* PBXTextBookmark */; + 6BF7C3EC11131F26002B3F46 /* PBXTextBookmark */ = 6BF7C3EC11131F26002B3F46 /* PBXTextBookmark */; + 6BF7C3ED11131F26002B3F46 /* PBXTextBookmark */ = 6BF7C3ED11131F26002B3F46 /* PBXTextBookmark */; + 6BF7C3EE11131F26002B3F46 /* PBXTextBookmark */ = 6BF7C3EE11131F26002B3F46 /* PBXTextBookmark */; + 6BF7C3EF11131F26002B3F46 /* PBXTextBookmark */ = 6BF7C3EF11131F26002B3F46 /* PBXTextBookmark */; + 6BF7C3F011131F26002B3F46 /* PBXTextBookmark */ = 6BF7C3F011131F26002B3F46 /* PBXTextBookmark */; + 6BF7C3F111131F26002B3F46 /* PBXTextBookmark */ = 6BF7C3F111131F26002B3F46 /* PBXTextBookmark */; + 6BF7C3F211131F26002B3F46 /* PBXTextBookmark */ = 6BF7C3F211131F26002B3F46 /* PBXTextBookmark */; + 6BF7C3F311131F26002B3F46 /* PBXTextBookmark */ = 6BF7C3F311131F26002B3F46 /* PBXTextBookmark */; + 6BF7C3F411131F26002B3F46 /* PBXTextBookmark */ = 6BF7C3F411131F26002B3F46 /* PBXTextBookmark */; + 6BF7C3F611131F84002B3F46 /* PBXTextBookmark */ = 6BF7C3F611131F84002B3F46 /* PBXTextBookmark */; + 6BF7C3F711131F84002B3F46 /* PBXTextBookmark */ = 6BF7C3F711131F84002B3F46 /* PBXTextBookmark */; + 6BF7C3F811131F84002B3F46 /* PBXTextBookmark */ = 6BF7C3F811131F84002B3F46 /* PBXTextBookmark */; + 6BF7C3F911131F84002B3F46 /* PBXTextBookmark */ = 6BF7C3F911131F84002B3F46 /* PBXTextBookmark */; + 6BF7C3FA11132015002B3F46 /* PBXTextBookmark */ = 6BF7C3FA11132015002B3F46 /* PBXTextBookmark */; + 6BF7C3FB11132015002B3F46 /* PBXTextBookmark */ = 6BF7C3FB11132015002B3F46 /* PBXTextBookmark */; + 6BF7C3FC11132015002B3F46 /* PBXTextBookmark */ = 6BF7C3FC11132015002B3F46 /* PBXTextBookmark */; + 6BF7C3FD11132015002B3F46 /* PBXTextBookmark */ = 6BF7C3FD11132015002B3F46 /* PBXTextBookmark */; + 6BF7C4021113209A002B3F46 /* PBXTextBookmark */ = 6BF7C4021113209A002B3F46 /* PBXTextBookmark */; + 6BF7C4031113209A002B3F46 /* PBXTextBookmark */ = 6BF7C4031113209A002B3F46 /* PBXTextBookmark */; + 6BF7C4041113209A002B3F46 /* PBXTextBookmark */ = 6BF7C4041113209A002B3F46 /* PBXTextBookmark */; + 6BF7C4051113209A002B3F46 /* PBXTextBookmark */ = 6BF7C4051113209A002B3F46 /* PBXTextBookmark */; + 6BF7C4061113209A002B3F46 /* PBXTextBookmark */ = 6BF7C4061113209A002B3F46 /* PBXTextBookmark */; }; sourceControlManager = 6B8632A90F78115100E2684A /* Source Control */; userBookmarkGroup = 6B8DE6F010A88F0500DF20FB /* PBXBookmarkGroup */; @@ -839,9 +948,9 @@ }; 6B1185FC10068B040018F96F /* DetourCommon.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {815, 3200}}"; - sepNavSelRange = "{1541, 0}"; - sepNavVisRange = "{391, 1377}"; + sepNavIntBoundsRect = "{{0, 0}, {815, 2864}}"; + sepNavSelRange = "{1315, 0}"; + sepNavVisRange = "{706, 1141}"; }; }; 6B1185FD10068B150018F96F /* DetourCommon.cpp */ = { @@ -860,9 +969,9 @@ }; 6B137C6D0F7FCBBB00459200 /* MeshLoaderObj.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {815, 3520}}"; - sepNavSelRange = "{1981, 578}"; - sepNavVisRange = "{1756, 600}"; + sepNavIntBoundsRect = "{{0, 0}, {815, 3280}}"; + sepNavSelRange = "{4683, 0}"; + sepNavVisRange = "{4119, 676}"; }; }; 6B137C6E0F7FCBBB00459200 /* SDLMain.m */ = { @@ -881,9 +990,9 @@ }; 6B137C7B0F7FCBE400459200 /* MeshLoaderObj.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {915, 800}}"; - sepNavSelRange = "{1371, 0}"; - sepNavVisRange = "{919, 677}"; + sepNavIntBoundsRect = "{{0, 0}, {815, 832}}"; + sepNavSelRange = "{1076, 0}"; + sepNavVisRange = "{942, 715}"; }; }; 6B137C7C0F7FCBE400459200 /* SDLMain.h */ = { @@ -953,9 +1062,9 @@ }; 6B137C880F7FCC1100459200 /* RecastRasterization.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1195, 6128}}"; + sepNavIntBoundsRect = "{{0, 0}, {1195, 6144}}"; sepNavSelRange = "{9841, 0}"; - sepNavVisRange = "{3419, 319}"; + sepNavVisRange = "{3419, 297}"; }; }; 6B137C890F7FCC1100459200 /* RecastRegion.cpp */ = { @@ -975,8 +1084,8 @@ 6B25B6100FFA62AD004F1BC4 /* Sample.h */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {815, 1744}}"; - sepNavSelRange = "{2990, 0}"; - sepNavVisRange = "{2237, 988}"; + sepNavSelRange = "{1459, 0}"; + sepNavVisRange = "{1016, 714}"; }; }; 6B25B6140FFA62BE004F1BC4 /* Sample.cpp */ = { @@ -988,9 +1097,9 @@ }; 6B25B6180FFA62BE004F1BC4 /* main.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1195, 12832}}"; - sepNavSelRange = "{17852, 0}"; - sepNavVisRange = "{16485, 417}"; + sepNavIntBoundsRect = "{{0, 0}, {815, 13456}}"; + sepNavSelRange = "{5901, 0}"; + sepNavVisRange = "{5947, 884}"; }; }; 6B2AEC510FFB8946005BE9CC /* Sample_TileMesh.h */ = { @@ -1003,9 +1112,9 @@ }; 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {901, 13584}}"; - sepNavSelRange = "{16689, 0}"; - sepNavVisRange = "{16406, 1051}"; + sepNavIntBoundsRect = "{{0, 0}, {815, 13728}}"; + sepNavSelRange = "{13599, 0}"; + sepNavVisRange = "{13335, 1338}"; sepNavWindowFrame = "{{38, 30}, {1214, 722}}"; }; }; @@ -1103,7 +1212,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 555"; rLen = 0; - rLoc = 17070; + rLoc = 17259; rType = 0; vrLen = 1314; vrLoc = 16479; @@ -1369,16 +1478,16 @@ }; 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {815, 10352}}"; - sepNavSelRange = "{13398, 0}"; - sepNavVisRange = "{12901, 1185}"; + sepNavIntBoundsRect = "{{0, 0}, {908, 10752}}"; + sepNavSelRange = "{6959, 0}"; + sepNavVisRange = "{6302, 1070}"; }; }; 6BA1E88910C7BFC9008007F6 /* Sample_SoloMeshTiled.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {908, 16400}}"; - sepNavSelRange = "{22156, 0}"; - sepNavVisRange = "{21464, 1032}"; + sepNavIntBoundsRect = "{{0, 0}, {943, 16800}}"; + sepNavSelRange = "{2180, 0}"; + sepNavVisRange = "{1882, 683}"; }; }; 6BA1E88E10C7BFD3008007F6 /* Sample_SoloMeshSimple.h */ = { @@ -1465,16 +1574,16 @@ }; 6BB7FDA310F36EFC006DA0A6 /* InputGeom.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {815, 1072}}"; - sepNavSelRange = "{0, 918}"; - sepNavVisRange = "{0, 1014}"; + sepNavIntBoundsRect = "{{0, 0}, {815, 1264}}"; + sepNavSelRange = "{2451, 0}"; + sepNavVisRange = "{1640, 1396}"; }; }; 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {815, 3216}}"; - sepNavSelRange = "{5207, 0}"; - sepNavVisRange = "{4669, 1053}"; + sepNavIntBoundsRect = "{{0, 0}, {815, 6432}}"; + sepNavSelRange = "{5711, 0}"; + sepNavVisRange = "{5132, 730}"; }; }; 6BB7FDC010F37703006DA0A6 /* PBXTextBookmark */ = { @@ -1522,7 +1631,7 @@ fRef = 6B137C7B0F7FCBE400459200 /* MeshLoaderObj.h */; name = "MeshLoaderObj.h: 38"; rLen = 0; - rLoc = 1395; + rLoc = 1458; rType = 0; vrLen = 1196; vrLoc = 0; @@ -1562,7 +1671,7 @@ fRef = 6B137C7B0F7FCBE400459200 /* MeshLoaderObj.h */; name = "MeshLoaderObj.h: 36"; rLen = 0; - rLoc = 1371; + rLoc = 1434; rType = 0; vrLen = 677; vrLoc = 919; @@ -1817,15 +1926,15 @@ 6BCF32341104CD05009445BF /* OffMeshConnectionTool.h */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {815, 768}}"; - sepNavSelRange = "{1199, 0}"; - sepNavVisRange = "{784, 822}"; + sepNavSelRange = "{1042, 0}"; + sepNavVisRange = "{915, 661}"; }; }; 6BCF32351104CD05009445BF /* OffMeshConnectionTool.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {815, 2528}}"; - sepNavSelRange = "{3092, 5}"; - sepNavVisRange = "{2804, 650}"; + sepNavIntBoundsRect = "{{0, 0}, {815, 2512}}"; + sepNavSelRange = "{2859, 0}"; + sepNavVisRange = "{2804, 510}"; }; }; 6BCF32441104CDB5009445BF /* PBXTextBookmark */ = { @@ -1833,7 +1942,7 @@ fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; name = "Sample_TileMesh.cpp: 808"; rLen = 0; - rLoc = 21344; + rLoc = 21345; rType = 0; vrLen = 677; vrLoc = 21177; @@ -1923,7 +2032,7 @@ fRef = 6BCF32351104CD05009445BF /* OffMeshConnectionTool.cpp */; name = "OffMeshConnectionTool.cpp: 116"; rLen = 0; - rLoc = 3122; + rLoc = 3052; rType = 0; vrLen = 657; vrLoc = 2637; @@ -2033,7 +2142,7 @@ fRef = 6BB7FDA310F36EFC006DA0A6 /* InputGeom.h */; name = "InputGeom.h: 59"; rLen = 0; - rLoc = 2368; + rLoc = 3033; rType = 0; vrLen = 1266; vrLoc = 1128; @@ -2043,7 +2152,7 @@ fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; name = "InputGeom.cpp: 186"; rLen = 0; - rLoc = 4941; + rLoc = 7936; rType = 0; vrLen = 1079; vrLoc = 4669; @@ -2053,7 +2162,7 @@ fRef = 6BB7FDA310F36EFC006DA0A6 /* InputGeom.h */; name = "InputGeom.h: 35"; rLen = 16; - rLoc = 1301; + rLoc = 1325; rType = 0; vrLen = 1193; vrLoc = 1014; @@ -2063,7 +2172,7 @@ fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; name = "InputGeom.cpp: 193"; rLen = 0; - rLoc = 4941; + rLoc = 7936; rType = 0; vrLen = 851; vrLoc = 4710; @@ -2083,7 +2192,7 @@ fRef = 6BB7FDA310F36EFC006DA0A6 /* InputGeom.h */; name = "InputGeom.h: 35"; rLen = 16; - rLoc = 1301; + rLoc = 1325; rType = 0; vrLen = 1109; vrLoc = 1014; @@ -2093,7 +2202,7 @@ fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; name = "InputGeom.cpp: 196"; rLen = 0; - rLoc = 4941; + rLoc = 7936; rType = 0; vrLen = 1020; vrLoc = 1006; @@ -2113,7 +2222,7 @@ fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; name = "InputGeom.cpp: 222"; rLen = 0; - rLoc = 5137; + rLoc = 8132; rType = 0; vrLen = 273; vrLoc = 5494; @@ -2123,7 +2232,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 643"; rLen = 0; - rLoc = 21589; + rLoc = 21778; rType = 0; vrLen = 2056; vrLoc = 19496; @@ -2133,7 +2242,7 @@ fRef = 6BA1E88910C7BFC9008007F6 /* Sample_SoloMeshTiled.cpp */; name = "Sample_SoloMeshTiled.cpp: 1018"; rLen = 0; - rLoc = 32108; + rLoc = 32109; rType = 0; vrLen = 2096; vrLoc = 29979; @@ -2163,7 +2272,7 @@ fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; name = "InputGeom.cpp: 219"; rLen = 0; - rLoc = 4941; + rLoc = 7936; rType = 0; vrLen = 375; vrLoc = 5392; @@ -2182,8 +2291,8 @@ isa = PBXTextBookmark; fRef = 6B25B6100FFA62AD004F1BC4 /* Sample.h */; name = "Sample.h: 92"; - rLen = 38; - rLoc = 2656; + rLen = 0; + rLoc = 2672; rType = 0; vrLen = 1011; vrLoc = 2237; @@ -2203,7 +2312,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 643"; rLen = 0; - rLoc = 21589; + rLoc = 21778; rType = 0; vrLen = 2208; vrLoc = 19344; @@ -2223,7 +2332,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 317"; rLen = 0; - rLoc = 9737; + rLoc = 9926; rType = 0; vrLen = 582; vrLoc = 1734; @@ -2243,7 +2352,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 315"; rLen = 16; - rLoc = 9720; + rLoc = 9909; rType = 0; vrLen = 653; vrLoc = 9500; @@ -2273,7 +2382,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 315"; rLen = 35; - rLoc = 9702; + rLoc = 9891; rType = 0; vrLen = 650; vrLoc = 9500; @@ -2293,7 +2402,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 318"; rLen = 0; - rLoc = 9737; + rLoc = 9926; rType = 0; vrLen = 553; vrLoc = 9500; @@ -2323,7 +2432,7 @@ fRef = 6BCF32351104CD05009445BF /* OffMeshConnectionTool.cpp */; name = "OffMeshConnectionTool.cpp: 123"; rLen = 0; - rLoc = 3223; + rLoc = 3083; rType = 0; vrLen = 707; vrLoc = 2032; @@ -2343,7 +2452,7 @@ fRef = 6BCF32351104CD05009445BF /* OffMeshConnectionTool.cpp */; name = "OffMeshConnectionTool.cpp: 136"; rLen = 54; - rLoc = 3499; + rLoc = 3359; rType = 0; vrLen = 793; vrLoc = 2921; @@ -2353,7 +2462,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 209"; rLen = 0; - rLoc = 6769; + rLoc = 6927; rType = 0; vrLen = 1217; vrLoc = 6140; @@ -2383,7 +2492,7 @@ fRef = 6BCF32351104CD05009445BF /* OffMeshConnectionTool.cpp */; name = "OffMeshConnectionTool.cpp: 136"; rLen = 0; - rLoc = 3509; + rLoc = 3369; rType = 0; vrLen = 793; vrLoc = 2921; @@ -2393,7 +2502,7 @@ fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; name = "InputGeom.cpp: 227"; rLen = 0; - rLoc = 5101; + rLoc = 8096; rType = 0; vrLen = 0; vrLoc = 5767; @@ -2403,7 +2512,7 @@ fRef = 6BB7FDA310F36EFC006DA0A6 /* InputGeom.h */; name = "InputGeom.h: 59"; rLen = 0; - rLoc = 2365; + rLoc = 2638; rType = 0; vrLen = 1213; vrLoc = 1181; @@ -2413,7 +2522,7 @@ fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; name = "InputGeom.cpp: 224"; rLen = 0; - rLoc = 5010; + rLoc = 8005; rType = 0; vrLen = 0; vrLoc = 5767; @@ -2423,7 +2532,7 @@ fRef = 6BA1E88910C7BFC9008007F6 /* Sample_SoloMeshTiled.cpp */; name = "Sample_SoloMeshTiled.cpp: 1012"; rLen = 0; - rLoc = 31459; + rLoc = 31460; rType = 0; vrLen = 2028; vrLoc = 30047; @@ -2433,7 +2542,7 @@ fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; name = "InputGeom.cpp: 214"; rLen = 0; - rLoc = 4941; + rLoc = 7936; rType = 0; vrLen = 640; vrLoc = 5127; @@ -2443,7 +2552,7 @@ fRef = 6BCF32351104CD05009445BF /* OffMeshConnectionTool.cpp */; name = "OffMeshConnectionTool.cpp: 109"; rLen = 0; - rLoc = 2937; + rLoc = 2867; rType = 0; vrLen = 634; vrLoc = 2494; @@ -2453,7 +2562,7 @@ fRef = 6BCF32341104CD05009445BF /* OffMeshConnectionTool.h */; name = "OffMeshConnectionTool.h: 29"; rLen = 0; - rLoc = 1138; + rLoc = 1146; rType = 0; vrLen = 742; vrLoc = 837; @@ -2463,7 +2572,7 @@ fRef = 6BB7FDA310F36EFC006DA0A6 /* InputGeom.h */; name = "InputGeom.h: 52"; rLen = 0; - rLoc = 1842; + rLoc = 2115; rType = 0; vrLen = 1215; vrLoc = 1179; @@ -2533,7 +2642,7 @@ fRef = 6BB7FDA310F36EFC006DA0A6 /* InputGeom.h */; name = "InputGeom.h: 37"; rLen = 0; - rLoc = 1344; + rLoc = 1368; rType = 0; vrLen = 1166; vrLoc = 1014; @@ -2543,7 +2652,7 @@ fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; name = "InputGeom.cpp: 216"; rLen = 0; - rLoc = 4941; + rLoc = 7936; rType = 0; vrLen = 321; vrLoc = 5446; @@ -2553,7 +2662,7 @@ fRef = 6BB7FDA310F36EFC006DA0A6 /* InputGeom.h */; name = "InputGeom.h: 61"; rLen = 0; - rLoc = 2368; + rLoc = 3033; rType = 0; vrLen = 1158; vrLoc = 1236; @@ -2563,7 +2672,7 @@ fRef = 6B25B6100FFA62AD004F1BC4 /* Sample.h */; name = "Sample.h: 92"; rLen = 0; - rLoc = 2656; + rLoc = 2672; rType = 0; vrLen = 962; vrLoc = 2258; @@ -2573,7 +2682,7 @@ fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; name = "InputGeom.cpp: 227"; rLen = 0; - rLoc = 5105; + rLoc = 8100; rType = 0; vrLen = 0; vrLoc = 5767; @@ -2583,7 +2692,7 @@ fRef = 6BCF32351104CD05009445BF /* OffMeshConnectionTool.cpp */; name = "OffMeshConnectionTool.cpp: 129"; rLen = 0; - rLoc = 3337; + rLoc = 3197; rType = 0; vrLen = 809; vrLoc = 2899; @@ -2603,7 +2712,7 @@ fRef = 6B25B6100FFA62AD004F1BC4 /* Sample.h */; name = "Sample.h: 92"; rLen = 0; - rLoc = 2656; + rLoc = 2672; rType = 0; vrLen = 962; vrLoc = 2258; @@ -2623,7 +2732,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 318"; rLen = 0; - rLoc = 9737; + rLoc = 9926; rType = 0; vrLen = 421; vrLoc = 9504; @@ -2633,7 +2742,7 @@ fRef = 6BA1E88910C7BFC9008007F6 /* Sample_SoloMeshTiled.cpp */; name = "Sample_SoloMeshTiled.cpp: 1020"; rLen = 0; - rLoc = 32108; + rLoc = 32109; rType = 0; vrLen = 1484; vrLoc = 30591; @@ -2653,7 +2762,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 194"; rLen = 0; - rLoc = 6174; + rLoc = 6301; rType = 0; vrLen = 925; vrLoc = 5980; @@ -2713,7 +2822,7 @@ fRef = 6BCF32341104CD05009445BF /* OffMeshConnectionTool.h */; name = "OffMeshConnectionTool.h: 32"; rLen = 0; - rLoc = 1199; + rLoc = 1207; rType = 0; vrLen = 585; vrLoc = 983; @@ -2733,7 +2842,7 @@ fRef = 6BB7FDA310F36EFC006DA0A6 /* InputGeom.h */; name = "InputGeom.h: 60"; rLen = 0; - rLoc = 2367; + rLoc = 2640; rType = 0; vrLen = 884; vrLoc = 1510; @@ -2773,7 +2882,7 @@ fRef = 6BCF32341104CD05009445BF /* OffMeshConnectionTool.h */; name = "OffMeshConnectionTool.h: 32"; rLen = 0; - rLoc = 1199; + rLoc = 1207; rType = 0; vrLen = 585; vrLoc = 983; @@ -2783,7 +2892,7 @@ fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; name = "InputGeom.cpp: 234"; rLen = 0; - rLoc = 5211; + rLoc = 8206; rType = 0; vrLen = 0; vrLoc = 5767; @@ -2793,7 +2902,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 200"; rLen = 0; - rLoc = 6421; + rLoc = 6548; rType = 0; vrLen = 789; vrLoc = 6096; @@ -2843,7 +2952,7 @@ fRef = 6BCF32341104CD05009445BF /* OffMeshConnectionTool.h */; name = "OffMeshConnectionTool.h: 32"; rLen = 0; - rLoc = 1199; + rLoc = 1207; rType = 0; vrLen = 585; vrLoc = 983; @@ -2853,7 +2962,7 @@ fRef = 6BCF32351104CD05009445BF /* OffMeshConnectionTool.cpp */; name = "OffMeshConnectionTool.cpp: 146"; rLen = 0; - rLoc = 3550; + rLoc = 3410; rType = 0; vrLen = 714; vrLoc = 3226; @@ -2863,7 +2972,7 @@ fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; name = "InputGeom.cpp: 238"; rLen = 0; - rLoc = 5338; + rLoc = 8333; rType = 0; vrLen = 0; vrLoc = 5767; @@ -2873,7 +2982,7 @@ fRef = 6BB7FDA310F36EFC006DA0A6 /* InputGeom.h */; name = "InputGeom.h: 60"; rLen = 14; - rLoc = 2343; + rLoc = 2616; rType = 0; vrLen = 932; vrLoc = 1462; @@ -2883,7 +2992,7 @@ fRef = 6BB7FDA310F36EFC006DA0A6 /* InputGeom.h */; name = "InputGeom.h: 36"; rLen = 0; - rLoc = 1344; + rLoc = 1368; rType = 0; vrLen = 1163; vrLoc = 1091; @@ -2893,7 +3002,7 @@ fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; name = "InputGeom.cpp: 168"; rLen = 0; - rLoc = 4531; + rLoc = 7526; rType = 0; vrLen = 705; vrLoc = 5062; @@ -2903,7 +3012,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 316"; rLen = 0; - rLoc = 9737; + rLoc = 9926; rType = 0; vrLen = 679; vrLoc = 9439; @@ -2923,7 +3032,7 @@ fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; name = "InputGeom.cpp: 94"; rLen = 0; - rLoc = 2727; + rLoc = 3291; rType = 0; vrLen = 505; vrLoc = 2541; @@ -2933,7 +3042,7 @@ fRef = 6BB7FDA310F36EFC006DA0A6 /* InputGeom.h */; name = "InputGeom.h: 36"; rLen = 0; - rLoc = 1344; + rLoc = 1368; rType = 0; vrLen = 1163; vrLoc = 1091; @@ -2943,7 +3052,7 @@ fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; name = "InputGeom.cpp: 168"; rLen = 0; - rLoc = 4531; + rLoc = 7526; rType = 0; vrLen = 705; vrLoc = 5062; @@ -2953,7 +3062,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 316"; rLen = 0; - rLoc = 9737; + rLoc = 9926; rType = 0; vrLen = 679; vrLoc = 9439; @@ -3977,9 +4086,9 @@ }; 6BF7C13F1111953A002B3F46 /* TestCase.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1195, 6032}}"; - sepNavSelRange = "{7539, 0}"; - sepNavVisRange = "{6328, 271}"; + sepNavIntBoundsRect = "{{0, 0}, {815, 5536}}"; + sepNavSelRange = "{3060, 0}"; + sepNavVisRange = "{2770, 567}"; }; }; 6BF7C14411119BB4002B3F46 /* PBXTextBookmark */ = { @@ -3997,7 +4106,7 @@ fRef = 6B25B6100FFA62AD004F1BC4 /* Sample.h */; name = "Sample.h: 85"; rLen = 0; - rLoc = 2375; + rLoc = 2393; rType = 0; vrLen = 1034; vrLoc = 2216; @@ -4045,7 +4154,7 @@ fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; name = "main.cpp: 652"; rLen = 0; - rLoc = 15170; + rLoc = 16364; rType = 0; vrLen = 633; vrLoc = 2275; @@ -4085,7 +4194,7 @@ fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; name = "main.cpp: 425"; rLen = 0; - rLoc = 10010; + rLoc = 11204; rType = 0; vrLen = 714; vrLoc = 9395; @@ -4095,7 +4204,7 @@ fRef = 6B25B6100FFA62AD004F1BC4 /* Sample.h */; name = "Sample.h: 88"; rLen = 105; - rLoc = 2464; + rLoc = 2482; rType = 0; vrLen = 1090; vrLoc = 2133; @@ -4145,7 +4254,7 @@ fRef = 6B25B6100FFA62AD004F1BC4 /* Sample.h */; name = "Sample.h: 85"; rLen = 0; - rLoc = 2375; + rLoc = 2393; rType = 0; vrLen = 1034; vrLoc = 2216; @@ -4665,7 +4774,7 @@ fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; name = "main.cpp: 675"; rLen = 0; - rLoc = 15805; + rLoc = 16999; rType = 0; vrLen = 665; vrLoc = 14782; @@ -4695,7 +4804,7 @@ comments = "error: no matching function for call to 'TestCase::doTests()'"; fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; rLen = 1; - rLoc = 748; + rLoc = 791; rType = 1; }; 6BF7C1951111A8DB002B3F46 /* PBXTextBookmark */ = { @@ -4703,7 +4812,7 @@ fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; name = "main.cpp: 694"; rLen = 0; - rLoc = 15863; + rLoc = 17057; rType = 0; vrLen = 765; vrLoc = 15658; @@ -4733,7 +4842,7 @@ fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; name = "main.cpp: 716"; rLen = 0; - rLoc = 16369; + rLoc = 17563; rType = 0; vrLen = 859; vrLoc = 16199; @@ -4753,7 +4862,7 @@ fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; name = "main.cpp: 740"; rLen = 0; - rLoc = 17288; + rLoc = 18482; rType = 0; vrLen = 751; vrLoc = 16572; @@ -4763,7 +4872,7 @@ fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; name = "main.cpp: 740"; rLen = 0; - rLoc = 17288; + rLoc = 18482; rType = 0; vrLen = 780; vrLoc = 16572; @@ -4783,7 +4892,7 @@ fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; name = "main.cpp: 740"; rLen = 0; - rLoc = 17288; + rLoc = 18482; rType = 0; vrLen = 232; vrLoc = 16857; @@ -4793,7 +4902,7 @@ fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; name = "main.cpp: 738"; rLen = 0; - rLoc = 17230; + rLoc = 18424; rType = 0; vrLen = 780; vrLoc = 16572; @@ -4803,7 +4912,7 @@ fRef = 6BCF32351104CD05009445BF /* OffMeshConnectionTool.cpp */; name = "OffMeshConnectionTool.cpp: 159"; rLen = 0; - rLoc = 3938; + rLoc = 3798; rType = 0; vrLen = 904; vrLoc = 3036; @@ -4833,7 +4942,7 @@ fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; name = "main.cpp: 738"; rLen = 0; - rLoc = 17230; + rLoc = 18424; rType = 0; vrLen = 780; vrLoc = 16572; @@ -4943,7 +5052,7 @@ fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; name = "main.cpp: 738"; rLen = 0; - rLoc = 17230; + rLoc = 18424; rType = 0; vrLen = 780; vrLoc = 16572; @@ -4963,7 +5072,7 @@ fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; name = "main.cpp: 759"; rLen = 0; - rLoc = 17640; + rLoc = 18834; rType = 0; vrLen = 722; vrLoc = 17055; @@ -4973,7 +5082,7 @@ fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; name = "main.cpp: 766"; rLen = 0; - rLoc = 17852; + rLoc = 19046; rType = 0; vrLen = 744; vrLoc = 17055; @@ -4983,7 +5092,7 @@ fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; name = "main.cpp: 766"; rLen = 0; - rLoc = 17852; + rLoc = 19046; rType = 0; vrLen = 268; vrLoc = 17055; @@ -4993,7 +5102,7 @@ fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; name = "main.cpp: 727"; rLen = 0; - rLoc = 16635; + rLoc = 17829; rType = 0; vrLen = 842; vrLoc = 16067; @@ -5003,7 +5112,7 @@ fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; name = "main.cpp: 727"; rLen = 0; - rLoc = 16635; + rLoc = 17829; rType = 0; vrLen = 932; vrLoc = 16067; @@ -5023,7 +5132,7 @@ fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; name = "main.cpp: 727"; rLen = 0; - rLoc = 16635; + rLoc = 17829; rType = 0; vrLen = 932; vrLoc = 16067; @@ -5063,7 +5172,7 @@ fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; name = "main.cpp: 431"; rLen = 0; - rLoc = 10039; + rLoc = 11233; rType = 0; vrLen = 772; vrLoc = 9844; @@ -5103,7 +5212,7 @@ fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; name = "main.cpp: 769"; rLen = 167; - rLoc = 17686; + rLoc = 18880; rType = 0; vrLen = 744; vrLoc = 17274; @@ -5423,7 +5532,7 @@ fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; name = "main.cpp: 775"; rLen = 0; - rLoc = 17852; + rLoc = 19046; rType = 0; vrLen = 417; vrLoc = 16485; @@ -5472,7 +5581,7 @@ isa = PBXTextBookmark; fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; rLen = 0; - rLoc = 185; + rLoc = 338; rType = 1; }; 6BF7C20B1111D299002B3F46 /* PBXTextBookmark */ = { @@ -5490,7 +5599,7 @@ fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; name = "InputGeom.cpp: 186"; rLen = 0; - rLoc = 5014; + rLoc = 8009; rType = 0; vrLen = 991; vrLoc = 4669; @@ -5500,7 +5609,7 @@ fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; name = "InputGeom.cpp: 191"; rLen = 0; - rLoc = 5207; + rLoc = 8202; rType = 0; vrLen = 1053; vrLoc = 4669; @@ -5510,7 +5619,7 @@ fRef = 6BB7FDA310F36EFC006DA0A6 /* InputGeom.h */; name = "InputGeom.h: 36"; rLen = 0; - rLoc = 1344; + rLoc = 1368; rType = 0; vrLen = 904; vrLoc = 939; @@ -5540,7 +5649,7 @@ fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; name = "InputGeom.cpp: 191"; rLen = 0; - rLoc = 5207; + rLoc = 8202; rType = 0; vrLen = 1053; vrLoc = 4669; @@ -5550,7 +5659,7 @@ fRef = 6BB7FDA310F36EFC006DA0A6 /* InputGeom.h */; name = "InputGeom.h: 36"; rLen = 0; - rLoc = 1344; + rLoc = 1368; rType = 0; vrLen = 904; vrLoc = 939; @@ -6296,7 +6405,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 437"; rLen = 0; - rLoc = 13874; + rLoc = 14063; rType = 0; vrLen = 1066; vrLoc = 13092; @@ -6356,7 +6465,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 437"; rLen = 0; - rLoc = 13874; + rLoc = 14063; rType = 0; vrLen = 1066; vrLoc = 13092; @@ -6744,7 +6853,7 @@ fRef = 6B25B6100FFA62AD004F1BC4 /* Sample.h */; name = "Sample.h: 98"; rLen = 0; - rLoc = 2990; + rLoc = 2968; rType = 0; vrLen = 988; vrLoc = 2237; @@ -6754,7 +6863,7 @@ fRef = 6BCF32351104CD05009445BF /* OffMeshConnectionTool.cpp */; name = "OffMeshConnectionTool.cpp: 128"; rLen = 5; - rLoc = 3092; + rLoc = 3022; rType = 0; vrLen = 650; vrLoc = 2804; @@ -6814,7 +6923,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 433"; rLen = 0; - rLoc = 13688; + rLoc = 13877; rType = 0; vrLen = 957; vrLoc = 13184; @@ -6844,7 +6953,7 @@ fRef = 6B25B6100FFA62AD004F1BC4 /* Sample.h */; name = "Sample.h: 98"; rLen = 0; - rLoc = 2990; + rLoc = 2968; rType = 0; vrLen = 988; vrLoc = 2237; @@ -6854,7 +6963,7 @@ fRef = 6BCF32351104CD05009445BF /* OffMeshConnectionTool.cpp */; name = "OffMeshConnectionTool.cpp: 128"; rLen = 5; - rLoc = 3092; + rLoc = 3022; rType = 0; vrLen = 650; vrLoc = 2804; @@ -6924,7 +7033,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 433"; rLen = 0; - rLoc = 13688; + rLoc = 13877; rType = 0; vrLen = 957; vrLoc = 13184; @@ -6944,7 +7053,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 433"; rLen = 0; - rLoc = 13656; + rLoc = 13845; rType = 0; vrLen = 1017; vrLoc = 13184; @@ -6954,7 +7063,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 435"; rLen = 0; - rLoc = 13820; + rLoc = 14009; rType = 0; vrLen = 1017; vrLoc = 13184; @@ -6974,7 +7083,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 435"; rLen = 0; - rLoc = 13820; + rLoc = 14009; rType = 0; vrLen = 1017; vrLoc = 13184; @@ -7044,7 +7153,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 435"; rLen = 0; - rLoc = 13820; + rLoc = 14009; rType = 0; vrLen = 1017; vrLoc = 13184; @@ -7064,7 +7173,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 418"; rLen = 0; - rLoc = 13276; + rLoc = 13465; rType = 0; vrLen = 1138; vrLoc = 12682; @@ -7094,7 +7203,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 418"; rLen = 0; - rLoc = 13276; + rLoc = 13465; rType = 0; vrLen = 1142; vrLoc = 12682; @@ -7104,7 +7213,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 418"; rLen = 0; - rLoc = 13276; + rLoc = 13465; rType = 0; vrLen = 1142; vrLoc = 12682; @@ -7134,7 +7243,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 418"; rLen = 0; - rLoc = 13276; + rLoc = 13465; rType = 0; vrLen = 1140; vrLoc = 12682; @@ -7144,7 +7253,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 418"; rLen = 0; - rLoc = 13276; + rLoc = 13465; rType = 0; vrLen = 1144; vrLoc = 12682; @@ -7174,7 +7283,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 418"; rLen = 0; - rLoc = 13276; + rLoc = 13465; rType = 0; vrLen = 1144; vrLoc = 12682; @@ -7234,7 +7343,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 418"; rLen = 0; - rLoc = 13276; + rLoc = 13465; rType = 0; vrLen = 1144; vrLoc = 12682; @@ -7274,7 +7383,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 418"; rLen = 0; - rLoc = 13276; + rLoc = 13465; rType = 0; vrLen = 1140; vrLoc = 12682; @@ -7284,7 +7393,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 418"; rLen = 0; - rLoc = 13276; + rLoc = 13465; rType = 0; vrLen = 1140; vrLoc = 12682; @@ -7294,7 +7403,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 421"; rLen = 0; - rLoc = 13308; + rLoc = 13497; rType = 0; vrLen = 1144; vrLoc = 12682; @@ -7324,7 +7433,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 421"; rLen = 0; - rLoc = 13308; + rLoc = 13497; rType = 0; vrLen = 1144; vrLoc = 12682; @@ -7354,7 +7463,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 433"; rLen = 0; - rLoc = 13618; + rLoc = 13807; rType = 0; vrLen = 1144; vrLoc = 12682; @@ -7384,7 +7493,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 433"; rLen = 0; - rLoc = 13618; + rLoc = 13807; rType = 0; vrLen = 1144; vrLoc = 12682; @@ -7424,7 +7533,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 434"; rLen = 0; - rLoc = 13619; + rLoc = 13808; rType = 0; vrLen = 1166; vrLoc = 12664; @@ -7454,7 +7563,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 434"; rLen = 0; - rLoc = 13619; + rLoc = 13808; rType = 0; vrLen = 1166; vrLoc = 12664; @@ -7474,7 +7583,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 352"; rLen = 0; - rLoc = 10640; + rLoc = 10829; rType = 0; vrLen = 1381; vrLoc = 10069; @@ -7484,7 +7593,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 352"; rLen = 0; - rLoc = 10640; + rLoc = 10829; rType = 0; vrLen = 1463; vrLoc = 10069; @@ -7494,7 +7603,7 @@ fRef = 6BCF32341104CD05009445BF /* OffMeshConnectionTool.h */; name = "OffMeshConnectionTool.h: 32"; rLen = 0; - rLoc = 1199; + rLoc = 1207; rType = 0; vrLen = 822; vrLoc = 784; @@ -7522,7 +7631,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 352"; rLen = 0; - rLoc = 10640; + rLoc = 10829; rType = 0; vrLen = 1463; vrLoc = 10069; @@ -7532,7 +7641,7 @@ fRef = 6BCF32341104CD05009445BF /* OffMeshConnectionTool.h */; name = "OffMeshConnectionTool.h: 32"; rLen = 0; - rLoc = 1199; + rLoc = 1207; rType = 0; vrLen = 822; vrLoc = 784; @@ -7572,7 +7681,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 352"; rLen = 0; - rLoc = 10640; + rLoc = 10829; rType = 0; vrLen = 1331; vrLoc = 10118; @@ -7592,7 +7701,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 418"; rLen = 0; - rLoc = 13276; + rLoc = 13465; rType = 0; vrLen = 1037; vrLoc = 12325; @@ -7602,7 +7711,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 418"; rLen = 0; - rLoc = 13276; + rLoc = 13465; rType = 0; vrLen = 1037; vrLoc = 12325; @@ -7612,7 +7721,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 418"; rLen = 0; - rLoc = 13276; + rLoc = 13465; rType = 0; vrLen = 1035; vrLoc = 12325; @@ -7622,7 +7731,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 419"; rLen = 0; - rLoc = 13279; + rLoc = 13468; rType = 0; vrLen = 963; vrLoc = 12415; @@ -7632,7 +7741,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 419"; rLen = 0; - rLoc = 13279; + rLoc = 13468; rType = 0; vrLen = 967; vrLoc = 12415; @@ -7652,7 +7761,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 419"; rLen = 0; - rLoc = 13279; + rLoc = 13468; rType = 0; vrLen = 967; vrLoc = 12415; @@ -7682,7 +7791,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 419"; rLen = 0; - rLoc = 13279; + rLoc = 13468; rType = 0; vrLen = 967; vrLoc = 12415; @@ -7702,7 +7811,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 417"; rLen = 0; - rLoc = 13093; + rLoc = 13282; rType = 0; vrLen = 984; vrLoc = 12415; @@ -7712,7 +7821,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 434"; rLen = 0; - rLoc = 13619; + rLoc = 13808; rType = 0; vrLen = 1010; vrLoc = 12817; @@ -7722,7 +7831,7 @@ fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; name = "Sample_TileMesh.cpp: 775"; rLen = 0; - rLoc = 20380; + rLoc = 20381; rType = 0; vrLen = 1154; vrLoc = 19834; @@ -7752,7 +7861,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 425"; rLen = 0; - rLoc = 13355; + rLoc = 13544; rType = 0; vrLen = 1065; vrLoc = 12901; @@ -7762,7 +7871,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 425"; rLen = 0; - rLoc = 13355; + rLoc = 13544; rType = 0; vrLen = 1065; vrLoc = 12901; @@ -7782,7 +7891,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 425"; rLen = 0; - rLoc = 13355; + rLoc = 13544; rType = 0; vrLen = 1065; vrLoc = 12901; @@ -7802,7 +7911,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 418"; rLen = 0; - rLoc = 13276; + rLoc = 13465; rType = 0; vrLen = 998; vrLoc = 12901; @@ -7812,7 +7921,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 418"; rLen = 0; - rLoc = 13276; + rLoc = 13465; rType = 0; vrLen = 992; vrLoc = 12901; @@ -7822,7 +7931,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 418"; rLen = 0; - rLoc = 13276; + rLoc = 13465; rType = 0; vrLen = 998; vrLoc = 12901; @@ -7832,7 +7941,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 418"; rLen = 0; - rLoc = 13276; + rLoc = 13465; rType = 0; vrLen = 992; vrLoc = 12901; @@ -7842,7 +7951,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 434"; rLen = 0; - rLoc = 13619; + rLoc = 13808; rType = 0; vrLen = 990; vrLoc = 12901; @@ -7852,7 +7961,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 434"; rLen = 0; - rLoc = 13619; + rLoc = 13808; rType = 0; vrLen = 1063; vrLoc = 12901; @@ -7872,7 +7981,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 434"; rLen = 0; - rLoc = 13619; + rLoc = 13808; rType = 0; vrLen = 1063; vrLoc = 12901; @@ -7932,7 +8041,7 @@ fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; name = "Sample_TileMesh.cpp: 641"; rLen = 0; - rLoc = 16689; + rLoc = 16690; rType = 0; vrLen = 1051; vrLoc = 16406; @@ -7942,7 +8051,7 @@ fRef = 6BA1E88910C7BFC9008007F6 /* Sample_SoloMeshTiled.cpp */; name = "Sample_SoloMeshTiled.cpp: 734"; rLen = 0; - rLoc = 22082; + rLoc = 22083; rType = 0; vrLen = 1145; vrLoc = 21339; @@ -7952,7 +8061,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 433"; rLen = 69; - rLoc = 13619; + rLoc = 13808; rType = 0; vrLen = 1185; vrLoc = 12901; @@ -7992,7 +8101,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 433"; rLen = 69; - rLoc = 13619; + rLoc = 13808; rType = 0; vrLen = 1185; vrLoc = 12901; @@ -8002,7 +8111,7 @@ fRef = 6BA1E88910C7BFC9008007F6 /* Sample_SoloMeshTiled.cpp */; name = "Sample_SoloMeshTiled.cpp: 738"; rLen = 0; - rLoc = 22164; + rLoc = 22165; rType = 0; vrLen = 1120; vrLoc = 21614; @@ -8012,7 +8121,7 @@ fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; name = "Sample_TileMesh.cpp: 654"; rLen = 0; - rLoc = 17056; + rLoc = 17057; rType = 0; vrLen = 1087; vrLoc = 16439; @@ -8022,7 +8131,7 @@ fRef = 6BA1E88910C7BFC9008007F6 /* Sample_SoloMeshTiled.cpp */; name = "Sample_SoloMeshTiled.cpp: 738"; rLen = 0; - rLoc = 22164; + rLoc = 22165; rType = 0; vrLen = 1115; vrLoc = 21619; @@ -8032,7 +8141,7 @@ fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; name = "Sample_TileMesh.cpp: 641"; rLen = 0; - rLoc = 16689; + rLoc = 16690; rType = 0; vrLen = 1051; vrLoc = 16406; @@ -8042,7 +8151,7 @@ fRef = 6BA1E88910C7BFC9008007F6 /* Sample_SoloMeshTiled.cpp */; name = "Sample_SoloMeshTiled.cpp: 734"; rLen = 0; - rLoc = 22082; + rLoc = 22083; rType = 0; vrLen = 1145; vrLoc = 21339; @@ -8052,7 +8161,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 418"; rLen = 0; - rLoc = 13274; + rLoc = 13463; rType = 0; vrLen = 1185; vrLoc = 12901; @@ -8062,7 +8171,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 427"; rLen = 0; - rLoc = 13398; + rLoc = 13587; rType = 0; vrLen = 1185; vrLoc = 12901; @@ -8082,7 +8191,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 427"; rLen = 0; - rLoc = 13398; + rLoc = 13587; rType = 0; vrLen = 1185; vrLoc = 12901; @@ -8180,11 +8289,1113 @@ fRef = 6BA1E88910C7BFC9008007F6 /* Sample_SoloMeshTiled.cpp */; name = "Sample_SoloMeshTiled.cpp: 737"; rLen = 0; - rLoc = 22156; + rLoc = 22157; rType = 0; vrLen = 1032; vrLoc = 21464; }; + 6BF7C37B1113026E002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88910C7BFC9008007F6 /* Sample_SoloMeshTiled.cpp */; + name = "Sample_SoloMeshTiled.cpp: 737"; + rLen = 0; + rLoc = 22157; + rType = 0; + vrLen = 1032; + vrLoc = 21464; + }; + 6BF7C37C1113026E002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; + name = "Recast.h: 460"; + rLen = 0; + rLoc = 15691; + rType = 0; + vrLen = 1404; + vrLoc = 15416; + }; + 6BF7C37D1113026E002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B1185FC10068B040018F96F /* DetourCommon.h */; + name = "DetourCommon.h: 27"; + rLen = 0; + rLoc = 1315; + rType = 0; + vrLen = 1141; + vrLoc = 706; + }; + 6BF7C37E1113026E002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; + name = "Sample_TileMesh.cpp: 641"; + rLen = 0; + rLoc = 16690; + rType = 0; + vrLen = 1051; + vrLoc = 16406; + }; + 6BF7C37F1113026E002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88910C7BFC9008007F6 /* Sample_SoloMeshTiled.cpp */; + name = "Sample_SoloMeshTiled.cpp: 737"; + rLen = 0; + rLoc = 22157; + rType = 0; + vrLen = 1032; + vrLoc = 21464; + }; + 6BF7C3801113026E002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; + name = "Recast.h: 460"; + rLen = 0; + rLoc = 15691; + rType = 0; + vrLen = 1404; + vrLoc = 15416; + }; + 6BF7C3811113026E002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B1185FC10068B040018F96F /* DetourCommon.h */; + name = "DetourCommon.h: 27"; + rLen = 0; + rLoc = 1315; + rType = 0; + vrLen = 1141; + vrLoc = 706; + }; + 6BF7C3821113026E002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; + name = "Sample_TileMesh.cpp: 563"; + rLen = 0; + rLoc = 14026; + rType = 0; + vrLen = 1209; + vrLoc = 13565; + }; + 6BF7C384111302A2002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; + name = "Sample_TileMesh.cpp: 563"; + rLen = 0; + rLoc = 14026; + rType = 0; + vrLen = 1209; + vrLoc = 13565; + }; + 6BF7C3871113030C002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; + name = "Sample_TileMesh.cpp: 563"; + rLen = 0; + rLoc = 14032; + rType = 0; + vrLen = 1285; + vrLoc = 13270; + }; + 6BF7C38811130EA2002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; + name = "Sample_TileMesh.cpp: 460"; + rLen = 6; + rLoc = 10925; + rType = 0; + vrLen = 744; + vrLoc = 10567; + }; + 6BF7C38911130EA2002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; + name = "Sample_SoloMeshSimple.cpp: 427"; + rLen = 0; + rLoc = 13587; + rType = 0; + vrLen = 1185; + vrLoc = 12901; + }; + 6BF7C38A11130EA2002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; + name = "Sample_TileMesh.cpp: 460"; + rLen = 6; + rLoc = 10925; + rType = 0; + vrLen = 744; + vrLoc = 10567; + }; + 6BF7C38B11130EA2002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; + name = "Sample_SoloMeshSimple.cpp: 352"; + rLen = 0; + rLoc = 10829; + rType = 0; + vrLen = 1330; + vrLoc = 10118; + }; + 6BF7C38C111313CC002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; + name = "Sample_SoloMeshSimple.cpp: 352"; + rLen = 6; + rLoc = 10824; + rType = 0; + vrLen = 1331; + vrLoc = 10118; + }; + 6BF7C38D111313CC002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88910C7BFC9008007F6 /* Sample_SoloMeshTiled.cpp */; + name = "Sample_SoloMeshTiled.cpp: 603"; + rLen = 0; + rLoc = 17262; + rType = 0; + vrLen = 1355; + vrLoc = 17095; + }; + 6BF7C38E111313CC002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; + name = "Sample_TileMesh.cpp: 460"; + rLen = 6; + rLoc = 10925; + rType = 0; + vrLen = 717; + vrLoc = 10567; + }; + 6BF7C38F111313CC002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; + name = "Sample_SoloMeshSimple.cpp: 352"; + rLen = 6; + rLoc = 10824; + rType = 0; + vrLen = 1331; + vrLoc = 10118; + }; + 6BF7C390111313CC002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88910C7BFC9008007F6 /* Sample_SoloMeshTiled.cpp */; + name = "Sample_SoloMeshTiled.cpp: 603"; + rLen = 0; + rLoc = 17262; + rType = 0; + vrLen = 1355; + vrLoc = 17095; + }; + 6BF7C391111313CC002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; + name = "Sample_TileMesh.cpp: 555"; + rLen = 0; + rLoc = 13599; + rType = 0; + vrLen = 1338; + vrLoc = 13335; + }; + 6BF7C392111316AD002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; + name = "Sample_TileMesh.cpp: 555"; + rLen = 0; + rLoc = 13599; + rType = 0; + vrLen = 1338; + vrLoc = 13335; + }; + 6BF7C393111316AD002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; + name = "TestCase.cpp: 145"; + rLen = 0; + rLoc = 3060; + rType = 0; + vrLen = 567; + vrLoc = 2770; + }; + 6BF7C394111316AD002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C6D0F7FCBBB00459200 /* MeshLoaderObj.cpp */; + name = "MeshLoaderObj.cpp: 218"; + rLen = 0; + rLoc = 4683; + rType = 0; + vrLen = 676; + vrLoc = 4119; + }; + 6BF7C395111316AD002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C7B0F7FCBE400459200 /* MeshLoaderObj.h */; + name = "MeshLoaderObj.h: 30"; + rLen = 0; + rLoc = 1076; + rType = 0; + vrLen = 715; + vrLoc = 942; + }; + 6BF7C396111316AD002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA310F36EFC006DA0A6 /* InputGeom.h */; + name = "InputGeom.h: 27"; + rLen = 0; + rLoc = 1033; + rType = 0; + vrLen = 880; + vrLoc = 960; + }; + 6BF7C397111316AD002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 211"; + rLen = 0; + rLoc = 5161; + rType = 0; + vrLen = 537; + vrLoc = 4794; + }; + 6BF7C398111316AD002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; + name = "Sample_TileMesh.cpp: 555"; + rLen = 0; + rLoc = 13599; + rType = 0; + vrLen = 1338; + vrLoc = 13335; + }; + 6BF7C399111316AD002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 179"; + rLen = 0; + rLoc = 4527; + rType = 0; + vrLen = 596; + vrLoc = 4166; + }; + 6BF7C39A111316AD002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 179"; + rLen = 0; + rLoc = 4527; + rType = 0; + vrLen = 553; + vrLoc = 4166; + }; + 6BF7C39B111316AD002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 180"; + rLen = 0; + rLoc = 4527; + rType = 0; + vrLen = 533; + vrLoc = 4166; + }; + 6BF7C39C111316AD002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA310F36EFC006DA0A6 /* InputGeom.h */; + name = "InputGeom.h: 27"; + rLen = 0; + rLoc = 1033; + rType = 0; + vrLen = 880; + vrLoc = 960; + }; + 6BF7C39D111316AD002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 205"; + rLen = 0; + rLoc = 4987; + rType = 0; + vrLen = 580; + vrLoc = 4705; + }; + 6BF7C39E111316AD002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA310F36EFC006DA0A6 /* InputGeom.h */; + name = "InputGeom.h: 27"; + rLen = 0; + rLoc = 1033; + rType = 0; + vrLen = 880; + vrLoc = 960; + }; + 6BF7C39F111316AD002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 207"; + rLen = 0; + rLoc = 5399; + rType = 0; + vrLen = 580; + vrLoc = 4693; + }; + 6BF7C3A0111316AD002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA310F36EFC006DA0A6 /* InputGeom.h */; + name = "InputGeom.h: 27"; + rLen = 0; + rLoc = 1033; + rType = 0; + vrLen = 880; + vrLoc = 960; + }; + 6BF7C3A1111316AD002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 210"; + rLen = 0; + rLoc = 5132; + rType = 0; + vrLen = 725; + vrLoc = 4800; + }; + 6BF7C3A2111316AD002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA310F36EFC006DA0A6 /* InputGeom.h */; + name = "InputGeom.h: 27"; + rLen = 0; + rLoc = 1033; + rType = 0; + vrLen = 880; + vrLoc = 960; + }; + 6BF7C3A3111316AD002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 211"; + rLen = 0; + rLoc = 5161; + rType = 0; + vrLen = 537; + vrLoc = 4794; + }; + 6BF7C3A4111316AD002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA310F36EFC006DA0A6 /* InputGeom.h */; + name = "InputGeom.h: 27"; + rLen = 0; + rLoc = 1033; + rType = 0; + vrLen = 880; + vrLoc = 960; + }; + 6BF7C3A5111316AD002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 229"; + rLen = 0; + rLoc = 6567; + rType = 0; + vrLen = 704; + vrLoc = 4922; + }; + 6BF7C3AF111317BF002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 230"; + rLen = 0; + rLoc = 5858; + rType = 0; + vrLen = 679; + vrLoc = 5207; + }; + 6BF7C3B0111317BF002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; + name = "main.cpp: 431"; + rLen = 0; + rLoc = 11233; + rType = 0; + vrLen = 658; + vrLoc = 9958; + }; + 6BF7C3B1111317BF002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 230"; + rLen = 0; + rLoc = 5858; + rType = 0; + vrLen = 679; + vrLoc = 5207; + }; + 6BF7C3B2111317BF002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; + name = "main.cpp: 442"; + rLen = 0; + rLoc = 11495; + rType = 0; + vrLen = 654; + vrLoc = 9958; + }; + 6BF7C3B511131858002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; + name = "main.cpp: 283"; + rLen = 0; + rLoc = 6239; + rType = 0; + vrLen = 680; + vrLoc = 5690; + }; + 6BF7C3B71113186C002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; + name = "main.cpp: 264"; + rLen = 0; + rLoc = 5791; + rType = 0; + vrLen = 653; + vrLoc = 5531; + }; + 6BF7C3B811131885002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; + name = "main.cpp: 267"; + rLen = 0; + rLoc = 5836; + rType = 0; + vrLen = 701; + vrLoc = 5531; + }; + 6BF7C3B911131894002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C880F7FCC1100459200 /* RecastRasterization.cpp */; + name = "RecastRasterization.cpp: 357"; + rLen = 0; + rLoc = 9841; + rType = 0; + vrLen = 297; + vrLoc = 3419; + }; + 6BF7C3BA11131894002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; + name = "main.cpp: 267"; + rLen = 0; + rLoc = 5836; + rType = 0; + vrLen = 264; + vrLoc = 5683; + }; + 6BF7C3BB11131897002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; + name = "main.cpp: 265"; + rLen = 0; + rLoc = 5799; + rType = 0; + vrLen = 726; + vrLoc = 5498; + }; + 6BF7C3BC111318BA002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; + name = "main.cpp: 269"; + rLen = 0; + rLoc = 5901; + rType = 0; + vrLen = 884; + vrLoc = 5947; + }; + 6BF7C3BD111318BA002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 230"; + rLen = 0; + rLoc = 5858; + rType = 0; + vrLen = 626; + vrLoc = 5207; + }; + 6BF7C3BE111318BA002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; + name = "main.cpp: 269"; + rLen = 0; + rLoc = 5901; + rType = 0; + vrLen = 884; + vrLoc = 5947; + }; + 6BF7C3BF111318BA002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 244"; + rLen = 0; + rLoc = 6235; + rType = 0; + vrLen = 664; + vrLoc = 5327; + }; + 6BF7C3C2111318CB002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 243"; + rLen = 0; + rLoc = 6195; + rType = 0; + vrLen = 556; + vrLoc = 5290; + }; + 6BF7C3C311131B0F002B3F46 /* BoxVolumeTool.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {815, 768}}"; + sepNavSelRange = "{1161, 11}"; + sepNavVisRange = "{919, 603}"; + }; + }; + 6BF7C3C411131B1F002B3F46 /* BoxVolumeTool.cpp */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {815, 2448}}"; + sepNavSelRange = "{1373, 0}"; + sepNavVisRange = "{2954, 700}"; + }; + }; + 6BF7C3CC11131F26002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BCF32341104CD05009445BF /* OffMeshConnectionTool.h */; + name = "OffMeshConnectionTool.h: 24"; + rLen = 0; + rLoc = 1042; + rType = 0; + vrLen = 661; + vrLoc = 915; + }; + 6BF7C3CD11131F26002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88910C7BFC9008007F6 /* Sample_SoloMeshTiled.cpp */; + name = "Sample_SoloMeshTiled.cpp: 81"; + rLen = 0; + rLoc = 2180; + rType = 0; + vrLen = 683; + vrLoc = 1882; + }; + 6BF7C3CE11131F26002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BCF32351104CD05009445BF /* OffMeshConnectionTool.cpp */; + name = "OffMeshConnectionTool.cpp: 116"; + rLen = 0; + rLoc = 2859; + rType = 0; + vrLen = 510; + vrLoc = 2804; + }; + 6BF7C3CF11131F26002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C3C311131B0F002B3F46 /* BoxVolumeTool.h */; + name = "BoxVolumeTool.h: 32"; + rLen = 11; + rLoc = 1161; + rType = 0; + vrLen = 603; + vrLoc = 919; + }; + 6BF7C3D011131F26002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6100FFA62AD004F1BC4 /* Sample.h */; + name = "Sample.h: 41"; + rLen = 0; + rLoc = 1459; + rType = 0; + vrLen = 714; + vrLoc = 1016; + }; + 6BF7C3D111131F26002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C3C411131B1F002B3F46 /* BoxVolumeTool.cpp */; + name = "BoxVolumeTool.cpp: 139"; + rLen = 0; + rLoc = 3274; + rType = 0; + vrLen = 696; + vrLoc = 2928; + }; + 6BF7C3D211131F26002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA310F36EFC006DA0A6 /* InputGeom.h */; + name = "InputGeom.h: 75"; + rLen = 12; + rLoc = 3010; + rType = 0; + vrLen = 1396; + vrLoc = 1640; + }; + 6BF7C3D311131F26002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 364"; + rLen = 0; + rLoc = 9303; + rType = 0; + vrLen = 698; + vrLoc = 8433; + }; + 6BF7C3D411131F26002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; + name = "Sample_SoloMeshSimple.cpp: 39"; + rLen = 0; + rLoc = 1421; + rType = 0; + vrLen = 574; + vrLoc = 2343; + }; + 6BF7C3D511131F26002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 235"; + rLen = 0; + rLoc = 5946; + rType = 0; + vrLen = 569; + vrLoc = 5290; + }; + 6BF7C3D611131F26002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA310F36EFC006DA0A6 /* InputGeom.h */; + name = "InputGeom.h: 63"; + rLen = 0; + rLoc = 2658; + rType = 0; + vrLen = 1349; + vrLoc = 1517; + }; + 6BF7C3D711131F26002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C3C311131B0F002B3F46 /* BoxVolumeTool.h */; + name = "BoxVolumeTool.h: 1"; + rLen = 0; + rLoc = 1548; + rType = 0; + vrLen = 0; + vrLoc = 0; + }; + 6BF7C3D811131F26002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C3C311131B0F002B3F46 /* BoxVolumeTool.h */; + name = "BoxVolumeTool.h: 1"; + rLen = 0; + rLoc = 1548; + rType = 0; + vrLen = 0; + vrLoc = 0; + }; + 6BF7C3D911131F26002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BCF32341104CD05009445BF /* OffMeshConnectionTool.h */; + name = "OffMeshConnectionTool.h: 1"; + rLen = 1614; + rLoc = 0; + rType = 0; + vrLen = 653; + vrLoc = 918; + }; + 6BF7C3DA11131F26002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C3C311131B0F002B3F46 /* BoxVolumeTool.h */; + name = "BoxVolumeTool.h: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 1121; + vrLoc = 0; + }; + 6BF7C3DB11131F26002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BCF32351104CD05009445BF /* OffMeshConnectionTool.cpp */; + name = "OffMeshConnectionTool.cpp: 1"; + rLen = 3800; + rLoc = 0; + rType = 0; + vrLen = 536; + vrLoc = 2804; + }; + 6BF7C3DC11131F26002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C3C311131B0F002B3F46 /* BoxVolumeTool.h */; + name = "BoxVolumeTool.h: 24"; + rLen = 0; + rLoc = 1018; + rType = 0; + vrLen = 1106; + vrLoc = 0; + }; + 6BF7C3DD11131F26002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BCF32341104CD05009445BF /* OffMeshConnectionTool.h */; + name = "OffMeshConnectionTool.h: 24"; + rLen = 0; + rLoc = 1042; + rType = 0; + vrLen = 661; + vrLoc = 915; + }; + 6BF7C3DE11131F26002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C3C311131B0F002B3F46 /* BoxVolumeTool.h */; + name = "BoxVolumeTool.h: 35"; + rLen = 0; + rLoc = 1204; + rType = 0; + vrLen = 589; + vrLoc = 943; + }; + 6BF7C3DF11131F26002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C3C311131B0F002B3F46 /* BoxVolumeTool.h */; + name = "BoxVolumeTool.h: 31"; + rLen = 0; + rLoc = 1135; + rType = 0; + vrLen = 613; + vrLoc = 919; + }; + 6BF7C3E011131F26002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C3C311131B0F002B3F46 /* BoxVolumeTool.h */; + name = "BoxVolumeTool.h: 31"; + rLen = 10; + rLoc = 1142; + rType = 0; + vrLen = 609; + vrLoc = 919; + }; + 6BF7C3E111131F26002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C3C311131B0F002B3F46 /* BoxVolumeTool.h */; + name = "BoxVolumeTool.h: 31"; + rLen = 0; + rLoc = 1152; + rType = 0; + vrLen = 609; + vrLoc = 919; + }; + 6BF7C3E211131F26002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C3C411131B1F002B3F46 /* BoxVolumeTool.cpp */; + name = "BoxVolumeTool.cpp: 117"; + rLen = 0; + rLoc = 2864; + rType = 0; + vrLen = 429; + vrLoc = 2489; + }; + 6BF7C3E311131F26002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C3C311131B0F002B3F46 /* BoxVolumeTool.h */; + name = "BoxVolumeTool.h: 32"; + rLen = 11; + rLoc = 1161; + rType = 0; + vrLen = 603; + vrLoc = 919; + }; + 6BF7C3E411131F26002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C3C411131B1F002B3F46 /* BoxVolumeTool.cpp */; + name = "BoxVolumeTool.cpp: 141"; + rLen = 0; + rLoc = 3276; + rType = 0; + vrLen = 693; + vrLoc = 2931; + }; + 6BF7C3E511131F26002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; + name = "Sample_SoloMeshSimple.cpp: 39"; + rLen = 0; + rLoc = 1421; + rType = 0; + vrLen = 574; + vrLoc = 2343; + }; + 6BF7C3E611131F26002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C3C411131B1F002B3F46 /* BoxVolumeTool.cpp */; + name = "BoxVolumeTool.cpp: 139"; + rLen = 0; + rLoc = 3274; + rType = 0; + vrLen = 696; + vrLoc = 2928; + }; + 6BF7C3E711131F26002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 241"; + rLen = 0; + rLoc = 6113; + rType = 0; + vrLen = 569; + vrLoc = 5290; + }; + 6BF7C3E811131F26002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA310F36EFC006DA0A6 /* InputGeom.h */; + name = "InputGeom.h: 64"; + rLen = 374; + rLoc = 2659; + rType = 0; + vrLen = 1382; + vrLoc = 1483; + }; + 6BF7C3E911131F26002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 348"; + rLen = 0; + rLoc = 9374; + rType = 0; + vrLen = 602; + vrLoc = 7685; + }; + 6BF7C3EA11131F26002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA310F36EFC006DA0A6 /* InputGeom.h */; + name = "InputGeom.h: 42"; + rLen = 13; + rLoc = 1546; + rType = 0; + vrLen = 663; + vrLoc = 939; + }; + 6BF7C3EB11131F26002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 349"; + rLen = 0; + rLoc = 9051; + rType = 0; + vrLen = 621; + vrLoc = 7798; + }; + 6BF7C3EC11131F26002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA310F36EFC006DA0A6 /* InputGeom.h */; + name = "InputGeom.h: 40"; + rLen = 110; + rLoc = 1451; + rType = 0; + vrLen = 663; + vrLoc = 939; + }; + 6BF7C3ED11131F26002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 366"; + rLen = 0; + rLoc = 9372; + rType = 0; + vrLen = 669; + vrLoc = 8473; + }; + 6BF7C3EE11131F26002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA310F36EFC006DA0A6 /* InputGeom.h */; + name = "InputGeom.h: 43"; + rLen = 0; + rLoc = 1561; + rType = 0; + vrLen = 1382; + vrLoc = 1676; + }; + 6BF7C3EF11131F26002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 364"; + rLen = 1; + rLoc = 9303; + rType = 0; + vrLen = 645; + vrLoc = 8473; + }; + 6BF7C3F011131F26002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA310F36EFC006DA0A6 /* InputGeom.h */; + name = "InputGeom.h: 71"; + rLen = 0; + rLoc = 2729; + rType = 0; + vrLen = 1434; + vrLoc = 1602; + }; + 6BF7C3F111131F26002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 364"; + rLen = 0; + rLoc = 9303; + rType = 0; + vrLen = 662; + vrLoc = 8433; + }; + 6BF7C3F211131F26002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA310F36EFC006DA0A6 /* InputGeom.h */; + name = "InputGeom.h: 75"; + rLen = 12; + rLoc = 3010; + rType = 0; + vrLen = 1396; + vrLoc = 1640; + }; + 6BF7C3F311131F26002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 364"; + rLen = 0; + rLoc = 9303; + rType = 0; + vrLen = 698; + vrLoc = 8433; + }; + 6BF7C3F411131F26002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; + name = "Sample_SoloMeshSimple.cpp: 215"; + rLen = 0; + rLoc = 6959; + rType = 0; + vrLen = 985; + vrLoc = 6302; + }; + 6BF7C3F611131F84002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; + name = "Sample_SoloMeshSimple.cpp: 215"; + rLen = 0; + rLoc = 6959; + rType = 0; + vrLen = 1070; + vrLoc = 6302; + }; + 6BF7C3F711131F84002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C3C411131B1F002B3F46 /* BoxVolumeTool.cpp */; + name = "BoxVolumeTool.cpp: 139"; + rLen = 0; + rLoc = 3274; + rType = 0; + vrLen = 696; + vrLoc = 2928; + }; + 6BF7C3F811131F84002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; + name = "Sample_SoloMeshSimple.cpp: 215"; + rLen = 0; + rLoc = 6959; + rType = 0; + vrLen = 1070; + vrLoc = 6302; + }; + 6BF7C3F911131F84002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C3C411131B1F002B3F46 /* BoxVolumeTool.cpp */; + name = "BoxVolumeTool.cpp: 42"; + rLen = 0; + rLoc = 1373; + rType = 0; + vrLen = 408; + vrLoc = 1359; + }; + 6BF7C3FA11132015002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C3C411131B1F002B3F46 /* BoxVolumeTool.cpp */; + name = "BoxVolumeTool.cpp: 42"; + rLen = 0; + rLoc = 1373; + rType = 0; + vrLen = 700; + vrLoc = 2954; + }; + 6BF7C3FB11132015002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 364"; + rLen = 0; + rLoc = 9303; + rType = 0; + vrLen = 698; + vrLoc = 8433; + }; + 6BF7C3FC11132015002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C3C411131B1F002B3F46 /* BoxVolumeTool.cpp */; + name = "BoxVolumeTool.cpp: 42"; + rLen = 0; + rLoc = 1373; + rType = 0; + vrLen = 700; + vrLoc = 2954; + }; + 6BF7C3FD11132015002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 370"; + rLen = 0; + rLoc = 9428; + rType = 0; + vrLen = 661; + vrLoc = 8472; + }; + 6BF7C4021113209A002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA310F36EFC006DA0A6 /* InputGeom.h */; + name = "InputGeom.h: 65"; + rLen = 0; + rLoc = 2451; + rType = 0; + vrLen = 1396; + vrLoc = 1640; + }; + 6BF7C4031113209A002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + comments = "error: 'bidir' was not declared in this scope"; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + rLen = 1; + rLoc = 235; + rType = 1; + }; + 6BF7C4041113209A002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 370"; + rLen = 0; + rLoc = 9428; + rType = 0; + vrLen = 661; + vrLoc = 8472; + }; + 6BF7C4051113209A002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA310F36EFC006DA0A6 /* InputGeom.h */; + name = "InputGeom.h: 65"; + rLen = 0; + rLoc = 2451; + rType = 0; + vrLen = 1396; + vrLoc = 1640; + }; + 6BF7C4061113209A002B3F46 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 237"; + rLen = 0; + rLoc = 5711; + rType = 0; + vrLen = 730; + vrLoc = 5132; + }; 8D1107260486CEB800E47090 /* Recast */ = { activeExec = 0; executables = ( diff --git a/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.perspectivev3 b/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.perspectivev3 index 4d48657..6fd767b 100644 --- a/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.perspectivev3 +++ b/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.perspectivev3 @@ -281,14 +281,13 @@ PBXSmartGroupTreeModuleOutlineStateSelectionKey - 32 - 23 + 61 1 0 PBXSmartGroupTreeModuleOutlineStateVisibleRectKey - {{0, 247}, {358, 643}} + {{0, 752}, {358, 643}} PBXTopSmartGroupGIDs @@ -323,7 +322,7 @@ PBXProjectModuleGUID 6B8632A30F78115100E2684A PBXProjectModuleLabel - Sample_SoloMeshTiled.cpp + InputGeom.cpp PBXSplitModuleInNavigatorKey Split0 @@ -331,11 +330,11 @@ PBXProjectModuleGUID 6B8632A40F78115100E2684A PBXProjectModuleLabel - Sample_SoloMeshTiled.cpp + InputGeom.cpp _historyCapacity 0 bookmark - 6BF7C3791112FE75002B3F46 + 6BF7C4061113209A002B3F46 history 6B8DE70D10B01BBF00DF20FB @@ -344,7 +343,6 @@ 6BBB883C10EA9B6F008FEA1F 6BB7FDC010F37703006DA0A6 6BB7FDC110F37703006DA0A6 - 6BB7FE1010F37CF7006DA0A6 6BB7FF6D10F4E8E2006DA0A6 6B69739F10FFCA4500984788 6BCF325F1104CFE7009445BF @@ -360,38 +358,39 @@ 6BF7C0EF11116E74002B3F46 6BF7C0F011116E74002B3F46 6BF7C0F311116E74002B3F46 - 6BF7C13411118CEB002B3F46 6BF7C16211119C69002B3F46 - 6BF7C16C11119D8F002B3F46 - 6BF7C1CF1111BCF2002B3F46 6BF7C1D01111BCF2002B3F46 6BF7C1E21111BD81002B3F46 6BF7C1ED1111C0A6002B3F46 - 6BF7C20F1111D361002B3F46 - 6BF7C2431111DAC1002B3F46 6BF7C2441111DAC1002B3F46 - 6BF7C2591112B456002B3F46 - 6BF7C25A1112B456002B3F46 - 6BF7C25B1112B456002B3F46 6BF7C2761112BE4F002B3F46 6BF7C2851112C348002B3F46 6BF7C2A51112D13E002B3F46 6BF7C2BD1112D453002B3F46 - 6BF7C2BE1112D453002B3F46 - 6BF7C2BF1112D453002B3F46 6BF7C2DB1112D4DA002B3F46 6BF7C2EF1112D646002B3F46 6BF7C2F51112D716002B3F46 6BF7C2F61112D716002B3F46 - 6BF7C3201112DB82002B3F46 6BF7C3211112DB82002B3F46 6BF7C3281112DDCE002B3F46 6BF7C3431112E74B002B3F46 - 6BF7C35D1112EA84002B3F46 - 6BF7C36A1112EB0C002B3F46 6BF7C36E1112EB25002B3F46 - 6BF7C3761112FE75002B3F46 - 6BF7C3771112FE75002B3F46 + 6BF7C37C1113026E002B3F46 + 6BF7C37D1113026E002B3F46 + 6BF7C392111316AD002B3F46 + 6BF7C393111316AD002B3F46 + 6BF7C394111316AD002B3F46 + 6BF7C395111316AD002B3F46 + 6BF7C3BC111318BA002B3F46 + 6BF7C3CC11131F26002B3F46 + 6BF7C3CD11131F26002B3F46 + 6BF7C3CE11131F26002B3F46 + 6BF7C3CF11131F26002B3F46 + 6BF7C3D011131F26002B3F46 + 6BF7C3F611131F84002B3F46 + 6BF7C3FA11132015002B3F46 + 6BF7C4021113209A002B3F46 + 6BF7C4031113209A002B3F46 prevStack @@ -402,10 +401,7 @@ 6BBB885510EA9ECC008FEA1F 6BBB889D10EAA094008FEA1F 6BB7FDC710F37703006DA0A6 - 6BB7FDD910F37703006DA0A6 6BB7FDDA10F37703006DA0A6 - 6BB7FDDC10F37703006DA0A6 - 6BB7FDDD10F37703006DA0A6 6BB7FE1A10F37CF7006DA0A6 6BB7FE2110F37CF7006DA0A6 6BB7FE2210F37CF7006DA0A6 @@ -414,7 +410,6 @@ 6BB7FF2410F4D699006DA0A6 6BB7FF9610F4E8E2006DA0A6 6BB700C310FA3AB1006DA0A6 - 6B69739810FFC43600984788 6B6973A210FFCA4500984788 6BCF32441104CDB5009445BF 6BCF324A1104CDB5009445BF @@ -463,7 +458,6 @@ 6BF7C14F11119BB4002B3F46 6BF7C15411119BB4002B3F46 6BF7C16611119C69002B3F46 - 6BF7C16711119C69002B3F46 6BF7C16E11119D8F002B3F46 6BF7C17511119EDD002B3F46 6BF7C17711119EDD002B3F46 @@ -486,8 +480,6 @@ 6BF7C1F21111C0A6002B3F46 6BF7C15711119BB4002B3F46 6BF7C20B1111D299002B3F46 - 6BF7C2131111D361002B3F46 - 6BF7C2141111D361002B3F46 6BF7C2151111D361002B3F46 6BF7C2161111D361002B3F46 6BF7C2171111D361002B3F46 @@ -504,12 +496,8 @@ 6BF7C2271111D491002B3F46 6BF7C2461111DAC1002B3F46 6BF7C2471111DAC1002B3F46 - 6BF7C2481111DAC1002B3F46 6BF7C2491111DAC1002B3F46 6BF7C25D1112B456002B3F46 - 6BF7C25E1112B456002B3F46 - 6BF7C25F1112B456002B3F46 - 6BF7C2601112B456002B3F46 6BF7C2701112B56F002B3F46 6BF7C2791112BE4F002B3F46 6BF7C27A1112BE4F002B3F46 @@ -517,7 +505,6 @@ 6BF7C28A1112C349002B3F46 6BF7C28B1112C349002B3F46 6BF7C28C1112C349002B3F46 - 6BF7C28D1112C349002B3F46 6BF7C2971112C4A2002B3F46 6BF7C2A81112D13E002B3F46 6BF7C2A91112D13E002B3F46 @@ -536,46 +523,89 @@ 6BF7C2CB1112D453002B3F46 6BF7C2CD1112D453002B3F46 6BF7C2CF1112D453002B3F46 - 6BF7C2D01112D453002B3F46 6BF7C2D11112D453002B3F46 - 6BF7C2D71112D479002B3F46 6BF7C2E21112D520002B3F46 - 6BF7C2E81112D611002B3F46 6BF7C2E91112D611002B3F46 - 6BF7C2F11112D646002B3F46 6BF7C2F21112D646002B3F46 6BF7C2F91112D716002B3F46 6BF7C2FA1112D716002B3F46 - 6BF7C3061112D780002B3F46 6BF7C30C1112D8C1002B3F46 - 6BF7C30D1112D8C1002B3F46 6BF7C3141112DAFB002B3F46 - 6BF7C3161112DAFB002B3F46 6BF7C3171112DAFB002B3F46 - 6BF7C3231112DB82002B3F46 6BF7C3241112DB82002B3F46 6BF7C3251112DB82002B3F46 6BF7C32A1112DDCE002B3F46 - 6BF7C3371112E571002B3F46 6BF7C33C1112E5D1002B3F46 - 6BF7C3451112E74B002B3F46 6BF7C3461112E74B002B3F46 - 6BF7C3471112E74B002B3F46 6BF7C3481112E74B002B3F46 - 6BF7C3551112E875002B3F46 6BF7C3601112EA84002B3F46 6BF7C3611112EA84002B3F46 6BF7C3621112EA84002B3F46 - 6BF7C3631112EA84002B3F46 6BF7C3641112EA84002B3F46 6BF7C3651112EA84002B3F46 6BF7C3661112EA84002B3F46 6BF7C3671112EA84002B3F46 6BF7C3681112EA84002B3F46 - 6BF7C36C1112EB0C002B3F46 6BF7C3701112EB25002B3F46 6BF7C3711112EB25002B3F46 6BF7C3781112FE75002B3F46 + 6BF7C37F1113026E002B3F46 + 6BF7C3801113026E002B3F46 + 6BF7C3811113026E002B3F46 + 6BF7C38A11130EA2002B3F46 + 6BF7C390111313CC002B3F46 + 6BF7C398111316AD002B3F46 + 6BF7C399111316AD002B3F46 + 6BF7C39A111316AD002B3F46 + 6BF7C39B111316AD002B3F46 + 6BF7C39C111316AD002B3F46 + 6BF7C39D111316AD002B3F46 + 6BF7C39E111316AD002B3F46 + 6BF7C39F111316AD002B3F46 + 6BF7C3A0111316AD002B3F46 + 6BF7C3A1111316AD002B3F46 + 6BF7C3A2111316AD002B3F46 + 6BF7C3A3111316AD002B3F46 + 6BF7C3A4111316AD002B3F46 + 6BF7C3B1111317BF002B3F46 + 6BB7FDD910F37703006DA0A6 + 6BF7C16711119C69002B3F46 + 6BF7C3BE111318BA002B3F46 + 6BF7C3D511131F26002B3F46 + 6BF7C3D611131F26002B3F46 + 6BF7C3D711131F26002B3F46 + 6BF7C3D811131F26002B3F46 + 6BF7C3D911131F26002B3F46 + 6BF7C3DA11131F26002B3F46 + 6BF7C3DB11131F26002B3F46 + 6BF7C3DC11131F26002B3F46 + 6BF7C3DD11131F26002B3F46 + 6BF7C3DE11131F26002B3F46 + 6BF7C3DF11131F26002B3F46 + 6BF7C3E011131F26002B3F46 + 6BF7C3E111131F26002B3F46 + 6BF7C3E211131F26002B3F46 + 6BF7C3E311131F26002B3F46 + 6BF7C3E411131F26002B3F46 + 6BF7C3E511131F26002B3F46 + 6BF7C3E611131F26002B3F46 + 6BF7C3E711131F26002B3F46 + 6BF7C3E811131F26002B3F46 + 6BF7C3E911131F26002B3F46 + 6BF7C3EA11131F26002B3F46 + 6BF7C3EB11131F26002B3F46 + 6BF7C3EC11131F26002B3F46 + 6BF7C3ED11131F26002B3F46 + 6BF7C3EE11131F26002B3F46 + 6BF7C3EF11131F26002B3F46 + 6BF7C3F011131F26002B3F46 + 6BF7C3F111131F26002B3F46 + 6BF7C3F211131F26002B3F46 + 6BF7C3F311131F26002B3F46 + 6BF7C3F811131F84002B3F46 + 6BF7C3FC11132015002B3F46 + 6BF7C4041113209A002B3F46 + 6BF7C4051113209A002B3F46 SplitCount @@ -589,18 +619,18 @@ GeometryConfiguration Frame - {{0, 0}, {876, 502}} + {{0, 0}, {876, 563}} RubberWindowFrame 11 76 1256 702 0 0 1280 778 Module PBXNavigatorGroup Proportion - 502pt + 563pt Proportion - 154pt + 93pt Tabs @@ -668,7 +698,7 @@ GeometryConfiguration Frame - {{10, 27}, {876, 127}} + {{10, 27}, {876, 66}} RubberWindowFrame 11 76 1256 702 0 0 1280 778 diff --git a/RecastDemo/Build/Xcode/Recast.xcodeproj/project.pbxproj b/RecastDemo/Build/Xcode/Recast.xcodeproj/project.pbxproj index 275a01d..a0f1788 100644 --- a/RecastDemo/Build/Xcode/Recast.xcodeproj/project.pbxproj +++ b/RecastDemo/Build/Xcode/Recast.xcodeproj/project.pbxproj @@ -42,6 +42,7 @@ 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 */; }; + 6BF7C3C511131B1F002B3F46 /* BoxVolumeTool.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6BF7C3C411131B1F002B3F46 /* BoxVolumeTool.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 */ @@ -113,6 +114,8 @@ 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; }; + 6BF7C3C311131B0F002B3F46 /* BoxVolumeTool.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = BoxVolumeTool.h; path = ../../Include/BoxVolumeTool.h; sourceTree = SOURCE_ROOT; }; + 6BF7C3C411131B1F002B3F46 /* BoxVolumeTool.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = BoxVolumeTool.cpp; path = ../../Source/BoxVolumeTool.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 */ @@ -268,6 +271,8 @@ 6BCF32351104CD05009445BF /* OffMeshConnectionTool.cpp */, 6BB7FC0910EBB6AA006DA0A6 /* NavMeshTesterTool.h */, 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */, + 6BF7C3C311131B0F002B3F46 /* BoxVolumeTool.h */, + 6BF7C3C411131B1F002B3F46 /* BoxVolumeTool.cpp */, ); name = Tools; sourceTree = ""; @@ -389,6 +394,7 @@ 6BB7FDA510F36F0E006DA0A6 /* InputGeom.cpp in Sources */, 6BCF32361104CD05009445BF /* OffMeshConnectionTool.cpp in Sources */, 6BF7C1401111953A002B3F46 /* TestCase.cpp in Sources */, + 6BF7C3C511131B1F002B3F46 /* BoxVolumeTool.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/RecastDemo/Include/BoxVolumeTool.h b/RecastDemo/Include/BoxVolumeTool.h new file mode 100644 index 0000000..2e6394e --- /dev/null +++ b/RecastDemo/Include/BoxVolumeTool.h @@ -0,0 +1,47 @@ +// +// 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 BOXVOLUMETOOL_H +#define BOXVOLUMETOOL_H + +#include "Sample.h" + +// Tool to create box volumess for InputGeom + +class BoxVolumeTool : public SampleTool +{ + Sample* m_sample; + float m_hitPos[3]; + bool m_hitPosSet; + float m_areaType; + float m_boxHeight; + +public: + BoxVolumeTool(); + ~BoxVolumeTool(); + + virtual int type() { return TOOL_BOX_VOLUME; } + virtual void init(Sample* sample); + virtual void reset(); + virtual void handleMenu(); + virtual void handleClick(const float* p, bool shift); + virtual void handleRender(); + virtual void handleRenderOverlay(double* proj, double* model, int* view); +}; + +#endif // BOXVOLUMETOOL_H diff --git a/RecastDemo/Include/InputGeom.h b/RecastDemo/Include/InputGeom.h index 34dcbdb..f188879 100644 --- a/RecastDemo/Include/InputGeom.h +++ b/RecastDemo/Include/InputGeom.h @@ -28,12 +28,18 @@ class InputGeom rcMeshLoaderObj* m_mesh; float m_meshBMin[3], m_meshBMax[3]; + // Off-Mesh connections. static const int MAX_OFFMESH_CONNECTIONS = 256; - float m_offMeshConVerts[MAX_OFFMESH_CONNECTIONS*3*2]; float m_offMeshConRads[MAX_OFFMESH_CONNECTIONS]; unsigned char m_offMeshConDirs[MAX_OFFMESH_CONNECTIONS]; int m_offMeshConCount; + + // Box Volumes. + static const int MAX_BOX_VOLUMES = 256; + float m_boxVolVerts[MAX_BOX_VOLUMES*3*2]; + unsigned char m_boxVolTypes[MAX_BOX_VOLUMES]; + int m_boxVolCount; public: InputGeom(); @@ -41,6 +47,9 @@ public: bool loadMesh(const char* filepath); + bool load(const char* filepath); + bool save(const char* filepath); + // Method to return static mesh data. inline const rcMeshLoaderObj* getMesh() const { return m_mesh; } inline const float* getMeshBoundsMin() const { return m_meshBMin; } @@ -48,7 +57,7 @@ public: inline const rcChunkyTriMesh* getChunkyMesh() const { return m_chunkyMesh; } bool raycastMesh(float* src, float* dst, float& tmin); - // Extra links + // Off-Mesh connections. int getOffMeshConnectionCount() const { return m_offMeshConCount; } const float* getOffMeshConnectionVerts() const { return m_offMeshConVerts; } const float* getOffMeshConnectionRads() const { return m_offMeshConRads; } @@ -56,6 +65,14 @@ public: void addOffMeshConnection(const float* spos, const float* epos, const float rad, unsigned char bidir); void deleteOffMeshConnection(int i); void drawOffMeshConnections(struct duDebugDraw* dd, bool hilight = false); + + // Box Volumes. + int getBoxVolumeCount() const { return m_boxVolCount; } + const float* getBoxVolumeVerts() const { return m_boxVolVerts; } + const unsigned char* getBoxVolumeTypes() const { return m_boxVolTypes; } + void addBoxVolume(const float* bmin, const float* bmax, unsigned char type); + void deleteBoxVolume(int i); + void drawBoxVolumes(struct duDebugDraw* dd, bool hilight = false); }; #endif // INPUTGEOM_H diff --git a/RecastDemo/Include/MeshLoaderObj.h b/RecastDemo/Include/MeshLoaderObj.h index 37c734f..1da5491 100644 --- a/RecastDemo/Include/MeshLoaderObj.h +++ b/RecastDemo/Include/MeshLoaderObj.h @@ -32,12 +32,14 @@ public: inline const int* getTris() const { return m_tris; } inline int getVertCount() const { return m_vertCount; } inline int getTriCount() const { return m_triCount; } + inline const char* getFileName() const { return m_filename; } private: void addVertex(float x, float y, float z, int& cap); void addTriangle(int a, int b, int c, int& cap); + char m_filename[260]; float* m_verts; int* m_tris; diff --git a/RecastDemo/Include/OffMeshConnectionTool.h b/RecastDemo/Include/OffMeshConnectionTool.h index c4c4fdb..abe61e5 100644 --- a/RecastDemo/Include/OffMeshConnectionTool.h +++ b/RecastDemo/Include/OffMeshConnectionTool.h @@ -21,7 +21,7 @@ #include "Sample.h" -// Tool to create extra links for InputGeom +// Tool to create off-mesh connection for InputGeom class OffMeshConnectionTool : public SampleTool { diff --git a/RecastDemo/Include/Sample.h b/RecastDemo/Include/Sample.h index 10dd925..8e847a8 100644 --- a/RecastDemo/Include/Sample.h +++ b/RecastDemo/Include/Sample.h @@ -37,6 +37,7 @@ enum SampleToolType TOOL_TILE_EDIT, TOOL_NAVMESH_TESTER, TOOL_OFFMESH_CONNECTION, + TOOL_BOX_VOLUME, }; struct SampleTool @@ -89,7 +90,6 @@ public: virtual void handleRenderOverlay(double* proj, double* model, int* view); virtual void handleMeshChanged(class InputGeom* geom); virtual bool handleBuild(); -// virtual void handleNavMeshChanged(); virtual class InputGeom* getInputGeom() { return m_geom; } virtual class dtNavMesh* getNavMesh() { return m_navMesh; } diff --git a/RecastDemo/Source/BoxVolumeTool.cpp b/RecastDemo/Source/BoxVolumeTool.cpp new file mode 100644 index 0000000..658cd84 --- /dev/null +++ b/RecastDemo/Source/BoxVolumeTool.cpp @@ -0,0 +1,152 @@ +// +// 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. +// + +#define _USE_MATH_DEFINES +#include +#include +#include +#include +#include "SDL.h" +#include "SDL_opengl.h" +#include "imgui.h" +#include "BoxVolumeTool.h" +#include "InputGeom.h" +#include "Sample.h" +#include "Recast.h" +#include "RecastDebugDraw.h" +#include "DetourDebugDraw.h" + +#ifdef WIN32 +# define snprintf _snprintf +#endif + +BoxVolumeTool::BoxVolumeTool() : + m_sample(0), + m_hitPosSet(0), + m_areaType(1), + m_boxHeight(5.0f) +{ +} + +BoxVolumeTool::~BoxVolumeTool() +{ +} + +void BoxVolumeTool::init(Sample* sample) +{ + m_sample = sample; +} + +void BoxVolumeTool::reset() +{ + m_hitPosSet = false; +} + +void BoxVolumeTool::handleMenu() +{ + imguiSlider("Box Height", &m_boxHeight, 0.1f, 20.0f, 0.1f); + imguiSlider("Area Type", &m_areaType, 1.0f, 20.0f, 1.0f); + + if (!m_hitPosSet) + { + imguiValue("Click to set connection start."); + } + else + { + imguiValue("Click to set connection end."); + } +} + +void BoxVolumeTool::handleClick(const float* p, bool shift) +{ + if (!m_sample) return; + InputGeom* geom = m_sample->getInputGeom(); + if (!geom) return; + + if (shift) + { + // Delete + // Find nearest link end-point + int nearestIndex = -1; + const float* verts = geom->getBoxVolumeVerts(); + for (int i = 0; i < geom->getBoxVolumeCount(); ++i) + { + const float* bmin = &verts[(i*2+0)*3]; + const float* bmax = &verts[(i*2+1)*3]; + if (p[0] >= bmin[0] && p[0] <= bmax[0] && + p[1] >= bmin[1] && p[1] <= bmax[1] && + p[2] >= bmin[2] && p[2] <= bmax[2]) + { + nearestIndex = i; // Each link has two vertices. + } + } + // If end point close enough, delete it. + if (nearestIndex != -1) + { + geom->deleteBoxVolume(nearestIndex); + } + } + else + { + // Create + if (!m_hitPosSet) + { + vcopy(m_hitPos, p); + m_hitPosSet = true; + } + else + { + float bmin[3], bmax[3]; + vcopy(bmin, m_hitPos); + vcopy(bmax, m_hitPos); + vmin(bmin, p); + vmax(bmax, p); + bmin[1] -= m_boxHeight/4.0f; + bmax[1] = bmin[1]+m_boxHeight; + geom->addBoxVolume(bmin, bmax, (unsigned char)m_areaType); + + m_hitPosSet = false; + } + } + +} + +void BoxVolumeTool::handleRender() +{ + DebugDrawGL dd; + const float s = m_sample->getAgentRadius(); + + if (m_hitPosSet) + duDebugDrawCross(&dd, m_hitPos[0],m_hitPos[1]+0.1f,m_hitPos[2], s, duRGBA(0,0,0,128), 2.0f); + + InputGeom* geom = m_sample->getInputGeom(); + if (geom) + geom->drawBoxVolumes(&dd, true); +} + +void BoxVolumeTool::handleRenderOverlay(double* proj, double* model, int* view) +{ + GLdouble x, y, z; + + // Draw start and end point labels + if (m_hitPosSet && gluProject((GLdouble)m_hitPos[0], (GLdouble)m_hitPos[1], (GLdouble)m_hitPos[2], + model, proj, view, &x, &y, &z)) + { + imguiDrawText((int)x, (int)(y-25), IMGUI_ALIGN_CENTER, "Start", imguiRGBA(0,0,0,220)); + } +} diff --git a/RecastDemo/Source/InputGeom.cpp b/RecastDemo/Source/InputGeom.cpp index 5e1e0e4..db1abf1 100644 --- a/RecastDemo/Source/InputGeom.cpp +++ b/RecastDemo/Source/InputGeom.cpp @@ -18,6 +18,8 @@ #define _USE_MATH_DEFINES #include +#include +#include #include "Recast.h" #include "RecastLog.h" #include "InputGeom.h" @@ -67,12 +69,46 @@ static bool intersectSegmentTriangle(const float* sp, const float* sq, return true; } +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; +} + InputGeom::InputGeom() : m_chunkyMesh(0), m_mesh(0), - m_offMeshConCount(0) + m_offMeshConCount(0), + m_boxVolCount(0) { } @@ -92,6 +128,7 @@ bool InputGeom::loadMesh(const char* filepath) m_mesh = 0; } m_offMeshConCount = 0; + m_boxVolCount = 0; m_mesh = new rcMeshLoaderObj; if (!m_mesh) @@ -125,7 +162,123 @@ bool InputGeom::loadMesh(const char* filepath) return true; } - + +bool InputGeom::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); + + m_offMeshConCount = 0; + m_boxVolCount = 0; + delete m_mesh; + m_mesh = 0; + + 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] == 'f') + { + // File name. + const char* name = row+1; + // Skip white spaces + while (*name && isspace(*name)) + name++; + if (*name) + { + if (!loadMesh(name)) + { + delete [] buf; + return false; + } + } + } + else if (row[0] == 'c') + { + // Off-mesh connection + if (m_offMeshConCount < MAX_OFFMESH_CONNECTIONS) + { + float* v = &m_offMeshConVerts[m_offMeshConCount*3*2]; + int bidir; + float rad; + sscanf(row+1, "%f %f %f %f %f %f %f %d", + &v[0], &v[1], &v[2], &v[3], &v[4], &v[5], &rad, &bidir); + m_offMeshConRads[m_offMeshConCount] = rad; + m_offMeshConDirs[m_offMeshConCount] = bidir; + m_offMeshConCount++; + } + } + else if (row[0] == 'b') + { + // Box volumes + if (m_boxVolCount < MAX_BOX_VOLUMES) + { + float* v = &m_boxVolVerts[m_boxVolCount*3*2]; + int type; + sscanf(row+1, "%f %f %f %f %f %f %d", + &v[0], &v[1], &v[2], &v[3], &v[4], &v[5], &type); + m_boxVolTypes[m_boxVolCount] = (unsigned char)type; + m_boxVolCount++; + } + } + } + + delete [] buf; + + return true; +} + +bool InputGeom::save(const char* filepath) +{ + if (!m_mesh) return false; + + FILE* fp = fopen(filepath, "w"); + if (!fp) return false; + + // Store mesh filename. + fprintf(fp, "f %s\n", m_mesh->getFileName()); + + // Store off-mesh links. + for (int i = 0; i < m_offMeshConCount; ++i) + { + const float* v = &m_offMeshConVerts[i*3*2]; + const float rad = m_offMeshConRads[i]; + const int bidir = m_offMeshConDirs[i]; + fprintf(fp, "c %f %f %f %f %f %f %f %d\n", + v[0], v[1], v[2], v[3], v[4], v[5], rad, bidir); + } + + // Box volumes + for (int i = 0; i < m_boxVolCount; ++i) + { + const float* v = &m_boxVolVerts[i*3*2]; + const int bidir = m_boxVolTypes[i]; + fprintf(fp, "b %f %f %f %f %f %f %d\n", + v[0], v[1], v[2], v[3], v[4], v[5], bidir); + } + + fclose(fp); + + return true; +} + bool InputGeom::raycastMesh(float* src, float* dst, float& tmin) { float dir[3]; @@ -211,3 +364,39 @@ void InputGeom::drawOffMeshConnections(duDebugDraw* dd, bool hilight) dd->depthMask(true); } + +void InputGeom::addBoxVolume(const float* bmin, const float* bmax, unsigned char type) +{ + if (m_boxVolCount >= MAX_OFFMESH_CONNECTIONS) return; + float* v = &m_boxVolVerts[m_boxVolCount*3*2]; + m_boxVolTypes[m_boxVolCount] = type; + vcopy(&v[0], bmin); + vcopy(&v[3], bmax); + m_boxVolCount++; +} + +void InputGeom::deleteBoxVolume(int i) +{ + m_boxVolCount--; + float* src = &m_boxVolVerts[m_boxVolCount*3*2]; + float* dst = &m_boxVolVerts[i*3*2]; + vcopy(&dst[0], &src[0]); + vcopy(&dst[3], &src[3]); + m_boxVolTypes[i] = m_boxVolTypes[m_boxVolCount]; +} + +void InputGeom::drawBoxVolumes(struct duDebugDraw* dd, bool hilight) +{ + dd->depthMask(false); + + dd->begin(DU_DRAW_LINES, 1.0f); + for (int i = 0; i < m_boxVolCount; ++i) + { + unsigned int col = duIntToCol(m_boxVolTypes[i], 220); + const float* bounds = &m_boxVolVerts[i*3*2]; + duAppendBoxWire(dd, bounds[0],bounds[1],bounds[2],bounds[3],bounds[4],bounds[5], col); + } + dd->end(); + + dd->depthMask(true); +} diff --git a/RecastDemo/Source/MeshLoaderObj.cpp b/RecastDemo/Source/MeshLoaderObj.cpp index 79f7a81..81bce1d 100644 --- a/RecastDemo/Source/MeshLoaderObj.cpp +++ b/RecastDemo/Source/MeshLoaderObj.cpp @@ -215,5 +215,8 @@ bool rcMeshLoaderObj::load(const char* filename) } } + strncpy(m_filename, filename, sizeof(m_filename)); + m_filename[sizeof(m_filename)-1] = '\0'; + return true; } diff --git a/RecastDemo/Source/OffMeshConnectionTool.cpp b/RecastDemo/Source/OffMeshConnectionTool.cpp index 66172fb..c059d5b 100644 --- a/RecastDemo/Source/OffMeshConnectionTool.cpp +++ b/RecastDemo/Source/OffMeshConnectionTool.cpp @@ -112,8 +112,6 @@ void OffMeshConnectionTool::handleClick(const float* p, bool shift) { geom->deleteOffMeshConnection(nearestIndex); } - -// geom->updateOffMeshConnectionVisibility(m_sample->getNavMesh()); } else { @@ -127,7 +125,6 @@ void OffMeshConnectionTool::handleClick(const float* p, bool shift) { geom->addOffMeshConnection(m_hitPos, p, m_sample->getAgentRadius(), m_bidir ? 1 : 0); m_hitPosSet = false; -// geom->updateOffMeshConnectionVisibility(m_sample->getNavMesh()); } } diff --git a/RecastDemo/Source/Sample_SoloMeshSimple.cpp b/RecastDemo/Source/Sample_SoloMeshSimple.cpp index b1d4b05..60cf92f 100644 --- a/RecastDemo/Source/Sample_SoloMeshSimple.cpp +++ b/RecastDemo/Source/Sample_SoloMeshSimple.cpp @@ -35,6 +35,7 @@ #include "DetourDebugDraw.h" #include "NavMeshTesterTool.h" #include "OffMeshConnectionTool.h" +#include "BoxVolumeTool.h" #ifdef WIN32 # define snprintf _snprintf @@ -99,6 +100,10 @@ void Sample_SoloMeshSimple::handleTools() { setTool(new OffMeshConnectionTool); } + if (imguiCheck("Create Box Volumes", type == TOOL_BOX_VOLUME)) + { + setTool(new BoxVolumeTool); + } imguiSeparator(); @@ -198,6 +203,7 @@ void Sample_SoloMeshSimple::handleRender() m_geom->getMesh()->getTris(), m_geom->getMesh()->getNormals(), m_geom->getMesh()->getTriCount(), m_agentMaxSlope); m_geom->drawOffMeshConnections(&dd); + m_geom->drawBoxVolumes(&dd); } else if (m_drawMode != DRAWMODE_NAVMESH_TRANS) { @@ -205,6 +211,7 @@ void Sample_SoloMeshSimple::handleRender() duDebugDrawTriMesh(&dd, m_geom->getMesh()->getVerts(), m_geom->getMesh()->getVertCount(), m_geom->getMesh()->getTris(), m_geom->getMesh()->getNormals(), m_geom->getMesh()->getTriCount(), 0); m_geom->drawOffMeshConnections(&dd); + m_geom->drawBoxVolumes(&dd); } glDisable(GL_FOG); diff --git a/RecastDemo/Source/main.cpp b/RecastDemo/Source/main.cpp index b1cd3de..db0cf2f 100644 --- a/RecastDemo/Source/main.cpp +++ b/RecastDemo/Source/main.cpp @@ -256,6 +256,49 @@ int main(int argc, char *argv[]) showTestCases = true; scanDirectory("Tests", ".txt", files); } + else if (event.key.keysym.sym == SDLK_1) + { + if (geom) + geom->save("geomset.txt"); + } + else if (event.key.keysym.sym == SDLK_2) + { + delete geom; + geom = new InputGeom; + if (!geom || !geom->load("geomset.txt")) + { + 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); + } + + 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); + } + } break; case SDL_MOUSEBUTTONDOWN: