فهرست منبع

[ts] Restore deprecated clipTriangles signature erroneously removed in 4.2.46. Scheduled for removal in 4.3.

Davide Tantillo 1 سال پیش
والد
کامیت
a6899e7625
1فایلهای تغییر یافته به همراه46 افزوده شده و 5 حذف شده
  1. 46 5
      spine-ts/spine-core/src/SkeletonClipping.ts

+ 46 - 5
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;