Browse Source

apply @gero3 's suggestion to Box2.clampPoint() as well.

Ben Houston 12 years ago
parent
commit
c4072ef9db
1 changed files with 18 additions and 1 deletions
  1. 18 1
      src/core/Box2.js

+ 18 - 1
src/core/Box2.js

@@ -177,7 +177,24 @@ THREE.Box2.prototype = {
 
 
 	clampPoint: function ( point ) {
 	clampPoint: function ( point ) {
 
 
-		return new THREE.Vector2().copy( point ).maxSelf( this.min ).minSelf( this.max );
+		var p = new THREE.Vector2().copy( point );
+
+		// this requires less if's then a point.minSelf( this.max ).maxSelf( this.min )
+		if( p.x < this.min.x ) {
+			p.x = this.min.x;
+		}
+		else if( p.x > this.max.x ) {
+			p.x = this.max.x;
+		}
+
+		if( p.y < this.min.y ) {
+			p.y = this.min.y;
+		}
+		else if( p.y > this.max.y ) {
+			p.y = this.max.y;
+		}
+
+		return p;
 	},
 	},
 
 
 	distanceToPoint: function ( point ) {
 	distanceToPoint: function ( point ) {