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

///|
#external
pub type AnimationAction

///|
pub extern "js" fn AnimationAction::play(
  self : AnimationAction,
) -> AnimationAction =
  #| (self) => self.play()

///|
pub extern "js" fn AnimationAction::stop(
  self : AnimationAction,
) -> AnimationAction =
  #| (self) => self.stop()

///|
pub extern "js" fn AnimationAction::reset(
  self : AnimationAction,
) -> AnimationAction =
  #| (self) => self.reset()

///|
pub extern "js" fn AnimationAction::is_running(self : AnimationAction) -> Bool =
  #| (self) => self.isRunning()

///|
pub extern "js" fn AnimationAction::paused(self : AnimationAction) -> Bool =
  #| (self) => self.paused

///|
pub extern "js" fn AnimationAction::set_paused(
  self : AnimationAction,
  value : Bool,
) -> Unit =
  #| (self, value) => { self.paused = value; }

///|
pub extern "js" fn AnimationAction::enabled(self : AnimationAction) -> Bool =
  #| (self) => self.enabled

///|
pub extern "js" fn AnimationAction::set_enabled(
  self : AnimationAction,
  value : Bool,
) -> Unit =
  #| (self, value) => { self.enabled = value; }

///|
pub extern "js" fn AnimationAction::time(self : AnimationAction) -> Double =
  #| (self) => self.time

///|
pub extern "js" fn AnimationAction::set_time(
  self : AnimationAction,
  value : Double,
) -> Unit =
  #| (self, value) => { self.time = value; }

///|
pub extern "js" fn AnimationAction::clamp_when_finished(
  self : AnimationAction,
) -> Bool =
  #| (self) => self.clampWhenFinished

///|
pub extern "js" fn AnimationAction::set_clamp_when_finished(
  self : AnimationAction,
  value : Bool,
) -> Unit =
  #| (self, value) => { self.clampWhenFinished = value; }

///|
pub extern "js" fn AnimationAction::set_loop(
  self : AnimationAction,
  mode : LoopMode,
  repetitions : Double,
) -> AnimationAction =
  #| (self, mode, repetitions) => self.setLoop(mode, repetitions)

///|
pub extern "js" fn AnimationAction::set_effective_weight(
  self : AnimationAction,
  weight : Double,
) -> AnimationAction =
  #| (self, weight) => self.setEffectiveWeight(weight)

///|
pub extern "js" fn AnimationAction::get_effective_weight(
  self : AnimationAction,
) -> Double =
  #| (self) => self.getEffectiveWeight()

///|
pub extern "js" fn AnimationAction::set_effective_time_scale(
  self : AnimationAction,
  scale : Double,
) -> AnimationAction =
  #| (self, scale) => self.setEffectiveTimeScale(scale)

///|
pub extern "js" fn AnimationAction::fade_in(
  self : AnimationAction,
  duration : Double,
) -> AnimationAction =
  #| (self, duration) => self.fadeIn(duration)

///|
pub extern "js" fn AnimationAction::fade_out(
  self : AnimationAction,
  duration : Double,
) -> AnimationAction =
  #| (self, duration) => self.fadeOut(duration)

///|
pub extern "js" fn AnimationAction::cross_fade_from(
  self : AnimationAction,
  action : AnimationAction,
  duration : Double,
  warp : Bool,
) -> AnimationAction =
  #| (self, action, duration, warp) => self.crossFadeFrom(action, duration, warp)

///|
pub extern "js" fn AnimationAction::blend_mode(
  self : AnimationAction,
) -> AnimationBlendMode =
  #| (self) => self.blendMode

///|
pub extern "js" fn AnimationAction::set_blend_mode(
  self : AnimationAction,
  value : AnimationBlendMode,
) -> Unit =
  #| (self, value) => { self.blendMode = value; }

///|
pub extern "js" fn AnimationAction::loop_mode(
  self : AnimationAction,
) -> LoopMode =
  #| (self) => self.loop

///|
pub extern "js" fn AnimationAction::time_scale(
  self : AnimationAction,
) -> Double =
  #| (self) => self.timeScale

