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;
160 virtual void setIsSet(
bool isSet);
161 virtual bool isSet()
const;
172 double scriptGetExerciseTime();
174 int scriptGetApplicationId();
176 double scriptGetSimulationTime();
178 double scriptGetTimeMultiplier();
180 double scriptGetTimeOfDay();
182 double scriptGetDateAndTimeOfDay();
185 double scriptGetWindSpeed();
188 double scriptGetWindDirection();
192 void printError(
const std::string message);
193 void printErrorToChannel(
const std::string channel,
const std::string message);
195 void printWarn(
const std::string message);
196 void printWarnToChannel(
const std::string channel,
const std::string message);
198 void printInfo(
const std::string message);
199 void printInfoToChannel(
const std::string channel,
const std::string message);
201 void printVerbose(
const std::string message);
202 void printVerboseToChannel(
const std::string channel,
const std::string message);
204 void printDebug(
const std::string message);
205 void printDebugToChannel(
const std::string channel,
const std::string message);
207 bool entityTypeMatches(
const std::string&,
const std::string&);
210 void setTickPeriod(
double);
213 void setTickWhilePaused(
bool);
218 void setRespondToNewSensorContacts(
bool);
223 DtScriptFunctionReferencePtr functionReference);
228 DtScriptFunctionReferencePtr functionReference);
232 virtual void clearPostSetDataCallbacks();
239 static void postSetDataCallback(
DtSimMessage* msg,
void* usr);
247 static void postTickCallback(
void* usr);
248 virtual void processPostTick();
255 virtual void invokePostSetDataCallback(
256 DtScriptFunctionReferencePtr functionReference,
270 virtual double getTerrainAltitude(
const double lat,
const double lon,
271 bool& dataAvailable, std::string &surface)
const;
275 virtual double getTerrainAltitudeBelow(
const DtLocation3D& point,
276 bool& available, std::string &surfaceString)
294 virtual double getGroundAltitude(
const double lat,
const double lon,
295 bool&isWater,
bool& dataAvailable);
298 virtual void chordIntersectionDebug(
const DtLocation3D& startLoc,
311 virtual bool doesChordHitTerrain(
const DtLocation3D &pt1,
313 bool& dataAvailable)
const;
327 double searchRadius,
bool& dataAvailable,
bool& success,
331 virtual std::list<std::string> getDynamicTerrainFeatureChangeTypes(
332 const DtLocation3D& location,
double radius,
bool& dataVailable);
336 virtual std::list<DtLocation3D> getDynamicTerrainFeatureLocationsForChangeType(
337 const std::string& changeType,
const DtLocation3D& location,
double radius,
bool& dataVailable);
341 virtual std::list<std::string> getDynamicTerrainFeatureValuesForChangeType(
342 const std::string& changeType,
const DtLocation3D& location,
double radius,
bool& dataVailable);
345 virtual void changeDynamicTerrain(
const std::string& changeType,
const std::string& changeValue,
348 bool forcesHostile(std::string force1, std::string force2);
354 std::list<std::string> entityTypesForEquipment(
const std::string& equipmentType);
357 virtual double gaussian();
364 virtual void scriptTaskComplete(
bool success);
366 virtual void scriptTaskError();
370 virtual bool scriptText(
DtString& text);
373 virtual bool scriptPath(
DtString& path);