1    type Quad = struct
2        up_left : Vector3
3        up_right : Vector3
4        down_left : Vector3
5        down_right : Vector3
6        uv_up_left : Vector2
7        uv_up_right : Vector2
8        uv_down_left : Vector2
9        uv_down_right : Vector2
10       color : Vector3
11   
12       def normal = up_right - up_left |> cross (down_left - up_left)
13                                       |> normalized
14   
15   object Quad =
16       val indices = [0, 2, 1, 1, 2, 3]<u32>
17   
18       def create (up_left : Vector3
19                   up_right : Vector3
20                   down_left : Vector3
21                   down_right : Vector3
22                   color : Vector3) =
23           Quad up_left up_right down_left down_right
24                (Vector2 0 1) (Vector2 1 1) (Vector2 0 0) (Vector2 1 0)
25                color
26