9 #ifndef Navigation_BoxObstacleBlob_H
10 #define Navigation_BoxObstacleBlob_H
28 class BoxObstacleSpatializedCylindersBlob
31 KY_ROOT_BLOB_CLASS(Runtime, BoxObstacleSpatializedCylindersBlob, 0)
33 BoxObstacleSpatializedCylindersBlob() {}
36 BlobArray<SpatializedCylinderBlob> m_spatializedCylinderBlobs;
39 inline void SwapEndianness(
Endianness::Target e, BoxObstacleSpatializedCylindersBlob&
self)
41 SwapEndianness(e,
self.m_visualDebugId);
42 SwapEndianness(e,
self.m_spatializedCylinderBlobs);
45 class BoxObstacleSpatializedCylindersBlobBuilder :
public BaseBlobBuilder<BoxObstacleSpatializedCylindersBlob>
49 BoxObstacleSpatializedCylindersBlobBuilder(const BoxObstacle* boxObstacle,
KyUInt32 visualDebugId)
50 : m_visualDebugId(visualDebugId), m_boxObstacle(boxObstacle) {}
51 virtual void DoBuild();
55 const BoxObstacle* m_boxObstacle;
64 class BoxObstacleSpatializedCylinderConfigsBlob
67 KY_ROOT_BLOB_CLASS(Runtime, BoxObstacleSpatializedCylinderConfigsBlob, 0)
70 BoxObstacleSpatializedCylinderConfigsBlob() {}
73 BlobArray<SpatializedCylinderConfigBlob> m_spatializedCylinderConfigBlobs;
74 DatabaseBindingBlob m_databaseBinding;
77 inline void SwapEndianness(
Endianness::Target e, BoxObstacleSpatializedCylinderConfigsBlob&
self)
79 SwapEndianness(e,
self.m_visualDebugId);
80 SwapEndianness(e,
self.m_spatializedCylinderConfigBlobs);
81 SwapEndianness(e,
self.m_databaseBinding);
84 class BoxObstacleSpatializedCylinderConfigsBlobBuilder :
public BaseBlobBuilder<BoxObstacleSpatializedCylinderConfigsBlob>
88 BoxObstacleSpatializedCylinderConfigsBlobBuilder(const BoxObstacle* boxObstacle,
KyUInt32 visualDebugId)
89 : m_visualDebugId(visualDebugId), m_boxObstacle(boxObstacle) {}
90 virtual void DoBuild();
94 const BoxObstacle* m_boxObstacle;
103 class BoxObstacleSpatializationResultsBlob
106 KY_ROOT_BLOB_CLASS(Runtime, BoxObstacleSpatializationResultsBlob, 0)
109 BoxObstacleSpatializationResultsBlob() {}
111 KyUInt32 GetOutsideNavmeshCount()
const;
116 BlobArray<SpatializationResultBlob> m_spatializationResultBlobs;
119 inline void SwapEndianness(
Endianness::Target e, BoxObstacleSpatializationResultsBlob&
self)
121 SwapEndianness(e,
self.m_visualDebugId);
122 SwapEndianness(e,
self.m_spatializationResultBlobs);
125 class BoxObstacleSpatializationResultsBlobBuilder :
public BaseBlobBuilder<BoxObstacleSpatializationResultsBlob>
129 BoxObstacleSpatializationResultsBlobBuilder(const BoxObstacle* boxObstacle,
KyUInt32 visualDebugId)
130 : m_visualDebugId(visualDebugId), m_boxObstacle(boxObstacle) {}
131 virtual void DoBuild();
135 const BoxObstacle* m_boxObstacle;
144 class BoxObstacleBlob
147 KY_ROOT_BLOB_CLASS(Runtime, BoxObstacleBlob, 0)
151 void GetWorldPosition(Vec3f& worldPosition)
const { m_worldTransform.GetRootCoordinates(m_localCenter, worldPosition); }
152 void GetWorldAABB(Box3f& worldAABB)
const;
155 Vec3f m_localHalfExtents;
156 Transform m_worldTransform;
158 Vec3f m_linearVelocity;
159 Vec3f m_angularVelocity;
162 KyUInt32 m_tagVolumeIntegrationStatus;
168 SwapEndianness(e,
self.m_localCenter);
169 SwapEndianness(e,
self.m_localHalfExtents);
170 SwapEndianness(e,
self.m_worldTransform);
171 SwapEndianness(e,
self.m_linearVelocity);
172 SwapEndianness(e,
self.m_angularVelocity);
173 SwapEndianness(e,
self.m_rotationMode);
174 SwapEndianness(e,
self.m_tagVolumeIntegrationStatus);
175 SwapEndianness(e,
self.m_visualDebugId);
178 class BoxObstacleBlobBuilder :
public BaseBlobBuilder<BoxObstacleBlob>
182 BoxObstacleBlobBuilder(const BoxObstacle* boxObstacle) : m_boxObstacle(boxObstacle)
186 virtual void DoBuild();
188 const BoxObstacle* m_boxObstacle;
200 class BoxObstaclesCollectionBlob
203 KY_ROOT_BLOB_CLASS(Runtime, BoxObstaclesCollectionBlob, 0)
205 BlobArray<BoxObstacleBlob> m_boxObstacles;
207 inline
void SwapEndianness(Endianness::Target e, BoxObstaclesCollectionBlob& self)
209 SwapEndianness(e,
self.m_boxObstacles);
214 class BoxObstaclesCollectionBlobBuilder :
public BaseBlobBuilder<BoxObstaclesCollectionBlob>
218 BoxObstaclesCollectionBlobBuilder(
const TrackedCollection<Ptr<BoxObstacle>, MemStat_BoxObstacle>& boxObstacles)
219 : m_boxObstacles(&boxObstacles)
222 virtual void DoBuild();
225 const TrackedCollection<Ptr<BoxObstacle>, MemStat_BoxObstacle>* m_boxObstacles;
231 #endif // Navigation_BoxObstacleBlob_H
Target
Enumerates the possible endianness types relative to the current platform.
Definition: endianness.h:35
Definition: gamekitcrowddispersion.h:20
#define KY_DEFINE_NEW_DELETE_OPERATORS(MemStat)
This macro defines new and delete operators.
Definition: memory.h:137
unsigned int KyUInt32
Type used internally to represent an unsigned 32-bit integer.
Definition: types.h:36