UNPKG

@esotericsoftware/spine-core

Version:
55 lines 8.21 kB
/****************************************************************************** * Spine Runtimes License Agreement * Last updated April 5, 2025. Replaces all prior versions. * * Copyright (c) 2013-2025, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and * conditions of Section 2 of the Spine Editor License Agreement: * http://esotericsoftware.com/spine-editor-license * * Otherwise, it is permitted to integrate the Spine Runtimes into software * or otherwise create derivative works of the Spine Runtimes (collectively, * "Products"), provided that each user of the Products must obtain their own * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ /** Stores a pose for an IK constraint. */ export class IkConstraintPose { /** For two bone IK, controls the bend direction of the IK bones, either 1 or -1. */ bendDirection = 0; /** For one bone IK, when true and the target is too close, the bone is scaled to reach it. */ compress = false; /** When true and the target is out of range, the parent bone is scaled to reach it. * * For two bone IK: 1) the child bone's local Y translation is set to 0, 2) stretch is not applied if {@link softness} is > 0, * and 3) if the parent bone has local nonuniform scale, stretch is not applied. */ stretch = false; /** A percentage (0-1) that controls the mix between the constrained and unconstrained rotation. * * For two bone IK: if the parent bone has local nonuniform scale, the child bone's local Y translation is set to 0. */ mix = 0; /** For two bone IK, the target bone's distance from the maximum reach of the bones where rotation begins to slow. The bones * will not straighten completely until the target is this far out of range. */ softness = 0; set(pose) { this.mix = pose.mix; this.softness = pose.softness; this.bendDirection = pose.bendDirection; this.compress = pose.compress; this.stretch = pose.stretch; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSWtDb25zdHJhaW50UG9zZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9Ja0NvbnN0cmFpbnRQb3NlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7K0VBMkIrRTtBQUkvRSwwQ0FBMEM7QUFDMUMsTUFBTSxPQUFPLGdCQUFnQjtJQUM1QixvRkFBb0Y7SUFDcEYsYUFBYSxHQUFHLENBQUMsQ0FBQztJQUVsQiw4RkFBOEY7SUFDOUYsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUVqQjs7O3VGQUdtRjtJQUNuRixPQUFPLEdBQUcsS0FBSyxDQUFDO0lBRWhCOzsySEFFdUg7SUFDdkgsR0FBRyxHQUFHLENBQUMsQ0FBQztJQUVSO21GQUMrRTtJQUMvRSxRQUFRLEdBQUcsQ0FBQyxDQUFDO0lBRU4sR0FBRyxDQUFFLElBQXNCO1FBQ2pDLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQztRQUNwQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDOUIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO1FBQ3hDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUM5QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDN0IsQ0FBQztDQUNEIiwic291cmNlc0NvbnRlbnQiOlsiLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogU3BpbmUgUnVudGltZXMgTGljZW5zZSBBZ3JlZW1lbnRcbiAqIExhc3QgdXBkYXRlZCBBcHJpbCA1LCAyMDI1LiBSZXBsYWNlcyBhbGwgcHJpb3IgdmVyc2lvbnMuXG4gKlxuICogQ29weXJpZ2h0IChjKSAyMDEzLTIwMjUsIEVzb3RlcmljIFNvZnR3YXJlIExMQ1xuICpcbiAqIEludGVncmF0aW9uIG9mIHRoZSBTcGluZSBSdW50aW1lcyBpbnRvIHNvZnR3YXJlIG9yIG90aGVyd2lzZSBjcmVhdGluZ1xuICogZGVyaXZhdGl2ZSB3b3JrcyBvZiB0aGUgU3BpbmUgUnVudGltZXMgaXMgcGVybWl0dGVkIHVuZGVyIHRoZSB0ZXJtcyBhbmRcbiAqIGNvbmRpdGlvbnMgb2YgU2VjdGlvbiAyIG9mIHRoZSBTcGluZSBFZGl0b3IgTGljZW5zZSBBZ3JlZW1lbnQ6XG4gKiBodHRwOi8vZXNvdGVyaWNzb2Z0d2FyZS5jb20vc3BpbmUtZWRpdG9yLWxpY2Vuc2VcbiAqXG4gKiBPdGhlcndpc2UsIGl0IGlzIHBlcm1pdHRlZCB0byBpbnRlZ3JhdGUgdGhlIFNwaW5lIFJ1bnRpbWVzIGludG8gc29mdHdhcmVcbiAqIG9yIG90aGVyd2lzZSBjcmVhdGUgZGVyaXZhdGl2ZSB3b3JrcyBvZiB0aGUgU3BpbmUgUnVudGltZXMgKGNvbGxlY3RpdmVseSxcbiAqIFwiUHJvZHVjdHNcIiksIHByb3ZpZGVkIHRoYXQgZWFjaCB1c2VyIG9mIHRoZSBQcm9kdWN0cyBtdXN0IG9idGFpbiB0aGVpciBvd25cbiAqIFNwaW5lIEVkaXRvciBsaWNlbnNlIGFuZCByZWRpc3RyaWJ1dGlvbiBvZiB0aGUgUHJvZHVjdHMgaW4gYW55IGZvcm0gbXVzdFxuICogaW5jbHVkZSB0aGlzIGxpY2Vuc2UgYW5kIGNvcHlyaWdodCBub3RpY2UuXG4gKlxuICogVEhFIFNQSU5FIFJVTlRJTUVTIEFSRSBQUk9WSURFRCBCWSBFU09URVJJQyBTT0ZUV0FSRSBMTEMgXCJBUyBJU1wiIEFORCBBTllcbiAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRURcbiAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkVcbiAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEVTT1RFUklDIFNPRlRXQVJFIExMQyBCRSBMSUFCTEUgRk9SIEFOWVxuICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVNcbiAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUyxcbiAqIEJVU0lORVNTIElOVEVSUlVQVElPTiwgT1IgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFMpIEhPV0VWRVIgQ0FVU0VEIEFORFxuICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlRcbiAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRlxuICogVEhFIFNQSU5FIFJVTlRJTUVTLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLlxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5pbXBvcnQgdHlwZSB7IFBvc2UgfSBmcm9tIFwiLi9Qb3NlLmpzXCI7XG5cbi8qKiBTdG9yZXMgYSBwb3NlIGZvciBhbiBJSyBjb25zdHJhaW50LiAqL1xuZXhwb3J0IGNsYXNzIElrQ29uc3RyYWludFBvc2UgaW1wbGVtZW50cyBQb3NlPElrQ29uc3RyYWludFBvc2U+IHtcblx0LyoqIEZvciB0d28gYm9uZSBJSywgY29udHJvbHMgdGhlIGJlbmQgZGlyZWN0aW9uIG9mIHRoZSBJSyBib25lcywgZWl0aGVyIDEgb3IgLTEuICovXG5cdGJlbmREaXJlY3Rpb24gPSAwO1xuXG5cdC8qKiBGb3Igb25lIGJvbmUgSUssIHdoZW4gdHJ1ZSBhbmQgdGhlIHRhcmdldCBpcyB0b28gY2xvc2UsIHRoZSBib25lIGlzIHNjYWxlZCB0byByZWFjaCBpdC4gKi9cblx0Y29tcHJlc3MgPSBmYWxzZTtcblxuXHQvKiogV2hlbiB0cnVlIGFuZCB0aGUgdGFyZ2V0IGlzIG91dCBvZiByYW5nZSwgdGhlIHBhcmVudCBib25lIGlzIHNjYWxlZCB0byByZWFjaCBpdC5cblx0ICpcblx0ICogRm9yIHR3byBib25lIElLOiAxKSB0aGUgY2hpbGQgYm9uZSdzIGxvY2FsIFkgdHJhbnNsYXRpb24gaXMgc2V0IHRvIDAsIDIpIHN0cmV0Y2ggaXMgbm90IGFwcGxpZWQgaWYge0BsaW5rIHNvZnRuZXNzfSBpcyA+IDAsXG5cdCAqIGFuZCAzKSBpZiB0aGUgcGFyZW50IGJvbmUgaGFzIGxvY2FsIG5vbnVuaWZvcm0gc2NhbGUsIHN0cmV0Y2ggaXMgbm90IGFwcGxpZWQuICovXG5cdHN0cmV0Y2ggPSBmYWxzZTtcblxuXHQvKiogQSBwZXJjZW50YWdlICgwLTEpIHRoYXQgY29udHJvbHMgdGhlIG1peCBiZXR3ZWVuIHRoZSBjb25zdHJhaW5lZCBhbmQgdW5jb25zdHJhaW5lZCByb3RhdGlvbi5cblx0ICpcblx0ICogRm9yIHR3byBib25lIElLOiBpZiB0aGUgcGFyZW50IGJvbmUgaGFzIGxvY2FsIG5vbnVuaWZvcm0gc2NhbGUsIHRoZSBjaGlsZCBib25lJ3MgbG9jYWwgWSB0cmFuc2xhdGlvbiBpcyBzZXQgdG8gMC4gKi9cblx0bWl4ID0gMDtcblxuXHQvKiogRm9yIHR3byBib25lIElLLCB0aGUgdGFyZ2V0IGJvbmUncyBkaXN0YW5jZSBmcm9tIHRoZSBtYXhpbXVtIHJlYWNoIG9mIHRoZSBib25lcyB3aGVyZSByb3RhdGlvbiBiZWdpbnMgdG8gc2xvdy4gVGhlIGJvbmVzXG5cdCAqIHdpbGwgbm90IHN0cmFpZ2h0ZW4gY29tcGxldGVseSB1bnRpbCB0aGUgdGFyZ2V0IGlzIHRoaXMgZmFyIG91dCBvZiByYW5nZS4gKi9cblx0c29mdG5lc3MgPSAwO1xuXG5cdHB1YmxpYyBzZXQgKHBvc2U6IElrQ29uc3RyYWludFBvc2UpIHtcblx0XHR0aGlzLm1peCA9IHBvc2UubWl4O1xuXHRcdHRoaXMuc29mdG5lc3MgPSBwb3NlLnNvZnRuZXNzO1xuXHRcdHRoaXMuYmVuZERpcmVjdGlvbiA9IHBvc2UuYmVuZERpcmVjdGlvbjtcblx0XHR0aGlzLmNvbXByZXNzID0gcG9zZS5jb21wcmVzcztcblx0XHR0aGlzLnN0cmV0Y2ggPSBwb3NlLnN0cmV0Y2g7XG5cdH1cbn1cbiJdfQ==