VR-Forces Development_Version Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
navBot.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2015 MaK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
9 
10 #pragma once
11 
13 #include <string>
14 #include "matrix/vlVector.h"
15 
17 {
18 public:
20  {
21  NavigationMethodShortcut = 0,
22  NavigationMethodSpline = 1
23  };
24 
26  {
28  : myNavigationMethod(NavigationMethodShortcut)
29  , myUseAbstractGraph(true)
30  , myMinAbstractGraphReplanDistance(100.)
31  {}
32 
40  };
41 
43  {
46  : myEnableAvoidance(true)
47  , myEnableStop(true)
48  , myEnableSlowDown(true)
49  , myEnablePushThrough(false)
50  , myCollisionLookaheadTime(15.)
51  , myAngleEvalSpan(120)
52  , myNumAngleSamples(30)
53  , mySafetyDistance((float)0.1)
54  {}
55 
64  };
65 
66  typedef DtNavBot* (*DtNavBotCreatorFcn)();
67 
68  static DtNavBot* create();
69  static void setNavBotCreatorFcn(DtNavBotCreatorFcn fcn);
70 
71  virtual ~DtNavBot() {};
72 
73  virtual void init(DtNavArea* world, const DtString& profile, double radius, double height,
74  NavigationConfiguration navConfig = NavigationConfiguration(),
75  CollisionAvoidanceConfiguration collAvoidConfig = CollisionAvoidanceConfiguration()) = 0;
76 
77  virtual void setPosition(const DtVector& localPos) = 0;
78  virtual void botUpdate(const DtVector& localPos, double dT) = 0;
79 
80  virtual void setDestination(const DtVector& localPos, bool forceOutsideArea = false) = 0;
81  virtual void setDesiredSpeed(double speed) = 0;
82  virtual void clearFollowedPath() = 0;
83  virtual void clearDestination() = 0;
84 
85  virtual void moveAlongPath(const std::vector<DtVector>&) = 0;
86 
87  virtual DtVector getOutputVelocity() = 0;
88 
89  typedef bool (*DtNavBotPathLocationEvalFcn)(const DtNavTag& navTag, float* costMultiplier, void* userData);
90 
91  virtual void setPathEvalFcn(DtNavBotPathLocationEvalFcn fcn, void* user) = 0;
92 
94  {
101  PathStatusFindingTransitionPoint
102  };
103 
104  virtual PathStatus pathStatus(double atDistance) = 0;
106  virtual DtString pathStatusString() = 0;
107 
108  virtual bool hasArrived(double arrivalDistance) = 0;
109 
110  virtual bool currentPath(std::vector<DtVector>& path) = 0;
111  virtual bool abstractPath(std::vector<DtVector>& path) = 0;
112 
113  virtual unsigned currentAbstractPathIndex() = 0;
114 
115 protected:
116  static DtNavBotCreatorFcn theNavBotCreatorFcn;
117 };

Document ID: Generated on Tue Mar 8 22:13:38 EST 2016 from SVN revision 162938
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)