val p : 'a val matrix_mult : int array array -> int array array -> int array array val abs : int -> int val absf : float -> float type pt_3d = { mutable x : float; mutable y : float; mutable z : float; } type pt_2d = { mutable x : float; mutable y : float; } val camera_xyz : pt_3d val camera_angle : int ref val should_be_drawn_gr : pt_3d -> bool val sign : float -> float val is_cube_behind_camera : pt_3d array -> bool val debug_1 : pt_3d array -> unit val to_graphics : pt_2d array -> int -> int -> (int * int) array val draw_pts_2d : pt_2d array -> int -> int -> unit val project : pt_3d array -> int -> int -> int -> pt_2d array val adjust_to_camera : pt_3d array -> pt_3d array val sq : float -> float val dist_from_camera : pt_3d -> float val farthest_pt : pt_3d -> pt_3d -> float val swap : 'a array -> int -> int -> unit val draw_cube_p : pt_3d array -> int -> int -> int -> int -> int -> int -> unit val sum_x : pt_3d array -> float val sum_y : pt_3d array -> float val sum_z : pt_3d array -> float val cube_dist : pt_3d array -> float val draw_multiples_cubes : pt_3d array array -> int -> int -> int -> unit val draw_multiples_cubes_colored : pt_3d array array -> int -> int array -> int array -> int array -> int -> int -> int -> unit val create_cube : int -> int -> int -> int -> pt_3d array val cube : pt_3d array val cube2 : pt_3d array val cube3 : pt_3d array val cube4 : pt_3d array val fov : int val hehe : unit -> 'a val get1char : unit -> char type tile = Free | Wall | Crate | Exit | Craxit | Camera val width : int val height : int val depth : int val laby : tile array array array val n_walls : int ref val convert_laby : tile array array array -> pt_3d array array * int array * int array * int array val cheesify : tile array array array -> unit val cs : pt_3d array array val rs : int array val gs : int array val bs : int array