File: objects.smi

package info (click to toggle)
smlsharp 4.1.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 123,732 kB
  • sloc: ansic: 16,725; sh: 4,347; makefile: 2,191; java: 742; haskell: 493; ruby: 305; cpp: 284; pascal: 256; ml: 255; lisp: 141; asm: 97; sql: 74
file content (29 lines) | stat: -rw-r--r-- 844 bytes parent folder | download | duplicates (4)
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
_require "basis.smi"
structure Objects =
struct
  datatype point = PT of {x:real, y:real, z:real}
  datatype vector = VEC of {l:real, m:real, n:real}
  datatype ray = Ray of {d:vector, s:point}
  datatype camera = Camera of {ll:point, lr:point, ul:point, ur:point, vp:point}
  datatype color = Color of {blu:real, grn:real, red:real}
  datatype sphere = Sphere of {c:point, color:color, r:real}
  datatype hit = Hit of {s:sphere, t:real} | Miss
  datatype visible = Visible of {h:point, s:sphere}
  datatype object =
      CAMERA of camera
    | COLOR of color
    | HIT
    | LIST of object list
    | LITERAL of string
    | MARK
    | NAME of string
    | NUMBER of real
    | OPERATOR of object list -> object list
    | POINT of point
    | RAY of ray
    | SPHERE of sphere
    | TOP
    | UNMARK
    | VECTOR of vector
    | VISIBLE
end