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();
295 luabind::object
const& options,
int displayFlags);
297 luabind::object
const& options,
int displayFlags);
299 luabind::object
const& options,
int displayFlags);
300 virtual int luaAskUserQuestionSS(
const std::string& title,
const std::string& message,
301 luabind::object
const& options,
int displayFlags);
306 virtual int luaStatusOfUserQuestion(
int questionId);
309 virtual void luaCancelUserQuestion(
int questionId);
341 bool luaUpdateTaskVisualization(
const std::string& visualizationName,
342 const std::string& visualizationType, luabind::object
const& parameters);
345 void luaDeleteTaskVisualization(
const std::string& visualizationName);
350 unsigned luaBitwiseOr(
unsigned val1,
unsigned val2);
351 unsigned luaBitwiseAnd(
unsigned val1,
unsigned val2);
352 unsigned luaBitwiseXor(
unsigned val1,
unsigned val2);
353 unsigned luaBitwiseNot(
unsigned val);
354 unsigned luaBitwiseLeftShift(
unsigned val,
unsigned shift);
355 unsigned luaBitwiseRightShift(
unsigned val,
unsigned shift);
367 , myFunctionName(functionName)
377 std::string functionName()
const
379 return myFunctionName;
392 DtInfo <<
"DtLuaScriptFunctionReference::operator< attempt to compare with wrong type.\n";
404 const std::string& functionName);
408 const std::string& functionName);
417 virtual bool callLuaNoArgFunction(
const std::string& functionName);
419 virtual void updateFuncCallCount();
454 namespace luaScriptInterface
478 luabind::object
const& typeFilters,
bool observedOnly);
483 const std::string& propertyName, luabind::object
const& prop);
493 luabind::object
const& keyValues, luabind::object
const& itemValue);
503 luabind::object
const& keyValue, luabind::object
const& itemValue);
521 luabind::object
const& keyValues);
532 luabind::object
const& keyValue);
550 luabind::object
const& keyValues);
561 luabind::object
const& keyValue);
565 const luabind::object & value,