@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) • 1.86 kB
JavaScript
import{aR as n,aD as t,V as e}from"./index-BPURObVq.esm.min.js";import{S as a}from"./objectModelMapping-ClgDmo5Q.esm.min.js";import"./spotLight.pure-5s2DDDIt.esm.min.js";function o(n,t,a,o){return e.FromArray(t,a).scaleInPlace(o)}function i(n,e,a,o){return t.FromArray(e,a).scaleInPlace(o)}function s(n,t,e,a){const o=new Array(n._numMorphTargets);for(let n=0;n<o.length;n++)o[n]=t[e++]*a;return o}class r{constructor(n,t,e,a){this.type=n,this.name=t,this.getValue=e,this.getStride=a}_buildAnimation(t,e,a){const o=new n(t,this.name,e,this.type);return o.setKeys(a,!0),o}}class m extends r{buildAnimations(n,t,e,a){const o=[];return o.push({babylonAnimatable:n._babylonTransformNode,babylonAnimation:this._buildAnimation(t,e,a)}),o}}class l extends r{buildAnimations(t,e,a,o){const i=[];if(t._numMorphTargets)for(let s=0;s<t._numMorphTargets;s++){const r=new n(`${e}_${s}`,this.name,a,this.type);if(r.setKeys(o.map(n=>({frame:n.frame,inTangent:n.inTangent?n.inTangent[s]:void 0,value:n.value[s],outTangent:n.outTangent?n.outTangent[s]:void 0,interpolation:n.interpolation})),!0),t._primitiveBabylonMeshes)for(const n of t._primitiveBabylonMeshes)if(n.morphTargetManager){const t=n.morphTargetManager.getTarget(s),e=r.clone();t.animations.push(e),i.push({babylonAnimatable:t,babylonAnimation:e})}}return i}}a("/nodes/{}/translation",[new m(n.ANIMATIONTYPE_VECTOR3,"position",o,()=>3)]),a("/nodes/{}/rotation",[new m(n.ANIMATIONTYPE_QUATERNION,"rotationQuaternion",i,()=>4)]),a("/nodes/{}/scale",[new m(n.ANIMATIONTYPE_VECTOR3,"scaling",o,()=>3)]),a("/nodes/{}/weights",[new l(n.ANIMATIONTYPE_FLOAT,"influence",s,n=>n._numMorphTargets)]);export{r as AnimationPropertyInfo,m as TransformNodeAnimationPropertyInfo,l as WeightAnimationPropertyInfo,i as getQuaternion,o as getVector3,s as getWeights};
//# sourceMappingURL=glTFLoaderAnimation-BVk4dWhg.esm.min.js.map