summaryrefslogtreecommitdiff
path: root/vec3-cross.lua
diff options
context:
space:
mode:
Diffstat (limited to 'vec3-cross.lua')
-rwxr-xr-xvec3-cross.lua41
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