浏览代码

[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;
 		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')
 		if (uvs && light && dark && typeof twoColor === 'boolean')
 			this.clipTrianglesRender(vertices, triangles, trianglesLength, uvs, light, dark, twoColor);
 			this.clipTrianglesRender(vertices, triangles, trianglesLength, uvs, light, dark, twoColor);
 		else
 		else
 			this.clipTrianglesNoRender(vertices, triangles, trianglesLength);
 			this.clipTrianglesNoRender(vertices, triangles, trianglesLength);
 	}
 	}
+
 	private clipTrianglesNoRender (vertices: NumberArrayLike, triangles: NumberArrayLike, trianglesLength: number) {
 	private clipTrianglesNoRender (vertices: NumberArrayLike, triangles: NumberArrayLike, trianglesLength: number) {
 
 
 		let clipOutput = this.clipOutput, clippedVertices = this.clippedVertices;
 		let clipOutput = this.clipOutput, clippedVertices = this.clippedVertices;