VR-Forces Development_Version Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
humanMoveAlongController.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2016 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
11 
12 #pragma once
13 
17 
18 class DtCgf;
20 class DtSimMessage;
23 
36 {
37 private:
44  const DtHumanMoveAlongController& orig);
45 public:
48  DtHumanMoveAlongController(const DtString& name, DtVrfObject* owner,
49  DtSimManager* simManager, DtComponentDescriptor* desc=0,
50  DtReaderWriterRegistry *parentRegistry=0);
51 
53  virtual ~DtHumanMoveAlongController();
54 
56  virtual bool init();
57 
60  virtual const char* type() const;
61 
66  virtual void preFirstTickInit();
67 
75  virtual void tick();
76 
77  static void moveAlongCallback(DtSimMessage* msg, void* usr, DtSimTaskStatePtr taskStatePtr);
78 
79  virtual DtSimTaskStatePtr currentTaskState() const;
80 
84  static void routeChangedCallback(DtVrfObject* obj, void * usr);
85  virtual void processRouteChanged(DtVrfObject* obj);
86 
88  virtual void registerTaskMsgCallbacks();
89 
97  virtual bool setupRoute(bool routeHasChanged, bool resetVertex);
98 
105  virtual bool setupDestination();
106 
112  virtual void stop();
113 
115  static void objectAddedCb(DtVrfObject * vrfObject, void * usr);
116 
118  static DtSimComponent* creator(const DtString& name, DtVrfObject* owner,
119  DtSimManager* simManager, DtComponentDescriptor* desc=0,
120  DtReaderWriterRegistry* parentRegistry=0);
121 
127  virtual bool createPSR();
128 
129 protected:
130  virtual void processMoveAlong(const DtTaskMessage& msg, DtSimTaskStatePtr taskStatePtr);
131 
135  virtual void buildLocalRoute();
136 
139  virtual void emptyVertexList();
140 
142  static DtReaderWriter* provideNextRoutePointIndex(void* c);
143 
145  virtual DtHumanMoveAlongPSR* getPSR(){return myProcessState;}
146 
150  virtual void processObjectAdded(DtVrfObject * vrfObject);
151 
153  virtual void setDestination(const DtVector& localLocation);
154  virtual void createMoveToPoint(const DtVector& localLocation);
155 
157  virtual void sendMoveToSubtask();
158 
161  virtual void clearTask();
162 
166  virtual bool getCurrentRouteSegment(DtVector& routeSegmentStart,
167  DtVector& routeSegmentEnd) const;
168 
170  virtual void cleanupMoveToPoint();
171 
172  static void taskCompleteReportCallback(DtSimMessage* msg, void* usr);
173  virtual void processTaskCompleteReport(DtSimMessage* msg);
174 
175  virtual bool passedDestination();
176  virtual void setupDestinationVector();
177 
178  virtual bool atDestination() const;
179  virtual double distanceToDestination() const;
180 
181  virtual double atDistance() const;
182 
183 protected:
184 
186 
190 
192 
196 
199 
201 
204 };
205 

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)