gwnavruntime/pathfollower/collidercollectorconfigblob.h Source File

collidercollectorconfigblob.h
Go to the documentation of this file.
1 /*
2 * Copyright 2015 Autodesk, Inc. All rights reserved.
3 * Use of this software is subject to the terms of the Autodesk license agreement and any attachments or Appendices thereto provided at the time of installation or download,
4 * or which otherwise accompanies this software in either electronic or hard copy form, or which is signed by you and accepted by Autodesk.
5 */
6 
7 
8 // primary contact: GUAL - secondary contact: MAMU
9 #ifndef Navigation_ColliderCollectorConfigBlob_H
10 #define Navigation_ColliderCollectorConfigBlob_H
11 
15 
16 namespace Kaim
17 {
18 
19 
20 class ColliderCollectorConfigBlob
21 {
22  KY_ROOT_BLOB_CLASS(Runtime, ColliderCollectorConfigBlob, 0)
23 
24 public:
25  KyUInt32 m_visualDebugId;
26  KyFloat32 m_colliderCollectorRadius;
27  KyFloat32 m_colliderCollectorHalfHeight;
28  KyUInt32 m_colliderCollectorFramesBetweenUpdates;
29 };
30 
31 inline void SwapEndianness(Endianness::Target e, ColliderCollectorConfigBlob& self)
32 {
33  SwapEndianness(e, self.m_visualDebugId);
34  SwapEndianness(e, self.m_colliderCollectorRadius);
35  SwapEndianness(e, self.m_colliderCollectorHalfHeight);
36  SwapEndianness(e, self.m_colliderCollectorFramesBetweenUpdates);
37 };
38 
39 
40 class ColliderCollectorConfigBlobBuilder: public BaseBlobBuilder<ColliderCollectorConfigBlob>
41 {
42  KY_CLASS_WITHOUT_COPY(ColliderCollectorConfigBlobBuilder)
43 
44 public:
45  ColliderCollectorConfigBlobBuilder(const ColliderCollectorConfig* colliderCollectorConfig, KyUInt32 visualDebugId)
46  : m_colliderCollectorConfig(colliderCollectorConfig), m_visualDebugId(visualDebugId) {}
47 
48  ~ColliderCollectorConfigBlobBuilder() {}
49 
50 private:
51  virtual void DoBuild()
52  {
53  BLOB_SET(m_blob->m_visualDebugId, m_visualDebugId);
54  BLOB_SET(m_blob->m_colliderCollectorRadius , m_colliderCollectorConfig->m_colliderCollectorRadius);
55  BLOB_SET(m_blob->m_colliderCollectorHalfHeight , m_colliderCollectorConfig->m_colliderCollectorHalfHeight);
56  BLOB_SET(m_blob->m_colliderCollectorFramesBetweenUpdates, m_colliderCollectorConfig->m_colliderCollectorFramesBetweenUpdates);
57  }
58 
59  const ColliderCollectorConfig* m_colliderCollectorConfig;
60  KyUInt32 m_visualDebugId;
61 };
62 
63 } // namespace Kaim
64 
65 #endif // Navigation_ColliderCollectorConfigBlob_H
#define BLOB_SET(blob, value)
Use this macro only in implementations of BaseBlobBuilder::DoBuild().
Definition: baseblobbuilder.h:136
#define KY_CLASS_WITHOUT_COPY(ClassName)
Define to forbid copy constructor and copy assignment.
Definition: types.h:387
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