gwnavruntime/pathfollower/navtagmovepositiononpathpredicate.h Source File

navtagmovepositiononpathpredicate.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 // primary contact: LAPA - secondary contact: NOBODY
8 #ifndef Navigation_NavTagMovePositionOnPathPredicate_H
9 #define Navigation_NavTagMovePositionOnPathPredicate_H
10 
12 
13 namespace Kaim
14 {
15 
16 class NavTag;
17 class DynamicNavTag;
18 
21 {
22 public:
23  // ---------------------------------- Public Member Functions ----------------------------------
24 
25  NavTagMovePositionOnPathPredicate(const NavTag* navTag) : m_navTag(navTag) {}
26 
29  virtual bool CanMoveForward(PositionOnLivePath& positionOnLivePath);
30  virtual bool CanMoveBackward(PositionOnLivePath& positionOnLivePath);
31 
32 
33  // ---------------------------------- Public Data Members ----------------------------------
34 
36  const NavTag* m_navTag;
37 };
38 
39 
43 template<class TNavTag>
45 {
46 public:
47  // ---------------------------------- Public Member Functions ----------------------------------
48 
49  MoveToNavTagEntryPositionOnPathPredicate(const TNavTag* navTag) : m_navTag(navTag) {}
50 
51  virtual bool CanMoveForward(PositionOnLivePath& positionOnLivePath);
52 
53  virtual bool CanMoveBackward(PositionOnLivePath& positionOnLivePath);
54 
55  bool IsAtNavTagEntry(PositionOnLivePath& positionOnLivePath);
56 
57  // ---------------------------------- Public Data Members ----------------------------------
58 
60  const TNavTag* m_navTag;
61 };
62 
66 template<class TNavTag>
68 {
69 public:
70  // ---------------------------------- Public Member Functions ----------------------------------
71 
72  MoveToNavTagExitPositionOnPathPredicate(const TNavTag* navTag) : m_navTag(navTag) {}
73 
74  virtual bool CanMoveForward(PositionOnLivePath& positionOnLivePath);
75  virtual bool CanMoveBackward(PositionOnLivePath& positionOnLivePath);
76 
77  bool IsAtNavTagExit(PositionOnLivePath& positionOnLivePath);
78 
79  // ---------------------------------- Public Data Members ----------------------------------
80 
82  const TNavTag* m_navTag;
83 };
84 
85 } // namespace Kaim
86 
87 #endif // Navigation_NavTagMovePositionOnPathPredicate_H
virtual bool CanMoveForward(PositionOnLivePath &positionOnLivePath)
const TNavTag * m_navTag
The NavTag the PositionOnPath is allowed to move on.
Definition: navtagmovepositiononpathpredicate.h:111
const TNavTag * m_navTag
The NavTag the PositionOnPath is allowed to move on.
Definition: navtagmovepositiononpathpredicate.h:79
Interface used to verify a PositionOnPath can be moved forward along the Path.
Definition: imovepositiononpathpredicate.h:19
This predicates allows Move forward to next entry or backward to previous entry of the given NavTag...
Definition: navtagmovepositiononpathpredicate.h:87
Definition: gamekitcrowddispersion.h:20
const NavTag * m_navTag
The NavTag the PositionOnPath is allowed to move on.
Definition: navtagmovepositiononpathpredicate.h:45
This predicates allows Move forward to next entry or backward to previous entry of the given NavTag...
Definition: navtagmovepositiononpathpredicate.h:54
This class aggregates all necessary information to describe a position on a LivePath, namely:
Definition: positiononlivepath.h:46
Default implementation of IMovePositionOnPathPredicate interface based on NavTag. ...
Definition: navtagmovepositiononpathpredicate.h:20