14 #include "vlutil/vlString.h"
60 if (lhs.first < rhs.first)
return true;
61 else if (lhs.first > rhs.first)
return false;
62 else if (*lhs.second.get() < *rhs.second.get())
return true;
80 virtual bool invokeInit() = 0;
81 virtual void invokeSuspend() = 0;
82 virtual bool invokeResume() = 0;
85 virtual void invokeTick() = 0;
88 virtual bool loadScript(
bool reload =
false) = 0;
90 virtual void invokeCheckInit() = 0;
91 virtual bool invokeCheck() = 0;
93 virtual void invokeShutdown() = 0;
97 virtual void invokeDisable() = 0;
102 virtual void setTaskId(
int taskId) { myTaskId = taskId; }
103 virtual int taskId()
const {
return myTaskId; }
111 virtual void setScriptPath(
const DtFilename& scriptPath) { myScriptPath = scriptPath; }
112 virtual const DtFilename&
scriptPath()
const {
return myScriptPath; }
123 virtual bool updateTaskVariables();
141 virtual void processClearForReuse();
143 virtual void setTaskStarting(
bool v);
144 virtual bool taskStarting()
const;
148 virtual void setTaskResuming(
bool v);
149 virtual bool taskResuming()
const;
154 virtual void setIsBackgroundProces(
bool isBgProc);
155 virtual bool isBackgroundProcess()
const;
166 double scriptGetExerciseTime();
168 int scriptGetApplicationId();
170 double scriptGetSimulationTime();
172 double scriptGetTimeMultiplier();
174 double scriptGetTimeOfDay();
177 double scriptGetWindSpeed();
180 double scriptGetWindDirection();
184 void printError(
const std::string message);
185 void printErrorToChannel(
const std::string channel,
const std::string message);
187 void printWarn(
const std::string message);
188 void printWarnToChannel(
const std::string channel,
const std::string message);
190 void printInfo(
const std::string message);
191 void printInfoToChannel(
const std::string channel,
const std::string message);
193 void printVerbose(
const std::string message);
194 void printVerboseToChannel(
const std::string channel,
const std::string message);
196 void printDebug(
const std::string message);
197 void printDebugToChannel(
const std::string channel,
const std::string message);
199 bool entityTypeMatches(
const std::string&,
const std::string&);
202 void setTickPeriod(
double);
205 void setTickWhilePaused(
bool);
210 void setRespondToNewSensorContacts(
bool);
214 virtual void addPostSetDataCallback(
const std::string& setDataType,
215 DtScriptFunctionReferencePtr functionReference);
219 virtual void removePostSetDataCallback(
const std::string& setDataType,
220 DtScriptFunctionReferencePtr functionReference);
224 virtual void clearPostSetDataCallbacks();
231 static void postSetDataCallback(
DtSimMessage* msg,
void* usr);
239 static void postTickCallback(
void* usr);
240 virtual void processPostTick();
247 virtual void invokePostSetDataCallback(
248 DtScriptFunctionReferencePtr functionReference,
262 virtual double getTerrainAltitude(
const double lat,
const double lon,
263 bool& dataAvailable, std::string &surface)
const;
267 virtual double getTerrainAltitudeBelow(
const DtLocation3D& point,
268 bool& available, std::string &surfaceString)
286 virtual double getGroundAltitude(
const double lat,
const double lon,
287 bool&isWater,
bool& dataAvailable);
290 virtual void chordIntersectionDebug(
const DtLocation3D& startLoc,
303 virtual bool doesChordHitTerrain(
const DtLocation3D &pt1,
305 bool& dataAvailable)
const;
309 bool forcesHostile(std::string force1, std::string force2);
312 virtual double gaussian();
319 virtual void scriptTaskComplete(
bool success);
321 virtual void scriptTaskError();
325 virtual bool scriptText(
DtString& text);
328 virtual bool scriptPath(
DtString& path);
332 virtual bool getParamMetaDataType(
const DtString& paramName,
DtString& typeName);