# Module GlMat

    module GlMat: sig .. end

    type t

    val of_raw : [ `double ] Raw.t -> t

    val to_raw : t -> [ `double ] Raw.t

    val of_array : float array array -> t

    val to_array : t -> float array array

    val load : t -> unit

    val load_transpose : t -> unit

    val mult : t -> unit

    val mult_transpose : t -> unit

    val load_identity : unit -> unit

    val push : unit -> unit

    val pop : unit -> unit

    val mode : [ `modelview | `projection | `texture ] -> unit

    val get_matrix : [ `modelview_matrix | `projection_matrix | `texture_matrix ] -> t

    val rotate : angle:float -> ?x:float -> ?y:float -> ?z:float -> unit -> unit

    val scale : ?x:float -> ?y:float -> ?z:float -> unit -> unit

    val translate : ?x:float -> ?y:float -> ?z:float -> unit -> unit

    val rotate3 : angle:float -> Gl.vect3 -> unit

    val scale3 : Gl.point3 -> unit

    val translate3 : Gl.point3 -> unit

    val ortho : x:float * float -> y:float * float -> z:float * float -> unit

    val frustum : x:float * float -> y:float * float -> z:float * float -> unit