VR-Forces Development_Version Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
activeBotNavInterface.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2015 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
9 #pragma once
10 
14 #include "vrfNavigation/navArea.h"
16 #include "vrfNavigation/navBot.h"
17 
18 #include <matrix/vlVector.h>
19 
20 class DtVrfObject;
21 class DtNavTag;
22 
27 {
28 private:
35 
36 public:
37  static DtVrfObjectNavInterface* create(DtVrfObject* vrfObject);
38 
39 protected:
43  virtual bool init();
44 
45 public:
46  virtual void firstTick();
47  virtual void tick();
48  virtual ~DtActiveBotNavInterface();
49 
53  virtual bool ableToNavigate() const;
54  virtual DtNavArea* navArea();
55 
56  virtual bool requestControl(int priority, const DtString& controller);
57  virtual bool hasControl(int priority);
58  virtual void releaseControl(int priority);
59 
64  virtual void setDestination(const DtVector& localDest);
65 
66  virtual void setDesiredSpeed(double speed);
67 
68  virtual DtNavBot::PathStatus pathStatus(double atDistance);
70  virtual DtString pathStatusString();
71 
74  virtual double getOutputSpeed();
77  virtual double getOutputHeading();
78 
79  virtual bool currentPath(std::vector<DtVector>& path);
80  virtual bool abstractPath(std::vector<DtVector>& path);
81 
82  virtual unsigned currentAbstractPathIndex();
83 
86  virtual void setPathCostEvalFunction(DtNavBot::DtNavBotPathLocationEvalFcn fcn, void* usr);
87 
88  virtual DtVector transitionPoint() const { return myTransitionPoint; };
89 
90  virtual bool usingTransitionPoint() const;
91 
93  virtual bool findingTransitionPoint() const;
94 
99  virtual std::vector<DtVector> searchInArea(double radius, double postSpacing, DtNavArea::DtPointOfInterestEvaluatorFcn = 0,
100  void* usrData = 0, int navTag = -1);
101  virtual std::vector<DtVector> searchInArea(const DtVector& startPoint,
102  double radius, double postSpacing, DtNavArea::DtPointOfInterestEvaluatorFcn = 0,
103  void* usrData = 0, int navTag = -1);
104 
107  virtual DtNavAreaQuery::Ptr findBestPathTo(const std::vector<DtVector>& localPositions,
109  DtNavArea::DtPathCalculatedEvaluatorFcn = 0, void* usrData = 0);
110 
112  virtual void cancelQuery(DtNavAreaQuery::Ptr);
113 
115  virtual void moveAlongPath(const std::vector<DtVector>&);
116 
117 protected:
120  virtual DtNavBot* navBot();
121 
123  virtual void changingNavArea(DtNavArea* newNavArea);
124 
126  static void setLocationCompleteCallback(DtVrfObject* vrfObject, void* usr);
127  virtual void processSetLocationComplete(DtVrfObject* vrfObject);
128 
129  virtual DtNavAreaQuery::Ptr findTransitionPoint(DtNavArea* navArea, const DtVector& localStart, const DtVector& localDest);
130  virtual DtNavAreaQuery::Ptr findBestExitPoint(DtNavArea* navArea, const DtVector& localStart, const DtVector& localDest);
131  virtual bool findInsidePositionFromOutsidePosition(DtNavArea* navArea,
132  const DtVector& localStart, const DtVector& localDest, DtVector& result, int& halfEdgeType);
133 
136  virtual DtVector adjustDestination(const DtVector& localDest);
137 
140  virtual DtVector localOrParentPos(const DtVector& localPos);
142  virtual DtVector objectLocationLocalOrParent();
143 
147  virtual bool botShouldBeActive();
148 
159  virtual void setCollisionAvoidParams(DtNavBot::CollisionAvoidanceConfiguration& collAvoidConfig);
160 
162  virtual void findTransitionPointStartingFrom(const DtVector& startingPoint,
163  const DtVector& to);
164 
165  virtual void removeDebugTransitionPoints();
166 
172  virtual void setNavigationConfigParams(DtNavBot::NavigationConfiguration& navConfig);
173 
174 protected:
178 
180 
182  boost::shared_ptr<DtTransitionPointFinder> myPendingPointFinder;
183 
186 
188 
191 
192  std::vector<DtSharedVrfObjectReference> myDebugTransitionPoints;
193 };

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)