sig
  type t
  type optimization_options =
      FLATTEN_STATIC_TRANSFORMS
    | REMOVE_REDUNDANT_NODES
    | REMOVE_LOADED_PROXY_NODES
    | COMBINE_ADJACENT_LODS
    | SHARE_DUPLICATE_STATE
    | MERGE_GEOMETRY
    | CHECK_GEOMETRY
    | SPATIALIZE_GROUPS
    | COPY_SHARED_NODES
    | TRISTRIP_GEOMETRY
    | TESSELLATE_GEOMETRY
    | OPTIMIZE_TEXTURE_SETTINGS
    | MERGE_GEODES
    | FLATTEN_BILLBOARDS
    | TEXTURE_ATLAS_BUILDER
    | STATIC_OBJECT_DETECTION
    | DEFAULT_OPTIMIZATIONS
    | ALL_OPTIMIZATIONS
  external create : unit -> OsgUtil.Optimizer.t = "optimizer_create"
  external optimize : OsgUtil.Optimizer.t -> Osg.Node.t -> unit
    = "optimizer_optimize"
  external optimize2 :
    OsgUtil.Optimizer.t ->
    Osg.Node.t -> OsgUtil.Optimizer.optimization_options list -> unit
    = "optimizer_optimize2"
end