VR-Forces 4.2 Class Documentation
scriptInterface.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2012 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 #pragma once
6 
8 
9 #include "vlutil/vlString.h"
12 #include <deque>
14 
15 class DtVrfObject;
16 
23 
25 {
26 protected:
30  DtScriptInterface& operator=(const DtScriptInterface& other);
31 
32 public:
33  virtual ~DtScriptInterface();
34 
35  virtual bool invokeInit() = 0;
36  virtual void invokeSuspend() = 0;
37  virtual bool invokeResume() = 0;
38 
40  virtual void invokeTick() = 0;
41 
43  virtual bool loadScript(bool reload = false) = 0;
44 
45  virtual void invokeCheckInit() = 0;
46  virtual bool invokeCheck() = 0;
47 
49  virtual DtString type() const = 0;
50 
51  virtual void setTaskId(int taskId) { myTaskId = taskId; }
52  virtual int taskId() const { return myTaskId; }
53 
54  virtual void setScriptId(const DtString& scriptId) { myScriptId = scriptId; }
55  virtual const DtString& scriptId() const { return myScriptId; }
56 
57  virtual void setScriptPath(const DtFilename& scriptPath) { myScriptPath = scriptPath; }
58  virtual const DtFilename& scriptPath() const { return myScriptPath; }
59 
60  virtual void setEntity(DtVrfObject* entity) { myEntity = entity; }
61  virtual DtVrfObject* entity() const { return myEntity; }
62 
64  virtual void init() { }
65 
66 
67  virtual void setTaskVariables(const DtRwVariableBindings& variables) { myTaskVariables = variables; }
68  virtual const DtRwVariableBindings& taskVariables() const { return myTaskVariables; }
69  virtual bool updateTaskVariables();
70 
73  virtual DtReaderWriter* saveState() = 0;
74 
78  virtual bool loadState(const DtReaderWriter* savedState) = 0;
79 
84  virtual void processClearForReuse();
85 
86  virtual void setTaskStarting(bool v);
87  virtual bool taskStarting() const;
88 
90 
91  virtual void setTaskResuming(bool v);
92  virtual bool taskResuming() const;
94 
95  virtual void setController(DtScriptTaskControllerInterface* controller) { myControllerInterface = controller; }
96  virtual DtScriptTaskControllerInterface* controller() { return myControllerInterface; }
97 
100  double scriptGetExerciseTime();
101 
102  double scriptGetTimeOfDay();
103 
105  double scriptGetWindSpeed();
106 
108  double scriptGetWindDirection();
109 
110  DtScriptVrfObject scriptGetVrfObjectByName(const std::string name);
111  void printError(const std::string message);
112  void printWarn(const std::string message);
113  void printInfo(const std::string message);
114  void printVerbose(const std::string message);
115  void printDebug(const std::string message);
116  bool entityTypeMatches(const std::string&, const std::string&);
117 
119  void setTickPeriod(double);
120 
132  double getTerrainAltitude(const double lat, const double lon,
133  bool& dataAvailable, std::string &surface) const;
134 
150  double getGroundAltitude(const double lat, const double lon,
151  bool&isWater, bool& dataAvailable);
152 
154  void chordIntersectionDebug(const DtLocation3D& startLoc,
155  const DtLocation3D& endLoc);
156 
165  bool doesChordHitTerrain(const DtLocation3D &pt1,
166  const DtLocation3D & pt2,
167  bool& dataAvailable
168  ) const;
169 
170  DtLocation3D findClosestPointToRoad(const DtLocation3D& point, double searchRadius, bool& dataAvailable, bool& success) const;
171 
172  std::string getForceName(int forceType);
173  bool forcesHostile(std::string force1, std::string force2);
175 
176 protected:
180  virtual void scriptTaskComplete(bool success);
181 
182  virtual void scriptTaskError();
183 
186  virtual bool scriptText(DtString& text);
187 
188  virtual const DtReaderWriter* getTaskParam(const DtString& paramName);
189 
190  virtual bool getParamMetaDataType(const DtString& paramName, DtString& typeName);
191 
192  int myTaskId;
194  DtFilename myScriptPath;
201 };
202 
203 
205 
206 typedef DtScriptInterface* (*DtScriptInterfaceCreatorFunc)();
207 
209 {
210 protected:
213  DtScriptInterfaceFactory& operator=(const DtScriptInterfaceFactory& other);
214 
215 public:
216  virtual ~DtScriptInterfaceFactory();
217 
219  static DtScriptInterfaceFactory* instance();
220 
222  virtual DtScriptInterface* createInstance(const DtString& type);
223 
226  virtual void registerCreator(const DtString& type, DtScriptInterfaceCreatorFunc func);
227 
229  static void setFactory(DtScriptInterfaceFactory* factory);
230  static DtScriptInterfaceFactory* create();
231 
232 protected:
233  std::map<DtString, DtScriptInterfaceCreatorFunc> myCreators;
235 };

Document ID: Generated on Sun Nov 24 19:49:21 EST 2013 from SVN revision 133924
Copyright © 2005-2013 VT MÄK. All Rights Reserved (www.mak.com)