gwnavruntime/pathfollower/avoidanceconfigblob.h Source File

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