8 #ifndef Navigation_ManualControlInterval_H
9 #define Navigation_ManualControlInterval_H
15 class PathValidityInterval;
29 class ManualControlInterval
35 ManualControlInterval(Bot* bot);
38 ManualControlStatus Compute(
const NavTag* navTag,
const PositionOnLivePath& positionOnLivePath);
39 ManualControlStatus Compute(
const DynamicNavTag* navTag,
const PositionOnLivePath& positionOnLivePath);
47 template<
class TNavTag>
void MovePositionOnPathToCurrentOrNextNavTagEntry(
const TNavTag* navTag, PositionOnLivePath& positionOnLivePath);
52 template<
class TNavTag>
void MovePositionOnPathToCurrentOrPreviousNavTagExit(
const TNavTag* navTag, PositionOnLivePath& positionOnLivePath);
58 template<
class TNavTag>
ManualControlStatus GetCurrentOrNextManualControlInterval(
const TNavTag* navTag,
const PositionOnLivePath& positionOnLivePath);
61 ManualControlInterval() : m_pathValidityInterval(
KY_NULL) {}
62 void BindToPathValdityInterval(PathValidityInterval* pathValidityInterval);
68 const PositionOnLivePath& GetEnterPositionOnLivePath()
const {
return m_enterPos; }
69 const PositionOnLivePath& GetExitPositionOnLivePath()
const {
return m_exitPos; }
70 const PositionOnPath& GetEnterPositionOnPath()
const {
return m_enterPos.GetPositionOnPath(); }
71 const PositionOnPath& GetExitPositionOnPath()
const {
return m_exitPos.GetPositionOnPath(); }
72 const Vec3f& GetEnterPosition()
const {
return m_enterPos.GetPosition(); }
73 const Vec3f& GetExitPosition()
const {
return m_exitPos.GetPosition(); }
82 void ClearEventListLocation()
84 m_enterPos.ClearEventListLocation();
85 m_exitPos.ClearEventListLocation();
88 void FindLocationOnEventListFromScratch();
91 void UpdatePendingExitPosition();
95 PathValidityInterval* m_pathValidityInterval;
96 PositionOnLivePath m_enterPos;
97 PositionOnLivePath m_exitPos;
PositionOnPath is valid, but event information in PositionOnLivePath are not valid.
Definition: manualcontrolinterval.h:22
binded to a bot, but PositionPath is invalid
Definition: manualcontrolinterval.h:21
PositionOnLivePath needs validation, PositionOnPath and event information can change! ...
Definition: manualcontrolinterval.h:23
#define KY_NULL
Null value.
Definition: types.h:247
PositionOnLivePath is valid.
Definition: manualcontrolinterval.h:24
#define KY_CLASS_WITHOUT_COPY(ClassName)
Define to forbid copy constructor and copy assignment.
Definition: types.h:387
Definition: gamekitcrowddispersion.h:20
#define KY_DEFINE_NEW_DELETE_OPERATORS(MemStat)
This macro defines new and delete operators.
Definition: memory.h:137
ManualControlStatus
Definition: manualcontrolinterval.h:18
not initialized
Definition: manualcontrolinterval.h:20