VR-Forces 4.7 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties 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"
18 
19 #include <matrix/vlVector.h>
20 
21 class DtVrfObject;
22 class DtNavTag;
23 
28 {
29 private:
36 
37 public:
38  static DtVrfObjectNavInterface* create(DtVrfObject* vrfObject);
39 
40 protected:
44  virtual bool init();
45 
46 public:
47  virtual void firstTick();
48  virtual void tick();
49  virtual ~DtActiveBotNavInterface();
50 
54  virtual bool ableToNavigate() const;
55  virtual DtNavArea* navArea();
56 
57  virtual bool requestControl(int priority, const DtString& controller);
58  virtual bool hasControl(int priority);
59  virtual void releaseControl(int priority);
60 
65  virtual void setDestination(const DtVector& localDest);
66 
67  virtual void setDesiredSpeed(double speed);
68 
69  virtual DtNavBot::PathStatus pathStatus(double atDistance);
71  virtual DtString pathStatusString();
72 
75  virtual double getOutputSpeed();
78  virtual double getOutputHeading();
79 
80  virtual bool currentPath(std::vector<DtVector>& path);
81  virtual bool abstractPath(std::vector<DtVector>& path);
82 
83  virtual bool currentPathEdge(DtVector& edgeStart, DtVector& edgeEnd);
84 
85  virtual unsigned currentAbstractPathIndex();
86 
89  virtual void setPathCostEvalFunction(DtNavBot::DtNavBotPathLocationEvalFcn fcn, void* usr);
90 
91  virtual DtVector transitionPoint() const { return myTransitionPoint; };
92 
93  virtual bool usingTransitionPoint() const;
94 
96  virtual bool findingTransitionPoint() const;
97 
102  virtual std::vector<DtVector> searchInArea(double radius, double postSpacing, DtNavArea::DtPointOfInterestEvaluatorFcn = 0,
103  void* usrData = 0, int navTag = -1);
104  virtual std::vector<DtVector> searchInArea(const DtVector& startPoint,
105  double radius, double postSpacing, DtNavArea::DtPointOfInterestEvaluatorFcn = 0,
106  void* usrData = 0, int navTag = -1);
107 
110  virtual DtNavAreaQuery::Ptr findBestPathTo(const std::vector<DtVector>& localPositions,
112  DtNavArea::DtPathCalculatedEvaluatorFcn = 0, void* usrData = 0);
113 
116  virtual bool findFarthestPositionAlongHeading(const DtVector& start,
117  double heading, double maxDistance, DtVector& result, bool& reachedMaxDist);
118 
120  virtual void cancelQuery(DtNavAreaQuery::Ptr);
121 
123  virtual void moveAlongPath(const std::vector<DtVector>&);
124 
127  virtual bool findFarthestPositionAlongHeading(double heading, double maxDistance,
128  DtVector& result, bool& reachedMaxDist);
129 
131  virtual DtNavTag navTagAtPosition(const DtVector& localPos) const;
132 
134  virtual DtNavTag upcomingNavTagOnPath() const;
135 
137  virtual void upcomingNavTagsOnPath(double distance, DtNavTagAndLocationList& navTags) const;
138 
140  virtual void setNavigationMethod(DtNavBot::NavigationMethod navMethod);
141 
143  virtual void resetNavigationMethod();
144 
146  virtual DtNavBot::NavigationMethod navigationMethod() const;
147 
149  bool findValidPositionNearby(const DtVector& localStart, double radius, DtVector& result);
150 
151 protected:
154  virtual DtNavBot* navBot();
155 
157  virtual void changingNavArea(DtNavArea* newNavArea);
158 
160  static void setLocationCompleteCallback(DtVrfObject* vrfObject, void* usr);
161  virtual void processSetLocationComplete(DtVrfObject* vrfObject);
162 
163  virtual DtNavAreaQuery::Ptr findTransitionPoint(DtNavArea* navArea, const DtVector& localStart, const DtVector& localDest);
164  virtual DtNavAreaQuery::Ptr findBestExitPoint(DtNavArea* navArea, const DtVector& localStart, const DtVector& localDest);
165  virtual DtNavAreaQuery::Ptr findCoverPoint(DtNavArea* navArea, const DtVector& localStart,
166  const DtVector& localCoverFrom, double coverFromRadius, double distanceFromThreat);
167  virtual bool findInsidePositionFromOutsidePosition(DtNavArea* navArea,
168  const DtVector& localStart, const DtVector& localDest, DtVector& result, int& halfEdgeType);
169 
172  virtual DtVector adjustDestination(const DtVector& localDest);
173 
176  virtual DtVector localOrParentPos(const DtVector& localPos);
178  virtual DtVector objectLocationLocalOrParent();
179 
183  virtual bool botShouldBeActive();
184 
195  virtual void setCollisionAvoidParams(DtNavBot::CollisionAvoidanceConfiguration& collAvoidConfig);
196 
198  virtual void findTransitionPointStartingFrom(const DtVector& startingPoint,
199  const DtVector& to);
200 
201  virtual void removeDebugTransitionPoints();
202 
208  virtual void setNavigationConfigParams(DtNavBot::NavigationConfiguration& navConfig);
209 
210 protected:
214 
216 
218  boost::shared_ptr<DtTransitionPointFinder> myPendingPointFinder;
219 
220  boost::shared_ptr<DtCoverPointFinder> myPendingCoverPointFinder;
221 
224 
226 
229 
230  std::vector<DtSharedVrfObjectReference> myDebugTransitionPoints;
231 
234 
240 
242 };

Document ID: Generated on Fri Apr 26 21:53:14 EDT 2019 from SVN revision 197883
Copyright © 2005-2019 VT MAK. All Rights Reserved (www.mak.com)