| 1 | -- Set some test variables | 
|---|
| 2 | xm = 1000 | 
|---|
| 3 | ym = 0 | 
|---|
| 4 | zm = 0 | 
|---|
| 5 |  | 
|---|
| 6 | xl = -1000 | 
|---|
| 7 | yl = 3000 | 
|---|
| 8 | zl = -1000 | 
|---|
| 9 |  | 
|---|
| 10 | xr = 2000 | 
|---|
| 11 | yr = 500 | 
|---|
| 12 | zr = 2000 | 
|---|
| 13 |  | 
|---|
| 14 | d = 5 | 
|---|
| 15 | Tabs = 0 | 
|---|
| 16 |  | 
|---|
| 17 | pi = 3.1415 | 
|---|
| 18 |  | 
|---|
| 19 | -- Get a local pointer to a scriptcontroller | 
|---|
| 20 | local ctrl = orxonox.ScriptController:getScriptController() | 
|---|
| 21 |  | 
|---|
| 22 | -- If it worked, call its "movetoposition" function | 
|---|
| 23 | if ctrl ~= nil then | 
|---|
| 24 | -- Move to the starting point at (xl+3000,yl,zl) while looking | 
|---|
| 25 | -- at xl,yl,zl over the time span of 3 seconds | 
|---|
| 26 | ctrl:eventScheduler("mal", xl+3000,yl,zl, xl,yl,zl, 1, 0) | 
|---|
| 27 |  | 
|---|
| 28 | -- From there, perform a rotation around the harvester placed there | 
|---|
| 29 | -- in 100 steps | 
|---|
| 30 | dt = math.pi/100 | 
|---|
| 31 | for t = 0,math.pi,dt do | 
|---|
| 32 | xt = math.cos(t) | 
|---|
| 33 | yt = math.sin(t) | 
|---|
| 34 |  | 
|---|
| 35 | ctrl:eventScheduler("mal", xl+3000*xt, yl+3000*yt, zl, xl, yl, zl, dt, t+0.9) | 
|---|
| 36 | end | 
|---|
| 37 |  | 
|---|
| 38 |  | 
|---|
| 39 | -- Update absolute time | 
|---|
| 40 | Tabs = math.pi + 0.9 | 
|---|
| 41 |  | 
|---|
| 42 |  | 
|---|
| 43 |  | 
|---|
| 44 | -- Move away again, still looking at the station | 
|---|
| 45 | ctrl:eventScheduler("mal", 0,0,1000, xl,yl,zl, 3, Tabs+0.4) | 
|---|
| 46 |  | 
|---|
| 47 |  | 
|---|
| 48 |  | 
|---|
| 49 | -- Update absolute time | 
|---|
| 50 | Tabs = Tabs + 0.4 + 3 | 
|---|
| 51 |  | 
|---|
| 52 |  | 
|---|
| 53 |  | 
|---|
| 54 |  | 
|---|
| 55 |  | 
|---|
| 56 | -- Transition the look from (xl,yl,zl) to (3500,0,0) in 3 seconds | 
|---|
| 57 | ctrl:eventScheduler("chl", xl, yl, zl, xr, yr, zr, 2, Tabs+0.2) | 
|---|
| 58 |  | 
|---|
| 59 | Tabs = Tabs + 2 + 0.2 | 
|---|
| 60 |  | 
|---|
| 61 | ctrl:eventScheduler("mal", xr + 600,yr,zr, xr,yr,zr, 4, Tabs+0) | 
|---|
| 62 |  | 
|---|
| 63 | Tabs = Tabs + 4 | 
|---|
| 64 |  | 
|---|
| 65 | for t = 0,math.pi,dt do | 
|---|
| 66 | xt = math.cos(t) | 
|---|
| 67 | zt = math.sin(t) | 
|---|
| 68 |  | 
|---|
| 69 | ctrl:eventScheduler("mal", xr+600*xt, yr, zr+600*zt, xr, yr, zr, dt, Tabs+t) | 
|---|
| 70 | end | 
|---|
| 71 |  | 
|---|
| 72 | Tabs = Tabs + math.pi | 
|---|
| 73 |  | 
|---|
| 74 | ctrl:eventScheduler("chl", xr, yr, zr, xl, yl, zl, 3, Tabs+0.2) | 
|---|
| 75 |  | 
|---|
| 76 | Tabs = Tabs + 3 + 0.2 | 
|---|
| 77 |  | 
|---|
| 78 | ctrl:eventScheduler("mal", xm,ym,zm, xl,yl,zl, 4, Tabs+2.5) | 
|---|
| 79 |  | 
|---|
| 80 |  | 
|---|
| 81 | end | 
|---|
| 82 |  | 
|---|
| 83 |  | 
|---|
| 84 |  | 
|---|
| 85 | -- Output the newctrlid variable we set from the C++ code | 
|---|
| 86 | if newctrlid ~= nil then | 
|---|
| 87 | orxonox.execute("orxout message test " .. newctrlid) | 
|---|
| 88 | end | 
|---|
| 89 |  | 
|---|
| 90 | --orxonox.execute("setPause 1") | 
|---|
| 91 |  | 
|---|
| 92 |  | 
|---|