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();
183 void printError(
const std::string message);
185 void printWarn(
const std::string message);
187 void printInfo(
const std::string message);
189 void printVerbose(
const std::string message);
191 void printDebug(
const std::string message);
193 bool entityTypeMatches(
const std::string&,
const std::string&);
196 void setTickPeriod(
double);
201 void setRespondToNewSensorContacts(
bool);
205 virtual void addPostSetDataCallback(
const std::string& setDataType,
206 DtScriptFunctionReferencePtr functionReference);
210 virtual void removePostSetDataCallback(
const std::string& setDataType,
211 DtScriptFunctionReferencePtr functionReference);
215 virtual void clearPostSetDataCallbacks();
222 static void postSetDataCallback(
DtSimMessage* msg,
void* usr);
230 static void postTickCallback(
void* usr);
231 virtual void processPostTick();
238 virtual void invokePostSetDataCallback(
239 DtScriptFunctionReferencePtr functionReference,
253 double getTerrainAltitude(
const double lat,
const double lon,
254 bool& dataAvailable, std::string &surface)
const;
271 double getGroundAltitude(
const double lat,
const double lon,
272 bool&isWater,
bool& dataAvailable);
275 void chordIntersectionDebug(
const DtLocation3D& startLoc,
291 DtLocation3D findClosestPointToRoad(
const DtLocation3D& point,
double searchRadius,
bool& dataAvailable,
bool& success)
const;
293 std::string getForceName(
int forceType);
294 bool forcesHostile(std::string force1, std::string force2);
304 virtual void scriptTaskComplete(
bool success);
306 virtual void scriptTaskError();
310 virtual bool scriptText(
DtString& text);
313 virtual bool scriptPath(
DtString& path);
317 virtual bool getParamMetaDataType(
const DtString& paramName,
DtString& typeName);