20 class NavGraphEdgeRawPtr;
26 class GameKitCrowdDispersionInput
29 GameKitCrowdDispersionInput() : m_botSpeed(-1.f) {}
30 GameKitCrowdDispersionInput(
const Vec3f& botPosition,
KyFloat32 botSpeed) : m_botPosition(botPosition), m_botSpeed(botSpeed) {}
37 class GameKitCrowdDispersionNavTagInfo :
public RefCountBase<GameKitCrowdDispersionNavTagInfo, MemStat_GameKit>
42 GameKitCrowdDispersionNavTagInfo(const Vec3f& position = Vec3f(),
KyFloat32 edgeLength = 1.0f,
KyUInt32 maxConcurrentBotCount = 1,
KyFloat32 m_slotDuration = 0.5f);
44 KyUInt32 GetSlotIndex(const GameKitCrowdDispersionInput& input);
46 KyFloat32 GetAdditionalCostMultiplier(const GameKitCrowdDispersionInput& input);
48 void Register(const GameKitCrowdDispersionInput& input);
50 void Unregister(const GameKitCrowdDispersionInput& input);
52 KyUInt32 GetSlotCount()
const {
return m_botCountInSlots.GetCount(); }
54 KyFloat32 GetFirstArrivalTime()
const {
return m_firstArrivalTime; }
55 KyUInt32 GetBotCountInSlot(
KyUInt32 slotIndex)
const {
return m_botCountInSlots[slotIndex]; }
56 KyUInt32 GetMaxConcurrentBotCount()
const {
return m_maxConcurrentBotCount; }
58 void SendVisualDebug(DisplayList& displayList,
const GameKitCrowdDispersionInput& input);
67 CircularArray<KyUInt32> m_botCountInSlots;
79 bool operator==(
const GameKitCrowdDispersionNavTagId& other)
const {
return m_layerIndex == other.m_layerIndex && m_smartObjectID == other.m_smartObjectID;}
121 typedef Hash<GameKitCrowdDispersionNavTagId, Ptr<GameKitCrowdDispersionNavTagInfo> >::ConstIterator ConstIterator;
122 ConstIterator Begin()
const;
123 ConstIterator End()
const;
126 Hash<GameKitCrowdDispersionNavTagId, Ptr<GameKitCrowdDispersionNavTagInfo> > m_hash;
The NavGraphBlob contains the static data of a NavGraph.
Definition: navgraphblob.h:19
std::uint32_t KyUInt32
uint32_t
Definition: types.h:29
KyResult Add(const TagVolume *tagVolume, Vec3f expectedTraversedPoints[2], KyUInt32 maxConcurrentBotCount=1, KyFloat32 m_slotDuration=0.5f)
Extract id from TagVolume.
Definition: gamekitcrowddispersion.cpp:165
Used to uniquely identify GameKitNavTag, c.f. GameKitNavTag for more information. ...
Definition: gamekitcrowddispersion.h:72
Each instance of this class uniquely identifies a single NavGraphEdge in a NavGraph.
Definition: navgraphedgerawptr.h:26
#define KY_CLASS_WITHOUT_COPY(ClassName)
Define to forbid copy constructor and copy assignment.
Definition: types.h:196
Associate information to push variety into paths found to an id based on GameKitNavTag.
Definition: gamekitcrowddispersion.h:90
#define KY_DEFINE_NEW_DELETE_OPERATORS(MemStat)
This macro defines new and delete operators.
Definition: memory.h:132
This class represents runtime-defined volumes with customized NavTag.
Definition: tagvolume.h:119
The NavData class is the object containing navigation data that will be added to one Database...
Definition: navdata.h:39
Define an interpretation of NavTag specific to GameKit.
Definition: gamekitnavtag.h:21
Navigation return code class.
Definition: types.h:108
The Autodesk Navigation namespace.
Definition: gamekitcrowddispersion.cpp:17
float KyFloat32
float
Definition: types.h:32
3d vector using 32bits floating points.
Definition: vec3f.h:16