// Generated by scripts/generate.mjs from bindings/api.mjs. Do not edit.

///|
#external
pub type Frustum

///|
#module("@mizchi/three-mbt/constructors")
pub extern "js" fn Frustum::Frustum() -> Frustum = "frustum"

///|
pub extern "js" fn Frustum::set_from_projection_matrix(
  self : Frustum,
  matrix : Matrix4,
) -> Frustum =
  #| (self, matrix) => self.setFromProjectionMatrix(matrix)

///|
pub extern "js" fn Frustum::contains_point(
  self : Frustum,
  point : Vector3,
) -> Bool =
  #| (self, point) => self.containsPoint(point)

///|
pub extern "js" fn Frustum::intersects_object(
  self : Frustum,
  object : Object3D,
) -> Bool =
  #| (self, object) => self.intersectsObject(object)

///|
pub extern "js" fn Frustum::intersects_box(self : Frustum, box : Box3) -> Bool =
  #| (self, box) => self.intersectsBox(box)

///|
pub extern "js" fn Frustum::intersects_sphere(
  self : Frustum,
  sphere : Sphere,
) -> Bool =
  #| (self, sphere) => self.intersectsSphere(sphere)

///|
pub extern "js" fn Frustum::planes(self : Frustum) -> FixedArray[Plane] =
  #| (self) => self.planes.slice()

///|
pub extern "js" fn Frustum::set(
  self : Frustum,
  p0 : Plane,
  p1 : Plane,
  p2 : Plane,
  p3 : Plane,
  p4 : Plane,
  p5 : Plane,
) -> Frustum =
  #| (self, p0, p1, p2, p3, p4, p5) => self.set(p0, p1, p2, p3, p4, p5)

///|
pub extern "js" fn Frustum::copy(self : Frustum, other : Frustum) -> Frustum =
  #| (self, other) => self.copy(other)

///|
pub extern "js" fn Frustum::clone(self : Frustum) -> Frustum =
  #| (self) => self.clone()

///|
pub extern "js" fn Frustum::intersects_sprite(
  self : Frustum,
  sprite : Sprite,
) -> Bool =
  #| (self, sprite) => self.intersectsSprite(sprite)