9 #ifndef Navigation_GameKitCrowdDispersionTraverseLogic_H
10 #define Navigation_GameKitCrowdDispersionTraverseLogic_H
25 class ScopedDisplayList;
26 class PositionOnLivePath;
35 class GameKitCrowdDispersionTraverseLogicData :
public RefCountBase<GameKitCrowdDispersionTraverseLogicData, MemStat_GameKit>
40 GameKitCrowdDispersionTraverseLogicData(GameKitCrowdDispersionNavTagHashMap* crowdDispersionHashMap,
KyFloat32 alternativePathCheckDistance,
KyFloat32 consideredUsedDistance);
41 ~GameKitCrowdDispersionTraverseLogicData();
43 void SendVisualDebug(ScopedDisplayList& displayList);
54 void OnBotLogicRecomputePathToSimilarDestination() { UnregisterFromApproachingNavTag(); }
57 void OnBotLogicComputePathToBrandNewDestination() { Clear(); }
61 class ApproachingNavTagInfo
64 ApproachingNavTagInfo(
const GameKitCrowdDispersionNavTagId& navTagId = GameKitCrowdDispersionNavTagId(),
KyFloat32 squareDistance2d = 0.0f);
67 GameKitCrowdDispersionNavTagId m_navTagId;
71 ApproachingNavTagInfo GetApproachingNavTagID(
const PositionOnLivePath& progressOnLivePath);
73 KyResult RegisterToApproachingNavTag(
const GameKitCrowdDispersionNavTagId& navTagID);
75 void UseApproachingNavTag();
77 void UnregisterFromApproachingNavTag();
79 bool WasNavTagIdDiscarded(
const GameKitCrowdDispersionNavTagId& navTagID);
84 bool m_triggerAvoidance;
85 Ptr<GameKitCrowdDispersionNavTagHashMap> m_crowdDispersionNavTagMap;
88 GameKitCrowdDispersionInput m_input;
89 GameKitCrowdDispersionInput m_registeredApproachingInput;
90 GameKitCrowdDispersionNavTagId m_approachingNavTagID;
91 bool m_isUsingApproachingNavTagID;
92 KyArray<GameKitCrowdDispersionNavTagId> m_discardedNavTagIDs;
98 class GameKitCrowdDispersionTraverseLogic :
public TraverseLogicWithCostMultiplerPerNavTag<LogicDoNotUseCanEnterNavTag>
101 static KyFloat32 GetHeuristicFromDistanceToDest(
void* traverseLogicUserData,
KyFloat32 distance3DToDestination);
103 static bool CanTraverseNavTag(
void* traverseLogicUserData,
const NavTag& navTag,
KyFloat32* costMultiplier);
No action has to be taken.
Definition: gamekitcrowddispersiontraverselogic.h:30
KyInt32 KyResult
Defines a type that can be returned by methods or functions in the Gameware Navigation SDK to indicat...
Definition: types.h:254
Definition: gamekitcrowddispersion.h:20
GameKitCrowdDispersionLogicAction
Definition: gamekitcrowddispersiontraverselogic.h:28
A path must be recomputed in order to find an alternative.
Definition: gamekitcrowddispersiontraverselogic.h:31
If a path is being computed due to GameKitCrowdDispersionLogic_RecomputePath, it should be cancelled ...
Definition: gamekitcrowddispersiontraverselogic.h:32
float KyFloat32
Type used internally to represent a 32-bit floating-point number.
Definition: types.h:43