UNPKG

pixi-dragonbones-runtime

Version:
3 lines (2 loc) 5.25 kB
"use strict";require("../core/BaseObject.cjs");var t=require("../core/DragonBones.cjs"),a=require("../geom/Transform.cjs"),r=require("./TransformObject.cjs");class i extends r.TransformObject{constructor(){super(...arguments),this.animationPose=new a.Transform}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 r=this._boneData,i=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.DragonBones.yDown;let c=null!==h,m=0;if(1===this.offsetMode?null!==s?(i.x=s.x+e.x+n.x,i.scaleX=s.scaleX*e.scaleX*n.scaleX,i.scaleY=s.scaleY*e.scaleY*n.scaleY,t.DragonBones.yDown?(i.y=s.y+e.y+n.y,i.skew=s.skew+e.skew+n.skew,i.rotation=s.rotation+e.rotation+n.rotation):(i.y=s.y-e.y+n.y,i.skew=s.skew-e.skew+n.skew,i.rotation=s.rotation-e.rotation+n.rotation)):(i.copyFrom(e),t.DragonBones.yDown||(i.y=-i.y,i.skew=-i.skew,i.rotation=-i.rotation),i.add(n)):0===this.offsetMode?null!==s?i.copyFrom(s).add(n):i.copyFrom(n):(c=!1,i.copyFrom(e),t.DragonBones.yDown||(i.y=-i.y,i.skew=-i.skew,i.rotation=-i.rotation)),c){const s=1===h._boneData.type,e=s?h._bone:null,n=s?h._getGlobalTransformMatrix(i.x,i.y):h.globalTransformMatrix;if(!r.inheritScale||s&&null===e){if(r.inheritTranslation){const t=i.x,a=i.y;i.x=n.a*t+n.c*a+n.tx,i.y=n.b*t+n.d*a+n.ty}else l&&(i.x=-i.x),_&&(i.y=-i.y);r.inheritRotation?(h.updateGlobalTransform(),m=h.global.scaleX<0?i.rotation+h.global.rotation+Math.PI:i.rotation+h.global.rotation,n.a*n.d-n.b*n.c<0&&(m-=2*i.rotation,(l!==_||r.inheritReflection)&&(i.skew+=Math.PI),t.DragonBones.yDown||(i.skew=-i.skew)),i.rotation=m):(l||_)&&(l&&_?m=i.rotation+Math.PI:(m=l?Math.PI-i.rotation:-i.rotation,i.skew+=Math.PI),i.rotation=m),i.toMatrix(o)}else s?(r.inheritRotation&&(i.rotation+=h.global.rotation),e.updateGlobalTransform(),i.scaleX*=e.global.scaleX,i.scaleY*=e.global.scaleY,n.transformPoint(i.x,i.y,i),i.toMatrix(o),r.inheritTranslation?(i.x=o.tx,i.y=o.ty):(o.tx=i.x,o.ty=i.y)):(r.inheritRotation||(h.updateGlobalTransform(),m=l&&_?i.rotation-(h.global.rotation+Math.PI):l?i.rotation+h.global.rotation+Math.PI:_?i.rotation+h.global.rotation:i.rotation-h.global.rotation,i.rotation=m),i.toMatrix(o),o.concat(n),r.inheritTranslation?(i.x=o.tx,i.y=o.ty):(o.tx=i.x,o.ty=i.y),a?i.fromMatrix(o):this._globalDirty=!0)}else(l||_)&&(l&&(i.x=-i.x),_&&(i.y=-i.y),l&&_?m=i.rotation+Math.PI:(m=l?Math.PI-i.rotation:-i.rotation,i.skew+=Math.PI),i.rotation=m),i.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}}exports.Bone=i; //# sourceMappingURL=Bone.cjs.map