Home My Page Projects Code Snippets Project Openings 3D graphics for Standard ML
Summary Activity SCM

SCM Repository

[sml3d] Annotation of /src/common/sml3d-type-util-sig.sml
ViewVC logotype

Annotation of /src/common/sml3d-type-util-sig.sml

Parent Directory Parent Directory | Revision Log Revision Log


Revision 19 - (view) (download)

1 : jhr 19 (* sml3d-type-util-sig.sml
2 : jhr 1 *
3 : jhr 19 * COPYRIGHT (c) 2008 John Reppy (http://www.cs.uchicago.edu/~jhr)
4 : jhr 1 * All rights reserved.
5 :     *)
6 :    
7 : jhr 19 signature SML3D_TYPE_UTIL =
8 : jhr 1 sig
9 :    
10 : jhr 19 (* vector types (as per SML3d_TYPES) *)
11 :     type 'a vec2 = {x : 'a, y : 'a}
12 :     type 'a vec3 = {x : 'a, y : 'a, z : 'a}
13 :     type 'a vec4 = {x : 'a, y : 'a, z : 'a, w : 'a}
14 :     type 'a tex2 = {s : 'a, t : 'a}
15 :     type 'a tex3 = {s : 'a, t : 'a, r : 'a}
16 :     type 'a tex4 = {s : 'a, t : 'a, r : 'a, q : 'a}
17 :     type 'a rgb = {r : 'a, g : 'a, b : 'a}
18 :     type 'a rgba = {r : 'a, g : 'a, b : 'a, a : 'a}
19 : jhr 1
20 :     (* pack tuples as records *)
21 :     val packv2 : ('a * 'a) -> 'a vec2
22 :     val packv3 : ('a * 'a * 'a) -> 'a vec3
23 :     val packv4 : ('a * 'a * 'a * 'a) -> 'a vec4
24 :    
25 :     val packt2 : ('a * 'a) -> 'a tex2
26 :     val packt3 : ('a * 'a * 'a) -> 'a tex3
27 :     val packt4 : ('a * 'a * 'a * 'a) -> 'a tex4
28 :    
29 :     val packc3 : ('a * 'a * 'a) -> 'a rgb
30 :     val packc4 : ('a * 'a * 'a * 'a) -> 'a rgba
31 :    
32 :     (* unpack records as tuples *)
33 : jhr 16 val unpackv2 : 'a vec2 -> ('a * 'a)
34 :     val unpackv3 : 'a vec3 -> ('a * 'a * 'a)
35 :     val unpackv4 : 'a vec4 -> ('a * 'a * 'a * 'a)
36 : jhr 1
37 : jhr 16 val unpackt2 : 'a tex2 -> ('a * 'a)
38 :     val unpackt3 : 'a tex3 -> ('a * 'a * 'a)
39 :     val unpackt4 : 'a tex4 -> ('a * 'a * 'a * 'a)
40 : jhr 1
41 : jhr 16 val unpackc3 : 'a rgb -> ('a * 'a * 'a)
42 :     val unpackc4 : 'a rgba -> ('a * 'a * 'a * 'a)
43 : jhr 1
44 : jhr 16 (* iterators *)
45 :     fun mapv2 : ('a -> 'b) -> 'a vec2 -> 'b vec2
46 :     fun mapv3 : ('a -> 'b) -> 'a vec3 -> 'b vec3
47 :     fun mapv4 : ('a -> 'b) -> 'a vec4 -> 'b vec4
48 :    
49 :     fun mapt2 : ('a -> 'b) -> 'a tex2 -> 'b tex2
50 :     fun mapt3 : ('a -> 'b) -> 'a tex3 -> 'b tex3
51 :     fun mapt4 : ('a -> 'b) -> 'a tex4 -> 'b tex4
52 :    
53 :     fun mapc3 : ('a -> 'b) -> 'a rgb -> 'b rgb
54 :     fun mapc4 : ('a -> 'b) -> 'a rgba -> 'b rgba
55 :    
56 :     fun appv2 : ('a -> unit) -> 'a vec2 -> unit
57 :     fun appv3 : ('a -> unit) -> 'a vec3 -> unit
58 :     fun appv4 : ('a -> unit) -> 'a vec4 -> unit
59 :    
60 :     fun appt2 : ('a -> unit) -> 'a tex2 -> unit
61 :     fun appt3 : ('a -> unit) -> 'a tex3 -> unit
62 :     fun appt4 : ('a -> unit) -> 'a tex4 -> unit
63 :    
64 :     fun appc3 : ('a -> unit) -> 'a rgb -> unit
65 :     fun appc4 : ('a -> unit) -> 'a rgba -> unit
66 :    
67 : jhr 1 end

root@smlnj-gforge.cs.uchicago.edu
ViewVC Help
Powered by ViewVC 1.0.0