15 #include <luabind/luabind.hpp>
17 #include <vrfExtObjects/influenceInteractionHLA.h>
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);
192 boost::shared_ptr<DtLuaAsyncJob> luaNavigateThroughFeatures(
const luabind::object& parameters);
194 void luaSendMessage(
const DtScriptVrfObject& receiver,
const std::string& message);
195 void luaDeleteObject(std::string
const& receiver);
202 const std::string& influenceName, luabind::object
const& influenceParams);
205 static void influenceCallback(DtInfluenceInteraction* m,
void* usr);
206 virtual void processInfluence(DtInfluenceInteraction* m);
214 virtual void luaSetPrecipitationIntensity(
DtScriptVrfObject&
object,
double intensity);
217 virtual void luaSetVisibilityDistance(
DtScriptVrfObject&
object,
double distance);
220 virtual void luaSetUnderwaterVisibility(
DtScriptVrfObject&
object,
double visibility);
221 virtual void luaSetSurfaceTransparency(
DtScriptVrfObject&
object,
double transparency);
223 virtual void luaSetSwellStateDirection(
DtScriptVrfObject&
object,
double direction);
225 virtual void luaSetSeaStateDirection(
DtScriptVrfObject&
object,
double direction);
226 virtual void luaSetWindDrivenSeaStateEnabled(
DtScriptVrfObject&
object,
bool enabled);
253 virtual unsigned int luaGetPrecipitationByLocation(
const DtLocation3D& location,
double*);
254 virtual double luaGetPrecipitationIntensityByLocation(
const DtLocation3D&
object);
255 virtual unsigned int luaGetPrecipitationTypeByLocation(
const DtLocation3D&
object);
256 virtual int luaGetCloudCoverByLocation(
const DtLocation3D&
object);
257 virtual double luaGetVisibilityDistanceByLocation(
const DtLocation3D&
object);
258 virtual double luaGetWindDirectionByLocation(
const DtLocation3D&
object);
259 virtual double luaGetWindSpeedByLocation(
const DtLocation3D&
object);
260 virtual double luaGetUnderwaterVisibilityByLocation(
const DtLocation3D&
object);
261 virtual double luaGetSurfaceTransparencyByLocation(
const DtLocation3D&
object);
262 virtual unsigned int luaGetSwellStateByLocation(
const DtLocation3D&
object);
263 virtual double luaGetSwellStateDirectionByLocation(
const DtLocation3D&
object);
264 virtual unsigned int luaGetSeaStateByLocation(
const DtLocation3D&
object);
265 virtual double luaGetSeaStateDirectionByLocation(
const DtLocation3D&
object);
266 virtual bool luaGetWindDrivenSeaStateEnabledByLocation(
const DtLocation3D&
object);
267 virtual double luaGetChoppinessByLocation(
const DtLocation3D&
object);
268 virtual double luaGetSurgeDepthByLocation(
const DtLocation3D&
object);
269 virtual int luaGetPriorityByLocation(
const DtLocation3D&
object);
270 virtual double luaGetIlluminationByLocation(
const DtLocation3D&
object);
275 virtual double luaRunDurationTime();
276 virtual void luaRunForDuration(
double);
277 virtual void luaStopSimulationDurationTimer();
289 luabind::object
const& options,
int displayFlags);
291 luabind::object
const& options,
int displayFlags);
293 luabind::object
const& options,
int displayFlags);
294 virtual int luaAskUserQuestionSS(
const std::string& title,
const std::string& message,
295 luabind::object
const& options,
int displayFlags);
300 virtual int luaStatusOfUserQuestion(
int questionId);
303 virtual void luaCancelUserQuestion(
int questionId);
337 unsigned luaBitwiseOr(
unsigned val1,
unsigned val2);
338 unsigned luaBitwiseAnd(
unsigned val1,
unsigned val2);
339 unsigned luaBitwiseXor(
unsigned val1,
unsigned val2);
340 unsigned luaBitwiseNot(
unsigned val);
341 unsigned luaBitwiseLeftShift(
unsigned val,
unsigned shift);
342 unsigned luaBitwiseRightShift(
unsigned val,
unsigned shift);
354 , myFunctionName(functionName)
364 std::string functionName()
const
366 return myFunctionName;
379 DtInfo <<
"DtLuaScriptFunctionReference::operator< attempt to compare with wrong type.\n";
391 const std::string& functionName);
395 const std::string& functionName);
404 virtual bool callLuaNoArgFunction(
const std::string& functionName);
406 virtual void updateFuncCallCount();
441 namespace luaScriptInterface
465 luabind::object
const& typeFilters,
bool observedOnly);
470 const std::string& propertyName, luabind::object
const& prop);
480 luabind::object
const& keyValues, luabind::object
const& itemValue);
490 luabind::object
const& keyValue, luabind::object
const& itemValue);
508 luabind::object
const& keyValues);
519 luabind::object
const& keyValue);
537 luabind::object
const& keyValues);
548 luabind::object
const& keyValue);
552 const luabind::object & value,