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 20 - (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 : jhr 20 val mapv2 : ('a -> 'b) -> 'a vec2 -> 'b vec2
46 :     val mapv3 : ('a -> 'b) -> 'a vec3 -> 'b vec3
47 :     val mapv4 : ('a -> 'b) -> 'a vec4 -> 'b vec4
48 : jhr 16
49 : jhr 20 val mapt2 : ('a -> 'b) -> 'a tex2 -> 'b tex2
50 :     val mapt3 : ('a -> 'b) -> 'a tex3 -> 'b tex3
51 :     val mapt4 : ('a -> 'b) -> 'a tex4 -> 'b tex4
52 : jhr 16
53 : jhr 20 val mapc3 : ('a -> 'b) -> 'a rgb -> 'b rgb
54 :     val mapc4 : ('a -> 'b) -> 'a rgba -> 'b rgba
55 : jhr 16
56 : jhr 20 val appv2 : ('a -> unit) -> 'a vec2 -> unit
57 :     val appv3 : ('a -> unit) -> 'a vec3 -> unit
58 :     val appv4 : ('a -> unit) -> 'a vec4 -> unit
59 : jhr 16
60 : jhr 20 val appt2 : ('a -> unit) -> 'a tex2 -> unit
61 :     val appt3 : ('a -> unit) -> 'a tex3 -> unit
62 :     val appt4 : ('a -> unit) -> 'a tex4 -> unit
63 : jhr 16
64 : jhr 20 val appc3 : ('a -> unit) -> 'a rgb -> unit
65 :     val appc4 : ('a -> unit) -> 'a rgba -> unit
66 : jhr 16
67 : jhr 20 (* string representations *)
68 :     val fmtv2 : ('a -> string) -> 'a vec2 -> string
69 :     val fmtv3 : ('a -> string) -> 'a vec3 -> string
70 :     val fmtv4 : ('a -> string) -> 'a vec4 -> string
71 :    
72 :     val fmtt2 : ('a -> string) -> 'a tex2 -> string
73 :     val fmtt3 : ('a -> string) -> 'a tex3 -> string
74 :     val fmtt4 : ('a -> string) -> 'a tex4 -> string
75 :    
76 :     val fmtc3 : ('a -> string) -> 'a rgb -> string
77 :     val fmtc4 : ('a -> string) -> 'a rgba -> string
78 :    
79 :     val fmt2 : ('a -> string) -> ('a * 'a) -> string
80 :     val fmt3 : ('a -> string) -> ('a * 'a * 'a) -> string
81 :     val fmt4 : ('a -> string) -> ('a * 'a * 'a * 'a) -> string
82 :    
83 : jhr 1 end

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