浏览代码

Merge pull request #16194 from leodutra/patch-1

Optimize clampScalar() for Vector2 and Vector3
Mr.doob 6 年之前
父节点
当前提交
0124dc911e
共有 2 个文件被更改,包括 11 次插入24 次删除
  1. 5 12
      src/math/Vector2.js
  2. 6 12
      src/math/Vector3.js

+ 5 - 12
src/math/Vector2.js

@@ -278,21 +278,14 @@ Object.assign( Vector2.prototype, {
 
 	},
 
-	clampScalar: function () {
+	clampScalar: function ( minVal, maxVal ) {
 
-		var min = new Vector2();
-		var max = new Vector2();
+		this.x = Math.max( minVal, Math.min( maxVal, this.x ) );
+		this.y = Math.max( minVal, Math.min( maxVal, this.y ) );
 
-		return function clampScalar( minVal, maxVal ) {
-
-			min.set( minVal, minVal );
-			max.set( maxVal, maxVal );
-
-			return this.clamp( min, max );
-
-		};
+		return this;
 
-	}(),
+	},
 
 	clampLength: function ( min, max ) {
 

+ 6 - 12
src/math/Vector3.js

@@ -387,21 +387,15 @@ Object.assign( Vector3.prototype, {
 
 	},
 
-	clampScalar: function () {
+	clampScalar: function ( minVal, maxVal ) {
 
-		var min = new Vector3();
-		var max = new Vector3();
+		this.x = Math.max( minVal, Math.min( maxVal, this.x ) );
+		this.y = Math.max( minVal, Math.min( maxVal, this.y ) );
+		this.z = Math.max( minVal, Math.min( maxVal, this.z ) );
 
-		return function clampScalar( minVal, maxVal ) {
-
-			min.set( minVal, minVal, minVal );
-			max.set( maxVal, maxVal, maxVal );
-
-			return this.clamp( min, max );
-
-		};
+		return this;
 
-	}(),
+	},
 
 	clampLength: function ( min, max ) {