VR-Forces 4.7 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
luaScriptInterfaceImpl.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2014 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 #pragma once
6 
7 #include <vrfLua/vrfLuaDefines.h>
8 #include <vrfLua/luaFeatureSet.h>
9 #include <vrfLua/luaPathJob.h>
10 
13 #include "vrfutil/scriptGeometry.h"
15 #include <luabind/luabind.hpp>
19 #include <vrfutil/objectCounter.h>
20 //TMP
21 #include <vrfcore/simManager.h>
22 #include <vrfcore/exerciseClock.h>
23 
24 #include <lua.hpp>
25 #include <lauxlib.h>
26 #include <lualib.h>
27 
32 typedef luabind::object (*ReaderWriterToLuaTableFcn)(lua_State* LS, const DtReaderWriter* rwString,
33  DtVrfObjectManager* mgr, const DtString& parameterType);
34 
36  : public DtScriptInterface
37  , public DtObjectDebugger<DtLuaScriptInterfaceImpl>
38 {
39 protected:
41 
44 
45 public:
46  virtual ~DtLuaScriptInterfaceImpl();
47 
48  static DtScriptInterface* creator();
49 
50  virtual void init();
51 
52  virtual DtString type() const;
53 
54  virtual bool invokeInit();
55  virtual void invokeSuspend();
56  virtual bool invokeResume();
57  virtual void invokeTick();
58  virtual bool invokeCheck();
59  virtual void invokeCheckInit();
60  virtual void invokeShutdown();
61 
64  virtual void invokeDisable();
65 
66  virtual bool loadScript(bool reload);
67 
68  virtual void setLuaState(lua_State* L);
69  virtual lua_State* getLuaState();
70 
71  virtual std::string dumpLuaStack() const;
72  virtual int luaStackSize() const;
73  virtual void collectGarbage();
74 
75  virtual DtReaderWriter* saveState();
76  virtual bool loadState(const DtReaderWriter* loadState);
77  virtual void processClearForReuse();
78 
83  static void addLuaScriptInterfaceExtension(DtLuaScriptInterfaceExtension::CreatorFcn extension, void* usr);
84 
89  static void addLuaScriptInterfaceExtension(DtLuaScriptInterfaceExtension::CreatorFcn extension,
90  const DtVrfObject* onlyForEntity, void* usr);
91 
93  static void removeLuaScriptInterfaceExtension(DtLuaScriptInterfaceExtension::CreatorFcn extension, void* usr);
94 
97  static void removeLuaScriptInterfaceExtension(DtLuaScriptInterfaceExtension::CreatorFcn extension,
98  const DtVrfObject* onlyForEntity, void* usr);
99 
100  virtual bool initializeVRFLuaExtensions(lua_State* L);
101  virtual bool importTaskParams(lua_State* L);
102 
104  virtual bool importSetParams(lua_State* L);
105 
107  virtual luabind::object createLuaTableFromRegistry(lua_State* L, const DtReaderWriterRegistry& rwRegistry, bool requireMetadata = true);
108 
110  static void addKeyToIgnore(const std::string&);
111 
113  static void removeKeyToIgnore(const std::string&);
114 
116  void luaEndTask(bool success);
117  void luaEndSet();
118 
120 
122 
123  virtual void luaPlayScenarioEvent(DtScriptVrfObject eventName);
124  virtual void luaStopScenarioEvent(DtScriptVrfObject eventName);
125  virtual void luaStopScenarioEventWithRewind(DtScriptVrfObject eventName, bool rewind);
126  virtual bool luaIsScenarioEventPlaying(DtScriptVrfObject eventName);
127  virtual void luaSetScenarioEventEnabled(DtScriptVrfObject eventName, bool);
128  virtual bool luaIsScenarioEventEnabled(DtScriptVrfObject eventName);
130 
132 
133 
134  virtual int luaSendEmbeddedEntityTask(std::string eeName, std::string taskName, luabind::object const& parms);
135  virtual int luaSendEmbeddedEntityTaskActAsSubtask(std::string eeName, std::string taskName,
136  luabind::object const& parms, bool actAsSubtask);
138  virtual int luaSendEmbeddedEntitySet(std::string eeName, std::string setName, luabind::object const& parms);
140 
142 
143 
144  int luaStartSubtask(const std::string taskName, luabind::object const& parameters);
145  void luaStopSubtask(int subtaskId);
147  void luaStopAllSubtasks();
149  bool luaIsSubtaskRunning(int subtaskId);
151  bool luaIsSubtaskComplete(int subtaskId);
153  bool luaIsSubtaskCanceled(int subtaskId);
155  bool luaSubtaskResult(int subtaskId);
159  void luaCleanupInactiveSubtaskStatus();
161 
163  void luaSendReportWithoutRecipients(const::std::string reportType,
164  luabind::object const& parameters);
165  void luaSendReport(const::std::string reportType,
166  luabind::object const& reciptients,
167  luabind::object const& parameters);
168 
170  int luaSendTask(DtScriptVrfObject& object, const::std::string taskName,
171  luabind::object const& parameters);
172  int luaSendTaskActAsSubtask(DtScriptVrfObject& object, const::std::string taskName,
173  luabind::object const& parameters, bool actAsSubtask);
174  int luaSendRadioTask(DtScriptVrfObject& object, const::std::string taskName,
175  luabind::object const& parameters);
176  int luaSendRadioTaskActAsSubtask(DtScriptVrfObject& object, const::std::string taskName,
177  luabind::object const& parameters, bool actAsSubtask);
178  int luaSendTaskActAsSubtaskWithRadio(DtScriptVrfObject& object, const::std::string taskName,
179  luabind::object const& parameters, bool actAsSubtask, bool sendWithRadio);
180 
182  void luaStopAllTasks();
183 
185  void luaSendSetDataToSelf(const::std::string setName,
186  luabind::object const& parameters);
187 
189  void luaSendSetData(DtScriptVrfObject& object, const::std::string setName,
190  luabind::object const& parameters);
191  void luaSendRadioSetData(DtScriptVrfObject& object, const::std::string setName,
192  luabind::object const& parameters);
193  void sendSetDataWithRadio(DtScriptVrfObject& object, const::std::string setName,
194  luabind::object const& parameters, bool useRadio);
195 
196  bool luaIsTaskAvailable(const::std::string taskName);
197  bool luaIsSetAvailable(const::std::string setName);
198 
200  luabind::object luaGetReactionStatus();
201 
210  luabind::object luaGetOrbatList();
211 
213  std::string luaGetScriptId();
214 
216  std::string luaGetSystemName();
217 
218  luabind::object luaGetObjectsNear(const DtLocation3D& loc, double distance);
219  luabind::object luaGetObjectsNearWithFilter(const DtLocation3D& loc, double distance, luabind::object const& parameters);
220 
221  luabind::object luaGetScriptAttribute(const std::string& attributeName, bool& error);
222 
224  luabind::object luaGetVrfObjects();
225 
227 
228  luabind::object luaGetDesignatorsNearWithFilter(const DtLocation3D& loc, double distance,
229  const luabind::object& params);
230 
231  luabind::object luaGetDesignatorsNear(const DtLocation3D& loc, double distance);
233 
235 
236 
237  DtLuaFeatureSet luaGetFeaturesWithinArea(luabind::object const& points, luabind::object const& attributes);
239  DtLuaFeatureSet luaGetFeaturesWithinAreaNoAttributes(luabind::object const& points);
240 
243  DtLuaFeatureSet luaGetFeaturesWithinRange(const DtLocation3D&, double range, luabind::object const& attributes);
245  DtLuaFeatureSet luaGetFeaturesWithinRangeNoAttributes(const DtLocation3D&, double range);
246 
248  DtLuaFeatureSet luaGetFeaturesType(const std::string& type);
250  DtLuaFeatureSet luaGetFeatures();
252 
254 
255 
256  DtLuaFeatureGeometry luaMakePointGeometry(const DtLocation3D&);
258  DtLuaFeatureGeometry luaMakePathGeometry(const std::vector<DtLocation3D>&);
260  DtLuaFeatureGeometry luaMakeAreaGeometry(const std::vector<DtLocation3D>&);
262 
264  boost::shared_ptr<DtLuaAsyncJob> generateRandomPoints(const luabind::object& parameters);
265 
267  boost::shared_ptr<DtLuaAsyncJob> findNearbyPointOfInterest(const int type);
268 
270  boost::shared_ptr<DtLuaAsyncJob> findCoverPoint(
271  const DtLocation3D& startLocation, const DtLocation3D& threatLocation,
272  double threatRadius, double distanceFromThreat, double range, unsigned numberOfPoints);
273 
275  boost::shared_ptr<DtLuaAsyncJob> findPathToLocation(
276  const DtLocation3D& startLocation, const DtLocation3D& destinationLocation,
277  bool useAbstractGraphs, const DtLocation3D& avoidLocation, double avoidanceRadius);
278 
280  DtTranslatableStream translateStringFromScript(const std::string& format);
281 
284  boost::shared_ptr<DtLuaAsyncJob> luaNavigateThroughFeatures(const luabind::object& parameters);
285 
287  boost::shared_ptr<DtLuaAsyncJob> getEmbarkationSlots(DtScriptVrfObject& object);
288 
290  boost::shared_ptr<DtLuaAsyncJob> reserveEmbarkationSlot(DtScriptVrfObject& object, int slotNumber);
291 
292  void luaSendMessage(const DtScriptVrfObject& receiver, const std::string& message);
293  void luaSendRadioMessage(const DtScriptVrfObject& receiver, const std::string& message);
294  void luaDeleteObject(std::string const& receiver);
295  void luaDeleteScriptObject(const DtScriptVrfObject& receiver);
296 
297  static void textReportCallback(const DtVrfObjectMessage* m, void* usr);
298  virtual void processTextReport(const DtVrfObjectMessage* m);
299 
300  void luaSendInfluence(const DtScriptVrfObject& target,
301  const std::string& influenceName, luabind::object const& influenceParams);
302 
304  static void addReaderWriterToLuaTableFunction(const DtString&, ReaderWriterToLuaTableFcn);
305 
306 #ifdef DtHLA
307  static void influenceCallback(DtInfluenceInteractionExtension* m, void* usr);
308  virtual void processInfluence(DtInfluenceInteractionExtension* m);
309 #endif
310 
312  virtual void processEntityDestroyed();
313 
315 
316  virtual void luaSetCloudLayerType(DtScriptVrfObject& object, int value);
317  virtual void luaSetCloudLayerAltitude(DtScriptVrfObject& object, double value);
318  virtual void luaSetCloudLayerThickness(DtScriptVrfObject& object, double value);
319  virtual void luaSetCloudCornerRadius(DtScriptVrfObject& object, double value);
320  virtual void luaSetCloudLayerDensity(DtScriptVrfObject& object, double value);
321  virtual void luaSetCloudLayerBox(DtScriptVrfObject& object, const DtLocation3D& location, double width, double length);
322 
323  virtual DtScriptVrfObject luaGetCloudLayer(const DtLocation3D& location);
324  virtual std::vector<DtScriptVrfObject> luaGetCloudLayers();
325  virtual int luaGetCloudLayerType(DtScriptVrfObject& object);
326  virtual double luaGetCloudLayerAltitude(DtScriptVrfObject& object);
327  virtual double luaGetCloudLayerThickness(DtScriptVrfObject& object);
328  virtual double luaGetCloudCornerRadius(DtScriptVrfObject& object);
329  virtual double luaGetCloudLayerDensity(DtScriptVrfObject& object);
330  virtual void luaGetCloudLayerBox(DtScriptVrfObject& object, DtLocation3D& center, double* width, double* length);
332 
335  virtual void luaSetPrecipitationIntensity(DtScriptVrfObject& object, double intensity);
336  virtual void luaSetPrecipitationType(DtScriptVrfObject& object, int type);
337  virtual void luaSetCloudCover(DtScriptVrfObject& object, int state);
338  virtual void luaSetVisibilityDistance(DtScriptVrfObject& object, double distance);
339  virtual void luaSetWindDirection(DtScriptVrfObject& object, double);
340  virtual void luaSetWindSpeed(DtScriptVrfObject& object, double);
341  virtual void luaSetUnderwaterVisibility(DtScriptVrfObject& object, double visibility);
342  virtual void luaSetSurfaceTransparency(DtScriptVrfObject& object, double transparency);
343  virtual void luaSetSwellState(DtScriptVrfObject& object, unsigned int state);
344  virtual void luaSetSwellStateDirection(DtScriptVrfObject& object, double direction);
345  virtual void luaSetSeaState(DtScriptVrfObject& object, unsigned int state);
346  virtual void luaSetSeaStateDirection(DtScriptVrfObject& object, double direction);
347  virtual void luaSetWindDrivenSeaStateEnabled(DtScriptVrfObject& object, bool enabled);
348  virtual void luaSetChoppiness(DtScriptVrfObject& object, double choppiness);
349  virtual void luaSetSurgeDepth(DtScriptVrfObject& object, double depth);
350  virtual void luaSetFogHeight(DtScriptVrfObject& object, double depth);
351  virtual void luaSetFogColor(DtScriptVrfObject& object, double red, double green, double blue);
352  virtual void luaSetPriority(DtScriptVrfObject& object, int);
353 
354  virtual bool isWeatherObject(DtScriptVrfObject&) const;
355  virtual bool isCloudLayer(DtScriptVrfObject&) const;
356 
357  virtual double luaGetAirTemperature(DtScriptVrfObject& object);
358  virtual unsigned int luaGetPrecipitation(DtScriptVrfObject& object, double*);
359  virtual double luaGetPrecipitationIntensity(DtScriptVrfObject& object);
360  virtual unsigned int luaGetPrecipitationType(DtScriptVrfObject& object);
361  virtual int luaGetCloudCover(DtScriptVrfObject& object);
362  virtual double luaGetVisibilityDistance(DtScriptVrfObject& object);
363  virtual double luaGetWindDirection(DtScriptVrfObject& object);
364  virtual double luaGetWindSpeed(DtScriptVrfObject& object);
365  virtual double luaGetUnderwaterVisibility(DtScriptVrfObject& object);
366  virtual double luaGetSurfaceTransparency(DtScriptVrfObject& object);
367  virtual unsigned int luaGetSwellState(DtScriptVrfObject& object);
368  virtual double luaGetSwellStateDirection(DtScriptVrfObject& object);
369  virtual unsigned int luaGetSeaState(DtScriptVrfObject& object);
370  virtual double luaGetSeaStateDirection(DtScriptVrfObject& object);
371  virtual bool luaGetWindDrivenSeaStateEnabled(DtScriptVrfObject& object);
372  virtual double luaGetChoppiness(DtScriptVrfObject& object);
373  virtual double luaGetSurgeDepth(DtScriptVrfObject& object);
374  virtual double luaGetFogHeight(DtScriptVrfObject& object);
375  virtual double luaGetFogHeightByLocation(const DtLocation3D& object);
376  virtual void luaGetFogColor(DtScriptVrfObject& object, double* red, double* green, double* blue);
377  virtual void luaGetFogColorByLocation(const DtLocation3D& object, double* red, double* green, double* blue);
378  virtual int luaGetPriority(DtScriptVrfObject& object);
379  virtual double luaGetIllumination(DtScriptVrfObject& object);
380  virtual double luaGetExpectedIllumination(DtScriptVrfObject& object, double dateAndTimeOfDay);
381 
382  virtual double luaGetAirTemperatureByLocation(const DtLocation3D& object);
383  virtual unsigned int luaGetPrecipitationByLocation(const DtLocation3D& location, double*);
384  virtual double luaGetPrecipitationIntensityByLocation(const DtLocation3D& object);
385  virtual unsigned int luaGetPrecipitationTypeByLocation(const DtLocation3D& object);
386  virtual int luaGetCloudCoverByLocation(const DtLocation3D& object);
387  virtual double luaGetVisibilityDistanceByLocation(const DtLocation3D& object);
388  virtual double luaGetWindDirectionByLocation(const DtLocation3D& object);
389  virtual double luaGetWindSpeedByLocation(const DtLocation3D& object);
390  virtual double luaGetUnderwaterVisibilityByLocation(const DtLocation3D& object);
391  virtual double luaGetSurfaceTransparencyByLocation(const DtLocation3D& object);
392  virtual unsigned int luaGetSwellStateByLocation(const DtLocation3D& object);
393  virtual double luaGetSwellStateDirectionByLocation(const DtLocation3D& object);
394  virtual unsigned int luaGetSeaStateByLocation(const DtLocation3D& object);
395  virtual double luaGetSeaStateDirectionByLocation(const DtLocation3D& object);
396  virtual bool luaGetWindDrivenSeaStateEnabledByLocation(const DtLocation3D& object);
397  virtual double luaGetChoppinessByLocation(const DtLocation3D& object);
398  virtual double luaGetSurgeDepthByLocation(const DtLocation3D& object);
399  virtual int luaGetPriorityByLocation(const DtLocation3D& object);
400  virtual double luaGetIlluminationByLocation(const DtLocation3D& object);
401  virtual double luaGetExpectedIlluminationByLocation(const DtLocation3D& object, double dateAndTimeOfDay);
403 
406  virtual double luaRunDurationTime();
407  virtual void luaRunForDuration(double);
408  virtual void luaStopSimulationDurationTimer();
410 
413  virtual void luaSetCheckpointMode(bool);
414  virtual void initializeCheckpointStateTable(lua_State* L);
415 
424  virtual int luaAskUserQuestion(const DtTranslatableStream& title, const DtTranslatableStream& message,
425  luabind::object const& options, int displayFlags);
426  virtual int luaAskUserQuestionST(const std::string& title, const DtTranslatableStream& message,
427  luabind::object const& options, int displayFlags);
428  virtual int luaAskUserQuestionTS(const DtTranslatableStream& title, const std::string& message,
429  luabind::object const& options, int displayFlags);
430  virtual int luaAskUserQuestionSS(const std::string& title, const std::string& message,
431  luabind::object const& options, int displayFlags);
432 
436  virtual int luaStatusOfUserQuestion(int questionId);
437 
439  virtual void luaCancelUserQuestion(int questionId);
440 
444 
446  DtScriptVrfObject luaCreateEntity(luabind::object const& parameters);
447 
449  DtScriptVrfObject luaCreateFromOrbat(std::string orbatItem, const DtLocation3D& loc);
450 
452  DtScriptVrfObject luaGetGlobalWeather();
453 
455  DtScriptVrfObject luaCreateTacticalGraphic(luabind::object const& parameters);
456 
458  DtScriptVrfObject luaCreateObstacle(luabind::object const& parameters);
459 
461  DtScriptVrfObject luaCreateRoute(luabind::object const& parameters);
462 
464  DtScriptVrfObject luaCreateArea(luabind::object const& parameters);
465 
467  DtScriptVrfObject luaCreateWaypoint(luabind::object const& parameters);
468 
470  DtScriptVrfObject luaCreatePhaseLine(luabind::object const& parameters);
472 
474  void luaCreateSelectionGroup(const std::string& name, luabind::object const& parameters);
475 
477  bool luaUpdateTaskVisualization(const std::string& visualizationName,
478  const std::string& visualizationType, luabind::object const& parameters);
479 
481  void luaDeleteTaskVisualization(const std::string& visualizationName);
482 
484  void luaRequire(lua_State* L, const std::string& filename);
485 
488  unsigned luaBitwiseOr(unsigned val1, unsigned val2);
489  unsigned luaBitwiseAnd(unsigned val1, unsigned val2);
490  unsigned luaBitwiseXor(unsigned val1, unsigned val2);
491  unsigned luaBitwiseNot(unsigned val);
492  unsigned luaBitwiseLeftShift(unsigned val, unsigned shift);
493  unsigned luaBitwiseRightShift(unsigned val, unsigned shift);
495 
496  bool luaIntersectSegments2D(const DtLocation3D& p1, const DtLocation3D& p2, const DtLocation3D& p3, const DtLocation3D& p4,
497  DtLocation3D& intersectPoint);
498 
503  {
504  public:
505  DtLuaScriptFunctionReference(const std::string& functionName)
507  , myFunctionName(functionName)
508  {
509 
510  }
511 
513  {
514 
515  }
516 
517  std::string functionName() const
518  {
519  return myFunctionName;
520  }
521 
522  virtual bool operator<(const DtScriptFunctionReference& other) const
523  {
524  try
525  {
526  const DtLuaScriptFunctionReference& rhs =
527  dynamic_cast<const DtLuaScriptFunctionReference&>(other);
528  return myFunctionName.compare(rhs.myFunctionName) < 0;
529  }
530  catch(...)
531  {
532  DtInfo << "DtLuaScriptFunctionReference::operator< attempt to compare with wrong type.\n";
533  return false;
534  }
535  }
536 
537  protected:
538  std::string myFunctionName;
539  };
540 
543  virtual void addPostSetDataCallback(const std::string& setDataType,
544  const std::string& functionName);
547  virtual void removePostSetDataCallback(const std::string& setDataType,
548  const std::string& functionName);
549 
552  virtual void invokePostSetDataCallback(
553  DtScriptFunctionReferencePtr functionReference,
554  DtSetDataRequestMessage* setDatRequest);
555 
561  virtual luabind::object luaGetParamPropertyFromType(
562  const std::string typeString, std::string const& paramName);
563 
565  virtual void putObjectsFromTableIntoGlobalTable(lua_State* state, luabind::object& table);
566  virtual void putObjectsFromGlobalTableIntoTable(lua_State* state, luabind::object& table);
567 
568 protected:
572  virtual bool callLuaNoArgFunction(const std::string& functionName, bool* functionExists = 0);
573 
574  virtual void updateFuncCallCount();
575 
576  lua_State* myLState;
577  unsigned myFuncCallCount;
579 
580  typedef std::vector<DtLuaScriptInterfaceExtension*> LocalInterfaceExtensions;
582 
584  {
585  LuaExtension() : creator(0), onlyForEntity(0), usr(0) {};
586  LuaExtension(const LuaExtension& orig) : creator(orig.creator), onlyForEntity(orig.onlyForEntity),
587  usr(orig.usr) {};
588 
591  void* usr;
592  };
593 
594  typedef std::vector<LuaExtension> GlobalInterfaceExtensions;
595 
597 
598  luabind::object* myCheckpointStateTable;
599 
600  typedef std::map<DtString, ReaderWriterToLuaTableFcn> ReaderWriterToLuaTableMap;
602 };
603 
605 
614 namespace luaScriptInterface
615 {
616  typedef luabind::object (*rwToLuaBindObjectFcn)(
617  DtReaderWriter* rw, lua_State* L);
618 
619  luabind::object luaGetEntityParam(lua_State* L,
620  const DtScriptVrfObject& entity, std::string const& paramName);
621 
622  luabind::object luaGetSystemAttribute(
623  const DtScriptComponentSystem& system, const std::string& attributeName
624  , bool *error
625  , lua_State *L
626  );
627 
629  luabind::object luaGetContactInfo(lua_State* L, const DtScriptVrfObject& thisEntity,
630  const DtScriptVrfObject& otherEntity);
631 
636  std::list<DtScriptVrfObject> luaGetContactsWithFilter(
637  lua_State* L, const DtScriptVrfObject& entity,
638  luabind::object const& typeFilters, bool observedOnly);
639 
642  bool luaSetStateProperty(lua_State* L, const DtScriptVrfObject& entity,
643  const std::string& propertyName, luabind::object const& prop);
644 
648  bool luaSetOrAddStateProperty(lua_State* L, const DtScriptVrfObject& entity,
649  const std::string& propertyName, luabind::object const& prop, bool addIfNotFound);
650 
657  bool luaSetStatePropertyListItem(lua_State* L,
658  const DtScriptVrfObject& entity, const std::string& propertyName,
659  luabind::object const& keyValues, luabind::object const& itemValue);
660 
667  lua_State* L, const DtScriptVrfObject& entity, const std::string& propertyName,
668  int index, luabind::object const& itemValue);
669 
676  bool luaSetStatePropertyMapItem(lua_State* L,
677  const DtScriptVrfObject& entity, const std::string& propertyName,
678  luabind::object const& keyValue, luabind::object const& itemValue);
679 
684  luabind::object luaGetStateProperty(lua_State* L,
685  const DtScriptVrfObject& entity, const std::string& propertyName);
686 
695  luabind::object luaGetStatePropertyListItem(lua_State* L,
696  const DtScriptVrfObject& entity, const std::string& propertyName,
697  luabind::object const& keyValues, int& index);
698 
706  luabind::object luaGetStatePropertyListItemByIndex(lua_State* L,
707  const DtScriptVrfObject& entity, const std::string& propertyName,
708  int index);
709 
717  luabind::object luaGetStatePropertyMapItem(lua_State* L,
718  const DtScriptVrfObject& entity, const std::string& propertyName,
719  luabind::object const& keyValue);
720 
725  luabind::object luaGetParamProperty(lua_State* L,
726  const DtScriptVrfObject& entity, std::string const& paramName);
727 
736  luabind::object luaGetParameterPropertyListItem(lua_State* L,
737  const DtScriptVrfObject& entity, const std::string& propertyName,
738  luabind::object const& keyValues, int& index);
739 
747  luabind::object luaGetParameterPropertyListItemByIndex(lua_State* L,
748  const DtScriptVrfObject& entity, const std::string& propertyName,
749  int index);
750 
758  luabind::object luaGetParameterPropertyMapItem(lua_State* L,
759  const DtScriptVrfObject& entity, const std::string& propertyName,
760  luabind::object const& keyValue);
761 
763  DtScriptComponentSystem& system, const std::string& attributeName,
764  const luabind::object & value,
765  lua_State *L);
766 
767  static const std::map<DtString, rwToLuaBindObjectFcn>& rwToLuaBindObjectMap();
768 };

Document ID: Generated on Fri Apr 26 21:53:14 EDT 2019 from SVN revision 197883
Copyright © 2005-2019 VT MAK. All Rights Reserved (www.mak.com)