VR-Forces 4.5 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 
113  virtual bool findFarthestPositionAlongHeading(const DtVector& start,
114  double heading, double maxDistance, DtVector& result, bool& reachedMaxDist);
115 
117  virtual void cancelQuery(DtNavAreaQuery::Ptr);
118 
120  virtual void moveAlongPath(const std::vector<DtVector>&);
121 
124  virtual bool findFarthestPositionAlongHeading(double heading, double maxDistance,
125  DtVector& result, bool& reachedMaxDist);
126 
128  virtual DtNavTag navTagAtPosition(const DtVector& localPos) const;
129 
131  virtual DtNavTag upcomingNavTagOnPath() const;
132 
134  virtual void upcomingNavTagsOnPath(double distance, DtNavTagAndLocationList& navTags) const;
135 
136 protected:
139  virtual DtNavBot* navBot();
140 
142  virtual void changingNavArea(DtNavArea* newNavArea);
143 
145  static void setLocationCompleteCallback(DtVrfObject* vrfObject, void* usr);
146  virtual void processSetLocationComplete(DtVrfObject* vrfObject);
147 
148  virtual DtNavAreaQuery::Ptr findTransitionPoint(DtNavArea* navArea, const DtVector& localStart, const DtVector& localDest);
149  virtual DtNavAreaQuery::Ptr findBestExitPoint(DtNavArea* navArea, const DtVector& localStart, const DtVector& localDest);
150  virtual bool findInsidePositionFromOutsidePosition(DtNavArea* navArea,
151  const DtVector& localStart, const DtVector& localDest, DtVector& result, int& halfEdgeType);
152 
155  virtual DtVector adjustDestination(const DtVector& localDest);
156 
159  virtual DtVector localOrParentPos(const DtVector& localPos);
161  virtual DtVector objectLocationLocalOrParent();
162 
166  virtual bool botShouldBeActive();
167 
178  virtual void setCollisionAvoidParams(DtNavBot::CollisionAvoidanceConfiguration& collAvoidConfig);
179 
181  virtual void findTransitionPointStartingFrom(const DtVector& startingPoint,
182  const DtVector& to);
183 
184  virtual void removeDebugTransitionPoints();
185 
191  virtual void setNavigationConfigParams(DtNavBot::NavigationConfiguration& navConfig);
192 
193 protected:
197 
199 
201  boost::shared_ptr<DtTransitionPointFinder> myPendingPointFinder;
202 
205 
207 
210 
211  std::vector<DtSharedVrfObjectReference> myDebugTransitionPoints;
212 
214 
220 };

Document ID: Generated on Thu Mar 23 18:54:12 EDT 2017 from SVN revision 174804
Copyright © 2005-2017 VT MÄK. All Rights Reserved (www.mak.com)