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);
123 virtual int luaSendEmbeddedEntityTask(std::string eeName, std::string taskName, luabind::object
const& parms);
124 virtual int luaSendEmbeddedEntityTaskActAsSubtask(std::string eeName, std::string taskName,
125 luabind::object
const& parms,
bool actAsSubtask);
127 virtual int luaSendEmbeddedEntitySet(std::string eeName, std::string setName, luabind::object
const& parms);
133 int luaStartSubtask(
const std::string taskName, luabind::object
const& parameters);
134 void luaStopSubtask(
int subtaskId);
136 void luaStopAllSubtasks();
138 bool luaIsSubtaskRunning(
int subtaskId);
140 bool luaIsSubtaskComplete(
int subtaskId);
142 bool luaIsSubtaskCanceled(
int subtaskId);
144 bool luaSubtaskResult(
int subtaskId);
148 void luaCleanupInactiveSubtaskStatus();
152 void luaSendReportWithoutRecipients(const::std::string reportType,
153 luabind::object
const& parameters);
154 void luaSendReport(const::std::string reportType,
155 luabind::object
const& reciptients,
156 luabind::object
const& parameters);
160 luabind::object
const& parameters);
161 int luaSendTaskActAsSubtask(
DtScriptVrfObject&
object, const::std::string taskName,
162 luabind::object
const& parameters,
bool actAsSubtask);
165 void luaStopAllTasks();
168 void luaSendSetDataToSelf(const::std::string setName,
169 luabind::object
const& parameters);
173 luabind::object
const& parameters);
175 bool luaIsTaskAvailable(const::std::string taskName);
176 bool luaIsSetAvailable(const::std::string setName);
179 luabind::object luaGetReactionStatus();
182 std::string luaGetScriptId();
185 std::string luaGetSystemName();
188 luabind::object luaGetObjectsNearWithFilter(
const DtLocation3D& loc,
double distance, luabind::object
const& parameters);
190 luabind::object luaGetScriptAttribute(
const std::string& attributeName,
bool&
error);
193 luabind::object luaGetVrfObjects();
198 DtLuaFeatureSet luaGetFeaturesWithinArea(luabind::object
const& points, luabind::object
const& attributes);
200 DtLuaFeatureSet luaGetFeaturesWithinAreaNoAttributes(luabind::object
const& points);
225 boost::shared_ptr<DtLuaAsyncJob> generateRandomPoints(
const luabind::object& parameters);
228 boost::shared_ptr<DtLuaAsyncJob> findNearbyPointOfInterest(
const int type);
235 boost::shared_ptr<DtLuaAsyncJob> luaNavigateThroughFeatures(
const luabind::object& parameters);
237 void luaSendMessage(
const DtScriptVrfObject& receiver,
const std::string& message);
238 void luaDeleteObject(std::string
const& receiver);
245 const std::string& influenceName, luabind::object
const& influenceParams);
260 virtual void luaSetPrecipitationIntensity(
DtScriptVrfObject&
object,
double intensity);
263 virtual void luaSetVisibilityDistance(
DtScriptVrfObject&
object,
double distance);
266 virtual void luaSetUnderwaterVisibility(
DtScriptVrfObject&
object,
double visibility);
267 virtual void luaSetSurfaceTransparency(
DtScriptVrfObject&
object,
double transparency);
269 virtual void luaSetSwellStateDirection(
DtScriptVrfObject&
object,
double direction);
271 virtual void luaSetSeaStateDirection(
DtScriptVrfObject&
object,
double direction);
272 virtual void luaSetWindDrivenSeaStateEnabled(
DtScriptVrfObject&
object,
bool enabled);
276 virtual void luaSetFogColor(
DtScriptVrfObject&
object,
double red,
double green,
double blue);
300 virtual double luaGetFogHeightByLocation(
const DtLocation3D&
object);
301 virtual void luaGetFogColor(
DtScriptVrfObject&
object,
double* red,
double* green,
double* blue);
302 virtual void luaGetFogColorByLocation(
const DtLocation3D&
object,
double* red,
double* green,
double* blue);
306 virtual double luaGetAirTemperatureByLocation(
const DtLocation3D&
object);
307 virtual unsigned int luaGetPrecipitationByLocation(
const DtLocation3D& location,
double*);
308 virtual double luaGetPrecipitationIntensityByLocation(
const DtLocation3D&
object);
309 virtual unsigned int luaGetPrecipitationTypeByLocation(
const DtLocation3D&
object);
310 virtual int luaGetCloudCoverByLocation(
const DtLocation3D&
object);
311 virtual double luaGetVisibilityDistanceByLocation(
const DtLocation3D&
object);
312 virtual double luaGetWindDirectionByLocation(
const DtLocation3D&
object);
313 virtual double luaGetWindSpeedByLocation(
const DtLocation3D&
object);
314 virtual double luaGetUnderwaterVisibilityByLocation(
const DtLocation3D&
object);
315 virtual double luaGetSurfaceTransparencyByLocation(
const DtLocation3D&
object);
316 virtual unsigned int luaGetSwellStateByLocation(
const DtLocation3D&
object);
317 virtual double luaGetSwellStateDirectionByLocation(
const DtLocation3D&
object);
318 virtual unsigned int luaGetSeaStateByLocation(
const DtLocation3D&
object);
319 virtual double luaGetSeaStateDirectionByLocation(
const DtLocation3D&
object);
320 virtual bool luaGetWindDrivenSeaStateEnabledByLocation(
const DtLocation3D&
object);
321 virtual double luaGetChoppinessByLocation(
const DtLocation3D&
object);
322 virtual double luaGetSurgeDepthByLocation(
const DtLocation3D&
object);
323 virtual int luaGetPriorityByLocation(
const DtLocation3D&
object);
324 virtual double luaGetIlluminationByLocation(
const DtLocation3D&
object);
329 virtual double luaRunDurationTime();
330 virtual void luaRunForDuration(
double);
331 virtual void luaStopSimulationDurationTimer();
336 virtual void luaSetCheckpointMode(
bool);
337 virtual void initializeCheckpointStateTable(lua_State* L);
348 luabind::object
const& options,
int displayFlags);
350 luabind::object
const& options,
int displayFlags);
352 luabind::object
const& options,
int displayFlags);
353 virtual int luaAskUserQuestionSS(
const std::string& title,
const std::string& message,
354 luabind::object
const& options,
int displayFlags);
359 virtual int luaStatusOfUserQuestion(
int questionId);
362 virtual void luaCancelUserQuestion(
int questionId);
394 void luaCreateSelectionGroup(
const std::string& name, luabind::object
const& parameters);
397 bool luaUpdateTaskVisualization(
const std::string& visualizationName,
398 const std::string& visualizationType, luabind::object
const& parameters);
401 void luaDeleteTaskVisualization(
const std::string& visualizationName);
404 void luaRequire(lua_State* L,
const std::string&
filename);
408 unsigned luaBitwiseOr(
unsigned val1,
unsigned val2);
409 unsigned luaBitwiseAnd(
unsigned val1,
unsigned val2);
410 unsigned luaBitwiseXor(
unsigned val1,
unsigned val2);
411 unsigned luaBitwiseNot(
unsigned val);
412 unsigned luaBitwiseLeftShift(
unsigned val,
unsigned shift);
413 unsigned luaBitwiseRightShift(
unsigned val,
unsigned shift);
427 , myFunctionName(functionName)
437 std::string functionName()
const
439 return myFunctionName;
452 DtInfo <<
"DtLuaScriptFunctionReference::operator< attempt to compare with wrong type.\n";
464 const std::string& functionName);
468 const std::string& functionName);
477 virtual void putObjectsFromTableIntoGlobalTable(lua_State* state, luabind::object& table);
478 virtual void putObjectsFromGlobalTableIntoTable(lua_State* state, luabind::object& table);
484 virtual bool callLuaNoArgFunction(
const std::string& functionName,
bool* functionExists = 0);
486 virtual void updateFuncCallCount();
526 namespace luaScriptInterface
550 luabind::object
const& typeFilters,
bool observedOnly);
555 const std::string& propertyName, luabind::object
const& prop);
561 const std::string& propertyName, luabind::object
const& prop,
bool addIfNotFound);
571 luabind::object
const& keyValues, luabind::object
const& itemValue);
580 int index, luabind::object
const& itemValue);
590 luabind::object
const& keyValue, luabind::object
const& itemValue);
609 luabind::object
const& keyValues,
int& index);
631 luabind::object
const& keyValue);
650 luabind::object
const& keyValues,
int& index);
672 luabind::object
const& keyValue);
676 const luabind::object & value,