20 class PositionOnLivePath;
30 class GameKitCrowdDispersionTraverseLogicData :
public RefCountBase<GameKitCrowdDispersionTraverseLogicData, MemStat_GameKit>
35 GameKitCrowdDispersionTraverseLogicData(GameKitCrowdDispersionNavTagHashMap* crowdDispersionHashMap,
KyFloat32 alternativePathCheckDistance,
KyFloat32 consideredUsedDistance);
36 ~GameKitCrowdDispersionTraverseLogicData();
38 void SendVisualDebug(DisplayList& displayList);
50 void OnBotLogicRecomputePathToSimilarDestination() { UnregisterFromApproachingNavTag(); }
53 void OnBotLogicComputePathToBrandNewDestination() { Clear(); }
57 class ApproachingNavTagInfo
60 ApproachingNavTagInfo(
const GameKitCrowdDispersionNavTagId& navTagId = GameKitCrowdDispersionNavTagId(),
KyFloat32 squareDistance2d = 0.0f);
63 GameKitCrowdDispersionNavTagId m_navTagId;
67 ApproachingNavTagInfo GetApproachingNavTagID(
const PositionOnLivePath& progressOnLivePath);
69 KyResult RegisterToApproachingNavTag(
const GameKitCrowdDispersionNavTagId& navTagID);
71 void UseApproachingNavTag();
73 void UnregisterFromApproachingNavTag();
75 bool WasNavTagIdDiscarded(
const GameKitCrowdDispersionNavTagId& navTagID);
80 bool m_triggerAvoidance;
81 Ptr<GameKitCrowdDispersionNavTagHashMap> m_crowdDispersionNavTagMap;
84 GameKitCrowdDispersionInput m_input;
85 GameKitCrowdDispersionInput m_registeredApproachingInput;
86 GameKitCrowdDispersionNavTagId m_approachingNavTagID;
87 bool m_isUsingApproachingNavTagID;
88 KyArray<GameKitCrowdDispersionNavTagId> m_discardedNavTagIDs;
94 class GameKitCrowdDispersionTraverseLogic :
public TraverseLogicWithCostPerNavTag<LogicDoNotUseCanEnterNavTag>
97 static KyFloat32 GetHeuristicFromDistanceToDest(
void* traverseLogicUserData,
KyFloat32 distance3DToDestination);
99 static bool CanTraverseNavTag(
void* traverseLogicUserData,
const NavTag& navTag,
KyFloat32* costMultiplier);
No action has to be taken.
Definition: gamekitcrowddispersiontraverselogic.h:25
Navigation return code class.
Definition: types.h:108
The Autodesk Navigation namespace.
Definition: gamekitcrowddispersion.cpp:17
GameKitCrowdDispersionLogicAction
GameKitCrowdDispersionLogicAction.
Definition: gamekitcrowddispersiontraverselogic.h:23
A path must be recomputed in order to find an alternative.
Definition: gamekitcrowddispersiontraverselogic.h:26
If a path is being computed due to GameKitCrowdDispersionLogic_RecomputePath, it should be cancelled ...
Definition: gamekitcrowddispersiontraverselogic.h:27
float KyFloat32
float
Definition: types.h:32