added practicum files, updated gitignore
[fp1415.git] / files / practicum / support.dcl
1 definition module support
2
3 import StdEnv, StdIO
4
5 :: Pos // A position
6 = { rx :: !Real // 0.0 <= rx <= 1.0
7 , ry :: !Real // 0.0 <= ry <= 1.0
8 }
9 :: Vel // A velocity
10 = { v0 :: !Real // -1.0 <= v0 <= 1.0
11 , v1 :: !Real // -1.0 <= v1 <= 1.0
12 }
13
14 toPoint2 :: Size Pos -> Point2
15 fromPoint2 :: Size Point2 -> Pos
16
17 circle :: Int -> Oval
18
19 movePos :: Vel Pos -> Pos
20
21 instance zero Pos
22 instance zero Vel
23 instance + Pos
24 instance - Pos
25 instance + Vel
26 instance - Vel
27
28 class scale a :: !Real !a -> a
29 class toVel a :: !a -> Vel
30 class dist a :: !a !a -> Real
31
32 instance scale Pos
33 instance scale Vel
34 instance toVel Pos
35 instance dist Pos
36 instance dist Real