VR-Forces 4.1 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"
11 #include "vrfobjcore/vrfObject.h"
14 #include <deque>
15 
17 
24 
26 {
27 protected:
30  DtScriptInterface& operator=(const DtScriptInterface& other);
31 
32 public:
33  virtual ~DtScriptInterface();
34 
35  virtual bool invokeInit() = 0;
36 
38  virtual void invokeTick() = 0;
39 
41  virtual bool loadScript() = 0;
42 
43 
45  virtual DtString type() const = 0;
46 
47  virtual void setTaskId(int taskId) { myTaskId = taskId; }
48  virtual int taskId() const { return myTaskId; }
49 
50  virtual void setScriptId(const DtString& scriptId) { myScriptId = scriptId; }
51  virtual const DtString& scriptId() const { return myScriptId; }
52 
53  virtual void setScriptPath(const DtFilename& scriptPath) { myScriptPath = scriptPath; }
54  virtual const DtFilename& scriptPath() const { return myScriptPath; }
55 
58  virtual void setParent(DtScriptMultiTaskController* parent) { myParent = parent; }
59  virtual DtScriptMultiTaskController* parent() const { return myParent; }
60 
61  virtual void setEntity(DtVrfObject* entity) { myEntity = entity; }
62  virtual DtVrfObject* entity() const { return myEntity; }
63 
64  virtual void init() {};
65 
66  virtual void setTaskVariables(const DtRwVariableBindings& variables) { myTaskVariables = variables; }
67  virtual const DtRwVariableBindings& taskVariables() const { return myTaskVariables; }
68  virtual bool updateTaskVariables();
69 
72  virtual void processScenarioSave(DtRwVariableBindings* saveState) = 0;
73 
77  virtual bool processScenarioLoad(const DtRwVariableBindings* loadState) = 0;
78 
83  virtual void processClearForReuse();
84 
85  virtual void setTaskStarting(bool v);
86  virtual bool taskStarting() const;
87 
90  double scriptGetExerciseTime();
91 
92  double scriptGetTimeOfDay();
93 
95  double scriptGetWindSpeed();
96 
98  double scriptGetWindDirection();
99 
100  DtScriptVrfObject scriptGetVrfObjectByName(const std::string name);
101  void printError(const std::string message);
102  void printWarn(const std::string message);
103  void printInfo(const std::string message);
104  void printVerbose(const std::string message);
105  void printDebug(const std::string message);
106  bool entityTypeMatches(const std::string&, const std::string&);
107 
109  void setTickPeriod(double);
110 
122  double getTerrainAltitude(const double lat, const double lon,
123  bool& dataAvailable, std::string &surface) const;
124 
125 
134  bool doesChordHitTerrain(const DtLocation3D &pt1,
135  const DtLocation3D & pt2,
136  bool& dataAvailableart
137  ) const;
138 
139  virtual DtLocation3D findClosestPointToRoad(const DtLocation3D& point, double searchRadius, bool& dataAvailable, bool& success) const;
140 
141  std::string getForceName(int forceType);
142  bool forcesHostile(std::string force1, std::string force2);
144 
145 
146 protected:
150  virtual void scriptTaskComplete(bool success);
151 
154  virtual bool scriptText(std::string& text);
155 
156  virtual const DtReaderWriter* getTaskParam(const DtString& paramName);
157 
158  virtual bool getParamMetaDataType(const DtString& paramName, DtString& typeName);
159 
160  int myTaskId;
162  DtFilename myScriptPath;
168 };
169 
170 typedef DtScriptInterface* (*DtScriptInterfaceCreatorFunc)();
171 
173 {
174 protected:
177  DtScriptInterfaceFactory& operator=(const DtScriptInterfaceFactory& other);
178 
179 public:
180  virtual ~DtScriptInterfaceFactory();
181 
183  static DtScriptInterfaceFactory* instance();
184 
186  virtual DtScriptInterface* createInstance(const std::string& type);
187  virtual void destroyInstance(DtScriptInterface* iFace);
188 
191  virtual void registerCreator(const std::string& type, DtScriptInterfaceCreatorFunc func);
192 
193  virtual void setMaxInterfaceReuse(unsigned int count);
194  virtual unsigned int maxInterfaceReuse() const { return myMaxInterfaceReuse; }
195 
197  static void setFactory(DtScriptInterfaceFactory* factory);
198  static DtScriptInterfaceFactory* create();
199 
200 protected:
201  unsigned int myMaxInterfaceReuse;
202  std::map<std::string, DtScriptInterfaceCreatorFunc> myCreators;
203  std::deque<DtScriptInterface*> myScriptInterfaceReuse;
205 };

Document ID: Generated on Tue Jan 29 18:21:16 EST 2013 from SVN revision 123193
Copyright © 2005-2013 VT MÄK Inc. All Rights Reserved (www.mak.com)