15 #include <luabind/luabind.hpp>
67 virtual void setLuaState(lua_State* L);
68 virtual lua_State* getLuaState();
70 virtual std::string dumpLuaStack()
const;
71 virtual int luaStackSize()
const;
72 virtual void collectGarbage();
99 virtual bool initializeVRFLuaExtensions(lua_State* L);
100 virtual bool importTaskParams(lua_State* L);
103 virtual bool importSetParams(lua_State* L);
106 virtual luabind::object createLuaTableFromRegistry(lua_State* L,
const DtReaderWriterRegistry& rwRegistry,
bool requireMetadata =
true);
109 static void addKeyToIgnore(
const std::string&);
112 static void removeKeyToIgnore(
const std::string&);
115 void luaEndTask(
bool success);
124 virtual void luaStopScenarioEventWithRewind(
DtScriptVrfObject eventName,
bool rewind);
133 virtual int luaSendEmbeddedEntityTask(std::string eeName, std::string taskName, luabind::object
const& parms);
134 virtual int luaSendEmbeddedEntityTaskActAsSubtask(std::string eeName, std::string taskName,
135 luabind::object
const& parms,
bool actAsSubtask);
137 virtual int luaSendEmbeddedEntitySet(std::string eeName, std::string setName, luabind::object
const& parms);
143 int luaStartSubtask(
const std::string taskName, luabind::object
const& parameters);
144 void luaStopSubtask(
int subtaskId);
146 void luaStopAllSubtasks();
148 bool luaIsSubtaskRunning(
int subtaskId);
150 bool luaIsSubtaskComplete(
int subtaskId);
152 bool luaIsSubtaskCanceled(
int subtaskId);
154 bool luaSubtaskResult(
int subtaskId);
158 void luaCleanupInactiveSubtaskStatus();
162 void luaSendReportWithoutRecipients(const::std::string reportType,
163 luabind::object
const& parameters);
164 void luaSendReport(const::std::string reportType,
165 luabind::object
const& reciptients,
166 luabind::object
const& parameters);
170 luabind::object
const& parameters);
171 int luaSendTaskActAsSubtask(
DtScriptVrfObject&
object, const::std::string taskName,
172 luabind::object
const& parameters,
bool actAsSubtask);
174 luabind::object
const& parameters);
175 int luaSendRadioTaskActAsSubtask(
DtScriptVrfObject&
object, const::std::string taskName,
176 luabind::object
const& parameters,
bool actAsSubtask);
177 int luaSendTaskActAsSubtaskWithRadio(
DtScriptVrfObject&
object, const::std::string taskName,
178 luabind::object
const& parameters,
bool actAsSubtask,
bool sendWithRadio);
181 void luaStopAllTasks();
184 void luaSendSetDataToSelf(const::std::string setName,
185 luabind::object
const& parameters);
189 luabind::object
const& parameters);
191 luabind::object
const& parameters);
193 luabind::object
const& parameters,
bool useRadio);
195 bool luaIsTaskAvailable(const::std::string taskName);
196 bool luaIsSetAvailable(const::std::string setName);
199 luabind::object luaGetReactionStatus();
209 luabind::object luaGetOrbatList();
212 std::string luaGetScriptId();
215 std::string luaGetSystemName();
218 luabind::object luaGetObjectsNearWithFilter(
const DtLocation3D& loc,
double distance, luabind::object
const& parameters);
220 luabind::object luaGetScriptAttribute(
const std::string& attributeName,
bool&
error);
223 luabind::object luaGetVrfObjects();
228 DtLuaFeatureSet luaGetFeaturesWithinArea(luabind::object
const& points, luabind::object
const& attributes);
230 DtLuaFeatureSet luaGetFeaturesWithinAreaNoAttributes(luabind::object
const& points);
255 boost::shared_ptr<DtLuaAsyncJob> generateRandomPoints(
const luabind::object& parameters);
258 boost::shared_ptr<DtLuaAsyncJob> findNearbyPointOfInterest(
const int type);
261 boost::shared_ptr<DtLuaAsyncJob> findCoverPoint(
263 double threatRadius,
double distanceFromThreat,
double range,
unsigned numberOfPoints);
266 boost::shared_ptr<DtLuaAsyncJob> findPathToLocation(
268 bool useAbstractGraphs,
const DtLocation3D& avoidLocation,
double avoidanceRadius);
275 boost::shared_ptr<DtLuaAsyncJob> luaNavigateThroughFeatures(
const luabind::object& parameters);
277 void luaSendMessage(
const DtScriptVrfObject& receiver,
const std::string& message);
278 void luaSendRadioMessage(
const DtScriptVrfObject& receiver,
const std::string& message);
279 void luaDeleteObject(std::string
const& receiver);
286 const std::string& influenceName, luabind::object
const& influenceParams);
301 virtual void luaSetPrecipitationIntensity(
DtScriptVrfObject&
object,
double intensity);
304 virtual void luaSetVisibilityDistance(
DtScriptVrfObject&
object,
double distance);
307 virtual void luaSetUnderwaterVisibility(
DtScriptVrfObject&
object,
double visibility);
308 virtual void luaSetSurfaceTransparency(
DtScriptVrfObject&
object,
double transparency);
310 virtual void luaSetSwellStateDirection(
DtScriptVrfObject&
object,
double direction);
312 virtual void luaSetSeaStateDirection(
DtScriptVrfObject&
object,
double direction);
313 virtual void luaSetWindDrivenSeaStateEnabled(
DtScriptVrfObject&
object,
bool enabled);
317 virtual void luaSetFogColor(
DtScriptVrfObject&
object,
double red,
double green,
double blue);
341 virtual double luaGetFogHeightByLocation(
const DtLocation3D&
object);
342 virtual void luaGetFogColor(
DtScriptVrfObject&
object,
double* red,
double* green,
double* blue);
343 virtual void luaGetFogColorByLocation(
const DtLocation3D&
object,
double* red,
double* green,
double* blue);
347 virtual double luaGetAirTemperatureByLocation(
const DtLocation3D&
object);
348 virtual unsigned int luaGetPrecipitationByLocation(
const DtLocation3D& location,
double*);
349 virtual double luaGetPrecipitationIntensityByLocation(
const DtLocation3D&
object);
350 virtual unsigned int luaGetPrecipitationTypeByLocation(
const DtLocation3D&
object);
351 virtual int luaGetCloudCoverByLocation(
const DtLocation3D&
object);
352 virtual double luaGetVisibilityDistanceByLocation(
const DtLocation3D&
object);
353 virtual double luaGetWindDirectionByLocation(
const DtLocation3D&
object);
354 virtual double luaGetWindSpeedByLocation(
const DtLocation3D&
object);
355 virtual double luaGetUnderwaterVisibilityByLocation(
const DtLocation3D&
object);
356 virtual double luaGetSurfaceTransparencyByLocation(
const DtLocation3D&
object);
357 virtual unsigned int luaGetSwellStateByLocation(
const DtLocation3D&
object);
358 virtual double luaGetSwellStateDirectionByLocation(
const DtLocation3D&
object);
359 virtual unsigned int luaGetSeaStateByLocation(
const DtLocation3D&
object);
360 virtual double luaGetSeaStateDirectionByLocation(
const DtLocation3D&
object);
361 virtual bool luaGetWindDrivenSeaStateEnabledByLocation(
const DtLocation3D&
object);
362 virtual double luaGetChoppinessByLocation(
const DtLocation3D&
object);
363 virtual double luaGetSurgeDepthByLocation(
const DtLocation3D&
object);
364 virtual int luaGetPriorityByLocation(
const DtLocation3D&
object);
365 virtual double luaGetIlluminationByLocation(
const DtLocation3D&
object);
370 virtual double luaRunDurationTime();
371 virtual void luaRunForDuration(
double);
372 virtual void luaStopSimulationDurationTimer();
377 virtual void luaSetCheckpointMode(
bool);
378 virtual void initializeCheckpointStateTable(lua_State* L);
389 luabind::object
const& options,
int displayFlags);
391 luabind::object
const& options,
int displayFlags);
393 luabind::object
const& options,
int displayFlags);
394 virtual int luaAskUserQuestionSS(
const std::string& title,
const std::string& message,
395 luabind::object
const& options,
int displayFlags);
400 virtual int luaStatusOfUserQuestion(
int questionId);
403 virtual void luaCancelUserQuestion(
int questionId);
438 void luaCreateSelectionGroup(
const std::string& name, luabind::object
const& parameters);
441 bool luaUpdateTaskVisualization(
const std::string& visualizationName,
442 const std::string& visualizationType, luabind::object
const& parameters);
445 void luaDeleteTaskVisualization(
const std::string& visualizationName);
448 void luaRequire(lua_State* L,
const std::string&
filename);
452 unsigned luaBitwiseOr(
unsigned val1,
unsigned val2);
453 unsigned luaBitwiseAnd(
unsigned val1,
unsigned val2);
454 unsigned luaBitwiseXor(
unsigned val1,
unsigned val2);
455 unsigned luaBitwiseNot(
unsigned val);
456 unsigned luaBitwiseLeftShift(
unsigned val,
unsigned shift);
457 unsigned luaBitwiseRightShift(
unsigned val,
unsigned shift);
471 , myFunctionName(functionName)
481 std::string functionName()
const
483 return myFunctionName;
496 DtInfo <<
"DtLuaScriptFunctionReference::operator< attempt to compare with wrong type.\n";
508 const std::string& functionName);
512 const std::string& functionName);
521 virtual void putObjectsFromTableIntoGlobalTable(lua_State* state, luabind::object& table);
522 virtual void putObjectsFromGlobalTableIntoTable(lua_State* state, luabind::object& table);
528 virtual bool callLuaNoArgFunction(
const std::string& functionName,
bool* functionExists = 0);
530 virtual void updateFuncCallCount();
570 namespace luaScriptInterface
594 luabind::object
const& typeFilters,
bool observedOnly);
599 const std::string& propertyName, luabind::object
const& prop);
605 const std::string& propertyName, luabind::object
const& prop,
bool addIfNotFound);
615 luabind::object
const& keyValues, luabind::object
const& itemValue);
624 int index, luabind::object
const& itemValue);
634 luabind::object
const& keyValue, luabind::object
const& itemValue);
653 luabind::object
const& keyValues,
int& index);
675 luabind::object
const& keyValue);
694 luabind::object
const& keyValues,
int& index);
716 luabind::object
const& keyValue);
720 const luabind::object & value,