sig
  type t
  external create' : unit -> OsgText.Text.t = "osg_text_text_create"
  external to_drawable : OsgText.Text.t -> Osg.Drawable.t
    = "osg_text_text_to_drawable"
  external set_text : OsgText.Text.t -> OsgText.String.t -> unit
    = "osg_text_text_set_text"
  external set_font : OsgText.Text.t -> OsgText.Font.t -> unit
    = "osg_text_text_set_font"
  external set_text_direct' :
    OsgText.Text.t -> OsgText.String.encoding -> string -> unit
    = "osg_text_text_set_text_direct"
  val set_text_direct :
    ?encoding:OsgText.String.encoding -> OsgText.Text.t -> string -> unit
  external set_character_size :
    OsgText.Text.t -> float -> aspect_ratio:float -> unit
    = "osg_text_text_set_character_size"
  type character_size_mode =
      OBJECT_COORDS
    | SCREEN_COORDS
    | OBJECT_COORDS_WITH_MAXIMUM_SCREEN_SIZE_CAPPED_BY_FONT_HEIGHT
  external set_character_size_mode :
    OsgText.Text.t -> OsgText.Text.character_size_mode -> unit
    = "osg_text_text_set_character_size_mode"
  external set_font_resolution :
    OsgText.Text.t -> width:int -> height:int -> unit
    = "osg_text_text_set_font_resolution"
  external set_line_spacing : OsgText.Text.t -> float -> unit
    = "osg_text_text_set_line_spacing"
  type alignment =
      LEFT_TOP
    | LEFT_CENTER
    | LEFT_BOTTOM
    | CENTER_TOP
    | CENTER_CENTER
    | CENTER_BOTTOM
    | RIGHT_TOP
    | RIGHT_CENTER
    | RIGHT_BOTTOM
    | LEFT_BASE_LINE
    | CENTER_BASE_LINE
    | RIGHT_BASE_LINE
    | LEFT_BOTTOM_BASE_LINE
    | CENTER_BOTTOM_BASE_LINE
    | RIGHT_BOTTOM_BASE_LINE
    | BASE_LINE
  external set_alignment : OsgText.Text.t -> OsgText.Text.alignment -> unit
    = "osg_text_text_set_alignment"
  type axis_alignment =
      XY_PLANE
    | REVERSED_XY_PLANE
    | XZ_PLANE
    | REVERSED_XZ_PLANE
    | YZ_PLANE
    | REVERSED_YZ_PLANE
    | SCREEN
    | USER_DEFINED_ROTATION
  external set_axis_alignment :
    OsgText.Text.t -> OsgText.Text.axis_alignment -> unit
    = "osg_text_text_set_axis_alignment"
  external set_color : OsgText.Text.t -> Osg.Vec4.t -> unit
    = "osg_text_text_set_color"
  type backdrop_type =
      DROP_SHADOW_BOTTOM_RIGHT
    | DROP_SHADOW_CENTER_RIGHT
    | DROP_SHADOW_TOP_RIGHT
    | DROP_SHADOW_BOTTOM_CENTER
    | DROP_SHADOW_TOP_CENTER
    | DROP_SHADOW_BOTTOM_LEFT
    | DROP_SHADOW_CENTER_LEFT
    | DROP_SHADOW_TOP_LEFT
    | OUTLINE
    | NONE
  external set_backdrop_type :
    OsgText.Text.t -> OsgText.Text.backdrop_type -> unit
    = "osg_text_text_set_backdrop_type"
  external set_backdrop_offset :
    OsgText.Text.t -> horizontal:float -> vertical:float -> unit
    = "osg_text_text_set_backdrop_offset"
  external set_backdrop_color : OsgText.Text.t -> Osg.Vec4.t -> unit
    = "osg_text_text_set_backdrop_color"
  external set_position : OsgText.Text.t -> Osg.Vec3.t -> unit
    = "osg_text_text_set_position"
  external set_rotation : OsgText.Text.t -> Osg.Quat.t -> unit
    = "osg_text_text_set_rotation"
  val create_internal :
    (OsgText.Text.t -> 'a) ->
    ?encoding:OsgText.String.encoding ->
    ?text:string ->
    ?font:OsgText.Font.t ->
    ?character_size:float ->
    ?aspect_ratio:float ->
    ?character_size_mode:OsgText.Text.character_size_mode ->
    ?font_resolution:int * int ->
    ?line_spacing:float ->
    ?alignment:OsgText.Text.alignment ->
    ?axis_alignment:OsgText.Text.axis_alignment ->
    ?color:Osg.Vec4.t ->
    ?backdrop_type:OsgText.Text.backdrop_type ->
    ?backdrop_offset:float * float ->
    ?backdrop_color:Osg.Vec4.t ->
    ?position:Osg.Vec3.t -> ?rotation:Osg.Quat.t -> unit -> 'a
  val create :
    ?encoding:OsgText.String.encoding ->
    ?text:string ->
    ?font:OsgText.Font.t ->
    ?character_size:float ->
    ?aspect_ratio:float ->
    ?character_size_mode:OsgText.Text.character_size_mode ->
    ?font_resolution:int * int ->
    ?line_spacing:float ->
    ?alignment:OsgText.Text.alignment ->
    ?axis_alignment:OsgText.Text.axis_alignment ->
    ?color:Osg.Vec4.t ->
    ?backdrop_type:OsgText.Text.backdrop_type ->
    ?backdrop_offset:float * float ->
    ?backdrop_color:Osg.Vec4.t ->
    ?position:Osg.Vec3.t -> ?rotation:Osg.Quat.t -> unit -> Osg.Drawable.t
  val labl_create :
    ?encoding:OsgText.String.encoding ->
    ?text:string ->
    ?font:OsgText.Font.t ->
    ?character_size:float ->
    ?aspect_ratio:float ->
    ?character_size_mode:OsgText.Text.character_size_mode ->
    ?font_resolution:int * int ->
    ?line_spacing:float ->
    ?alignment:OsgText.Text.alignment ->
    ?axis_alignment:OsgText.Text.axis_alignment ->
    ?color:Osg.Vec4.t ->
    ?backdrop_type:OsgText.Text.backdrop_type ->
    ?backdrop_offset:float * float ->
    ?backdrop_color:Osg.Vec4.t ->
    ?position:Osg.Vec3.t -> ?rotation:Osg.Quat.t -> unit -> OsgText.Text.t
end