1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
local demo_list = {}
local function load_demo(name)
local group, info = dofile('demos/' .. name .. '.lua')
local section = demo_list[group]
if not section then
section = {}
demo_list[group] = section
end
local i = #section
for k, v in ipairs(info) do
section[i+k] = v
end
end
local demo_files = {'fft', 'bspline', 'wave-particle', 'plot'}
for i, name in ipairs(demo_files) do
load_demo(name)
end
local function print_demos_list()
for group, t in pairs(demo_list) do
echo('*** ', group)
for k, v in ipairs(t) do
echo(v.name .. ' - ' .. v.description)
end
echo ''
end
end
local function load_demo(name)
for group, t in pairs(demo_list) do
for k, entry in ipairs(t) do
if entry.name == name then
return entry
end
end
end
end
return {
list = print_demos_list,
load = load_demo,
}
|