Simplified crowd tool UI.
This commit is contained in:
parent
aa18cf4a8d
commit
30b581b67d
Binary file not shown.
@ -212,6 +212,17 @@
|
||||
6B8D55E1127AAD060077C699 /* PBXTextBookmark */ = 6B8D55E1127AAD060077C699 /* PBXTextBookmark */;
|
||||
6B8D55E3127AAE590077C699 /* PBXTextBookmark */ = 6B8D55E3127AAE590077C699 /* PBXTextBookmark */;
|
||||
6B8D55EA127AAE680077C699 /* PBXTextBookmark */ = 6B8D55EA127AAE680077C699 /* PBXTextBookmark */;
|
||||
6B8D55F2127ABAD40077C699 /* PBXTextBookmark */ = 6B8D55F2127ABAD40077C699 /* PBXTextBookmark */;
|
||||
6B8D55F3127ABAD40077C699 /* PBXTextBookmark */ = 6B8D55F3127ABAD40077C699 /* PBXTextBookmark */;
|
||||
6B8D55F4127ABAD40077C699 /* PBXTextBookmark */ = 6B8D55F4127ABAD40077C699 /* PBXTextBookmark */;
|
||||
6B8D55F5127ABAD40077C699 /* PBXTextBookmark */ = 6B8D55F5127ABAD40077C699 /* PBXTextBookmark */;
|
||||
6B8D55F6127ABAD40077C699 /* PBXTextBookmark */ = 6B8D55F6127ABAD40077C699 /* PBXTextBookmark */;
|
||||
6B8D55F9127ABB6B0077C699 /* PBXTextBookmark */ = 6B8D55F9127ABB6B0077C699 /* PBXTextBookmark */;
|
||||
6B8D55FD127ABBCB0077C699 /* PBXTextBookmark */ = 6B8D55FD127ABBCB0077C699 /* PBXTextBookmark */;
|
||||
6B8D55FE127ABBCB0077C699 /* PBXTextBookmark */ = 6B8D55FE127ABBCB0077C699 /* PBXTextBookmark */;
|
||||
6B8D5603127ABBD80077C699 /* PBXTextBookmark */ = 6B8D5603127ABBD80077C699 /* PBXTextBookmark */;
|
||||
6B8D5604127ABBD80077C699 /* XCBuildMessageTextBookmark */ = 6B8D5604127ABBD80077C699 /* XCBuildMessageTextBookmark */;
|
||||
6B8D5605127ABBD80077C699 /* PBXTextBookmark */ = 6B8D5605127ABBD80077C699 /* PBXTextBookmark */;
|
||||
6B920A521225C0AC00D5B5AD = 6B920A521225C0AC00D5B5AD /* PBXTextBookmark */;
|
||||
6B920A6D1225C5DD00D5B5AD = 6B920A6D1225C5DD00D5B5AD /* PBXTextBookmark */;
|
||||
6B98462E11E6141900FA177B = 6B98462E11E6141900FA177B /* PBXTextBookmark */;
|
||||
@ -992,8 +1003,8 @@
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */;
|
||||
name = "CrowdTool.h: 65";
|
||||
rLen = 20;
|
||||
rLoc = 1732;
|
||||
rLen = 0;
|
||||
rLoc = 1737;
|
||||
rType = 0;
|
||||
vrLen = 819;
|
||||
vrLoc = 1128;
|
||||
@ -1003,7 +1014,7 @@
|
||||
fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */;
|
||||
name = "CrowdTool.cpp: 145";
|
||||
rLen = 0;
|
||||
rLoc = 3716;
|
||||
rLoc = 3702;
|
||||
rType = 0;
|
||||
vrLen = 889;
|
||||
vrLoc = 3056;
|
||||
@ -1013,7 +1024,7 @@
|
||||
fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */;
|
||||
name = "CrowdTool.cpp: 269";
|
||||
rLen = 0;
|
||||
rLoc = 7053;
|
||||
rLoc = 7253;
|
||||
rType = 0;
|
||||
vrLen = 1289;
|
||||
vrLoc = 6303;
|
||||
@ -1023,7 +1034,7 @@
|
||||
fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */;
|
||||
name = "CrowdTool.cpp: 269";
|
||||
rLen = 0;
|
||||
rLoc = 7053;
|
||||
rLoc = 7253;
|
||||
rType = 0;
|
||||
vrLen = 1289;
|
||||
vrLoc = 6303;
|
||||
@ -1433,6 +1444,115 @@
|
||||
vrLen = 1151;
|
||||
vrLoc = 11524;
|
||||
};
|
||||
6B8D55F2127ABAD40077C699 /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 6BD667D9123D28100021A7A4 /* CrowdManager.cpp */;
|
||||
name = "CrowdManager.cpp: 521";
|
||||
rLen = 0;
|
||||
rLoc = 11932;
|
||||
rType = 0;
|
||||
vrLen = 1220;
|
||||
vrLoc = 11524;
|
||||
};
|
||||
6B8D55F3127ABAD40077C699 /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 6BD667D8123D27EC0021A7A4 /* CrowdManager.h */;
|
||||
name = "CrowdManager.h: 307";
|
||||
rLen = 0;
|
||||
rLoc = 7186;
|
||||
rType = 0;
|
||||
vrLen = 1731;
|
||||
vrLoc = 6316;
|
||||
};
|
||||
6B8D55F4127ABAD40077C699 /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */;
|
||||
name = "CrowdTool.h: 64";
|
||||
rLen = 20;
|
||||
rLoc = 1715;
|
||||
rType = 0;
|
||||
vrLen = 968;
|
||||
vrLoc = 1262;
|
||||
};
|
||||
6B8D55F5127ABAD40077C699 /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */;
|
||||
name = "CrowdTool.cpp: 265";
|
||||
rLen = 0;
|
||||
rLoc = 7253;
|
||||
rType = 0;
|
||||
vrLen = 1392;
|
||||
vrLoc = 6205;
|
||||
};
|
||||
6B8D55F6127ABAD40077C699 /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */;
|
||||
name = "CrowdTool.cpp: 163";
|
||||
rLen = 0;
|
||||
rLoc = 4127;
|
||||
rType = 0;
|
||||
vrLen = 1133;
|
||||
vrLoc = 3309;
|
||||
};
|
||||
6B8D55F9127ABB6B0077C699 /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */;
|
||||
name = "CrowdTool.cpp: 160";
|
||||
rLen = 0;
|
||||
rLoc = 4071;
|
||||
rType = 0;
|
||||
vrLen = 1174;
|
||||
vrLoc = 3436;
|
||||
};
|
||||
6B8D55FD127ABBCB0077C699 /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */;
|
||||
name = "CrowdTool.cpp: 262";
|
||||
rLen = 0;
|
||||
rLoc = 6757;
|
||||
rType = 0;
|
||||
vrLen = 1078;
|
||||
vrLoc = 6483;
|
||||
};
|
||||
6B8D55FE127ABBCB0077C699 /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */;
|
||||
name = "CrowdTool.h: 1";
|
||||
rLen = 0;
|
||||
rLoc = 0;
|
||||
rType = 0;
|
||||
vrLen = 1476;
|
||||
vrLoc = 0;
|
||||
};
|
||||
6B8D5603127ABBD80077C699 /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */;
|
||||
name = "CrowdTool.h: 23";
|
||||
rLen = 0;
|
||||
rLoc = 1011;
|
||||
rType = 0;
|
||||
vrLen = 1186;
|
||||
vrLoc = 0;
|
||||
};
|
||||
6B8D5604127ABBD80077C699 /* XCBuildMessageTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
comments = "'TOOLMODE_ADJUST_TARGET' was not declared in this scope";
|
||||
fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */;
|
||||
fallbackIsa = XCBuildMessageTextBookmark;
|
||||
rLen = 1;
|
||||
rLoc = 144;
|
||||
rType = 1;
|
||||
};
|
||||
6B8D5605127ABBD80077C699 /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */;
|
||||
name = "CrowdTool.cpp: 145";
|
||||
rLen = 0;
|
||||
rLoc = 3702;
|
||||
rType = 0;
|
||||
vrLen = 721;
|
||||
vrLoc = 3306;
|
||||
};
|
||||
6B8DE6F010A88F0500DF20FB /* PBXBookmarkGroup */ = {
|
||||
isa = PBXBookmarkGroup;
|
||||
children = (
|
||||
@ -1806,16 +1926,16 @@
|
||||
};
|
||||
6BAF3C571211663A008CFCDF /* CrowdTool.h */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {931, 1105}}";
|
||||
sepNavSelRange = "{1732, 20}";
|
||||
sepNavVisRange = "{1128, 819}";
|
||||
sepNavIntBoundsRect = "{{0, 0}, {931, 1014}}";
|
||||
sepNavSelRange = "{1011, 0}";
|
||||
sepNavVisRange = "{0, 1186}";
|
||||
};
|
||||
};
|
||||
6BAF3C581211663A008CFCDF /* CrowdTool.cpp */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {931, 8437}}";
|
||||
sepNavSelRange = "{7053, 0}";
|
||||
sepNavVisRange = "{6303, 1289}";
|
||||
sepNavIntBoundsRect = "{{0, 0}, {931, 8567}}";
|
||||
sepNavSelRange = "{3702, 0}";
|
||||
sepNavVisRange = "{3306, 721}";
|
||||
sepNavWindowFrame = "{{15, 51}, {1214, 722}}";
|
||||
};
|
||||
};
|
||||
@ -2141,7 +2261,7 @@
|
||||
fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */;
|
||||
name = "CrowdTool.cpp: 338";
|
||||
rLen = 0;
|
||||
rLoc = 9362;
|
||||
rLoc = 9201;
|
||||
rType = 0;
|
||||
vrLen = 1412;
|
||||
vrLoc = 8537;
|
||||
@ -2445,16 +2565,16 @@
|
||||
};
|
||||
6BD667D8123D27EC0021A7A4 /* CrowdManager.h */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {931, 4407}}";
|
||||
sepNavSelRange = "{6314, 0}";
|
||||
sepNavVisRange = "{6095, 1472}";
|
||||
sepNavIntBoundsRect = "{{0, 0}, {931, 4225}}";
|
||||
sepNavSelRange = "{7186, 0}";
|
||||
sepNavVisRange = "{6316, 1731}";
|
||||
};
|
||||
};
|
||||
6BD667D9123D28100021A7A4 /* CrowdManager.cpp */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {931, 19123}}";
|
||||
sepNavSelRange = "{11810, 0}";
|
||||
sepNavVisRange = "{11524, 1151}";
|
||||
sepNavIntBoundsRect = "{{0, 0}, {931, 19084}}";
|
||||
sepNavSelRange = "{11932, 0}";
|
||||
sepNavVisRange = "{11524, 1220}";
|
||||
sepNavWindowFrame = "{{15, 134}, {1120, 639}}";
|
||||
};
|
||||
};
|
||||
|
@ -284,7 +284,8 @@
|
||||
<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
|
||||
<array>
|
||||
<array>
|
||||
<integer>62</integer>
|
||||
<integer>52</integer>
|
||||
<integer>51</integer>
|
||||
<integer>1</integer>
|
||||
<integer>0</integer>
|
||||
</array>
|
||||
@ -325,7 +326,7 @@
|
||||
<key>PBXProjectModuleGUID</key>
|
||||
<string>6B8632A30F78115100E2684A</string>
|
||||
<key>PBXProjectModuleLabel</key>
|
||||
<string>CrowdManager.cpp</string>
|
||||
<string>CrowdTool.cpp</string>
|
||||
<key>PBXSplitModuleInNavigatorKey</key>
|
||||
<dict>
|
||||
<key>Split0</key>
|
||||
@ -333,11 +334,11 @@
|
||||
<key>PBXProjectModuleGUID</key>
|
||||
<string>6B8632A40F78115100E2684A</string>
|
||||
<key>PBXProjectModuleLabel</key>
|
||||
<string>CrowdManager.cpp</string>
|
||||
<string>CrowdTool.cpp</string>
|
||||
<key>_historyCapacity</key>
|
||||
<integer>0</integer>
|
||||
<key>bookmark</key>
|
||||
<string>6B8D55EA127AAE680077C699</string>
|
||||
<string>6B8D5605127ABBD80077C699</string>
|
||||
<key>history</key>
|
||||
<array>
|
||||
<string>6BBB4C34115B7A3D00CF791D</string>
|
||||
@ -425,13 +426,13 @@
|
||||
<string>6BB9C2BD127449CE00B97C1C</string>
|
||||
<string>6BB9C372127A0E5600B97C1C</string>
|
||||
<string>6B8D5565127A98FB0077C699</string>
|
||||
<string>6B8D5582127AA2270077C699</string>
|
||||
<string>6B8D559E127AA3E70077C699</string>
|
||||
<string>6B8D559F127AA3E70077C699</string>
|
||||
<string>6B8D55A0127AA3E70077C699</string>
|
||||
<string>6B8D55B5127AA5E60077C699</string>
|
||||
<string>6B8D55D9127AABD80077C699</string>
|
||||
<string>6B8D55DA127AABD80077C699</string>
|
||||
<string>6B8D55F2127ABAD40077C699</string>
|
||||
<string>6B8D55F3127ABAD40077C699</string>
|
||||
<string>6B8D5603127ABBD80077C699</string>
|
||||
<string>6B8D5604127ABBD80077C699</string>
|
||||
</array>
|
||||
</dict>
|
||||
<key>SplitCount</key>
|
||||
@ -445,18 +446,18 @@
|
||||
<key>GeometryConfiguration</key>
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{0, 0}, {992, 673}}</string>
|
||||
<string>{{0, 0}, {992, 471}}</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>673pt</string>
|
||||
<string>471pt</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Proportion</key>
|
||||
<string>0pt</string>
|
||||
<string>202pt</string>
|
||||
<key>Tabs</key>
|
||||
<array>
|
||||
<dict>
|
||||
@ -471,8 +472,6 @@
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{10, 27}, {992, -27}}</string>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>0 59 1278 719 0 0 1280 778 </string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>XCDetailModule</string>
|
||||
@ -526,7 +525,9 @@
|
||||
<key>GeometryConfiguration</key>
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{0, 0}, {568, 405}}</string>
|
||||
<string>{{10, 27}, {992, 175}}</string>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>0 59 1278 719 0 0 1280 778 </string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>PBXBuildResultsModule</string>
|
||||
@ -745,7 +746,7 @@
|
||||
<integer>5</integer>
|
||||
<key>WindowOrderList</key>
|
||||
<array>
|
||||
<string>6B8D55EB127AAE680077C699</string>
|
||||
<string>6B8D5606127ABBD80077C699</string>
|
||||
<string>6B8D558C127AA2270077C699</string>
|
||||
<string>6B8D558D127AA2270077C699</string>
|
||||
<string>/Users/memon/Code/recastnavigation/RecastDemo/Build/Xcode/Recast.xcodeproj</string>
|
||||
|
@ -61,7 +61,6 @@ class CrowdTool : public SampleTool
|
||||
enum ToolMode
|
||||
{
|
||||
TOOLMODE_CREATE,
|
||||
TOOLMODE_MOVE,
|
||||
TOOLMODE_MOVE_TARGET,
|
||||
};
|
||||
ToolMode m_mode;
|
||||
|
@ -140,8 +140,6 @@ void CrowdTool::handleMenu()
|
||||
|
||||
if (imguiCheck("Create Agents", m_mode == TOOLMODE_CREATE))
|
||||
m_mode = TOOLMODE_CREATE;
|
||||
if (imguiCheck("Move Agents", m_mode == TOOLMODE_MOVE))
|
||||
m_mode = TOOLMODE_MOVE;
|
||||
if (imguiCheck("Move Target", m_mode == TOOLMODE_MOVE_TARGET))
|
||||
m_mode = TOOLMODE_MOVE_TARGET;
|
||||
|
||||
@ -152,9 +150,13 @@ void CrowdTool::handleMenu()
|
||||
imguiValue("Click to add agents.");
|
||||
imguiValue("Shift+Click to remove.");
|
||||
}
|
||||
else if (m_mode == TOOLMODE_MOVE)
|
||||
else if (m_mode == TOOLMODE_MOVE_TARGET)
|
||||
{
|
||||
imguiValue("Click to set move target.");
|
||||
imguiValue("Shift+Click to adjust target.");
|
||||
imguiValue("Adjusting uses special pathfinder");
|
||||
imguiValue("which is really fast to change the");
|
||||
imguiValue("target in small increments.");
|
||||
}
|
||||
|
||||
imguiSeparator();
|
||||
@ -245,23 +247,6 @@ void CrowdTool::handleClick(const float* s, const float* p, bool shift)
|
||||
m_crowd.requestMoveTarget(idx, m_targetRef, m_targetPos);
|
||||
}
|
||||
}
|
||||
else if (m_mode == TOOLMODE_MOVE)
|
||||
{
|
||||
// Find nearest point on navmesh and set move request to that location.
|
||||
dtNavMeshQuery* navquery = m_sample->getNavMeshQuery();
|
||||
const dtQueryFilter* filter = m_crowd.getFilter();
|
||||
const float* ext = m_crowd.getQueryExtents();
|
||||
m_targetRef = navquery->findNearestPoly(p, ext, filter, m_targetPos);
|
||||
if (m_targetRef)
|
||||
{
|
||||
for (int i = 0; i < m_crowd.getAgentCount(); ++i)
|
||||
{
|
||||
const Agent* ag = m_crowd.getAgent(i);
|
||||
if (!ag->active) continue;
|
||||
m_crowd.requestMoveTarget(i, m_targetRef, m_targetPos);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (m_mode == TOOLMODE_MOVE_TARGET)
|
||||
{
|
||||
// Find nearest point on navmesh and set move request to that location.
|
||||
@ -269,8 +254,10 @@ void CrowdTool::handleClick(const float* s, const float* p, bool shift)
|
||||
const dtQueryFilter* filter = m_crowd.getFilter();
|
||||
const float* ext = m_crowd.getQueryExtents();
|
||||
m_targetRef = navquery->findNearestPoly(p, ext, filter, m_targetPos);
|
||||
if (m_targetRef)
|
||||
|
||||
if (shift)
|
||||
{
|
||||
// Adjust target using tiny local search.
|
||||
for (int i = 0; i < m_crowd.getAgentCount(); ++i)
|
||||
{
|
||||
const Agent* ag = m_crowd.getAgent(i);
|
||||
@ -278,6 +265,16 @@ void CrowdTool::handleClick(const float* s, const float* p, bool shift)
|
||||
m_crowd.adjustMoveTarget(i, m_targetRef, m_targetPos);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// Move target using paht finder
|
||||
for (int i = 0; i < m_crowd.getAgentCount(); ++i)
|
||||
{
|
||||
const Agent* ag = m_crowd.getAgent(i);
|
||||
if (!ag->active) continue;
|
||||
m_crowd.requestMoveTarget(i, m_targetRef, m_targetPos);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user