summaryrefslogtreecommitdiff
path: root/fnl/conf/wict-nvim/frames/vec.fnl
blob: 4a9515d0bbb7e2eb0cb8188297a1916b850890a9 (plain)
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
(local m {})
(local vec {})

(fn vec.make [self x y]
  (local v {: x : y})
  (setmetatable v self)
  (set self.__index self)
  v)

(fn vec.x-coord [v]
  v.x)

(fn vec.y-coord [v]
  v.y)

(fn m.add [v1 v2]
  (vec:make (+ (v1:x-coord) (v2:x-coord)) (+ (v1:y-coord) (v2:y-coord))))

(fn m.sub [v1 v2]
  (vec:make (- (v1:x-coord) (v2:x-coord)) (- (v1:y-coord) (v2:y-coord))))

(fn m.scale [a v]
  (vec:make (math.floor (* a (v:x-coord))) (math.floor (* a (v:y-coord)))))

(fn m.vec [...]
  (vec:make ...))

m