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 
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 
127 protected:
130  virtual DtNavBot* navBot();
131 
133  virtual void changingNavArea(DtNavArea* newNavArea);
134 
136  static void setLocationCompleteCallback(DtVrfObject* vrfObject, void* usr);
137  virtual void processSetLocationComplete(DtVrfObject* vrfObject);
138 
139  virtual DtNavAreaQuery::Ptr findTransitionPoint(DtNavArea* navArea, const DtVector& localStart, const DtVector& localDest);
140  virtual DtNavAreaQuery::Ptr findBestExitPoint(DtNavArea* navArea, const DtVector& localStart, const DtVector& localDest);
141  virtual bool findInsidePositionFromOutsidePosition(DtNavArea* navArea,
142  const DtVector& localStart, const DtVector& localDest, DtVector& result, int& halfEdgeType);
143 
146  virtual DtVector adjustDestination(const DtVector& localDest);
147 
150  virtual DtVector localOrParentPos(const DtVector& localPos);
152  virtual DtVector objectLocationLocalOrParent();
153 
157  virtual bool botShouldBeActive();
158 
169  virtual void setCollisionAvoidParams(DtNavBot::CollisionAvoidanceConfiguration& collAvoidConfig);
170 
172  virtual void findTransitionPointStartingFrom(const DtVector& startingPoint,
173  const DtVector& to);
174 
175  virtual void removeDebugTransitionPoints();
176 
182  virtual void setNavigationConfigParams(DtNavBot::NavigationConfiguration& navConfig);
183 
184 protected:
188 
190 
192  boost::shared_ptr<DtTransitionPointFinder> myPendingPointFinder;
193 
196 
198 
201 
202  std::vector<DtSharedVrfObjectReference> myDebugTransitionPoints;
203 };

Document ID: Generated on Mon Jul 4 01:00:18 EDT 2016 from SVN revision 166489
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)