type t val directional: Point.t -> Point.t -> t val point: Point.t -> Point.t -> t val spot: Point.t -> Point.t -> Point.t -> float -> float -> t val color_from_lights: scene: Object.t -> pt: Point.t -> v: Vector.t -> n: Vector.t -> kd: float -> ks: float -> phong: float -> lights: t array -> Point.t