`sig
type t
val create : unit -> GluNurbs.t
val begin_curve : GluNurbs.t -> unit
val begin_surface : GluNurbs.t -> unit
val begin_trim : GluNurbs.t -> unit
val end_curve : GluNurbs.t -> unit
val end_surface : GluNurbs.t -> unit
val end_trim : GluNurbs.t -> unit
val load_sampling_matrices :
GluNurbs.t ->
model:[ `float ] Raw.t ->
persp:[ `float ] Raw.t -> view:[ `int ] Raw.t -> unit
val curve :
GluNurbs.t ->
knots:float array ->
control:float array -> order:int -> kind:[< GlMap.target ] -> unit
val pwl_curve :
GluNurbs.t -> kind:[ `trim_2 | `trim_3 ] -> float array -> unit
val surface :
GluNurbs.t ->
sknots:float array ->
tknots:float array ->
control:float array array ->
sorder:int -> torder:int -> target:[< Gl.target ] -> unit
type property =
[ `auto_load_matrix of bool
| `culling of bool
| `display_mode of [ `fill | `patch | `polygon ]
| `parametric_tolerance of float
| `sampling_method of
[ `domain_distance | `parametric_error | `path_length ]
| `sampling_tolerance of int
| `u_step of int
| `v_step of int ]
val property : GluNurbs.t -> GluNurbs.property -> unit
end`