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 | |
---|