@visactor/vrender-animate
Version:
This module provides a graph-based animation system for VRender.
76 lines (75 loc) • 3.18 kB
JavaScript
import { AnimationStateManager, AnimationStateStore } from "./animation-state";
export class GraphicStateExtension {
_getAnimationStateManager(graphic) {
return graphic._animationStateManager || (graphic._animationStateManager = new AnimationStateManager(graphic)),
graphic._animationStateManager;
}
_getAnimationStateStore(graphic) {
return graphic._animationStateStore || (graphic._animationStateStore = new AnimationStateStore(graphic)),
graphic._animationStateStore;
}
trackAnimate(animate) {
this._getAnimationStateManager(this).trackAnimate(animate);
}
untrackAnimate(animateId) {
const manager = this._animationStateManager;
null == manager || manager.untrackAnimate(animateId);
}
forEachTrackedAnimate(cb) {
const manager = this._animationStateManager;
null == manager || manager.forEachTrackedAnimate(cb);
}
getTrackedAnimates() {
return this._getAnimationStateManager(this).getTrackedAnimates();
}
hasTrackedAnimate() {
const manager = this._animationStateManager;
return !!manager && manager.hasTrackedAnimate();
}
registerAnimationState(state) {
return this._getAnimationStateStore(this).registerState(state), this;
}
applyAnimationState(state, animationConfig, callback) {
return this._getAnimationStateManager(this).applyState(state, animationConfig, callback),
this;
}
applyAppearState(animationConfig, callback) {
return this._getAnimationStateManager(this).applyAppearState(animationConfig, callback),
this;
}
applyDisappearState(animationConfig, callback) {
return this._getAnimationStateManager(this).applyDisappearState(animationConfig, callback),
this;
}
applyUpdateState(animationConfig, callback) {
return this._getAnimationStateManager(this).applyUpdateState(animationConfig, callback),
this;
}
applyHighlightState(animationConfig, callback) {
return this._getAnimationStateManager(this).applyHighlightState(animationConfig, callback),
this;
}
applyUnhighlightState(animationConfig, callback) {
return this._getAnimationStateManager(this).applyUnhighlightState(animationConfig, callback),
this;
}
stopAnimationState(state, type, deep = !1) {
return this._getAnimationStateManager(this).stopState(state, type), deep && this.isContainer && this.forEachChildren((child => {
child.stopAnimationState(state, type, deep);
})), this;
}
clearAnimationStates() {
const stateManager = this._animationStateManager;
return stateManager && stateManager.clearState(), this;
}
reApplyAnimationState(state, deep = !1) {
const stateManager = this._animationStateManager;
return stateManager && stateManager.reApplyState(state), deep && this.isContainer && this.forEachChildren((child => {
child.reApplyAnimationState(state, deep);
})), this;
}
static extend(graphic) {
return graphic;
}
}
//# sourceMappingURL=graphic-extension.js.map