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

///|
#external
pub type Layers

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

///|
pub extern "js" fn Layers::mask(self : Layers) -> UInt =
  #| (self) => self.mask >>> 0

///|
pub extern "js" fn Layers::set(self : Layers, channel : Int) -> Unit =
  #| (self, channel) => self.set(channel)

///|
pub extern "js" fn Layers::enable(self : Layers, channel : Int) -> Unit =
  #| (self, channel) => self.enable(channel)

///|
pub extern "js" fn Layers::disable(self : Layers, channel : Int) -> Unit =
  #| (self, channel) => self.disable(channel)

///|
pub extern "js" fn Layers::toggle(self : Layers, channel : Int) -> Unit =
  #| (self, channel) => self.toggle(channel)

///|
pub extern "js" fn Layers::intersects(self : Layers, other : Layers) -> Bool =
  #| (self, other) => self.test(other)

///|
pub extern "js" fn Layers::is_enabled(self : Layers, channel : Int) -> Bool =
  #| (self, channel) => self.isEnabled(channel)

///|
pub extern "js" fn Layers::enable_all(self : Layers) -> Unit =
  #| (self) => self.enableAll()

///|
pub extern "js" fn Layers::disable_all(self : Layers) -> Unit =
  #| (self) => self.disableAll()