gwnavgamekit/gamekittraverselogic.h Source File
Go to the documentation of this file.
10 #ifndef Navigation_GameKitTraverseLogic_H
11 #define Navigation_GameKitTraverseLogic_H
21 class GameKitNavTagLayerCostTable;
22 class GameKitSmartObjectCostTable;
23 class GameKitCrowdDispersionTraverseLogicData;
27 class GameKitTraverseLogicData :
public RefCountBase<GameKitTraverseLogicData, MemStat_GameKit>
32 GameKitTraverseLogicData();
33 ~GameKitTraverseLogicData();
35 void SetLayerCostTable(Ptr<GameKitNavTagLayerCostTable> layerCostTable);
36 Ptr<GameKitNavTagLayerCostTable> GetLayerCostTable();
38 void SetSmartObjectCostTable(Ptr<GameKitSmartObjectCostTable> smartObjectCostTable);
39 Ptr<GameKitSmartObjectCostTable> GetSmartObjectCostTable();
46 void EnableCrowdDispersion(Ptr<GameKitCrowdDispersionNavTagHashMap> crowdDispersionNavTagHashMap,
47 KyFloat32 checkForAlternativePathDistance = 20.f,
KyFloat32 stickToChoiceDistance = 1.f);
49 GameKitCrowdDispersionTraverseLogicData* GetCrowdDispersionData()
const {
return m_crowdDispersionData; }
55 bool CanTraverseSmartObject(
KyUInt32 smartObjectID,
KyFloat32* costMultiplier)
const;
60 Ptr<GameKitSmartObjectCostTable> m_smartObjectCostTable;
63 Ptr<GameKitNavTagLayerCostTable> m_layerCostTable;
66 Ptr<GameKitCrowdDispersionTraverseLogicData> m_crowdDispersionData;
70 class GameKitTraverseLogic :
public TraverseLogicWithCostMultiplerPerNavTag<LogicDoNotUseCanEnterNavTag>
73 static KyFloat32 GetHeuristicFromDistanceToDest(
void* traverseLogicUserData,
KyFloat32 distance3DToDestination);
74 static bool CanTraverseNavTag(
void* traverseLogicUserData,
const NavTag& navTag,
KyFloat32* costMultiplier);
Definition: gamekitcrowddispersion.h:20
unsigned int KyUInt32
Type used internally to represent an unsigned 32-bit integer.
Definition: types.h:36
float KyFloat32
Type used internally to represent a 32-bit floating-point number.
Definition: types.h:43