15 #include <luabind/luabind.hpp>
68 virtual void setLuaState(lua_State* L);
69 virtual lua_State* getLuaState();
71 virtual std::string dumpLuaStack()
const;
72 virtual int luaStackSize()
const;
73 virtual void collectGarbage();
100 virtual bool initializeVRFLuaExtensions(lua_State* L);
101 virtual bool importTaskParams(lua_State* L);
104 virtual bool importSetParams(lua_State* L);
107 virtual luabind::object createLuaTableFromRegistry(lua_State* L,
const DtReaderWriterRegistry& rwRegistry,
bool requireMetadata =
true);
110 static void addKeyToIgnore(
const std::string&);
113 static void removeKeyToIgnore(
const std::string&);
116 void luaEndTask(
bool success);
125 virtual void luaStopScenarioEventWithRewind(
DtScriptVrfObject eventName,
bool rewind);
134 virtual int luaSendEmbeddedEntityTask(std::string eeName, std::string taskName, luabind::object
const& parms);
135 virtual int luaSendEmbeddedEntityTaskActAsSubtask(std::string eeName, std::string taskName,
136 luabind::object
const& parms,
bool actAsSubtask);
138 virtual int luaSendEmbeddedEntitySet(std::string eeName, std::string setName, luabind::object
const& parms);
144 int luaStartSubtask(
const std::string taskName, luabind::object
const& parameters);
145 void luaStopSubtask(
int subtaskId);
147 void luaStopAllSubtasks();
149 bool luaIsSubtaskRunning(
int subtaskId);
151 bool luaIsSubtaskComplete(
int subtaskId);
153 bool luaIsSubtaskCanceled(
int subtaskId);
155 bool luaSubtaskResult(
int subtaskId);
159 void luaCleanupInactiveSubtaskStatus();
163 void luaSendReportWithoutRecipients(const::std::string reportType,
164 luabind::object
const& parameters);
165 void luaSendReport(const::std::string reportType,
166 luabind::object
const& reciptients,
167 luabind::object
const& parameters);
171 luabind::object
const& parameters);
172 int luaSendTaskActAsSubtask(
DtScriptVrfObject&
object, const::std::string taskName,
173 luabind::object
const& parameters,
bool actAsSubtask);
175 luabind::object
const& parameters);
176 int luaSendRadioTaskActAsSubtask(
DtScriptVrfObject&
object, const::std::string taskName,
177 luabind::object
const& parameters,
bool actAsSubtask);
178 int luaSendTaskActAsSubtaskWithRadio(
DtScriptVrfObject&
object, const::std::string taskName,
179 luabind::object
const& parameters,
bool actAsSubtask,
bool sendWithRadio);
182 void luaStopAllTasks();
185 void luaSendSetDataToSelf(const::std::string setName,
186 luabind::object
const& parameters);
190 luabind::object
const& parameters);
192 luabind::object
const& parameters);
194 luabind::object
const& parameters,
bool useRadio);
196 bool luaIsTaskAvailable(const::std::string taskName);
197 bool luaIsSetAvailable(const::std::string setName);
200 luabind::object luaGetReactionStatus();
210 luabind::object luaGetOrbatList();
213 std::string luaGetScriptId();
216 std::string luaGetSystemName();
219 luabind::object luaGetObjectsNearWithFilter(
const DtLocation3D& loc,
double distance, luabind::object
const& parameters);
221 luabind::object luaGetScriptAttribute(
const std::string& attributeName,
bool&
error);
224 luabind::object luaGetVrfObjects();
228 luabind::object luaGetDesignatorsNearWithFilter(
const DtLocation3D& loc,
double distance,
229 const luabind::object& params);
231 luabind::object luaGetDesignatorsNear(
const DtLocation3D& loc,
double distance);
237 DtLuaFeatureSet luaGetFeaturesWithinArea(luabind::object
const& points, luabind::object
const& attributes);
239 DtLuaFeatureSet luaGetFeaturesWithinAreaNoAttributes(luabind::object
const& points);
264 boost::shared_ptr<DtLuaAsyncJob> generateRandomPoints(
const luabind::object& parameters);
267 boost::shared_ptr<DtLuaAsyncJob> findNearbyPointOfInterest(
const int type);
270 boost::shared_ptr<DtLuaAsyncJob> findCoverPoint(
272 double threatRadius,
double distanceFromThreat,
double range,
unsigned numberOfPoints);
275 boost::shared_ptr<DtLuaAsyncJob> findPathToLocation(
277 bool useAbstractGraphs,
const DtLocation3D& avoidLocation,
double avoidanceRadius);
284 boost::shared_ptr<DtLuaAsyncJob> luaNavigateThroughFeatures(
const luabind::object& parameters);
290 boost::shared_ptr<DtLuaAsyncJob> reserveEmbarkationSlot(
DtScriptVrfObject&
object,
int slotNumber);
292 void luaSendMessage(
const DtScriptVrfObject& receiver,
const std::string& message);
293 void luaSendRadioMessage(
const DtScriptVrfObject& receiver,
const std::string& message);
294 void luaDeleteObject(std::string
const& receiver);
301 const std::string& influenceName, luabind::object
const& influenceParams);
324 virtual std::vector<DtScriptVrfObject> luaGetCloudLayers();
335 virtual void luaSetPrecipitationIntensity(
DtScriptVrfObject&
object,
double intensity);
338 virtual void luaSetVisibilityDistance(
DtScriptVrfObject&
object,
double distance);
341 virtual void luaSetUnderwaterVisibility(
DtScriptVrfObject&
object,
double visibility);
342 virtual void luaSetSurfaceTransparency(
DtScriptVrfObject&
object,
double transparency);
344 virtual void luaSetSwellStateDirection(
DtScriptVrfObject&
object,
double direction);
346 virtual void luaSetSeaStateDirection(
DtScriptVrfObject&
object,
double direction);
347 virtual void luaSetWindDrivenSeaStateEnabled(
DtScriptVrfObject&
object,
bool enabled);
351 virtual void luaSetFogColor(
DtScriptVrfObject&
object,
double red,
double green,
double blue);
375 virtual double luaGetFogHeightByLocation(
const DtLocation3D&
object);
376 virtual void luaGetFogColor(
DtScriptVrfObject&
object,
double* red,
double* green,
double* blue);
377 virtual void luaGetFogColorByLocation(
const DtLocation3D&
object,
double* red,
double* green,
double* blue);
380 virtual double luaGetExpectedIllumination(
DtScriptVrfObject&
object,
double dateAndTimeOfDay);
382 virtual double luaGetAirTemperatureByLocation(
const DtLocation3D&
object);
383 virtual unsigned int luaGetPrecipitationByLocation(
const DtLocation3D& location,
double*);
384 virtual double luaGetPrecipitationIntensityByLocation(
const DtLocation3D&
object);
385 virtual unsigned int luaGetPrecipitationTypeByLocation(
const DtLocation3D&
object);
386 virtual int luaGetCloudCoverByLocation(
const DtLocation3D&
object);
387 virtual double luaGetVisibilityDistanceByLocation(
const DtLocation3D&
object);
388 virtual double luaGetWindDirectionByLocation(
const DtLocation3D&
object);
389 virtual double luaGetWindSpeedByLocation(
const DtLocation3D&
object);
390 virtual double luaGetUnderwaterVisibilityByLocation(
const DtLocation3D&
object);
391 virtual double luaGetSurfaceTransparencyByLocation(
const DtLocation3D&
object);
392 virtual unsigned int luaGetSwellStateByLocation(
const DtLocation3D&
object);
393 virtual double luaGetSwellStateDirectionByLocation(
const DtLocation3D&
object);
394 virtual unsigned int luaGetSeaStateByLocation(
const DtLocation3D&
object);
395 virtual double luaGetSeaStateDirectionByLocation(
const DtLocation3D&
object);
396 virtual bool luaGetWindDrivenSeaStateEnabledByLocation(
const DtLocation3D&
object);
397 virtual double luaGetChoppinessByLocation(
const DtLocation3D&
object);
398 virtual double luaGetSurgeDepthByLocation(
const DtLocation3D&
object);
399 virtual int luaGetPriorityByLocation(
const DtLocation3D&
object);
400 virtual double luaGetIlluminationByLocation(
const DtLocation3D&
object);
401 virtual double luaGetExpectedIlluminationByLocation(
const DtLocation3D&
object,
double dateAndTimeOfDay);
406 virtual double luaRunDurationTime();
407 virtual void luaRunForDuration(
double);
408 virtual void luaStopSimulationDurationTimer();
413 virtual void luaSetCheckpointMode(
bool);
414 virtual void initializeCheckpointStateTable(lua_State* L);
425 luabind::object
const& options,
int displayFlags);
427 luabind::object
const& options,
int displayFlags);
429 luabind::object
const& options,
int displayFlags);
430 virtual int luaAskUserQuestionSS(
const std::string& title,
const std::string& message,
431 luabind::object
const& options,
int displayFlags);
436 virtual int luaStatusOfUserQuestion(
int questionId);
439 virtual void luaCancelUserQuestion(
int questionId);
474 void luaCreateSelectionGroup(
const std::string& name, luabind::object
const& parameters);
477 bool luaUpdateTaskVisualization(
const std::string& visualizationName,
478 const std::string& visualizationType, luabind::object
const& parameters);
481 void luaDeleteTaskVisualization(
const std::string& visualizationName);
484 void luaRequire(lua_State* L,
const std::string&
filename);
488 unsigned luaBitwiseOr(
unsigned val1,
unsigned val2);
489 unsigned luaBitwiseAnd(
unsigned val1,
unsigned val2);
490 unsigned luaBitwiseXor(
unsigned val1,
unsigned val2);
491 unsigned luaBitwiseNot(
unsigned val);
492 unsigned luaBitwiseLeftShift(
unsigned val,
unsigned shift);
493 unsigned luaBitwiseRightShift(
unsigned val,
unsigned shift);
507 , myFunctionName(functionName)
517 std::string functionName()
const
519 return myFunctionName;
532 DtInfo <<
"DtLuaScriptFunctionReference::operator< attempt to compare with wrong type.\n";
544 const std::string& functionName);
548 const std::string& functionName);
561 virtual luabind::object luaGetParamPropertyFromType(
562 const std::string typeString, std::string
const& paramName);
565 virtual void putObjectsFromTableIntoGlobalTable(lua_State* state, luabind::object& table);
566 virtual void putObjectsFromGlobalTableIntoTable(lua_State* state, luabind::object& table);
572 virtual bool callLuaNoArgFunction(
const std::string& functionName,
bool* functionExists = 0);
574 virtual void updateFuncCallCount();
614 namespace luaScriptInterface
638 luabind::object
const& typeFilters,
bool observedOnly);
643 const std::string& propertyName, luabind::object
const& prop);
649 const std::string& propertyName, luabind::object
const& prop,
bool addIfNotFound);
659 luabind::object
const& keyValues, luabind::object
const& itemValue);
668 int index, luabind::object
const& itemValue);
678 luabind::object
const& keyValue, luabind::object
const& itemValue);
697 luabind::object
const& keyValues,
int& index);
719 luabind::object
const& keyValue);
738 luabind::object
const& keyValues,
int& index);
760 luabind::object
const& keyValue);
764 const luabind::object & value,