Fix for earlier raycast speed up and another speedup.

This commit is contained in:
Mikko Mononen 2010-10-15 13:00:18 +00:00
parent c83be9f214
commit 43a79f600f
6 changed files with 314 additions and 65 deletions

View File

@ -183,6 +183,25 @@
6B1635A612687DDA0083FC15 /* PBXTextBookmark */ = 6B1635A612687DDA0083FC15 /* PBXTextBookmark */;
6B1635A712687DDB0083FC15 /* PBXTextBookmark */ = 6B1635A712687DDB0083FC15 /* PBXTextBookmark */;
6B1635A812687E3E0083FC15 /* PBXTextBookmark */ = 6B1635A812687E3E0083FC15 /* PBXTextBookmark */;
6B1635B5126884520083FC15 /* PBXTextBookmark */ = 6B1635B5126884520083FC15 /* PBXTextBookmark */;
6B1635B6126884520083FC15 /* PBXTextBookmark */ = 6B1635B6126884520083FC15 /* PBXTextBookmark */;
6B1635B7126884520083FC15 /* PBXTextBookmark */ = 6B1635B7126884520083FC15 /* PBXTextBookmark */;
6B1635B8126884520083FC15 /* PBXTextBookmark */ = 6B1635B8126884520083FC15 /* PBXTextBookmark */;
6B1635B9126884520083FC15 /* PBXTextBookmark */ = 6B1635B9126884520083FC15 /* PBXTextBookmark */;
6B1635BA126884520083FC15 /* PBXTextBookmark */ = 6B1635BA126884520083FC15 /* PBXTextBookmark */;
6B1635BB126884520083FC15 /* PBXTextBookmark */ = 6B1635BB126884520083FC15 /* PBXTextBookmark */;
6B1635BC126884520083FC15 /* PBXTextBookmark */ = 6B1635BC126884520083FC15 /* PBXTextBookmark */;
6B1635BD126884520083FC15 /* PBXTextBookmark */ = 6B1635BD126884520083FC15 /* PBXTextBookmark */;
6B1635C7126885AD0083FC15 /* PBXTextBookmark */ = 6B1635C7126885AD0083FC15 /* PBXTextBookmark */;
6B1635C8126885AD0083FC15 /* PBXTextBookmark */ = 6B1635C8126885AD0083FC15 /* PBXTextBookmark */;
6B1635C9126885AD0083FC15 /* PBXTextBookmark */ = 6B1635C9126885AD0083FC15 /* PBXTextBookmark */;
6B1635CA126885AD0083FC15 /* PBXTextBookmark */ = 6B1635CA126885AD0083FC15 /* PBXTextBookmark */;
6B1635CB126885AD0083FC15 /* PBXTextBookmark */ = 6B1635CB126885AD0083FC15 /* PBXTextBookmark */;
6B1635CF126886300083FC15 /* PBXTextBookmark */ = 6B1635CF126886300083FC15 /* PBXTextBookmark */;
6B1635D3126887C80083FC15 /* PBXTextBookmark */ = 6B1635D3126887C80083FC15 /* PBXTextBookmark */;
6B1635D4126887C80083FC15 /* PBXTextBookmark */ = 6B1635D4126887C80083FC15 /* PBXTextBookmark */;
6B1635D5126887C80083FC15 /* XCBuildMessageTextBookmark */ = 6B1635D5126887C80083FC15 /* XCBuildMessageTextBookmark */;
6B1635D6126887C80083FC15 /* PBXTextBookmark */ = 6B1635D6126887C80083FC15 /* PBXTextBookmark */;
6B1C8E08121EB4FF0048697F = 6B1C8E08121EB4FF0048697F /* PBXTextBookmark */;
6B4214D911803923006C347B = 6B4214D911803923006C347B /* PBXTextBookmark */;
6B847515122B9F4900ADF63D = 6B847515122B9F4900ADF63D /* PBXTextBookmark */;
@ -443,7 +462,7 @@
fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */;
name = "main.cpp: 897";
rLen = 0;
rLoc = 21072;
rLoc = 21074;
rType = 0;
vrLen = 894;
vrLoc = 20326;
@ -803,7 +822,7 @@
fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */;
name = "InputGeom.cpp: 313";
rLen = 0;
rLoc = 7404;
rLoc = 8334;
rType = 0;
vrLen = 721;
vrLoc = 7309;
@ -849,7 +868,7 @@
isa = PBXTextBookmark;
fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */;
rLen = 0;
rLoc = 311;
rLoc = 352;
rType = 1;
};
6B16359812687D840083FC15 /* PBXTextBookmark */ = {
@ -857,7 +876,7 @@
fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */;
name = "InputGeom.cpp: 320";
rLen = 0;
rLoc = 7607;
rLoc = 8537;
rType = 0;
vrLen = 437;
vrLoc = 7651;
@ -877,7 +896,7 @@
fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */;
name = "InputGeom.cpp: 326";
rLen = 0;
rLoc = 7768;
rLoc = 8701;
rType = 0;
vrLen = 709;
vrLoc = 7494;
@ -887,7 +906,7 @@
fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */;
name = "InputGeom.cpp: 320";
rLen = 0;
rLoc = 7618;
rLoc = 8551;
rType = 0;
vrLen = 770;
vrLoc = 7508;
@ -897,7 +916,7 @@
fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */;
name = "InputGeom.cpp: 320";
rLen = 0;
rLoc = 7619;
rLoc = 8552;
rType = 0;
vrLen = 770;
vrLoc = 7508;
@ -907,7 +926,7 @@
fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */;
name = "InputGeom.cpp: 320";
rLen = 0;
rLoc = 7619;
rLoc = 8552;
rType = 0;
vrLen = 770;
vrLoc = 7508;
@ -917,7 +936,7 @@
fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */;
name = "InputGeom.cpp: 320";
rLen = 0;
rLoc = 7619;
rLoc = 8552;
rType = 0;
vrLen = 439;
vrLoc = 7651;
@ -927,7 +946,7 @@
fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */;
name = "InputGeom.cpp: 320";
rLen = 0;
rLoc = 7619;
rLoc = 8552;
rType = 0;
vrLen = 770;
vrLoc = 7508;
@ -937,11 +956,200 @@
fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */;
name = "InputGeom.cpp: 304";
rLen = 0;
rLoc = 7438;
rLoc = 8368;
rType = 0;
vrLen = 766;
vrLoc = 7095;
};
6B1635B5126884520083FC15 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 6BD667D8123D27EC0021A7A4 /* CrowdManager.h */;
name = "CrowdManager.h: 232";
rLen = 0;
rLoc = 5681;
rType = 0;
vrLen = 763;
vrLoc = 5284;
};
6B1635B6126884520083FC15 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 6BD667D9123D28100021A7A4 /* CrowdManager.cpp */;
name = "CrowdManager.cpp: 1034";
rLen = 0;
rLoc = 24844;
rType = 0;
vrLen = 957;
vrLoc = 24441;
};
6B1635B7126884520083FC15 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 6BB788160FC0472B003C24DB /* ChunkyTriMesh.cpp */;
name = "ChunkyTriMesh.cpp: 216";
rLen = 0;
rLoc = 5541;
rType = 0;
vrLen = 939;
vrLoc = 6004;
};
6B1635B8126884520083FC15 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 6BB7FDA310F36EFC006DA0A6 /* InputGeom.h */;
name = "InputGeom.h: 38";
rLen = 37;
rLoc = 1241;
rType = 0;
vrLen = 1213;
vrLoc = 1137;
};
6B1635B9126884520083FC15 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 6BB93C7A10CFE1D500F74F2B /* DebugDraw.cpp */;
name = "DebugDraw.cpp: 197";
rLen = 0;
rLoc = 5629;
rType = 0;
vrLen = 1323;
vrLoc = 5148;
};
6B1635BA126884520083FC15 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */;
name = "InputGeom.cpp: 287";
rLen = 0;
rLoc = 7013;
rType = 0;
vrLen = 748;
vrLoc = 6994;
};
6B1635BB126884520083FC15 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 6BAF4440121C3D0A008CFCDF /* SampleInterfaces.h */;
name = "SampleInterfaces.h: 64";
rLen = 11;
rLoc = 2197;
rType = 0;
vrLen = 1224;
vrLoc = 1702;
};
6B1635BC126884520083FC15 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */;
name = "main.cpp: 486";
rLen = 0;
rLoc = 11714;
rType = 0;
vrLen = 762;
vrLoc = 11243;
};
6B1635BD126884520083FC15 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */;
name = "main.cpp: 485";
rLen = 0;
rLoc = 11714;
rType = 0;
vrLen = 714;
vrLoc = 11296;
};
6B1635C7126885AD0083FC15 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */;
name = "main.cpp: 482";
rLen = 0;
rLoc = 11714;
rType = 0;
vrLen = 756;
vrLoc = 11296;
};
6B1635C8126885AD0083FC15 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 6BB788160FC0472B003C24DB /* ChunkyTriMesh.cpp */;
name = "ChunkyTriMesh.cpp: 279";
rLen = 0;
rLoc = 6788;
rType = 0;
vrLen = 937;
vrLoc = 6004;
};
6B1635C9126885AD0083FC15 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */;
name = "CrowdTool.cpp: 41";
rLen = 1095;
rLoc = 1351;
rType = 0;
vrLen = 995;
vrLoc = 1878;
};
6B1635CA126885AD0083FC15 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */;
name = "InputGeom.cpp: 287";
rLen = 0;
rLoc = 7013;
rType = 0;
vrLen = 748;
vrLoc = 6994;
};
6B1635CB126885AD0083FC15 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */;
name = "InputGeom.cpp: 317";
rLen = 0;
rLoc = 7295;
rType = 0;
vrLen = 725;
vrLoc = 7402;
};
6B1635CF126886300083FC15 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */;
name = "InputGeom.cpp: 371";
rLen = 0;
rLoc = 8551;
rType = 0;
vrLen = 1024;
vrLoc = 8541;
};
6B1635D3126887C80083FC15 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 6BB7FDA310F36EFC006DA0A6 /* InputGeom.h */;
name = "InputGeom.h: 89";
rLen = 0;
rLoc = 3499;
rType = 0;
vrLen = 1748;
vrLoc = 1777;
};
6B1635D4126887C80083FC15 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */;
name = "InputGeom.cpp: 337";
rLen = 0;
rLoc = 8238;
rType = 0;
vrLen = 974;
vrLoc = 7703;
};
6B1635D5126887C80083FC15 /* XCBuildMessageTextBookmark */ = {
isa = PBXTextBookmark;
comments = "'class InputGeom' has no member named 'test'";
fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */;
fallbackIsa = XCBuildMessageTextBookmark;
rLen = 0;
rLoc = 481;
rType = 1;
};
6B1635D6126887C80083FC15 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */;
name = "main.cpp: 482";
rLen = 0;
rLoc = 11714;
rType = 0;
vrLen = 811;
vrLoc = 11296;
};
6B1C8E08121EB4FF0048697F /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 6B2AEC510FFB8946005BE9CC /* Sample_TileMesh.h */;
@ -968,9 +1176,9 @@
};
6B25B6180FFA62BE004F1BC4 /* main.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1217, 12025}}";
sepNavSelRange = "{8957, 0}";
sepNavVisRange = "{8445, 358}";
sepNavIntBoundsRect = "{{0, 0}, {931, 11934}}";
sepNavSelRange = "{11714, 0}";
sepNavVisRange = "{11296, 811}";
sepNavWindowFrame = "{{15, 51}, {1214, 722}}";
};
};
@ -1505,7 +1713,7 @@
fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */;
name = "InputGeom.cpp: 395";
rLen = 0;
rLoc = 10284;
rLoc = 11217;
rType = 0;
vrLen = 455;
vrLoc = 9715;
@ -1676,7 +1884,7 @@
fRef = 6BD667D8123D27EC0021A7A4 /* CrowdManager.h */;
name = "CrowdManager.h: 266";
rLen = 0;
rLoc = 6580;
rLoc = 6581;
rType = 0;
vrLen = 1356;
vrLoc = 5783;
@ -1690,9 +1898,9 @@
};
6BAF3C581211663A008CFCDF /* CrowdTool.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {931, 7891}}";
sepNavSelRange = "{9360, 0}";
sepNavVisRange = "{8916, 1097}";
sepNavIntBoundsRect = "{{0, 0}, {931, 8008}}";
sepNavSelRange = "{1351, 1095}";
sepNavVisRange = "{1878, 995}";
sepNavWindowFrame = "{{15, 51}, {1214, 722}}";
};
};
@ -1739,9 +1947,9 @@
};
6BAF4440121C3D0A008CFCDF /* SampleInterfaces.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {933, 1196}}";
sepNavSelRange = "{2580, 0}";
sepNavVisRange = "{2154, 743}";
sepNavIntBoundsRect = "{{0, 0}, {931, 1196}}";
sepNavSelRange = "{2197, 11}";
sepNavVisRange = "{1702, 1224}";
};
};
6BAF4441121C3D26008CFCDF /* SampleInterfaces.cpp */ = {
@ -1847,7 +2055,7 @@
fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */;
name = "main.cpp: 897";
rLen = 0;
rLoc = 21072;
rLoc = 21074;
rType = 0;
vrLen = 601;
vrLoc = 20575;
@ -2014,9 +2222,9 @@
};
6BB788160FC0472B003C24DB /* ChunkyTriMesh.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {931, 4316}}";
sepNavSelRange = "{5408, 26}";
sepNavVisRange = "{4979, 832}";
sepNavIntBoundsRect = "{{0, 0}, {931, 4056}}";
sepNavSelRange = "{6788, 0}";
sepNavVisRange = "{6004, 937}";
};
};
6BB788180FC04753003C24DB /* ChunkyTriMesh.h */ = {
@ -2044,15 +2252,15 @@
6BB7FDA310F36EFC006DA0A6 /* InputGeom.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {931, 1196}}";
sepNavSelRange = "{2249, 0}";
sepNavVisRange = "{1355, 2148}";
sepNavSelRange = "{3499, 0}";
sepNavVisRange = "{1777, 1748}";
};
};
6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {931, 6214}}";
sepNavSelRange = "{7438, 0}";
sepNavVisRange = "{7095, 766}";
sepNavIntBoundsRect = "{{0, 0}, {931, 6942}}";
sepNavSelRange = "{8238, 0}";
sepNavVisRange = "{7703, 974}";
};
};
6BB93C7710CFE1D500F74F2B /* DebugDraw.h */ = {
@ -2078,9 +2286,9 @@
};
6BB93C7A10CFE1D500F74F2B /* DebugDraw.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {931, 7020}}";
sepNavSelRange = "{11902, 0}";
sepNavVisRange = "{11556, 581}";
sepNavIntBoundsRect = "{{0, 0}, {931, 6721}}";
sepNavSelRange = "{5629, 0}";
sepNavVisRange = "{5148, 1323}";
};
};
6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */ = {
@ -2336,16 +2544,16 @@
};
6BD667D8123D27EC0021A7A4 /* CrowdManager.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {931, 3874}}";
sepNavSelRange = "{6580, 0}";
sepNavVisRange = "{5783, 1356}";
sepNavIntBoundsRect = "{{0, 0}, {1041, 3796}}";
sepNavSelRange = "{5681, 0}";
sepNavVisRange = "{5284, 763}";
};
};
6BD667D9123D28100021A7A4 /* CrowdManager.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {931, 16601}}";
sepNavSelRange = "{11581, 0}";
sepNavVisRange = "{11428, 1249}";
sepNavIntBoundsRect = "{{0, 0}, {931, 16172}}";
sepNavSelRange = "{24844, 0}";
sepNavVisRange = "{24441, 957}";
};
};
6BD667FF123D2D230021A7A4 /* PBXTextBookmark */ = {

View File

@ -284,13 +284,13 @@
<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
<array>
<array>
<integer>82</integer>
<integer>81</integer>
<integer>1</integer>
<integer>0</integer>
</array>
</array>
<key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
<string>{{0, 1242}, {264, 660}}</string>
<string>{{0, 692}, {264, 660}}</string>
</dict>
<key>PBXTopSmartGroupGIDs</key>
<array/>
@ -325,7 +325,7 @@
<key>PBXProjectModuleGUID</key>
<string>6B8632A30F78115100E2684A</string>
<key>PBXProjectModuleLabel</key>
<string>InputGeom.cpp</string>
<string>main.cpp</string>
<key>PBXSplitModuleInNavigatorKey</key>
<dict>
<key>Split0</key>
@ -333,11 +333,11 @@
<key>PBXProjectModuleGUID</key>
<string>6B8632A40F78115100E2684A</string>
<key>PBXProjectModuleLabel</key>
<string>InputGeom.cpp</string>
<string>main.cpp</string>
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
<string>6B1635A812687E3E0083FC15</string>
<string>6B1635D6126887C80083FC15</string>
<key>history</key>
<array>
<string>6BBB4C34115B7A3D00CF791D</string>
@ -376,7 +376,6 @@
<string>6B8477FC122D2E2A00ADF63D</string>
<string>6B8477FE122D2E2A00ADF63D</string>
<string>6B8477FF122D2E2A00ADF63D</string>
<string>6BD667FF123D2D230021A7A4</string>
<string>6BD6681812434B790021A7A4</string>
<string>6BD66855124350F80021A7A4</string>
<string>6BD668A3124361EB0021A7A4</string>
@ -398,11 +397,8 @@
<string>6BA8CF951255D97400272A3B</string>
<string>6BA8CFA81255DC6500272A3B</string>
<string>6BA8CFBE1255DE0500272A3B</string>
<string>6BA8D10C125B0E8E00272A3B</string>
<string>6BA8D10D125B0E8E00272A3B</string>
<string>6BB2EDF91261C75400E350F8</string>
<string>6BB2EE241261C92300E350F8</string>
<string>6BB2EE251261C92300E350F8</string>
<string>6BB2EE261261C92300E350F8</string>
<string>6BB2EE271261C92300E350F8</string>
<string>6BB2EE351261CEB800E350F8</string>
@ -412,7 +408,6 @@
<string>6BB2EE671261D48100E350F8</string>
<string>6BB2EE691261D48100E350F8</string>
<string>6BB2EE731261DA0400E350F8</string>
<string>6BB2EE7A1264CD7900E350F8</string>
<string>6BB2EE7B1264CD7900E350F8</string>
<string>6B1633101268326F0083FC15</string>
<string>6B1633111268326F0083FC15</string>
@ -422,14 +417,19 @@
<string>6B16338112684C6F0083FC15</string>
<string>6B16357012687A5D0083FC15</string>
<string>6B16357112687A5D0083FC15</string>
<string>6B16358C12687D740083FC15</string>
<string>6B16358D12687D740083FC15</string>
<string>6B16358E12687D740083FC15</string>
<string>6B16358F12687D740083FC15</string>
<string>6B16359012687D740083FC15</string>
<string>6B16359112687D740083FC15</string>
<string>6B16359D12687D980083FC15</string>
<string>6B1635A612687DDA0083FC15</string>
<string>6B1635B5126884520083FC15</string>
<string>6B1635B6126884520083FC15</string>
<string>6B1635B9126884520083FC15</string>
<string>6B1635BB126884520083FC15</string>
<string>6B1635C8126885AD0083FC15</string>
<string>6B1635C9126885AD0083FC15</string>
<string>6B1635D3126887C80083FC15</string>
<string>6B1635D4126887C80083FC15</string>
<string>6B1635D5126887C80083FC15</string>
</array>
</dict>
<key>SplitCount</key>
@ -443,18 +443,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
<string>{{0, 0}, {992, 528}}</string>
<string>{{0, 0}, {992, 570}}</string>
<key>RubberWindowFrame</key>
<string>0 59 1278 719 0 0 1280 778 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
<string>528pt</string>
<string>570pt</string>
</dict>
<dict>
<key>Proportion</key>
<string>145pt</string>
<string>103pt</string>
<key>Tabs</key>
<array>
<dict>
@ -522,7 +522,7 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
<string>{{10, 27}, {992, 118}}</string>
<string>{{10, 27}, {992, 76}}</string>
<key>RubberWindowFrame</key>
<string>0 59 1278 719 0 0 1280 778 </string>
</dict>

View File

@ -215,7 +215,7 @@ enum UpdateFlags
class CrowdManager
{
static const int MAX_AGENTS = 32;
static const int MAX_AGENTS = 128;
Agent m_agents[MAX_AGENTS];
dtObstacleAvoidanceDebugData* m_vodebug[MAX_AGENTS];
dtObstacleAvoidanceQuery* m_obstacleQuery;

View File

@ -281,16 +281,57 @@ bool InputGeom::save(const char* filepath)
return true;
}
static bool isectSegAABB(const float* sp, const float* sq,
const float* amin, const float* amax,
float& tmin, float& tmax)
{
static const float EPS = 1e-6f;
float d[3];
d[0] = sq[0] - sp[0];
d[1] = sq[1] - sp[1];
d[2] = sq[2] - sp[2];
tmin = 0.0;
tmax = 1.0f;
for (int i = 0; i < 3; i++)
{
if (fabsf(d[i]) < EPS)
{
if (sp[i] < amin[i] || sp[i] > amax[i])
return false;
}
else
{
const float ood = 1.0f / d[i];
float t1 = (amin[i] - sp[i]) * ood;
float t2 = (amax[i] - sp[i]) * ood;
if (t1 > t2) { float tmp = t1; t1 = t2; t2 = tmp; }
if (t1 > tmin) tmin = t1;
if (t2 < tmax) tmax = t2;
if (tmin > tmax) return false;
}
}
return true;
}
bool InputGeom::raycastMesh(float* src, float* dst, float& tmin)
{
float dir[3];
rcVsub(dir, dst, src);
// Prune hit ray.
float btmin, btmax;
if (!isectSegAABB(src, dst, m_meshBMin, m_meshBMax, btmin, btmax))
return false;
float p[2], q[2];
p[0] = src[0];
p[1] = src[2];
q[0] = dst[0];
q[1] = dst[2];
p[0] = src[0] + (dst[0]-src[0])*btmin;
p[1] = src[2] + (dst[2]-src[2])*btmin;
q[0] = src[0] + (dst[0]-src[0])*btmax;
q[1] = src[2] + (dst[2]-src[2])*btmax;
int cid[512];
const int ncid = rcGetChunksOverlappingSegment(m_chunkyMesh, p, q, cid, 512);
if (!ncid)
@ -306,7 +347,7 @@ bool InputGeom::raycastMesh(float* src, float* dst, float& tmin)
const int* tris = &m_chunkyMesh->tris[node.i*3];
const int ntris = node.n;
for (int j = 0; j < ntris*3; ++j)
for (int j = 0; j < ntris*3; j += 3)
{
float t = 1;
if (intersectSegmentTriangle(src, dst,

View File

@ -479,7 +479,7 @@ int main(int /*argc*/, char** /*argv*/)
sample->handleRender();
if (test)
test->handleRender();
glDisable(GL_FOG);
// Render GUI