VR-Forces 4.1 Class Documentation
luaScriptInterfaceImpl.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2012 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 #pragma once
6 
7 #include <vrfLua/vrfLuaDefines.h>
8 #include <vrfLua/luaFeatureSet.h>
9 
11 #include "vrfutil/scriptGeometry.h"
13 #include <luabind/luabind.hpp>
15 //TMP
16 #include <vrfcore/simMgr.h>
17 #include <vrfcore/exClock.h>
18 
19 #include <lua.hpp>
20 #include <lauxlib.h>
21 #include <lualib.h>
22 
24 {
25 protected:
27 
30 
31 public:
32  virtual ~DtLuaScriptInterfaceImpl();
33 
34  static DtScriptInterface* creator();
35 
36  virtual void init();
37 
38  virtual DtString type() const;
39 
40  virtual bool invokeInit();
41  virtual void invokeTick();
42 
43  virtual bool loadScript();
44 
45  virtual void setLuaState(lua_State* L);
46  virtual lua_State* getLuaState();
47 
48 
49  virtual void processScenarioSave(DtRwVariableBindings* saveState);
50  virtual bool processScenarioLoad(const DtRwVariableBindings* loadState);
51  virtual void processClearForReuse();
52 
56  static void addLuaScriptInterfaceExtension(DtLuaScriptInterfaceExtension::CreatorFcn extension, void* usr);
57 
59  static void removeLuaScriptInterfaceExtension(DtLuaScriptInterfaceExtension::CreatorFcn extension, void* usr);
60 
61  virtual bool initializeVRFLuaExtensions(lua_State* L);
62  virtual bool importTaskParams(lua_State* L);
63 
65  void luaEndTask(bool success);
66 
68 
70 
71 
72  int luaStartSubtask(const std::string taskName, luabind::object const& parameters);
73  void luaStopSubtask(int subtaskId);
75  bool luaIsSubtaskRunning(int subtaskId);
77  bool luaIsSubtaskComplete(int subtaskId);
79  bool luaIsSubtaskCanceled(int subtaskId);
81  bool luaSubtaskResult(int subtaskId);
83 
85  int luaSendTask(DtScriptVrfObject& object, const::std::string taskName,
86  luabind::object const& parameters);
87 
89  void luaSendSetDataToSelf(const::std::string setName,
90  luabind::object const& parameters);
91 
93  void luaSendSetData(DtScriptVrfObject& object, const::std::string setName,
94  luabind::object const& parameters);
95 
96  luabind::object luaGetObjectsNear(const DtLocation3D& loc, double distance);
97 
99  luabind::object luaGetVrfObjects();
100 
103  DtLuaFeatureSet luaGetFeaturesWithinArea(luabind::object const& points, luabind::object const& attributes);
104  DtLuaFeatureSet luaGetFeaturesWithinAreaNoAttributes(luabind::object const& points);
105 
108  DtLuaFeatureSet luaGetFeaturesWithinRange(const DtLocation3D&, double range, luabind::object const& attributes);
109  DtLuaFeatureSet luaGetFeaturesWithinRangeNoAttributes(const DtLocation3D&, double range);
110 
111  void luaSendMessage(const DtScriptVrfObject& receiver, const std::string& message);
112  void luaDeleteObject(std::string const& receiver);
113  void luaDeleteScriptObject(const DtScriptVrfObject& receiver);
114 
115  static void textReportCallback(const DtVrfObjectMessage* m, void* usr);
116  virtual void processTextReport(const DtVrfObjectMessage* m);
117 
121 
123  DtScriptVrfObject luaCreateEntity(luabind::object const& parameters);
124 
126  DtScriptVrfObject luaCreateTacticalGraphic(luabind::object const& parameters);
127 
129  DtScriptVrfObject luaCreateObstacle(luabind::object const& parameters);
130 
132  DtScriptVrfObject luaCreateRoute(luabind::object const& parameters);
133 
135  DtScriptVrfObject luaCreateArea(luabind::object const& parameters);
136 
138  DtScriptVrfObject luaCreateWaypoint(luabind::object const& parameters);
139 
141  DtScriptVrfObject luaCreatePhaseLine(luabind::object const& parameters);
143 
144 protected:
145  virtual bool callLuaNoArgFunction(const std::string& functionName);
146 
147  lua_State* myLState;
149 
150  typedef std::vector<DtLuaScriptInterfaceExtension*> LocalInterfaceExtensions;
152 
153  typedef std::list<std::pair<DtLuaScriptInterfaceExtension::CreatorFcn, void*> > GlobalInterfaceExtensions;
154 
156 };
157 
159 //
164 //
166 namespace luaScriptInterface
167 {
168 
169 }

Document ID: Generated on Tue Jan 29 18:21:16 EST 2013 from SVN revision 123193
Copyright © 2005-2013 VT MÄK Inc. All Rights Reserved (www.mak.com)