@polygonjs/polygonjs
Version:
node-based WebGL 3D engine https://polygonjs.com
34 lines (29 loc) • 947 B
text/typescript
/**
* Add keyframes to an animation
*
*/
import {TypedAnimNode} from './_Base';
import {TimelineBuilder} from '../../../core/animation/TimelineBuilder';
import {NodeParamsConfig, ParamConfig} from '../utils/params/ParamsConfig';
import {RampParam} from '../../params/Ramp';
class KeyframesParamsConfig extends NodeParamsConfig {
/** @param keyframes */
keyframes = ParamConfig.RAMP(RampParam.DEFAULT_VALUE, {
hideLabel: true,
});
}
const ParamsConfig = new KeyframesParamsConfig();
export class KeyframesAnimNode extends TypedAnimNode<KeyframesParamsConfig> {
override paramsConfig = ParamsConfig;
static override type() {
return 'keyframes';
}
override initializeNode() {
this.io.inputs.setCount(0, 1);
}
override cook(inputContents: TimelineBuilder[]) {
const timelineBuilder = inputContents[0] || new TimelineBuilder();
timelineBuilder.setKeyframes(this.pv.keyframes);
this.setTimelineBuilder(timelineBuilder);
}
}