VR-Forces 4.1.1 Class Documentation
kynapseCtrl.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2012 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
6 #pragma once
7 
9 #include <vrftasks/userTask.h>
11 
13 #include <kyruntime.h>
14 
15 #define KYCRTL_PUBLISH_ROUTE_REFRESH_RATE 10 //debug route will be checked every 10 ticks
16 
17 class DtAnalogOutputPort;
21 class DtOutputPortGroup;
23 class DtScenario;
24 class DtAnalogOutputPort;
25 class DtAnalogOutputPort;
26 class DtOutputPortGroup;
29 class DtVrfObjectMessage;
30 class DtScriptedTaskTask;
31 
32 namespace BHAVE
33 {
34  class KynapseDescriptor;
35  class DtKynapsePSR;
36  class DtVrfEntityBot;
37 
39 const char DtKynapseControllerType[] = "kynapse-controller";
40 
42 static void setLocationRequestCallack(DtSimMessage * msg, void * usrData);
43 
50 {
51 public:
52 
54  DtKynapseController(const DtString & name, DtVrfObject* owner,
55  DtSimManager * simManager, DtComponentDescriptor* desc = NULL,
56  DtReaderWriterRegistry * parentRegistry = 0);
57 
59  virtual ~DtKynapseController();
60 
63 
65  DtKynapseController& operator=(const DtKynapseController& orig);
66 
68  virtual bool init();
69 
71  virtual DtString type() const;
72 
74  virtual void setComponentDescriptor(DtComponentDescriptor* descriptor);
75 
77  static DtSimComponent* creator(const DtString& name,
78  DtVrfObject* owner, DtSimManager* simManager, DtComponentDescriptor* desc,
79  DtReaderWriterRegistry* parentRegistry);
80 
82 
84  virtual void registerTaskMsgCallbacks();
86 
88  virtual void unregisterTaskMsgCallbacks();
89 
93  static void userTaskCallback(DtSimMessage * msg, void * usr);
94  static void fleeTaskCallback(DtSimMessage * msg, void * usr);
95  virtual void processFleeTask(DtScriptedTaskTask * msg);
96 
97  static void hideTaskCallback(DtSimMessage * msg, void * usr);
98  virtual void processHideTask(DtScriptedTaskTask * msg);
99 
100  static void wanderTaskCallback(DtSimMessage * msg, void * usr);
101  virtual void processWanderTask(DtScriptedTaskTask * msg);
102 
107  virtual void processUserTask();
108 
110  DtVrfEntityBot* kynapseEntity();
111 
113  const DtSensorContactInfoList& getSensorContacts();
114 
115 
118  static void setBhaveMovementModeCallback(DtSimMessage* msg, void* usr);
119 
122  virtual DtBoolean checkTick();
123 
125  virtual void NotifyTaskCompleted(bool success = true);
126 
128  virtual void clearTask();
129 
131  virtual void tick();
132 
135  virtual void preFirstTickInit();
136 
138  virtual void processSetBhaveMovementMode(DtSimMessage* msg);
139 
141  void drawDebugRoutes();
142 
143 protected:
144 
146  virtual DtBoolean createPorts();
147  virtual DtBoolean createPortGroups();
148 
149  virtual bool createKynapsePSR();
150 
151  static void aboutToSaveCheckpointCallback(DtScenario& scn, void* usr);
154  virtual void processAboutToSaveCheckpoint();
155 
156  static void postLoadCheckpointCallback(const DtScenario& scn, void* usr);
157  static void postRewindCallback(void* usr);
160  virtual void processPostLoadCheckpoint();
161 
162  static void objectAboutToBeRemovedCallback(DtVrfObject* object, void* usr);
163  virtual void processObjectAboutToBeRemoved(DtVrfObject* object);
164 
166  static void objectDestroyedCallback(DtVrfObject* obj, DtVrfObjectPredicateEvaluator* eval, void* usr);
167  virtual void processObjectDestroyed(DtVrfObject* obj);
168 
172  virtual bool updateDebugRoute();
173 
174 
176  virtual void clearDebugRoute();
177 
179  virtual void setBhaveMovementMode(const DtString & movementMode);
180 
183  virtual bool IsExecutingBHAVETask();
184 
188  virtual DtBoolean applyKynapseRecommendations();
189 
191  virtual DtBoolean deactivateOutputControl() {return false;};
192 
193 protected:
194 
196  DtKynapsePSR* myKynapsePSR;
197 
200 
203 
206 
207  struct VRFDebugInfo {
209  bool draw;
213  std::list<DtVector> localVRFPath;
214  } debugView;
215 };
216 
217 } //namespace BHAVE
218 
219 

Document ID: Generated on Mon Apr 8 19:24:01 EDT 2013 from SVN revision 125877
Copyright © 2005-2013 VT MÄK. All Rights Reserved (www.mak.com)