15 #include <luabind/luabind.hpp>
60 virtual void setLuaState(lua_State* L);
61 virtual lua_State* getLuaState();
63 virtual std::string dumpLuaStack()
const;
64 virtual int luaStackSize()
const;
65 virtual void collectGarbage();
92 virtual bool initializeVRFLuaExtensions(lua_State* L);
93 virtual bool importTaskParams(lua_State* L);
96 virtual luabind::object createLuaTableFromRegistry(lua_State* L,
const DtReaderWriterRegistry& rwRegistry,
bool requireMetadata =
true);
99 static void addKeyToIgnore(
const std::string&);
102 static void removeKeyToIgnore(
const std::string&);
105 void luaEndTask(
bool success);
112 virtual int luaSendEmbeddedEntityTask(std::string eeName, std::string taskName, luabind::object
const& parms);
113 virtual int luaSendEmbeddedEntityTaskActAsSubtask(std::string eeName, std::string taskName,
114 luabind::object
const& parms,
bool actAsSubtask);
116 virtual int luaSendEmbeddedEntitySet(std::string eeName, std::string setName, luabind::object
const& parms);
122 int luaStartSubtask(
const std::string taskName, luabind::object
const& parameters);
123 void luaStopSubtask(
int subtaskId);
125 void luaStopAllSubtasks();
127 bool luaIsSubtaskRunning(
int subtaskId);
129 bool luaIsSubtaskComplete(
int subtaskId);
131 bool luaIsSubtaskCanceled(
int subtaskId);
133 bool luaSubtaskResult(
int subtaskId);
137 void luaSendReportWithoutRecipients(const::std::string reportType,
138 luabind::object
const& parameters);
139 void luaSendReport(const::std::string reportType,
140 luabind::object
const& reciptients,
141 luabind::object
const& parameters);
145 luabind::object
const& parameters);
146 int luaSendTaskActAsSubtask(
DtScriptVrfObject&
object, const::std::string taskName,
147 luabind::object
const& parameters,
bool actAsSubtask);
150 void luaStopAllTasks();
153 void luaSendSetDataToSelf(const::std::string setName,
154 luabind::object
const& parameters);
158 luabind::object
const& parameters);
161 luabind::object luaGetReactionStatus();
164 std::string luaGetScriptId();
167 std::string luaGetSystemName();
170 luabind::object luaGetObjectsNearWithFilter(
const DtLocation3D& loc,
double distance, luabind::object
const& parameters);
172 luabind::object luaGetScriptAttribute(
const std::string& attributeName,
bool&
error);
175 luabind::object luaGetVrfObjects();
179 DtLuaFeatureSet luaGetFeaturesWithinArea(luabind::object
const& points, luabind::object
const& attributes);
180 DtLuaFeatureSet luaGetFeaturesWithinAreaNoAttributes(luabind::object
const& points);
188 boost::shared_ptr<DtLuaAsyncJob> generateRandomPoints(
const luabind::object& parameters);
191 boost::shared_ptr<DtLuaAsyncJob> findNearbyPointOfInterest(
const int type);
198 boost::shared_ptr<DtLuaAsyncJob> luaNavigateThroughFeatures(
const luabind::object& parameters);
200 void luaSendMessage(
const DtScriptVrfObject& receiver,
const std::string& message);
201 void luaDeleteObject(std::string
const& receiver);
208 const std::string& influenceName, luabind::object
const& influenceParams);
220 virtual void luaSetPrecipitationIntensity(
DtScriptVrfObject&
object,
double intensity);
223 virtual void luaSetVisibilityDistance(
DtScriptVrfObject&
object,
double distance);
226 virtual void luaSetUnderwaterVisibility(
DtScriptVrfObject&
object,
double visibility);
227 virtual void luaSetSurfaceTransparency(
DtScriptVrfObject&
object,
double transparency);
229 virtual void luaSetSwellStateDirection(
DtScriptVrfObject&
object,
double direction);
231 virtual void luaSetSeaStateDirection(
DtScriptVrfObject&
object,
double direction);
232 virtual void luaSetWindDrivenSeaStateEnabled(
DtScriptVrfObject&
object,
bool enabled);
259 virtual unsigned int luaGetPrecipitationByLocation(
const DtLocation3D& location,
double*);
260 virtual double luaGetPrecipitationIntensityByLocation(
const DtLocation3D&
object);
261 virtual unsigned int luaGetPrecipitationTypeByLocation(
const DtLocation3D&
object);
262 virtual int luaGetCloudCoverByLocation(
const DtLocation3D&
object);
263 virtual double luaGetVisibilityDistanceByLocation(
const DtLocation3D&
object);
264 virtual double luaGetWindDirectionByLocation(
const DtLocation3D&
object);
265 virtual double luaGetWindSpeedByLocation(
const DtLocation3D&
object);
266 virtual double luaGetUnderwaterVisibilityByLocation(
const DtLocation3D&
object);
267 virtual double luaGetSurfaceTransparencyByLocation(
const DtLocation3D&
object);
268 virtual unsigned int luaGetSwellStateByLocation(
const DtLocation3D&
object);
269 virtual double luaGetSwellStateDirectionByLocation(
const DtLocation3D&
object);
270 virtual unsigned int luaGetSeaStateByLocation(
const DtLocation3D&
object);
271 virtual double luaGetSeaStateDirectionByLocation(
const DtLocation3D&
object);
272 virtual bool luaGetWindDrivenSeaStateEnabledByLocation(
const DtLocation3D&
object);
273 virtual double luaGetChoppinessByLocation(
const DtLocation3D&
object);
274 virtual double luaGetSurgeDepthByLocation(
const DtLocation3D&
object);
275 virtual int luaGetPriorityByLocation(
const DtLocation3D&
object);
276 virtual double luaGetIlluminationByLocation(
const DtLocation3D&
object);
281 virtual double luaRunDurationTime();
282 virtual void luaRunForDuration(
double);
283 virtual void luaStopSimulationDurationTimer();
288 virtual void luaSetCheckpointMode(
bool);
289 virtual void initializeCheckpointStateTable(lua_State* L);
300 luabind::object
const& options,
int displayFlags);
302 luabind::object
const& options,
int displayFlags);
304 luabind::object
const& options,
int displayFlags);
305 virtual int luaAskUserQuestionSS(
const std::string& title,
const std::string& message,
306 luabind::object
const& options,
int displayFlags);
311 virtual int luaStatusOfUserQuestion(
int questionId);
314 virtual void luaCancelUserQuestion(
int questionId);
346 void luaCreateSelectionGroup(
const std::string& name, luabind::object
const& parameters);
349 bool luaUpdateTaskVisualization(
const std::string& visualizationName,
350 const std::string& visualizationType, luabind::object
const& parameters);
353 void luaDeleteTaskVisualization(
const std::string& visualizationName);
356 void luaRequire(lua_State* L,
const std::string& filename);
361 unsigned luaBitwiseOr(
unsigned val1,
unsigned val2);
362 unsigned luaBitwiseAnd(
unsigned val1,
unsigned val2);
363 unsigned luaBitwiseXor(
unsigned val1,
unsigned val2);
364 unsigned luaBitwiseNot(
unsigned val);
365 unsigned luaBitwiseLeftShift(
unsigned val,
unsigned shift);
366 unsigned luaBitwiseRightShift(
unsigned val,
unsigned shift);
381 , myFunctionName(functionName)
391 std::string functionName()
const
393 return myFunctionName;
406 DtInfo <<
"DtLuaScriptFunctionReference::operator< attempt to compare with wrong type.\n";
418 const std::string& functionName);
422 const std::string& functionName);
431 virtual void putObjectsFromTableIntoGlobalTable(lua_State* state, luabind::object& table);
432 virtual void putObjectsFromGlobalTableIntoTable(lua_State* state, luabind::object& table);
438 virtual bool callLuaNoArgFunction(
const std::string& functionName,
bool* functionExists = 0);
440 virtual void updateFuncCallCount();
477 namespace luaScriptInterface
501 luabind::object
const& typeFilters,
bool observedOnly);
506 const std::string& propertyName, luabind::object
const& prop);
512 const std::string& propertyName, luabind::object
const& prop,
bool addIfNotFound);
522 luabind::object
const& keyValues, luabind::object
const& itemValue);
532 luabind::object
const& keyValue, luabind::object
const& itemValue);
550 luabind::object
const& keyValues);
561 luabind::object
const& keyValue);
579 luabind::object
const& keyValues);
590 luabind::object
const& keyValue);
594 const luabind::object & value,