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

///|
#external
pub type BokehPass

///|
#module("@mizchi/three-mbt/render-extra")
pub extern "js" fn BokehPass::BokehPass(
  scene : Scene,
  camera : PerspectiveCamera,
  focus : Double,
  aperture : Double,
  max_blur : Double,
) -> BokehPass = "bokehPass"

///|
pub fn BokehPass::as_pass(self : BokehPass) -> Pass = "%identity"

///|
pub extern "js" fn BokehPass::uniforms(self : BokehPass) -> Uniforms =
  #| (self) => self.uniforms

///|
pub extern "js" fn BokehPass::focus(self : BokehPass) -> Double =
  #| (self) => self.uniforms.focus.value

///|
pub extern "js" fn BokehPass::set_focus(
  self : BokehPass,
  value : Double,
) -> Unit =
  #| (self, value) => { self.uniforms.focus.value=value; }

///|
pub extern "js" fn BokehPass::aperture(self : BokehPass) -> Double =
  #| (self) => self.uniforms.aperture.value

///|
pub extern "js" fn BokehPass::set_aperture(
  self : BokehPass,
  value : Double,
) -> Unit =
  #| (self, value) => { self.uniforms.aperture.value=value; }

///|
pub extern "js" fn BokehPass::max_blur(self : BokehPass) -> Double =
  #| (self) => self.uniforms.maxblur.value

///|
pub extern "js" fn BokehPass::set_max_blur(
  self : BokehPass,
  value : Double,
) -> Unit =
  #| (self, value) => { self.uniforms.maxblur.value=value; }