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

///|
#external
pub type UniformsGroup

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

///|
pub extern "js" fn UniformsGroup::add(
  self : UniformsGroup,
  uniform : Uniform,
) -> UniformsGroup =
  #| (self, uniform) => self.add(uniform)

///|
pub extern "js" fn UniformsGroup::remove(
  self : UniformsGroup,
  uniform : Uniform,
) -> UniformsGroup =
  #| (self, uniform) => self.remove(uniform)

///|
pub extern "js" fn UniformsGroup::set_name(
  self : UniformsGroup,
  name : String,
) -> UniformsGroup =
  #| (self, name) => self.setName(name)

///|
pub extern "js" fn UniformsGroup::name(self : UniformsGroup) -> String =
  #| (self) => self.name

///|
pub extern "js" fn UniformsGroup::set_usage(
  self : UniformsGroup,
  usage : BufferUsage,
) -> UniformsGroup =
  #| (self, usage) => self.setUsage(usage)

///|
pub extern "js" fn UniformsGroup::usage(self : UniformsGroup) -> BufferUsage =
  #| (self) => self.usage

///|
pub extern "js" fn UniformsGroup::uniforms(
  self : UniformsGroup,
) -> FixedArray[Uniform] =
  #| (self) => self.uniforms.flat().slice()

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

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

///|
pub extern "js" fn UniformsGroup::dispose(self : UniformsGroup) -> Unit =
  #| (self) => self.dispose()