///|
pub extern "js" fn AnimationAction::set_time_scale(
  self : AnimationAction,
  value : Double,
) -> Unit =
  #| (self, value) => { self.timeScale = value; }

///|
pub extern "js" fn AnimationAction::weight(self : AnimationAction) -> Double =
  #| (self) => self.weight

///|
pub extern "js" fn AnimationAction::set_weight(
  self : AnimationAction,
  value : Double,
) -> Unit =
  #| (self, value) => { self.weight = value; }

///|
pub extern "js" fn AnimationAction::repetitions(
  self : AnimationAction,
) -> Double =
  #| (self) => self.repetitions

///|
pub extern "js" fn AnimationAction::set_repetitions(
  self : AnimationAction,
  value : Double,
) -> Unit =
  #| (self, value) => { self.repetitions = value; }

///|
pub extern "js" fn AnimationAction::zero_slope_at_start(
  self : AnimationAction,
) -> Bool =
  #| (self) => self.zeroSlopeAtStart

///|
pub extern "js" fn AnimationAction::set_zero_slope_at_start(
  self : AnimationAction,
  value : Bool,
) -> Unit =
  #| (self, value) => { self.zeroSlopeAtStart = value; }

///|
pub extern "js" fn AnimationAction::zero_slope_at_end(
  self : AnimationAction,
) -> Bool =
  #| (self) => self.zeroSlopeAtEnd

///|
pub extern "js" fn AnimationAction::set_zero_slope_at_end(
  self : AnimationAction,
  value : Bool,
) -> Unit =
  #| (self, value) => { self.zeroSlopeAtEnd = value; }

///|
pub extern "js" fn AnimationAction::is_scheduled(
  self : AnimationAction,
) -> Bool =
  #| (self) => self.isScheduled()

///|
pub extern "js" fn AnimationAction::start_at(
  self : AnimationAction,
  time : Double,
) -> AnimationAction =
  #| (self, time) => self.startAt(time)

///|
pub extern "js" fn AnimationAction::cross_fade_to(
  self : AnimationAction,
  action : AnimationAction,
  duration : Double,
  warp : Bool,
) -> AnimationAction =
  #| (self, action, duration, warp) => self.crossFadeTo(action, duration, warp)

///|
pub extern "js" fn AnimationAction::stop_fading(
  self : AnimationAction,
) -> AnimationAction =
  #| (self) => self.stopFading()

///|
pub extern "js" fn AnimationAction::stop_warping(
  self : AnimationAction,
) -> AnimationAction =
  #| (self) => self.stopWarping()

///|
pub extern "js" fn AnimationAction::get_effective_time_scale(
  self : AnimationAction,
) -> Double =
  #| (self) => self.getEffectiveTimeScale()

///|
pub extern "js" fn AnimationAction::set_duration(
  self : AnimationAction,
  duration : Double,
) -> AnimationAction =
  #| (self, duration) => self.setDuration(duration)

///|
pub extern "js" fn AnimationAction::sync_with(
  self : AnimationAction,
  action : AnimationAction,
) -> AnimationAction =
  #| (self, action) => self.syncWith(action)

///|
pub extern "js" fn AnimationAction::halt(
  self : AnimationAction,
  duration : Double,
) -> AnimationAction =
  #| (self, duration) => self.halt(duration)

///|
pub extern "js" fn AnimationAction::warp(
  self : AnimationAction,
  start_time_scale : Double,
  end_time_scale : Double,
  duration : Double,
) -> AnimationAction =
  #| (self, start_time_scale, end_time_scale, duration) => self.warp(start_time_scale, end_time_scale, duration)

///|
pub extern "js" fn AnimationAction::get_mixer(
  self : AnimationAction,
) -> AnimationMixer =
  #| (self) => self.getMixer()

///|
pub extern "js" fn AnimationAction::get_clip(
  self : AnimationAction,
) -> AnimationClip =
  #| (self) => self.getClip()

///|
pub extern "js" fn AnimationAction::get_root(
  self : AnimationAction,
) -> Object3D =
  #| (self) => self.getRoot()