blob: ab9570b2362dcec32ce5bec4e2cf8fbb02115bc7 [file] [log] [blame]
Serge Bazanski18c1a262022-07-07 14:24:53 +02001local node = Node:extend('nodes.at', {
2})
3-- local papa = love.graphics.newImage("papa.png")
4local h = 25.0
5local v = {
6 {-h, -h, -h},
7 { h, -h, -h},
8 { h, h, -h},
9 {-h, h, -h},
10 {-h, -h, h},
11 { h, -h, h},
12 { h, h, h},
13 {-h, h, h}
14}
15
16local c = {
17 {0, 1, 31},
18 {1, 2, 31},
19 {2, 3, 31},
20 {3, 0, 31},
21 {0, 4, 34},
22 {1, 5, 34},
23 {2, 6, 34},
24 {3, 7, 34},
25 {4, 5, 32},
26 {5, 6,32},
27 {6, 7,32},
28 {7, 4,32}
29}
30
31local E = 100 * math.tan(2*math.pi/3)
32
33function to2d(p) return p[1] * E / (p[3]+E), p[2] * E / (p[3]+E) end
34
35function node:render()
36 love.graphics.setColor( 0, 0, 0 )
37 love.graphics.rectangle("fill", 0, 0, love.graphics.getWidth(), love.graphics.getHeight())
38 love.graphics.setColor( 1.0, 1.0, 1.0 )
39 local w = love.graphics.getWidth() / 2
40 local h = love.graphics.getHeight() / 2
41 local scl = 6
42 for _, p in ipairs(c) do
43 x1, y1 = to2d(v[p[1]+1])
44 x2, y2 = to2d(v[p[2]+1])
45 love.graphics.line(x1 * scl + w, y1 * scl + h, x2 * scl + w, y2 * scl + h)
46 end
47end
48
49function node:update(dt)
50 for _, vec in ipairs(v) do
51 angle = -dt/3
52 nv0 = math.cos(angle) * vec[1] + math.sin(angle) * vec[3]
53 nv2 = -math.sin(angle) * vec[1] + math.cos(angle) * vec[3]
54 vec[1] = nv0
55 vec[3] = nv2
56 angle = dt
57 nv1 = math.cos(angle) * vec[2] - math.sin(angle) * vec[3]
58 nv2 = math.sin(angle) * vec[2] + math.cos(angle) * vec[3]
59 vec[2] = nv1
60 vec[3] = nv2
61 end
62end
63
64return node