diff options
Diffstat (limited to 'vec3-cross.lua')
-rwxr-xr-x | vec3-cross.lua | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/vec3-cross.lua b/vec3-cross.lua new file mode 100755 index 0000000..304c9f5 --- /dev/null +++ b/vec3-cross.lua @@ -0,0 +1,41 @@ +#!/usr/bin/env lua +local eyes = require "eyes" +local format = require "format" +local reading = require "reading" +local vec3 = require "cpml".vec3 +local readout = { + [0] = vec3.new{ 0, 0, 1}, + [1] = vec3.new{ 0, 1, 0}, + [2] = vec3.new{ 1, 0, 0}, + [3] = vec3.new{ 0, -1, 0}, + [4] = vec3.new{-1, 0, 0}, +} +local translation = { + vec3.new{ 0, 0, 0}, + vec3.new{ 0, 0, 1}, + vec3.new{ 0, 1, 0}, + vec3.new{ 1, 0, 0}, + vec3.new{ 0, 0, -1}, + vec3.new{ 0, -1, 0}, + vec3.new{-1, 0, 0}, +} + + +function translate (v) + for i, r in ipairs(translation) do + if r == v then + return i - 1 + end + end + error "unexpected vec3" +end + + +for _, message in ipairs(eyes) do + local values = {} + for _, a, b, c in reading.trigrams(message) do + local v = readout[a]:cross(readout[b]):cross(readout[c]) + table.insert(values, translate(v)) + end + print(format.csv(values)) +end |