@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.39 kB
JavaScript
import{C as t,bx as e,u as i}from"./index-BPURObVq.esm.min.js";import{F as a}from"./KHR_interactivity-D4lwBSW9.esm.min.js";import{g as s,e as n,d as r,R as o,b as u}from"./declarationMapper-D_filC93.esm.min.js";import"./objectModelMapping-ClgDmo5Q.esm.min.js";import"./spotLight.pure-5s2DDDIt.esm.min.js";class l extends a{constructor(e={}){super(e),this.keyFrames=[];const i="string"==typeof e?.animationType?s(e.animationType):n(e?.animationType??t.ANIMATIONTYPE_FLOAT),a=e?.keyFramesCount??1,l=this.registerDataInput("duration_0",r,0),m=this.registerDataInput("value_0",i);this.keyFrames.push({duration:l,value:m});for(let t=1;t<a+1;t++){const s=this.registerDataInput(`duration_${t}`,r,t===a?e.duration:void 0),n=this.registerDataInput(`value_${t}`,i);this.keyFrames.push({duration:s,value:n})}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",u,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),s=this._createAnimation(t,i,a);if(this.animation.setValue(s,t),Array.isArray(s))for(const t of s)e.push(t.uniqueId);else e.push(s.uniqueId);t._setGlobalContextVariable("interpolationAnimations",e)}_createAnimation(t,i,a){const s=this.initialValue.richType,n=[],r=this.initialValue.getValue(t)||s.defaultValue;n.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||s.defaultValue),void 0!==i&&a&&n.push({frame:60*i,value:a})}const u=this.customBuildAnimation.getValue(t);if(u)return u(null,null,t)(n,60,s.animationType,a);if("string"==typeof i){const t=e(i,s.animationType,60,a);return t.setKeys(n),[t]}return i.map(t=>{const i=e(t,s.animationType,60,a);return i.setKeys(n),i})}getClassName(){return"FlowGraphInterpolationBlock"}}let m=!1;function p(){m||(m=!0,i("FlowGraphInterpolationBlock",l))}p();export{l as FlowGraphInterpolationBlock,p as RegisterFlowGraphInterpolationBlock};
//# sourceMappingURL=flowGraphInterpolationBlock-CKWIEoO7.esm.min.js.map