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

///|
#external
pub type BezierInterpolant

///|
#module("@mizchi/three-mbt/interpolation")
pub extern "js" fn BezierInterpolant::BezierInterpolant(
  positions : FixedArray[Double],
  values : FixedArray[Double],
  value_size : Int,
) -> BezierInterpolant = "bezierInterpolant"

///|
pub fn BezierInterpolant::as_interpolant(
  self : BezierInterpolant,
) -> Interpolant = "%identity"

///|
pub extern "js" fn BezierInterpolant::set_tangents(
  self : BezierInterpolant,
  in_tangents : FixedArray[Double],
  out_tangents : FixedArray[Double],
) -> Unit =
  #| (self, in_tangents, out_tangents) => { self.inTangents = new Float64Array(in_tangents); self.outTangents = new Float64Array(out_tangents); }

///|
pub extern "js" fn BezierInterpolant::clear_tangents(
  self : BezierInterpolant,
) -> Unit =
  #| (self) => { self.inTangents = undefined; self.outTangents = undefined; }