`sig
type t
val of_raw : [ `double ] Raw.t -> GlMat.t
external to_raw : GlMat.t -> [ `double ] Raw.t = "%identity"
val of_array : float array array -> GlMat.t
val to_array : GlMat.t -> float array array
val load : GlMat.t -> unit
val load_transpose : GlMat.t -> unit
val mult : GlMat.t -> unit
val mult_transpose : GlMat.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 ] -> GlMat.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
end`