@babylonjs/viewer
Version:
The Babylon Viewer aims to simplify a specific but common Babylon.js use case: loading, viewing, and interacting with a 3D model.
3 lines (2 loc) • 2.3 kB
JavaScript
import{C as t,aE as e,R as i}from"./index-Bw2N6w1y.esm.min.js";import{F as a}from"./KHR_interactivity-CKt1TdMW.esm.min.js";import{g as n,i as s,f as r,R as o}from"./declarationMapper-13w1YGqM.esm.min.js";import"./objectModelMapping-DX92iJ8M.esm.min.js";class u extends a{constructor(e={}){super(e),this.keyFrames=[];const i="string"==typeof e?.animationType?n(e.animationType):s(e?.animationType??t.ANIMATIONTYPE_FLOAT),a=e?.keyFramesCount??1,u=this.registerDataInput("duration_0",r,0),l=this.registerDataInput("value_0",i);this.keyFrames.push({duration:u,value:l});for(let t=1;t<a+1;t++){const n=this.registerDataInput(`duration_${t}`,r,t===a?e.duration:void 0),s=this.registerDataInput(`value_${t}`,i);this.keyFrames.push({duration:n,value:s})}this.initialValue=this.keyFrames[0].value,this.endValue=this.keyFrames[a].value,this.easingFunction=this.registerDataInput("easingFunction",o),this.animation=this.registerDataOutput("animation",o),this.propertyName=this.registerDataInput("propertyName",o,e?.propertyName),this.customBuildAnimation=this.registerDataInput("customBuildAnimation",o)}_updateOutputs(t){const e=t._getGlobalContextVariable("interpolationAnimations",[]),i=this.propertyName.getValue(t),a=this.easingFunction.getValue(t),n=this._createAnimation(t,i,a);if(this.animation.setValue(n,t),Array.isArray(n))for(const t of n)e.push(t.uniqueId);else e.push(n.uniqueId);t._setGlobalContextVariable("interpolationAnimations",e)}_createAnimation(t,i,a){const n=this.initialValue.richType,s=[],r=this.initialValue.getValue(t)||n.defaultValue;s.push({frame:0,value:r});const o=this.config?.numberOfKeyFrames??1;for(let e=1;e<o+1;e++){const i=this.keyFrames[e].duration?.getValue(t);let a=this.keyFrames[e].value?.getValue(t);e===o-1&&(a=a||n.defaultValue),void 0!==i&&a&&s.push({frame:60*i,value:a})}const u=this.customBuildAnimation.getValue(t);if(u)return u(null,null,t)(s,60,n.animationType,a);if("string"==typeof i){const t=e.CreateAnimation(i,n.animationType,60,a);return t.setKeys(s),[t]}return i.map((t=>{const i=e.CreateAnimation(t,n.animationType,60,a);return i.setKeys(s),i}))}getClassName(){return"FlowGraphInterpolationBlock"}}i("FlowGraphInterpolationBlock",u);export{u as FlowGraphInterpolationBlock};
//# sourceMappingURL=flowGraphInterpolationBlock-CJCWGZR-.esm.min.js.map