summaryrefslogtreecommitdiff
path: root/files/practicum/support.dcl
blob: c96ece62ceb5312b587fbbe0ae88ff19a10aff63 (plain) (blame)
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
29
30
31
32
33
34
35
36
definition module support

import StdEnv, StdIO

::	Pos							// A position
 =	{	rx		:: !Real		// 0.0 <= rx <= 1.0
 	,	ry		:: !Real		// 0.0 <= ry <= 1.0
 	}
::	Vel							// A velocity
 =	{	v0		:: !Real		// -1.0 <= v0 <= 1.0
 	,	v1		:: !Real		// -1.0 <= v1 <= 1.0
 	}

toPoint2		:: Size Pos -> Point2
fromPoint2		:: Size Point2 -> Pos

circle 			:: Int -> Oval

movePos			:: Vel Pos -> Pos

instance zero Pos
instance zero Vel
instance + Pos
instance - Pos
instance + Vel
instance - Vel

class scale a	:: !Real !a -> a
class toVel a	:: !a -> Vel
class dist  a	:: !a !a -> Real

instance scale Pos
instance scale Vel
instance toVel Pos
instance dist Pos
instance dist Real