소스 검색

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 ) {