pixi-dragonbones-runtime
Version:
DragonBones Runtime for Pixi.js
3 lines (2 loc) • 5.2 kB
JavaScript
import"../core/BaseObject.mjs";import{DragonBones as t}from"../core/DragonBones.mjs";import{Transform as a}from"../geom/Transform.mjs";import{TransformObject as i}from"./TransformObject.mjs";class r extends i{constructor(){super(...arguments),this.animationPose=new a}static toString(){return"[class dragonBones.Bone]"}_onClear(){super._onClear(),this.offsetMode=1,this.animationPose.identity(),this._transformDirty=!1,this._childrenTransformDirty=!1,this._localDirty=!0,this._hasConstraint=!1,this._visible=!0,this._cachedFrameIndex=-1,this._boneData=null,this._parent=null,this._cachedFrameIndices=null}_updateGlobalTransformMatrix(a){const i=this._boneData,r=this.global,o=this.globalTransformMatrix,s=this.origin,e=this.offset,n=this.animationPose,h=this._parent,l=this._armature.flipX,_=this._armature.flipY===t.yDown;let c=null!==h,m=0;if(1===this.offsetMode?null!==s?(r.x=s.x+e.x+n.x,r.scaleX=s.scaleX*e.scaleX*n.scaleX,r.scaleY=s.scaleY*e.scaleY*n.scaleY,t.yDown?(r.y=s.y+e.y+n.y,r.skew=s.skew+e.skew+n.skew,r.rotation=s.rotation+e.rotation+n.rotation):(r.y=s.y-e.y+n.y,r.skew=s.skew-e.skew+n.skew,r.rotation=s.rotation-e.rotation+n.rotation)):(r.copyFrom(e),t.yDown||(r.y=-r.y,r.skew=-r.skew,r.rotation=-r.rotation),r.add(n)):0===this.offsetMode?null!==s?r.copyFrom(s).add(n):r.copyFrom(n):(c=!1,r.copyFrom(e),t.yDown||(r.y=-r.y,r.skew=-r.skew,r.rotation=-r.rotation)),c){const s=1===h._boneData.type,e=s?h._bone:null,n=s?h._getGlobalTransformMatrix(r.x,r.y):h.globalTransformMatrix;if(!i.inheritScale||s&&null===e){if(i.inheritTranslation){const t=r.x,a=r.y;r.x=n.a*t+n.c*a+n.tx,r.y=n.b*t+n.d*a+n.ty}else l&&(r.x=-r.x),_&&(r.y=-r.y);i.inheritRotation?(h.updateGlobalTransform(),m=h.global.scaleX<0?r.rotation+h.global.rotation+Math.PI:r.rotation+h.global.rotation,n.a*n.d-n.b*n.c<0&&(m-=2*r.rotation,(l!==_||i.inheritReflection)&&(r.skew+=Math.PI),t.yDown||(r.skew=-r.skew)),r.rotation=m):(l||_)&&(l&&_?m=r.rotation+Math.PI:(m=l?Math.PI-r.rotation:-r.rotation,r.skew+=Math.PI),r.rotation=m),r.toMatrix(o)}else s?(i.inheritRotation&&(r.rotation+=h.global.rotation),e.updateGlobalTransform(),r.scaleX*=e.global.scaleX,r.scaleY*=e.global.scaleY,n.transformPoint(r.x,r.y,r),r.toMatrix(o),i.inheritTranslation?(r.x=o.tx,r.y=o.ty):(o.tx=r.x,o.ty=r.y)):(i.inheritRotation||(h.updateGlobalTransform(),m=l&&_?r.rotation-(h.global.rotation+Math.PI):l?r.rotation+h.global.rotation+Math.PI:_?r.rotation+h.global.rotation:r.rotation-h.global.rotation,r.rotation=m),r.toMatrix(o),o.concat(n),i.inheritTranslation?(r.x=o.tx,r.y=o.ty):(o.tx=r.x,o.ty=r.y),a?r.fromMatrix(o):this._globalDirty=!0)}else(l||_)&&(l&&(r.x=-r.x),_&&(r.y=-r.y),l&&_?m=r.rotation+Math.PI:(m=l?Math.PI-r.rotation:-r.rotation,r.skew+=Math.PI),r.rotation=m),r.toMatrix(o)}_updateAlpha(){null!==this._parent?this._globalAlpha=this._alpha*this._parent._globalAlpha:this._globalAlpha=this._alpha*this._armature._globalAlpha}init(t,a){null===this._boneData&&(this._boneData=t,this._armature=a,this._alpha=this._boneData.alpha,null!==this._boneData.parent&&(this._parent=this._armature.getBone(this._boneData.parent.name)),this._armature._addBone(this),this.origin=this._boneData.transform)}update(t){if(t>=0&&null!==this._cachedFrameIndices){const a=this._cachedFrameIndices[t];if(a>=0&&this._cachedFrameIndex===a)this._transformDirty=!1;else if(a>=0)this._transformDirty=!0,this._cachedFrameIndex=a;else{if(this._hasConstraint)for(const t of this._armature._constraints)t._root===this&&t.update();this._transformDirty||null!==this._parent&&this._parent._childrenTransformDirty?(this._transformDirty=!0,this._cachedFrameIndex=-1):this._cachedFrameIndex>=0?(this._transformDirty=!1,this._cachedFrameIndices[t]=this._cachedFrameIndex):(this._transformDirty=!0,this._cachedFrameIndex=-1)}}else{if(this._hasConstraint)for(const t of this._armature._constraints)t._root===this&&t.update();(this._transformDirty||null!==this._parent&&this._parent._childrenTransformDirty)&&(t=-1,this._transformDirty=!0,this._cachedFrameIndex=-1)}if(this._transformDirty)if(this._transformDirty=!1,this._childrenTransformDirty=!0,this._cachedFrameIndex<0){const a=t>=0;this._localDirty&&this._updateGlobalTransformMatrix(a),a&&null!==this._cachedFrameIndices&&(this._cachedFrameIndex=this._cachedFrameIndices[t]=this._armature._armatureData.setCacheFrame(this.globalTransformMatrix,this.global))}else this._armature._armatureData.getCacheFrame(this.globalTransformMatrix,this.global,this._cachedFrameIndex);else this._childrenTransformDirty&&(this._childrenTransformDirty=!1);this._localDirty=!0}updateByConstraint(){this._localDirty&&(this._localDirty=!1,(this._transformDirty||null!==this._parent&&this._parent._childrenTransformDirty)&&this._updateGlobalTransformMatrix(!0),this._transformDirty=!0)}invalidUpdate(){this._transformDirty=!0}contains(t){if(t===this)return!1;let a=t;for(;a!==this&&null!==a;)a=a.parent;return a===this}get boneData(){return this._boneData}get visible(){return this._visible}set visible(t){if(this._visible!==t){this._visible=t;for(const t of this._armature.getSlots())t.parent===this&&t._updateVisible()}}get name(){return this._boneData.name}get parent(){return this._parent}}export{r as Bone};
//# sourceMappingURL=Bone.mjs.map