VR-Forces 4.6 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
diGuyController.h
Go to the documentation of this file.
1  /******************************************************************************
2 ** Copyright (c) 2013 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
11 
12 #pragma once
13 
15 #include "vrfutil/simClock.h"
16 #include <vl/hostStructs.h>
17 #include "vrfobjcore/boolIOPort.h"
19 
21 
22 class DtSimManager;
23 class DtSimMessage;
25 class DtDiGuyAnimation;
30 class DtInputPortGroup;
31 class DtAnalogInputPort;
32 class DtBooleanInputPort;
34 
36 {
44 };
45 
63  public DtBindableLuaComponent < DtDiGuyController >
64 {
65 
66 public:
67 
70  DtDiGuyController(const DtString& name,
71  DtVrfObject* owner,
72  DtSimManager* simManager,
73  DtComponentDescriptor* desc = 0,
74  DtReaderWriterRegistry* parentRegistry = 0);
75 
77  virtual ~DtDiGuyController();
78 
81  virtual const char* type() const;
82 
85  virtual bool init();
86 
92  virtual bool createPSR();
93 
97  virtual void preFirstTickInit();
98 
100  virtual void tick();
101 
105  virtual void taskedTick(DtTime & dT);
106 
109  virtual bool intrinsicOverride();
110 
114  virtual bool intrinsicTick(DtLifeformStaticPosture post,
115  double speed,DtWeaponState weapon, DtString & demeanor);
116 
118  virtual bool tickWhileDestroyed() const;
119 
122  virtual void setCurrentAnimation(DtDiGuyAnimation * animation,bool overridePosture = false);
123 
126  virtual void sendSetPosture(DtLifeformState post);
127 
129  static void setCharacteristicsCallback(DtSimMessage * msg, void * usr);
130  virtual void processSetCharacterCharacteristics(DtSimMessage* msg);
131 
133  static void setAppearanceCallback(DtSimMessage * msg, void * usr);
134  virtual void processSetCharacterAppearance(DtSimMessage* msg);
135 
137  static void setHandItemCallback(DtSimMessage * msg, void * usr);
138  virtual void processSetCharacterHandItem(DtSimMessage* msg);
139 
141  static void setHeadCallback(DtSimMessage * msg, void * usr);
142  virtual void processSetCharacterHead(DtSimMessage* msg);
143 
144  static void setRestoreCallback(DtSimMessage * msg, void * usrData);
145  virtual void processSetRestore(DtSimMessage * msg);
146 
147  static void animationTaskCallback(DtSimMessage * msg, void * usrData);
148  virtual void processAnimationTask(DtSimMessage * msg);
149 
152  virtual void clearTask();
153  virtual void taskComplete(bool success = true);
154  virtual void reset();
155 
157  virtual void updateAnimationState(DtLifeformStaticPosture post,
158  double speed,DtWeaponState weapon, const DtString & demeanor);
159 
161  virtual DtDiGuyDirectionType directionStringToEnum(const DtString & direction);
162 
164 
165 
167  bool isAnimationAvailable(const std::string& animation) const;
168 
170  bool isAppearanceAvailable(const std::string& appearance) const;
171 
173  bool isHandItemAvailable(const std::string& item) const;
174 
177  bool isHeadAvailable(const std::string& head) const;
178 
180  bool isGestureAvailable(const std::string& gesture) const;
181 
183 
186  virtual void bindLuaFunctions(lua_State* L);
187  virtual void bindLuaGlobals(lua_State* L);
188 
192  static DtSimComponent * creator(const DtString& name,
193  DtVrfObject* owner,
194  DtSimManager* simManager,
195  DtComponentDescriptor* desc = 0,
196  DtReaderWriterRegistry* parentRegistry = 0);
197 
198 protected:
199 
201  virtual void registerRadioMessageCallbacks();
203  virtual void registerTaskMsgCallbacks();
204 
207  virtual void determineInitialHandItem();
208 
209  virtual DtVector groundClamp(double heading, const DtVector& location) const;
210 
211 protected:
214 
216  DtDiGuyController(const DtDiGuyController & orig);
217 
220  orig);
221 
223  virtual bool createPortGroups();
224 
226  virtual bool createPorts();
227 
230  virtual bool createCollisionPort();
231  virtual bool createAimDirectionPort();
232 
233  virtual bool determineDemeanor(DtWeaponState weapon, DtLifeformStaticPosture post, DtString & demeanor);
234 
236  virtual void determineDirection();
237 
238  virtual DtString chooseRandomAppearance();
239 
241  virtual void updatePosition(const DtTime & dT,DtTaitBryan & localOrientation);
242 
243 protected:
244 
245  //const DtDiGuyControllerDescriptor* myDiGuyDescriptor;
252  DtTaitBryan myTaskedOrientation;
253 
258 
270 
274 
282 
290 
295 
298 
300 };

Document ID: Generated on Thu Apr 12 03:15:37 EDT 2018 from SVN revision 187986
Copyright © 2005-2018 VT MÄK. All Rights Reserved (www.mak.com)