Home My Page Projects Code Snippets Project Openings SML/NJ
Summary Activity Forums Tracker Lists Tasks Docs Surveys News SCM Files

SCM Repository

[smlnj] Annotation of /sml/trunk/src/eXene/lib/user/geometry-sig.sml
ViewVC logotype

Annotation of /sml/trunk/src/eXene/lib/user/geometry-sig.sml

Parent Directory Parent Directory | Revision Log Revision Log


Revision 104 - (view) (download)

1 : monnier 104 (* geometry.sml
2 :     *
3 :     * COPYRIGHT (c) 1990,1991 by John H. Reppy. See COPYRIGHT file for details.
4 :     *
5 :     * The signature of the basic geometry types and operations.
6 :     *)
7 :    
8 :     signature GEOMETRY =
9 :     sig
10 :    
11 :     (* geometric types (from Xlib.h) *)
12 :     datatype point = PT of {x : int, y : int}
13 :     datatype line = LINE of point * point
14 :     datatype size = SIZE of {wid : int, ht : int}
15 :     datatype rect = RECT of {x : int, y : int, wid : int, ht : int}
16 :     datatype arc = ARC of {
17 :     x : int, y : int,
18 :     wid : int, ht : int,
19 :     angle1 : int, angle2 : int
20 :     }
21 :    
22 :     (* The geometry of a window w.r.t. its parent. *)
23 :     datatype win_geom = WGEOM of {
24 :     pos : point,
25 :     sz : size,
26 :     border : int
27 :     }
28 :    
29 :     (* points *)
30 :     val originPt : point
31 :     val xCoordOfPt : point -> int
32 :     val yCoordOfPt : point -> int
33 :     val addPt : point * point -> point
34 :     val subPt : point * point -> point
35 :     val scalePt : int * point -> point
36 :     val lessThanPt : point * point -> bool
37 :     val lessEqPt : point * point -> bool
38 :    
39 :     (* sizes *)
40 :     val addSz : size * size -> size
41 :     val subSz : size * size -> size
42 :     val scaleSz : int * size -> size
43 :     val addSzToPt : point * size -> point
44 :     val limitPt : (size * point) -> point
45 :    
46 :     (* rectangles *)
47 :     val mkRect : (point * size) -> rect
48 :     val originOfRect : rect -> point
49 :     val sizeOfRect : rect -> size
50 :     val originAndSzOfRect : rect -> (point * size)
51 :     val cornerOfRect : rect -> point
52 :     val clipPt : (rect * point) -> point
53 :     val translate : rect * point -> rect
54 :     val rtranslate : rect * point -> rect
55 :     val intersect : rect * rect -> bool
56 :     exception Intersection
57 :     val intersection : rect * rect -> rect
58 :     val union : rect * rect -> rect
59 :     val within : point * rect -> bool
60 :     val inside : rect * rect -> bool
61 :     val boundBox : point list -> rect
62 :    
63 :     end (* GEOMETRY *)

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