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

///|
#external
pub type CubicInterpolant

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

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

///|
pub extern "js" fn CubicInterpolant::set_endings(
  self : CubicInterpolant,
  start : InterpolationEnding,
  end : InterpolationEnding,
) -> Unit =
  #| (self, start, end) => { self.settings = { endingStart: start, endingEnd: end }; }

///|
pub extern "js" fn CubicInterpolant::ending_start(
  self : CubicInterpolant,
) -> InterpolationEnding =
  #| (self) => (self.settings ?? self.DefaultSettings_).endingStart

///|
pub extern "js" fn CubicInterpolant::ending_end(
  self : CubicInterpolant,
) -> InterpolationEnding =
  #| (self) => (self.settings ?? self.DefaultSettings_).endingEnd