// Generated by scripts/generate.mjs from bindings/api.mjs. Do not edit.
///|
#external
pub type KeyframeTrack
///|
pub extern "js" fn KeyframeTrack::name(self : KeyframeTrack) -> String =
#| (self) => self.name
///|
pub extern "js" fn KeyframeTrack::shift(
self : KeyframeTrack,
offset : Double,
) -> KeyframeTrack =
#| (self, offset) => self.shift(offset)
///|
pub extern "js" fn KeyframeTrack::scale(
self : KeyframeTrack,
scale : Double,
) -> KeyframeTrack =
#| (self, scale) => self.scale(scale)
///|
pub extern "js" fn KeyframeTrack::times(
self : KeyframeTrack,
) -> FixedArray[Double] =
#| (self) => Array.from(self.times)
///|
extern "js" fn KeyframeTrack::ffi_number_values(
self : KeyframeTrack,
) -> Nullable[FixedArray[Double]] =
#| (self) => { const values = Array.from(self.values); return values.every(value => typeof value === "number") ? values : null; }
///|
pub fn KeyframeTrack::number_values(
self : KeyframeTrack,
) -> FixedArray[Double]? {
self.ffi_number_values().to_option()
}
///|
pub extern "js" fn KeyframeTrack::set_interpolation(
self : KeyframeTrack,
interpolation : InterpolationMode,
) -> KeyframeTrack =
#| (self, interpolation) => self.setInterpolation(interpolation)
///|
pub extern "js" fn KeyframeTrack::get_interpolation(
self : KeyframeTrack,
) -> InterpolationMode =
#| (self) => self.getInterpolation()
///|
pub extern "js" fn KeyframeTrack::get_value_size(self : KeyframeTrack) -> Int =
#| (self) => self.getValueSize()
///|
pub extern "js" fn KeyframeTrack::trim(
self : KeyframeTrack,
start_time : Double,
end_time : Double,
) -> KeyframeTrack =
#| (self, start_time, end_time) => self.trim(start_time, end_time)
///|
pub extern "js" fn KeyframeTrack::validate(self : KeyframeTrack) -> Bool =
#| (self) => self.validate()
///|
pub extern "js" fn KeyframeTrack::optimize(
self : KeyframeTrack,
) -> KeyframeTrack =
#| (self) => self.optimize()
///|
pub extern "js" fn KeyframeTrack::clone(self : KeyframeTrack) -> KeyframeTrack =
#| (self) => self.clone()
///|
pub extern "js" fn KeyframeTrack::value_type_name(
self : KeyframeTrack,
) -> String =
#| (self) => self.ValueTypeName
///|
pub extern "js" fn KeyframeTrack::default_interpolation(
self : KeyframeTrack,
) -> InterpolationMode =
#| (self) => self.DefaultInterpolation
///|
extern "js" fn KeyframeTrack::ffi_create_numeric_interpolant(
self : KeyframeTrack,
) -> Nullable[Interpolant] =
#| (self) => Array.from(self.values).every(value => typeof value === "number") ? self.createInterpolant() : null
///|
pub fn KeyframeTrack::create_numeric_interpolant(
self : KeyframeTrack,
) -> Interpolant? {
self.ffi_create_numeric_interpolant().to_option()
}
///|
extern "js" fn KeyframeTrack::ffi_to_json(
self : KeyframeTrack,
) -> JsResult[String] =
#| (self) => { try { return { ok: true, value: (() => JSON.stringify(self.constructor.toJSON(self)))() }; } catch (error) { return { ok: false, error: String(error) }; } }
///|
pub fn KeyframeTrack::to_json(
self : KeyframeTrack,
) -> Json raise SerializationError {
match self.ffi_to_json().into_result() {
Ok(value) =>
@json.parse(value) catch {
error => raise SerializationError((error : Error).to_string())
}
Err(message) => raise SerializationError(message)
}
}
///|
extern "js" fn KeyframeTrack::ffi_to_json_string(
self : KeyframeTrack,
) -> JsResult[String] =
#| (self) => { try { return { ok: true, value: (() => JSON.stringify(self.constructor.toJSON(self)))() }; } catch (error) { return { ok: false, error: String(error) }; } }
///|
pub fn KeyframeTrack::to_json_string(
self : KeyframeTrack,
) -> String raise SerializationError {
match self.ffi_to_json_string().into_result() {
Ok(value) => value
Err(message) => raise SerializationError(message)
}
}