/** * @author mr.doob / http://mrdoob.com/ */ THREE.Vector2 = function ( x, y ) { this.x = x || 0; this.y = y || 0; this.set = function ( x, y ) { this.x = x; this.y = y; }; this.copy = function ( v ) { this.x = v.x; this.y = v.y; }; this.addSelf = function ( v ) { this.x += v.x; this.y += v.y; }; this.add = function ( v1, v2 ) { this.x = v1.x + v2.x; this.y = v1.y + v2.y; }; this.subSelf = function ( v ) { this.x -= v.x; this.y -= v.y; }; this.sub = function ( v1, v2 ) { this.x = v1.x - v2.x; this.y = v1.y - v2.y; }; this.multiplyScalar = function ( s ) { this.x *= s; this.y *= s; }; this.unit = function () { this.multiplyScalar( 1 / this.length() ); }; this.length = function () { return Math.sqrt( this.x * this.x + this.y * this.y ); }; this.lengthSq = function () { return this.x * this.x + this.y * this.y; }; this.negate = function() { this.x = - this.x; this.y = - this.y; }; this.clone = function () { return new THREE.Vector2( this.x, this.y ); }; this.toString = function () { return 'THREE.Vector2 (' + this.x + ', ' + this.y + ')'; }; };