gwnavruntime/database/idatabasechangebroadcaster.h Source File
Go to the documentation of this file.
10 #ifndef Navigation_INavdataChangeInDatabaseObserver_H
11 #define Navigation_INavdataChangeInDatabaseObserver_H
24 class ChangeInDatabaseDesc
28 enum ChangeType { NavDataAddAndRemove, DynamicNavMeshUpdate };
31 const TrackedCollection<Ptr<NavData>, MemStat_WorldFwk>* m_navDataBeeingAdded;
32 const TrackedCollection<Ptr<NavData>, MemStat_WorldFwk>* m_navDataToBeRemoved;
37 ChangeInDatabaseDesc(
const CellBox& currentUpdateCellBox);
39 ChangeInDatabaseDesc(
const CellBox& currentUpdateCellBox,
const TrackedCollection<Ptr<NavData>, MemStat_WorldFwk>& navDataBeeingAdded,
40 const TrackedCollection<Ptr<NavData>, MemStat_WorldFwk>& navDataToBeRemoved);
45 class IDatabaseChangeBroadcaster :
public RefCountBase<IDatabaseChangeBroadcaster, Stat_Default_Mem>
50 IDatabaseChangeBroadcaster(Database* database =
KY_NULL) : m_database(database) {}
51 void SetDatabase(Database* database) { m_database = database; }
52 virtual void BroadCastChangeInDatabase(ChangeInDatabaseDesc& changeInDatabaseDesc) = 0;
59 class DefaultDatabaseChangeBroadcaster :
public IDatabaseChangeBroadcaster
62 DefaultDatabaseChangeBroadcaster(Database* database) : IDatabaseChangeBroadcaster(database) {}
63 virtual void BroadCastChangeInDatabase(ChangeInDatabaseDesc& changeInDatabaseDesc);
66 bool DoesOnlyContainVertexNavGraph(
const TrackedCollection<Ptr<NavData>, MemStat_WorldFwk>* navDataCollection);
71 KY_INLINE ChangeInDatabaseDesc::ChangeInDatabaseDesc(
const CellBox& currentUpdateCellBox) :
72 m_type(DynamicNavMeshUpdate), m_navDataBeeingAdded(
KY_NULL), m_navDataToBeRemoved(
KY_NULL), m_currentUpdateCellBox(currentUpdateCellBox) {}
74 KY_INLINE ChangeInDatabaseDesc::ChangeInDatabaseDesc(
const CellBox& currentUpdateCellBox,
const TrackedCollection<Ptr<NavData>, MemStat_WorldFwk>& navDataBeeingAdded,
75 const TrackedCollection<Ptr<NavData>, MemStat_WorldFwk>& navDataToBeRemoved) :
76 m_type(NavDataAddAndRemove), m_navDataBeeingAdded(&navDataBeeingAdded), m_navDataToBeRemoved(&navDataToBeRemoved), m_currentUpdateCellBox(currentUpdateCellBox) {}
80 #endif // Navigation_Database_H
Box2i CellBox
A type that represents a bounding box around cells in a 2D grid.
Definition: navmeshtypes.h:34
#define KY_NULL
Null value.
Definition: types.h:247
#define KY_CLASS_WITHOUT_COPY(ClassName)
Define to forbid copy constructor and copy assignment.
Definition: types.h:387
Definition: gamekitcrowddispersion.h:20
#define KY_DEFINE_NEW_DELETE_OPERATORS(MemStat)
This macro defines new and delete operators.
Definition: memory.h:137