sig
  type location = float * float * float
  type color =
      Red
    | Green
    | Blue
    | Yellow
    | White
    | Black
    | Cyan
    | RGB of float * float * float
    | RGBT of float * float * float * float
  type scene_desc =
      Background of Povray.color
    | Camera of Povray.location * Povray.location
    | Light_source of Povray.location * Povray.color
    | Sphere of Povray.location * float * string
    | Cone of Povray.location * float * Povray.location * float * string
    | Box of Povray.location * Povray.location * string *
        Povray.location option
  type scene
  val new_scene : unit -> Povray.scene
  val string_of_scene : Povray.scene -> string
  val print_scene : Povray.scene -> unit
  type inc_file =
      Arrays
    | Chars
    | Colors
    | Consts
    | Debug
    | Finish
    | Functions
    | Glass
    | Glass_old
    | Golds
    | Logo
    | Math
    | Metals
    | Rad_def
    | Rand
    | Textures
    | Transforms
    | Screen
    | Shapes
    | Shapes2
    | Shapes_old
    | Shapesq
    | Skies
    | Stage1
    | Stars
    | Stdcam
    | Stdinc
    | Stoneold
    | Stones
    | Stones1
    | Stones2
    | Strings
    | Sunpos
    | Woodmaps
    | Woods
  val string_of_inc_file : inc:Povray.inc_file -> string
  val get_include : inc:Povray.inc_file -> string
  val add_include : Povray.scene -> inc:Povray.inc_file -> Povray.scene
  val get_color : color:Povray.color -> string
  val get_camera :
    location:int * int * int -> look_at:int * int * int -> string
  val add_camera :
    Povray.scene ->
    location:int * int * int -> look_at:int * int * int -> Povray.scene
  val get_background : color:Povray.color -> string
  val add_background : Povray.scene -> color:Povray.color -> Povray.scene
  val get_light_source :
    location:int * int * int -> color:Povray.color -> string
  val add_light_source :
    Povray.scene ->
    location:int * int * int -> color:Povray.color -> Povray.scene
  val get_ambient_light : color:float * float * float -> string
  val add_ambient_light :
    Povray.scene -> color:float * float * float -> Povray.scene
  val get_texture :
    ?color:Povray.color -> ?scale:int -> ?def:string -> unit -> string
  val get_sphere :
    center:float * float * float ->
    radius:float -> ?texture:string -> unit -> string
  val get_cone :
    center1:float * float * float ->
    radius1:float ->
    center2:float * float * float ->
    radius2:float -> ?texture:string -> unit -> string
  val get_box :
    corner1:float * float * float ->
    corner2:float * float * float ->
    ?texture:string -> ?rotate:float * float * float -> unit -> string
  val get_cylinder :
    center1:float * float * float ->
    center2:float * float * float ->
    radius:float -> ?texture:string -> unit -> string
  val get_torus :
    major:float ->
    minor:float ->
    ?texture:string -> ?translate:float * float * float -> unit -> string
  val get_text :
    font:string ->
    text:string ->
    ?thickness:float -> ?offset:float -> ?texture:string -> unit -> string
  val add_sphere :
    Povray.scene ->
    center:float * float * float ->
    radius:float -> ?texture:string -> unit -> Povray.scene
  val add_cone :
    Povray.scene ->
    center1:float * float * float ->
    radius1:float ->
    center2:float * float * float ->
    radius2:float -> ?texture:string -> unit -> Povray.scene
  val add_box :
    Povray.scene ->
    corner1:float * float * float ->
    corner2:float * float * float ->
    ?texture:string -> ?rotate:float * float * float -> unit -> Povray.scene
  val add_cylinder :
    Povray.scene ->
    center1:float * float * float ->
    center2:float * float * float ->
    radius:float -> ?texture:string -> unit -> Povray.scene
  val add_torus :
    Povray.scene ->
    major:float ->
    minor:float ->
    ?texture:string ->
    ?translate:float * float * float -> unit -> Povray.scene
  val add_text :
    Povray.scene ->
    font:string ->
    text:string ->
    ?thickness:float ->
    ?offset:float -> ?texture:string -> unit -> Povray.scene
end