9 #ifndef Navigation_BotBlob_H
10 #define Navigation_BotBlob_H
33 class PathFinderConfigBlob
39 KyUInt32 m_abstractGraphTraversalMode;
42 class PathFinderConfigBlobBuilder :
public BaseBlobBuilder<PathFinderConfigBlob>
47 PathFinderConfigBlobBuilder(const PathFinderConfig& config) : m_config(config) {}
49 virtual void DoBuild();
52 const PathFinderConfig& m_config;
57 SwapEndianness(e,
self.m_fromOutsideNavMeshDistance);
58 SwapEndianness(e,
self.m_toOutsideNavMeshDistance);
59 SwapEndianness(e,
self.m_propagationBoxExtent);
60 SwapEndianness(e,
self.m_abstractGraphTraversalMode);
73 KY_ROOT_BLOB_CLASS(Runtime, BotConfigBlob, 4)
82 PathFinderConfigBlob m_pathFinderConfig;
83 ChannelComputerConfig m_channelComputerConfig;
86 PathProgressConfig m_pathProgressConfig;
92 ShortcutTrajectoryConfigBlob m_shortcutTrajectoryConfig;
93 SplineTrajectoryConfigBlob m_splineTrajectoryConfig;
94 KyFloat32 m_trajectoryMinimalMoveDistance;
99 ColliderCollectorConfig m_colliderCollectorConfig;
100 AvoidanceConfigBlob m_avoidanceConfig;
105 inline
void SwapEndianness(Endianness::Target e, BotConfigBlob& self)
107 SwapEndianness(e,
self.m_visualDebugId);
108 SwapEndianness(e,
self.m_databaseIndex);
109 SwapEndianness(e,
self.m_radius);
110 SwapEndianness(e,
self.m_height);
111 SwapEndianness(e,
self.m_pathFinderConfig);
112 SwapEndianness(e,
self.m_channelComputerConfig);
113 SwapEndianness(e,
self.m_pathProgressConfig);
114 SwapEndianness(e,
self.m_trajectoryMode);
115 SwapEndianness(e,
self.m_shortcutTrajectoryConfig);
116 SwapEndianness(e,
self.m_splineTrajectoryConfig);
117 SwapEndianness(e,
self.m_trajectoryMinimalMoveDistance);
118 SwapEndianness(e,
self.m_trajectoryFailureMode);
119 SwapEndianness(e,
self.m_enableAvoidance);
120 SwapEndianness(e,
self.m_colliderCollectorConfig);
121 SwapEndianness(e,
self.m_avoidanceConfig);
122 SwapEndianness(e,
self.m_maxDesiredLinearSpeed);
125 class BotConfigBlobBuilder :
public BaseBlobBuilder<BotConfigBlob>
130 BotConfigBlobBuilder(const BotConfig& botConfig,
KyUInt32 visualDebugId,
KyUInt32 databaseIndex)
131 : m_botConfig(botConfig), m_visualDebugId(visualDebugId), m_databaseIndex(databaseIndex) {}
133 virtual void DoBuild();
136 const BotConfig& m_botConfig;
149 class FrontDirectionBlob
151 KY_ROOT_BLOB_CLASS(Runtime, FrontDirectionBlob, 0)
155 Vec2f m_frontDirection;
158 inline
void SwapEndianness(Endianness::Target e, FrontDirectionBlob& self)
160 SwapEndianness(e,
self.m_visualDebugId);
161 SwapEndianness(e,
self.m_frontDirection);
164 class FrontDirectionBlobBuilder :
public BaseBlobBuilder<FrontDirectionBlob>
169 FrontDirectionBlobBuilder(
KyUInt32 visualDebugId, const Vec2f* frontDirection)
170 : m_visualDebugId(visualDebugId)
171 , m_frontDirection(frontDirection)
174 virtual void DoBuild();
178 const Vec2f* m_frontDirection;
185 #endif // Navigation_BotBlob_H
#define KY_CLASS_WITHOUT_COPY(ClassName)
Define to forbid copy constructor and copy assignment.
Definition: types.h:387
Target
Enumerates the possible endianness types relative to the current platform.
Definition: endianness.h:35
Definition: gamekitcrowddispersion.h:20
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