gwnavruntime/pathfollower/avoidanceconfigblob.h Source File

avoidanceconfigblob.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 
12 
13 
14 namespace Kaim
15 {
16 
17 class AvoidanceConfig;
18 
19 class AvoidanceConfigBlob
20 {
21  KY_ROOT_BLOB_CLASS(Runtime, AvoidanceConfigBlob, 2)
22 
23 public:
24  KyUInt32 m_enableSlowingDown;
25 
26  KyUInt32 m_enableStop;
27  KyFloat32 m_stopCollisionTime;
28  KyFloat32 m_stopWaitTime;
29 
30  KyUInt32 m_enableForcePassage;
31  KyFloat32 m_waitPassageTimeLimit;
32  KyFloat32 m_forcePassageTimeLimit;
33 
34  KyFloat32 m_minimalTimeToCollision;
35  KyFloat32 m_safetyDistance;
36  KyFloat32 m_avoidanceAngleSpan;
37  KyUInt32 m_avoidanceSampleCount;
38  KyFloat32 m_avoidanceInfluence;
39  KyFloat32 m_desiredVelocityInfluence;
40  KyFloat32 m_previousVelocityInfluence;
41 
42  KyUInt32 m_enableSoftContactSolver;
43  KyUInt32 m_enableBypassContactOverTime;
44  KyFloat32 m_contactBypassingTimeLimit;
45  KyFloat32 m_contactBypassingRatio;
46 
47  KyUInt32 m_capAvoidanceAngleChange;
48  KyUInt32 m_capAvoidanceSpeedChange;
49  KyFloat32 m_maxAngularVelocityChange;
50  KyFloat32 m_maxLinearSpeedChange;
51 
52 };
53 
54 inline void SwapEndianness(Endianness::Target e, AvoidanceConfigBlob& self)
55 {
56  SwapEndianness(e, self.m_enableSlowingDown);
57 
58  SwapEndianness(e, self.m_enableStop);
59  SwapEndianness(e, self.m_stopCollisionTime);
60  SwapEndianness(e, self.m_stopWaitTime);
61 
62  SwapEndianness(e, self.m_enableForcePassage);
63  SwapEndianness(e, self.m_waitPassageTimeLimit);
64  SwapEndianness(e, self.m_forcePassageTimeLimit);
65 
66  SwapEndianness(e, self.m_minimalTimeToCollision);
67 
68  SwapEndianness(e, self.m_safetyDistance);
69  SwapEndianness(e, self.m_avoidanceAngleSpan);
70  SwapEndianness(e, self.m_avoidanceSampleCount);
71  SwapEndianness(e, self.m_avoidanceInfluence);
72  SwapEndianness(e, self.m_desiredVelocityInfluence);
73  SwapEndianness(e, self.m_previousVelocityInfluence);
74 
75  SwapEndianness(e, self.m_enableSoftContactSolver);
76  SwapEndianness(e, self.m_enableBypassContactOverTime);
77  SwapEndianness(e, self.m_contactBypassingTimeLimit);
78  SwapEndianness(e, self.m_contactBypassingRatio);
79 
80  SwapEndianness(e, self.m_capAvoidanceAngleChange);
81  SwapEndianness(e, self.m_capAvoidanceSpeedChange);
82  SwapEndianness(e, self.m_maxAngularVelocityChange);
83  SwapEndianness(e, self.m_maxLinearSpeedChange);
84 
85 }
86 
87 class AvoidanceConfigBlobBuilder: public BaseBlobBuilder<AvoidanceConfigBlob>
88 {
89  KY_CLASS_WITHOUT_COPY(AvoidanceConfigBlobBuilder)
90 
91 public:
92  AvoidanceConfigBlobBuilder(const AvoidanceConfig& avoidanceConfig) : m_avoidanceConfig(avoidanceConfig) {}
93  ~AvoidanceConfigBlobBuilder() {}
94 
95 private:
96  virtual void DoBuild();
97 
98  const AvoidanceConfig& m_avoidanceConfig;
99 };
100 
101 } // namespace Kaim
102 
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