18 class VisualDebugServer;
24 VisualDebugLOD_None = 0,
25 VisualDebugLOD_Default,
26 VisualDebugLOD_Maximal,
31 enum VisualDebugSendChangeEvent
33 VisualDebugSendChangeEvent_NoChange = 0,
34 VisualDebugSendChangeEvent_OnLODChanged,
35 VisualDebugSendChangeEvent_ForceSendAll
41 class WorldElement :
public RefCountBase<WorldElement, Stat_Default_Mem>
47 : m_currentVisualDebugLOD(VisualDebugLOD_Undefined)
48 , m_previousVisualDebugLOD(VisualDebugLOD_Undefined)
49 { MakeZeroWorldElement(); m_world = world; }
54 virtual const char* GetTypeName()
const = 0;
56 bool IsAddedToWorld()
const {
return m_indexInCollection !=
KyUInt32MAXVAL; }
57 World* GetWorld()
const {
return m_world; }
58 KyUInt32 GetVisualDebugId()
const {
return m_visualDebugId; }
59 void* GetUserData()
const {
return m_userData; }
61 void SetUserData(
void* userData) { m_userData = userData; }
73 VisualDebugLOD GetCurrentVisualDebugLOD()
const {
return m_currentVisualDebugLOD; }
74 VisualDebugLOD GetPreviousVisualDebugLod()
const {
return m_previousVisualDebugLOD; }
75 void SendVisualDebug(VisualDebugServer& server);
87 virtual void DoSendVisualDebug(VisualDebugServer&, VisualDebugSendChangeEvent) {}
88 void SendForMaxLevelOfDetail(VisualDebugServer& server,
const Vec3f& shapePosition);
91 void RegisterToVisualDebug();
92 void UnRegisterFromVisualDebug();
95 KyUInt32 GetIndexInCollection()
const {
return m_indexInCollection; }
96 void SetIndexInCollection(
KyUInt32 indexInCollection) { m_indexInCollection = indexInCollection; }
99 void MakeZeroWorldElement();
107 bool m_forceSendAllVisualDebugData;
110 friend class VisualDebugRegistry;
114 #if defined(KY_CONFIG_DEBUG_OR_DEV)
117 #else // VisualDebug is disabled in Release mode
121 KY_INLINE
void WorldElement::RegisterToVisualDebug() {}
122 KY_INLINE
void WorldElement::UnRegisterFromVisualDebug() {}
124 KY_INLINE
void WorldElement::SendVisualDebug(VisualDebugServer&) {}
125 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:119
void ForceSendAllVisualDebug()
Call this when something impacts all your visual debug data.
Definition: worldelement.h:123
std::uint32_t KyUInt32
uint32_t
Definition: types.h:29
This class is a runtime container for Autodesk Navigation WorldElements such as NavData, Bots, BoxObstacles, TagVolumes...
Definition: world.h:52
WorldElementType
Enumerates the WorldElement types.
Definition: worldelementtype.h:13
Base internal class used to represent elements that can be added to a World, such as instances of Dat...
Definition: worldelement.h:41
The Autodesk Navigation namespace.
Definition: gamekitcrowddispersion.cpp:17
VisualDebugLOD
Enumerates the visual debug levels of details.
Definition: worldelement.h:22
#define KyUInt32MAXVAL
KyUInt32 max value
Definition: types.h:68
3d vector using 32bits floating points.
Definition: vec3f.h:16