motion-and-tween
Version:
Motion and Tween
48 lines (47 loc) • 2.13 kB
JavaScript
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
if (typeof b !== "function" && b !== null)
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
import Tween from "../Tween.js";
var EaseInOutCircularTween = /** @class */ (function (_super) {
__extends(EaseInOutCircularTween, _super);
function EaseInOutCircularTween(params) {
return _super.call(this, params, "EaseInOutCircularTween") || this;
}
EaseInOutCircularTween.prototype.tweenAlgorithm = function (params) {
var nextT = params.nextT, beginValue = params.beginValue, valueChange = params.valueChange, actionDuration = params.actionDuration;
var timeStep = nextT / (actionDuration / 2);
var newValue;
if (timeStep <= 1) {
// const timeStep = nextT / (actionDuration / 2);
newValue =
(valueChange / 2) * (1 - Math.sqrt(1 - Math.pow(timeStep, 2))) +
beginValue;
}
else {
timeStep = timeStep - 2;
newValue =
(valueChange / 2) * Math.sqrt(1 - Math.pow(timeStep, 2)) +
(beginValue + valueChange / 2);
}
return newValue;
};
EaseInOutCircularTween.prototype.update = function (params) {
if (params === void 0) { params = null; }
return _super.prototype.update.call(this, params, this.tweenAlgorithm);
};
return EaseInOutCircularTween;
}(Tween));
export { EaseInOutCircularTween };
export default EaseInOutCircularTween;