sig
  type t
  external create' : unit -> Osg.Polytope.t = "polytope_create"
  external set_to_unit_frustum' : Osg.Polytope.t -> bool -> bool -> unit
    = "polytope_set_to_unit_frustum"
  val set_to_unit_frustum :
    ?with_near:bool -> ?with_far:bool -> Osg.Polytope.t -> unit
  external get_planes : Osg.Polytope.t -> Osg.Plane.t array
    = "polytope_get_planes"
  external transform : Osg.Polytope.t -> Osg.Matrix.t -> unit
    = "polytope_transform"
  external transform_providing_inverse :
    Osg.Polytope.t -> Osg.Matrix.t -> unit
    = "polytope_transform_providing_inverse"
  external contains_bounding_box :
    Osg.Polytope.t -> Osg.Bounding_box.t -> bool
    = "polytope_contains_bounding_box"
  external contains_vec3 : Osg.Polytope.t -> Osg.Vec3.t -> bool
    = "polytope_contains_vec3"
  external contains_vec3_array : Osg.Polytope.t -> Osg.Vec3_array.t -> bool
    = "polytope_contains_vec3_array"
  external contains_all_of_bounding_box :
    Osg.Polytope.t -> Osg.Bounding_box.t -> bool
    = "polytope_contains_all_of_bounding_box"
  external contains_all_of_vec3_array :
    Osg.Polytope.t -> Osg.Vec3_array.t -> bool
    = "polytope_contains_all_of_vec3_array"
end