9 #ifndef Navigation_GameKitCrowdDispersion_H
10 #define Navigation_GameKitCrowdDispersion_H
31 class GameKitCrowdDispersionInput
34 GameKitCrowdDispersionInput() : m_speed(-1.f) {}
36 GameKitCrowdDispersionInput(
const Vec3f& position,
KyFloat32 speed)
37 : m_position(position), m_speed(speed) {}
44 class GameKitCrowdDispersionNavTag :
public RefCountBase<GameKitCrowdDispersionNavTag, MemStat_GameKit>
51 KyUInt32 GetTimeIntervaldxFromInputExisting(
const GameKitCrowdDispersionInput& input);
53 KyFloat32 GetAdditionalCostMultiplier(
const GameKitCrowdDispersionInput& input);
55 void Register(
const GameKitCrowdDispersionInput& input);
57 void Unregister(
const GameKitCrowdDispersionInput& input);
59 KyUInt32 GetTimeIntervalSize() {
return m_count.GetCount(); }
61 KyFloat32 GetFirstArrivalTime() {
return m_firstArrivalTime; }
62 KyUInt32 GetCountAtTimeInterval(
KyUInt32 timeIntervalIdx) {
return m_count[timeIntervalIdx]; }
63 KyUInt32 GetThresholdCountPerInterval() {
return m_thresholdCountPerInterval; }
65 void SendVisualDebug(
ScopedDisplayList& displayList,
const GameKitCrowdDispersionInput& input);
68 KyUInt32 m_thresholdCountPerInterval;
69 Vec3f m_referencePosition;
74 CircularArray<KyUInt32> m_count;
85 bool operator == (
const GameKitCrowdDispersionNavTagId& other)
const {
return m_layerIndex == other.m_layerIndex && m_smartObjectID == other.m_smartObjectID;}
88 bool IsValid()
const {
return *
this != GameKitCrowdDispersionNavTagId(); }
96 class GameKitCrowdDispersionNavTagHashMap :
public RefCountBase<GameKitCrowdDispersionNavTagHashMap, MemStat_GameKit>
101 const Ptr<GameKitCrowdDispersionNavTag> Get(const GameKitCrowdDispersionNavTagId& navTagId) const;
127 ConstIterator Begin() const;
128 ConstIterator End() const;
131 Hash<GameKitCrowdDispersionNavTagId, Ptr<GameKitCrowdDispersionNavTag> > m_hash;
The NavGraphBlob contains the static data of a NavGraph.
Definition: navgraphblob.h:21
KyInt32 KyResult
Defines a type that can be returned by methods or functions in the Gameware Navigation SDK to indicat...
Definition: types.h:254
Used to uniquely identify GameKitNavTag, c.f. GameKitNavTag for more information. ...
Definition: gamekitcrowddispersion.h:84
Each instance of this class uniquely identifies a single NavGraphEdge in a NavGraph.
Definition: navgraphedgerawptr.h:33
#define KY_CLASS_WITHOUT_COPY(ClassName)
Define to forbid copy constructor and copy assignment.
Definition: types.h:387
This class represents runtime-defined volumes with customized NavTag.
Definition: tagvolume.h:108
KyResult Add(const TagVolume *tagVolume, Vec3f expectedTraversedPoints[2], KyUInt32 expectedMaxCountPerSlot=1, KyFloat32 intervalTimePerSlot=0.5f)
Extract id from TagVolume.
The NavData class is the object containing navigation data that will be added to one Database...
Definition: navdata.h:44
Define an interpretation of NavTag specific to GameKit.
Definition: gamekitnavtag.h:24
Definition: gamekitcrowddispersion.h:20
#define KY_DEFINE_NEW_DELETE_OPERATORS(MemStat)
This macro defines new and delete operators.
Definition: memory.h:137
ScopedDisplayList is used to push text, lines or shapes for rendering in the NavigationLab e...
Definition: displaylist.h:136
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
This class defines a three-dimensional vector whose coordinates are stored using floating-point numbe...
Definition: vec3f.h:23