9 #ifndef Navigation_WorldElement_H
10 #define Navigation_WorldElement_H
22 class VisualDebugServer;
28 VisualDebugLOD_None = 0,
29 VisualDebugLOD_Default,
30 VisualDebugLOD_Maximal,
35 enum VisualDebugSendChangeEvent
37 VisualDebugSendChangeEvent_NoChange = 0,
38 VisualDebugSendChangeEvent_OnLODChanged,
39 VisualDebugSendChangeEvent_ForceSendAll
45 class WorldElement :
public RefCountBase<WorldElement, Stat_Default_Mem>
51 : m_currentVisualDebugLOD(VisualDebugLOD_Undefined)
52 , m_previousVisualDebugLOD(VisualDebugLOD_Undefined)
53 { MakeZeroWorldElement(); m_world = world; }
58 virtual const char* GetTypeName()
const = 0;
60 bool IsAddedToWorld()
const {
return m_indexInCollection !=
KyUInt32MAXVAL; }
61 World* GetWorld()
const {
return m_world; }
62 KyUInt32 GetVisualDebugId()
const {
return m_visualDebugId; }
63 void* GetUserData()
const {
return m_userData; }
65 void SetUserData(
void* userData) { m_userData = userData; }
77 VisualDebugLOD GetCurrentVisualDebugLOD()
const {
return m_currentVisualDebugLOD; }
78 VisualDebugLOD GetPreviousVisualDebugLod()
const {
return m_previousVisualDebugLOD; }
95 void RegisterToVisualDebug();
96 void UnRegisterFromVisualDebug();
99 KyUInt32 GetIndexInCollection()
const {
return m_indexInCollection; }
100 void SetIndexInCollection(
KyUInt32 indexInCollection) { m_indexInCollection = indexInCollection; }
103 void MakeZeroWorldElement();
111 bool m_forceSendAllVisualDebugData;
114 friend class VisualDebugRegistry;
118 #ifndef KY_BUILD_SHIPPING
121 #else // VisualDebug is disabled in Shipping mode
125 KY_INLINE
void WorldElement::RegisterToVisualDebug() {}
126 KY_INLINE
void WorldElement::UnRegisterFromVisualDebug() {}
128 KY_INLINE
void WorldElement::SendVisualDebug(VisualDebugServer&) {}
129 KY_INLINE
void WorldElement::SendForMaxLevelOfDetail(VisualDebugServer&,
const Vec3f&) {}
void SetCurrentVisualDebugLOD(VisualDebugLOD lod)
Set the visual debug level of details to use for this WorldElement instance.
Definition: worldelement.h:134
void ForceSendAllVisualDebug()
Call this when something impacts all your visual debug data.
#define KY_NULL
Null value.
Definition: types.h:247
This class is a runtime container for Gameware Navigation WorldElements such as NavData, Bots, BoxObstacles, TagVolumes...
Definition: world.h:54
WorldElementType
Enumerates the WorldElement types.
Definition: worldelementtype.h:15
Base internal class used to represent elements that can be added to a World, such as instances of Dat...
Definition: worldelement.h:45
Definition: gamekitcrowddispersion.h:20
The VisualDebugServer manages the sending of data to clients.
Definition: visualdebugserver.h:254
VisualDebugLOD
Enumerates the visual debug levels of details.
Definition: worldelement.h:26
unsigned int KyUInt32
Type used internally to represent an unsigned 32-bit integer.
Definition: types.h:36
#define KyUInt32MAXVAL
The maximum value that can be stored in the KyUInt32 variable type.
Definition: types.h:226
This class defines a three-dimensional vector whose coordinates are stored using floating-point numbe...
Definition: vec3f.h:23