gwnavruntime/pathfollower/collidercollectorconfigblob.h Source File

collidercollectorconfigblob.h
Go to the documentation of this file.
1 /*
2 * Copyright 2016 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 #pragma once
9 
13 
14 namespace Kaim
15 {
16 
17 
18 class ColliderCollectorConfigBlob
19 {
20  KY_ROOT_BLOB_CLASS(Runtime, ColliderCollectorConfigBlob, 0)
21 
22 public:
23  KyUInt32 m_visualDebugId;
24  KyFloat32 m_colliderCollectorRadius;
25  KyFloat32 m_colliderCollectorHalfHeight;
26  KyUInt32 m_colliderCollectorFramesBetweenUpdates;
27 };
28 
29 inline void SwapEndianness(Endianness::Target e, ColliderCollectorConfigBlob& self)
30 {
31  SwapEndianness(e, self.m_visualDebugId);
32  SwapEndianness(e, self.m_colliderCollectorRadius);
33  SwapEndianness(e, self.m_colliderCollectorHalfHeight);
34  SwapEndianness(e, self.m_colliderCollectorFramesBetweenUpdates);
35 };
36 
37 
38 class ColliderCollectorConfigBlobBuilder: public BaseBlobBuilder<ColliderCollectorConfigBlob>
39 {
40  KY_CLASS_WITHOUT_COPY(ColliderCollectorConfigBlobBuilder)
41 
42 public:
43  ColliderCollectorConfigBlobBuilder(const ColliderCollectorConfig* colliderCollectorConfig, KyUInt32 visualDebugId)
44  : m_colliderCollectorConfig(colliderCollectorConfig), m_visualDebugId(visualDebugId) {}
45 
46  ~ColliderCollectorConfigBlobBuilder() {}
47 
48 private:
49  virtual void DoBuild()
50  {
51  BLOB_SET(m_blob->m_visualDebugId, m_visualDebugId);
52  BLOB_SET(m_blob->m_colliderCollectorRadius , m_colliderCollectorConfig->m_colliderCollectorRadius);
53  BLOB_SET(m_blob->m_colliderCollectorHalfHeight , m_colliderCollectorConfig->m_colliderCollectorHalfHeight);
54  BLOB_SET(m_blob->m_colliderCollectorFramesBetweenUpdates, m_colliderCollectorConfig->m_colliderCollectorFramesBetweenUpdates);
55  }
56 
57  const ColliderCollectorConfig* m_colliderCollectorConfig;
58  KyUInt32 m_visualDebugId;
59 };
60 
61 } // namespace Kaim
62 
#define BLOB_SET(blob, value)
Use this macro only in implementations of BaseBlobBuilder::DoBuild().
Definition: baseblobbuilder.h:130
std::uint32_t KyUInt32
uint32_t
Definition: types.h:29
#define KY_CLASS_WITHOUT_COPY(ClassName)
Define to forbid copy constructor and copy assignment.
Definition: types.h:196
The Autodesk Navigation namespace.
Definition: gamekitcrowddispersion.cpp:17
float KyFloat32
float
Definition: types.h:32