UNPKG

@esotericsoftware/spine-core

Version:
60 lines 9.07 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. *****************************************************************************/ import { Color } from "../Utils.js"; import { VertexAttachment } from "./Attachment.js"; /** An attachment with vertices that make up a polygon used for clipping the rendering of other attachments. */ export class ClippingAttachment extends VertexAttachment { /** Clipping is performed between the clipping attachment's slot and the end slot. If null, clipping is done until the end of * the skeleton's rendering. */ endSlot = null; /** When true the clipping polygon is treated as convex for more efficient clipping. If the polygon deforms to concave then the * convex hull is used. When false the clipping polygon can be concave and if so has an additional CPU cost. Inverse clipping * always uses convex. */ convex = false; /** When false, everything inside the clipping polygon is visible. When true, everything outside the clipping polygon is * visible and clipping is convex. */ inverse = false; // Nonessential. /** The color of the clipping polygon as it was in Spine. Available only when nonessential data was exported. Clipping polygons * are not usually rendered at runtime. */ color = new Color(0.2275, 0.2275, 0.8078, 1); // ce3a3aff constructor(name) { super(name); } copy() { const copy = new ClippingAttachment(this.name); this.copyTo(copy); copy.endSlot = this.endSlot; copy.convex = this.convex; copy.inverse = this.inverse; copy.color.setFromColor(this.color); return copy; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2xpcHBpbmdBdHRhY2htZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2F0dGFjaG1lbnRzL0NsaXBwaW5nQXR0YWNobWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OytFQTJCK0U7QUFHL0UsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNwQyxPQUFPLEVBQW1CLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFcEUsK0dBQStHO0FBQy9HLE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxnQkFBZ0I7SUFDdkQ7bUNBQytCO0lBQy9CLE9BQU8sR0FBb0IsSUFBSSxDQUFDO0lBRWhDOzs2QkFFeUI7SUFDekIsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUVmOzBDQUNzQztJQUN0QyxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBRWhCLGdCQUFnQjtJQUNoQjs4Q0FDMEM7SUFDMUMsS0FBSyxHQUFHLElBQUksS0FBSyxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVztJQUV6RCxZQUFhLElBQVk7UUFDeEIsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2IsQ0FBQztJQUVELElBQUk7UUFDSCxNQUFNLElBQUksR0FBRyxJQUFJLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUM1QixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDMUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQzVCLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNwQyxPQUFPLElBQUksQ0FBQztJQUNiLENBQUM7Q0FDRCIsInNvdXJjZXNDb250ZW50IjpbIi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIFNwaW5lIFJ1bnRpbWVzIExpY2Vuc2UgQWdyZWVtZW50XG4gKiBMYXN0IHVwZGF0ZWQgQXByaWwgNSwgMjAyNS4gUmVwbGFjZXMgYWxsIHByaW9yIHZlcnNpb25zLlxuICpcbiAqIENvcHlyaWdodCAoYykgMjAxMy0yMDI1LCBFc290ZXJpYyBTb2Z0d2FyZSBMTENcbiAqXG4gKiBJbnRlZ3JhdGlvbiBvZiB0aGUgU3BpbmUgUnVudGltZXMgaW50byBzb2Z0d2FyZSBvciBvdGhlcndpc2UgY3JlYXRpbmdcbiAqIGRlcml2YXRpdmUgd29ya3Mgb2YgdGhlIFNwaW5lIFJ1bnRpbWVzIGlzIHBlcm1pdHRlZCB1bmRlciB0aGUgdGVybXMgYW5kXG4gKiBjb25kaXRpb25zIG9mIFNlY3Rpb24gMiBvZiB0aGUgU3BpbmUgRWRpdG9yIExpY2Vuc2UgQWdyZWVtZW50OlxuICogaHR0cDovL2Vzb3Rlcmljc29mdHdhcmUuY29tL3NwaW5lLWVkaXRvci1saWNlbnNlXG4gKlxuICogT3RoZXJ3aXNlLCBpdCBpcyBwZXJtaXR0ZWQgdG8gaW50ZWdyYXRlIHRoZSBTcGluZSBSdW50aW1lcyBpbnRvIHNvZnR3YXJlXG4gKiBvciBvdGhlcndpc2UgY3JlYXRlIGRlcml2YXRpdmUgd29ya3Mgb2YgdGhlIFNwaW5lIFJ1bnRpbWVzIChjb2xsZWN0aXZlbHksXG4gKiBcIlByb2R1Y3RzXCIpLCBwcm92aWRlZCB0aGF0IGVhY2ggdXNlciBvZiB0aGUgUHJvZHVjdHMgbXVzdCBvYnRhaW4gdGhlaXIgb3duXG4gKiBTcGluZSBFZGl0b3IgbGljZW5zZSBhbmQgcmVkaXN0cmlidXRpb24gb2YgdGhlIFByb2R1Y3RzIGluIGFueSBmb3JtIG11c3RcbiAqIGluY2x1ZGUgdGhpcyBsaWNlbnNlIGFuZCBjb3B5cmlnaHQgbm90aWNlLlxuICpcbiAqIFRIRSBTUElORSBSVU5USU1FUyBBUkUgUFJPVklERUQgQlkgRVNPVEVSSUMgU09GVFdBUkUgTExDIFwiQVMgSVNcIiBBTkQgQU5ZXG4gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEXG4gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFXG4gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBFU09URVJJQyBTT0ZUV0FSRSBMTEMgQkUgTElBQkxFIEZPUiBBTllcbiAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTXG4gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVMsXG4gKiBCVVNJTkVTUyBJTlRFUlJVUFRJT04sIE9SIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTKSBIT1dFVkVSIENBVVNFRCBBTkRcbiAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUXG4gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0ZcbiAqIFRIRSBTUElORSBSVU5USU1FUywgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS5cbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuaW1wb3J0IHR5cGUgeyBTbG90RGF0YSB9IGZyb20gXCIuLi9TbG90RGF0YS5qc1wiO1xuaW1wb3J0IHsgQ29sb3IgfSBmcm9tIFwiLi4vVXRpbHMuanNcIjtcbmltcG9ydCB7IHR5cGUgQXR0YWNobWVudCwgVmVydGV4QXR0YWNobWVudCB9IGZyb20gXCIuL0F0dGFjaG1lbnQuanNcIjtcblxuLyoqIEFuIGF0dGFjaG1lbnQgd2l0aCB2ZXJ0aWNlcyB0aGF0IG1ha2UgdXAgYSBwb2x5Z29uIHVzZWQgZm9yIGNsaXBwaW5nIHRoZSByZW5kZXJpbmcgb2Ygb3RoZXIgYXR0YWNobWVudHMuICovXG5leHBvcnQgY2xhc3MgQ2xpcHBpbmdBdHRhY2htZW50IGV4dGVuZHMgVmVydGV4QXR0YWNobWVudCB7XG5cdC8qKiBDbGlwcGluZyBpcyBwZXJmb3JtZWQgYmV0d2VlbiB0aGUgY2xpcHBpbmcgYXR0YWNobWVudCdzIHNsb3QgYW5kIHRoZSBlbmQgc2xvdC4gSWYgbnVsbCwgY2xpcHBpbmcgaXMgZG9uZSB1bnRpbCB0aGUgZW5kIG9mXG5cdCAqIHRoZSBza2VsZXRvbidzIHJlbmRlcmluZy4gKi9cblx0ZW5kU2xvdDogU2xvdERhdGEgfCBudWxsID0gbnVsbDtcblxuXHQvKiogV2hlbiB0cnVlIHRoZSBjbGlwcGluZyBwb2x5Z29uIGlzIHRyZWF0ZWQgYXMgY29udmV4IGZvciBtb3JlIGVmZmljaWVudCBjbGlwcGluZy4gSWYgdGhlIHBvbHlnb24gZGVmb3JtcyB0byBjb25jYXZlIHRoZW4gdGhlXG5cdCAqIGNvbnZleCBodWxsIGlzIHVzZWQuIFdoZW4gZmFsc2UgdGhlIGNsaXBwaW5nIHBvbHlnb24gY2FuIGJlIGNvbmNhdmUgYW5kIGlmIHNvIGhhcyBhbiBhZGRpdGlvbmFsIENQVSBjb3N0LiBJbnZlcnNlIGNsaXBwaW5nXG5cdCAqIGFsd2F5cyB1c2VzIGNvbnZleC4gKi9cblx0Y29udmV4ID0gZmFsc2U7XG5cblx0LyoqIFdoZW4gZmFsc2UsIGV2ZXJ5dGhpbmcgaW5zaWRlIHRoZSBjbGlwcGluZyBwb2x5Z29uIGlzIHZpc2libGUuIFdoZW4gdHJ1ZSwgZXZlcnl0aGluZyBvdXRzaWRlIHRoZSBjbGlwcGluZyBwb2x5Z29uIGlzXG5cdCAgKiB2aXNpYmxlIGFuZCBjbGlwcGluZyBpcyBjb252ZXguICovXG5cdGludmVyc2UgPSBmYWxzZTtcblxuXHQvLyBOb25lc3NlbnRpYWwuXG5cdC8qKiBUaGUgY29sb3Igb2YgdGhlIGNsaXBwaW5nIHBvbHlnb24gYXMgaXQgd2FzIGluIFNwaW5lLiBBdmFpbGFibGUgb25seSB3aGVuIG5vbmVzc2VudGlhbCBkYXRhIHdhcyBleHBvcnRlZC4gQ2xpcHBpbmcgcG9seWdvbnNcblx0ICogYXJlIG5vdCB1c3VhbGx5IHJlbmRlcmVkIGF0IHJ1bnRpbWUuICovXG5cdGNvbG9yID0gbmV3IENvbG9yKDAuMjI3NSwgMC4yMjc1LCAwLjgwNzgsIDEpOyAvLyBjZTNhM2FmZlxuXG5cdGNvbnN0cnVjdG9yIChuYW1lOiBzdHJpbmcpIHtcblx0XHRzdXBlcihuYW1lKTtcblx0fVxuXG5cdGNvcHkgKCk6IEF0dGFjaG1lbnQge1xuXHRcdGNvbnN0IGNvcHkgPSBuZXcgQ2xpcHBpbmdBdHRhY2htZW50KHRoaXMubmFtZSk7XG5cdFx0dGhpcy5jb3B5VG8oY29weSk7XG5cdFx0Y29weS5lbmRTbG90ID0gdGhpcy5lbmRTbG90O1xuXHRcdGNvcHkuY29udmV4ID0gdGhpcy5jb252ZXg7XG5cdFx0Y29weS5pbnZlcnNlID0gdGhpcy5pbnZlcnNlO1xuXHRcdGNvcHkuY29sb3Iuc2V0RnJvbUNvbG9yKHRoaXMuY29sb3IpO1xuXHRcdHJldHVybiBjb3B5O1xuXHR9XG59XG4iXX0=