UNPKG

@animech-public/playcanvas

Version:
2 lines (1 loc) 1.27 kB
import{AnimNode as e}from"./anim-node.js";class t extends e{constructor(t,i,r,n,h,s,a,l,c){super(t,i,r,n),this._parameters=h,this._parameterValues=new Array(h.length),this._children=[],this._findParameter=c,this._syncAnimations=!1!==a,this._pointCache={};for(let i=0;i<s.length;i++){const r=s[i];r.children?this._children.push(l(r.type,t,this,r.name,1,r.parameter?[r.parameter]:r.parameters,r.children,r.syncAnimations,l,c)):this._children.push(new e(t,this,r.name,r.point,r.speed))}}get weight(){return this.calculateWeights(),this._parent?this._parent.weight*this._weight:this._weight}get syncAnimations(){return this._syncAnimations}getChild(e){for(let t=0;t<this._children.length;t++)if(this._children[t].name===e)return this._children[t];return null}updateParameterValues(){let e=!0;for(let t=0;t<this._parameterValues.length;t++){const i=this._findParameter(this._parameters[t]).value;this._parameterValues[t]!==i&&(this._parameterValues[t]=i,e=!1)}return e}getNodeWeightedDuration(e){return this._children[e].animTrack.duration/this._children[e].speedMultiplier*this._children[e].weight}getNodeCount(){let e=0;for(let i=0;i<this._children.length;i++){this._children[i].constructor===t?e+=this._children[i].getNodeCount():e++}return e}}export{t as AnimBlendTree};