gwnavruntime/spatialization/spatializedcylinderblob.h Source File

spatializedcylinderblob.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 
14 
15 
16 namespace Kaim
17 {
18 
20 // SpatializedCylinderBlob
21 class SpatializedCylinderBlob
22 {
23  KY_DEFINE_NEW_DELETE_OPERATORS(Stat_Default_Mem)
24  KY_ROOT_BLOB_CLASS(Runtime, SpatializedCylinderBlob, 0)
25 
26 public:
27  KyUInt32 m_visualDebugId;
28  Vec3f m_position;
29  Vec3f m_velocity;
30 };
31 
32 inline void SwapEndianness(Endianness::Target e, SpatializedCylinderBlob& self)
33 {
34  SwapEndianness(e, self.m_visualDebugId);
35  SwapEndianness(e, self.m_position);
36  SwapEndianness(e, self.m_velocity);
37 }
38 
39 // SpatializedCylinderBlobBuilder
40 class SpatializedCylinderBlobBuilder : public BaseBlobBuilder<SpatializedCylinderBlob>
41 {
42 public:
43  SpatializedCylinderBlobBuilder(KyUInt32 visualDebugId, const SpatializedCylinder* spatializedCylinder)
44  : m_visualDebugId(visualDebugId), m_spatializedCylinder(spatializedCylinder)
45  {}
46 
47 private:
48  virtual void DoBuild();
49 
50  KyUInt32 m_visualDebugId;
51  const SpatializedCylinder* m_spatializedCylinder;
52 };
53 
54 
55 
57 // SpatializedCylinderConfigBlob
58 class SpatializedCylinderConfigBlob
59 {
60  KY_DEFINE_NEW_DELETE_OPERATORS(Stat_Default_Mem)
61  KY_ROOT_BLOB_CLASS(Runtime, SpatializedCylinderConfigBlob, 0)
62 
63 public:
64  SpatializedCylinderConfigBlob() : m_visualDebugId(0), m_height(0.0f), m_radius(0.0f) {}
65 
66 public:
67  KyUInt32 m_visualDebugId;
68  KyFloat32 m_height;
69  KyFloat32 m_radius;
70 };
71 
72 inline void SwapEndianness(Endianness::Target e, SpatializedCylinderConfigBlob& self)
73 {
74  SwapEndianness(e, self.m_visualDebugId);
75  SwapEndianness(e, self.m_radius);
76  SwapEndianness(e, self.m_height);
77 }
78 
79 // SpatializedCylinderConfigBlobBuilder
80 class SpatializedCylinderConfigBlobBuilder : public BaseBlobBuilder<SpatializedCylinderConfigBlob>
81 {
82 public:
83  SpatializedCylinderConfigBlobBuilder(KyUInt32 visualDebugId, const SpatializedCylinder* spatializedCylinder)
84  : m_visualDebugId(visualDebugId), m_spatializedCylinder(spatializedCylinder)
85  {}
86 
87 private:
88  virtual void DoBuild();
89 
90  KyUInt32 m_visualDebugId;
91  const SpatializedCylinder* m_spatializedCylinder;
92 };
93 
94 } // namespace Kaim
95 
std::uint32_t KyUInt32
uint32_t
Definition: types.h:29
#define KY_DEFINE_NEW_DELETE_OPERATORS(MemStat)
This macro defines new and delete operators.
Definition: memory.h:132
Target
Enumerates the possible endianness types relative to the current platform.
Definition: endianness.h:27
The Autodesk Navigation namespace.
Definition: gamekitcrowddispersion.cpp:17
float KyFloat32
float
Definition: types.h:32