From a6899e7625522824ddbbdf86cc925e4bb8ab1a4a Mon Sep 17 00:00:00 2001 From: Davide Tantillo Date: Wed, 7 Aug 2024 09:37:09 +0200 Subject: [PATCH] [ts] Restore deprecated clipTriangles signature erroneously removed in 4.2.46. Scheduled for removal in 4.3. --- spine-ts/spine-core/src/SkeletonClipping.ts | 51 +++++++++++++++++++-- 1 file changed, 46 insertions(+), 5 deletions(-) diff --git a/spine-ts/spine-core/src/SkeletonClipping.ts b/spine-ts/spine-core/src/SkeletonClipping.ts index 9f5cae242..3ab1fc377 100644 --- a/spine-ts/spine-core/src/SkeletonClipping.ts +++ b/spine-ts/spine-core/src/SkeletonClipping.ts @@ -81,17 +81,58 @@ export class SkeletonClipping { return this.clipAttachment != null; } - clipTriangles (vertices: NumberArrayLike, triangles: NumberArrayLike, trianglesLength: number): void; - clipTriangles (vertices: NumberArrayLike, triangles: NumberArrayLike, trianglesLength: number, uvs: NumberArrayLike, - light: Color, dark: Color, twoColor: boolean): void; - clipTriangles (vertices: NumberArrayLike, triangles: NumberArrayLike, trianglesLength: number, uvs?: NumberArrayLike, - light?: Color, dark?: Color, twoColor?: boolean): void { + /** + * @deprecated Use clipTriangles without verticesLength parameter. Mark for removal in 4.3. + */ + clipTriangles(vertices: NumberArrayLike, verticesLength: number, triangles: NumberArrayLike, trianglesLength: number): void; + + /** + * @deprecated Use clipTriangles without verticesLength parameter. Mark for removal in 4.3. + */ + clipTriangles(vertices: NumberArrayLike, verticesLength: number, triangles: NumberArrayLike, trianglesLength: number, uvs: NumberArrayLike, light: Color, dark: Color, twoColor: boolean): void; + + clipTriangles(vertices: NumberArrayLike, triangles: NumberArrayLike, trianglesLength: number): void; + clipTriangles(vertices: NumberArrayLike, triangles: NumberArrayLike, trianglesLength: number, uvs: NumberArrayLike, light: Color, dark: Color, twoColor: boolean): void; + clipTriangles( + vertices: NumberArrayLike, + verticesLengthOrTriangles: number | NumberArrayLike, + trianglesOrTrianglesLength: NumberArrayLike | number, + trianglesLengthOrUvs?: number | NumberArrayLike, + uvsOrLight?: NumberArrayLike | Color, + lightOrDark?: Color, + darkOrTwoColor?: Color | boolean, + twoColorParam?: boolean + ): void { + // Determine which overload is being used + let triangles: NumberArrayLike; + let trianglesLength: number; + let uvs: NumberArrayLike | undefined; + let light: Color | undefined; + let dark: Color | undefined; + let twoColor: boolean | undefined; + + if (typeof verticesLengthOrTriangles === 'number') { + triangles = trianglesOrTrianglesLength as NumberArrayLike; + trianglesLength = trianglesLengthOrUvs as number; + uvs = uvsOrLight as NumberArrayLike; + light = lightOrDark as Color | undefined; + dark = darkOrTwoColor as Color | undefined; + twoColor = twoColorParam; + } else { + triangles = verticesLengthOrTriangles; + trianglesLength = trianglesOrTrianglesLength as number; + uvs = trianglesLengthOrUvs as NumberArrayLike; + light = uvsOrLight as Color | undefined; + dark = lightOrDark as Color | undefined; + twoColor = darkOrTwoColor as boolean; + } if (uvs && light && dark && typeof twoColor === 'boolean') this.clipTrianglesRender(vertices, triangles, trianglesLength, uvs, light, dark, twoColor); else this.clipTrianglesNoRender(vertices, triangles, trianglesLength); } + private clipTrianglesNoRender (vertices: NumberArrayLike, triangles: NumberArrayLike, trianglesLength: number) { let clipOutput = this.clipOutput, clippedVertices = this.clippedVertices;