gwnavruntime/pathfollower/shortcuttrajectoryconfig.h Source File

shortcuttrajectoryconfig.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 #pragma once
8 
11 
12 namespace Kaim
13 {
14 
15 class ShortcutTrajectoryConfigBlob;
16 
17 class AdvancedShortcutTrajectoryConfig
18 {
20 
21 public:
22  AdvancedShortcutTrajectoryConfig() { SetDefaults(); }
23  void SetDefaults();
24 
25  bool operator==(const AdvancedShortcutTrajectoryConfig& other) const;
26  bool operator!=(const AdvancedShortcutTrajectoryConfig& other) const { return !operator==(other); }
27 
28 public:
29 
30  // ---------------------------------- General Shortcut Control Parameters ----------------------------------
35 
38  KyFloat32 m_shortcutAttemptDistanceRatio;
39 
42  KyFloat32 m_shortcutForceAttemptDistance;
43 
49  KyFloat32 m_snapOnPathDistance;
50 
51  // ---------------------------------- Forward Shortcut Control Parameters ----------------------------------
53 
56  KyFloat32 m_forwardSamplingDistance;
57 
61  KyFloat32 m_forwardMaxDistance;
62 
63  // ---------------------------------- Backward Sampling Parameters ----------------------------------
67 
70  KyFloat32 m_backwardSamplingDistance;
71 
74  KyFloat32 m_backwardMaxDistance;
75 };
76 inline void SwapEndianness(Endianness::Target e, AdvancedShortcutTrajectoryConfig& self)
77 {
78  SwapEndianness(e, self.m_snapOnPathDistance);
79  SwapEndianness(e, self.m_shortcutAttemptDistanceRatio);
80  SwapEndianness(e, self.m_shortcutForceAttemptDistance);
81  SwapEndianness(e, self.m_forwardSamplingDistance);
82  SwapEndianness(e, self.m_forwardMaxDistance);
83  SwapEndianness(e, self.m_backwardSamplingDistance);
84  SwapEndianness(e, self.m_backwardMaxDistance);
85 }
86 
87 
90 {
92 
93 public:
94  ShortcutTrajectoryConfig() { SetDefaults(); }
95  void SetDefaults();
96  void InitFromBlob(const ShortcutTrajectoryConfigBlob& blob);
97 
98  bool operator==(const ShortcutTrajectoryConfig& other) const;
99  bool operator!=(const ShortcutTrajectoryConfig& other) const { return !operator==(other); }
100 
101 public:
108 
109  AdvancedShortcutTrajectoryConfig m_advancedConfig;
110 };
111 
112 
113 
114 KY_INLINE void AdvancedShortcutTrajectoryConfig::SetDefaults()
115 {
116  m_snapOnPathDistance = 0.05f;
117  m_shortcutAttemptDistanceRatio = 0.7f;
118  m_shortcutForceAttemptDistance = 0.5f;
119  m_forwardSamplingDistance = 1.f;
120  m_forwardMaxDistance = 10.f;
121  m_backwardSamplingDistance = 1.f;
122  m_backwardMaxDistance = 10.f;
123 }
124 KY_INLINE bool AdvancedShortcutTrajectoryConfig::operator==(const AdvancedShortcutTrajectoryConfig& other) const
125 {
126  return m_snapOnPathDistance == other.m_snapOnPathDistance
127  && m_shortcutAttemptDistanceRatio == other.m_shortcutAttemptDistanceRatio
128  && m_shortcutForceAttemptDistance == other.m_shortcutForceAttemptDistance
129  && m_forwardSamplingDistance == other.m_forwardSamplingDistance
130  && m_forwardMaxDistance == other.m_forwardMaxDistance
131  && m_backwardSamplingDistance == other.m_backwardSamplingDistance
132  && m_backwardMaxDistance == other.m_backwardMaxDistance;
133 }
134 
135 
136 KY_INLINE void ShortcutTrajectoryConfig::SetDefaults()
137 {
138  m_snapOnPath = false;
139  m_advancedConfig.SetDefaults();
140 }
141 
142 KY_INLINE bool ShortcutTrajectoryConfig::operator==(const ShortcutTrajectoryConfig& other) const
143 {
144  return m_snapOnPath == other.m_snapOnPath
145  && m_advancedConfig == m_advancedConfig;
146 }
147 
148 } // namespace Kaim
149 
#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
bool m_snapOnPath
Setting true forces the trajectory not to shortcut when the bot is at a distance from the path which ...
Definition: shortcuttrajectoryconfig.h:107
The Autodesk Navigation namespace.
Definition: gamekitcrowddispersion.cpp:17
Set of parameters used by the ShortcutTrajectory and TargetOnPathComputer classes to update Bot targe...
Definition: shortcuttrajectoryconfig.h:89
float KyFloat32
float
Definition: types.h:32