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
|