home *** CD-ROM | disk | FTP | other *** search
- class smashing.Point3D
- {
- var x;
- var y;
- var z;
- function Point3D(x, y, z)
- {
- var _loc1_ = this;
- _loc1_.x = Number(x);
- _loc1_.y = Number(y);
- _loc1_.z = Number(z);
- }
- function get length()
- {
- var _loc1_ = this;
- return Math.sqrt(_loc1_.x * _loc1_.x + _loc1_.y * _loc1_.y + _loc1_.z * _loc1_.z);
- }
- function set length(newLength)
- {
- var _loc1_ = this;
- if(_loc1_.length != 0)
- {
- var _loc2_ = newLength / _loc1_.length;
- _loc1_.x *= _loc2_;
- _loc1_.y *= _loc2_;
- _loc1_.z *= _loc2_;
- }
- }
- function get lengthSqu()
- {
- var _loc1_ = this;
- return _loc1_.x * _loc1_.x + _loc1_.y * _loc1_.y + _loc1_.z * _loc1_.z;
- }
- function copy()
- {
- var _loc1_ = this;
- return new smashing.Point3D(_loc1_.x,_loc1_.y,_loc1_.z);
- }
- function addPoint(p)
- {
- var _loc1_ = p;
- var _loc2_ = this;
- return new smashing.Point3D(_loc1_.x + _loc2_.x,_loc1_.y + _loc2_.y,_loc1_.z + _loc2_.z);
- }
- function subtractPoint(p)
- {
- var _loc1_ = p;
- var _loc2_ = this;
- return new smashing.Point3D(_loc2_.x - _loc1_.x,_loc2_.y - _loc1_.y,_loc2_.z - _loc1_.z);
- }
- function addScalar(n)
- {
- var _loc1_ = n;
- var _loc2_ = this;
- return new smashing.Point3D(_loc2_.x + _loc1_,_loc2_.y + _loc1_,_loc2_.z + _loc1_);
- }
- function subtractScalar(n)
- {
- var _loc1_ = n;
- var _loc2_ = this;
- return new smashing.Point3D(_loc2_.x - _loc1_,_loc2_.y - _loc1_,_loc2_.z - _loc1_);
- }
- function addPointMe(p)
- {
- var _loc1_ = p;
- var _loc2_ = this;
- _loc2_.x += _loc1_.x;
- _loc2_.y += _loc1_.y;
- _loc2_.z += _loc1_.z;
- }
- function subtractPointMe(p)
- {
- var _loc1_ = p;
- var _loc2_ = this;
- _loc2_.x -= _loc1_.x;
- _loc2_.y -= _loc1_.y;
- _loc2_.z -= _loc1_.z;
- }
- function addScalarMe(n)
- {
- var _loc1_ = n;
- var _loc2_ = this;
- _loc2_.x += _loc1_;
- _loc2_.y += _loc1_;
- _loc2_.z += _loc1_;
- }
- function subtractScalarMe(n)
- {
- var _loc1_ = n;
- var _loc2_ = this;
- _loc2_.x -= _loc1_;
- _loc2_.y -= _loc1_;
- _loc2_.z -= _loc1_;
- }
- function multiply(n)
- {
- var _loc2_ = n;
- var _loc1_ = this.copy();
- _loc1_.x *= _loc2_;
- _loc1_.y *= _loc2_;
- _loc1_.z *= _loc2_;
- return _loc1_;
- }
- function divide(n)
- {
- var _loc2_ = n;
- var _loc1_ = this.copy();
- if(_loc2_ == 0)
- {
- _loc1_.x = 0;
- _loc1_.y = 0;
- _loc1_.z = 0;
- }
- _loc1_.x /= _loc2_;
- _loc1_.y /= _loc2_;
- _loc1_.z /= _loc2_;
- return _loc1_;
- }
- function multiplyMe(n)
- {
- var _loc1_ = n;
- var _loc2_ = this;
- _loc2_.x *= _loc1_;
- _loc2_.y *= _loc1_;
- _loc2_.z *= _loc1_;
- }
- function divideMe(n)
- {
- var _loc1_ = n;
- var _loc2_ = this;
- _loc2_.x /= _loc1_;
- _loc2_.y /= _loc1_;
- _loc2_.z /= _loc1_;
- }
- function dot(p)
- {
- var _loc1_ = p;
- var _loc2_ = this;
- return _loc2_.x * _loc1_.x + _loc2_.y * _loc1_.y + _loc2_.z * _loc1_.z;
- }
- function cross(p)
- {
- var _loc1_ = p;
- var _loc2_ = this;
- return new smashing.Point3D(_loc2_.y * _loc1_.z - _loc2_.z * _loc1_.y,_loc2_.z * _loc1_.x - _loc2_.x * _loc1_.z,_loc2_.x * _loc1_.y - _loc2_.y * _loc1_.x);
- }
- function pseudoCross()
- {
- var _loc1_ = this;
- return new smashing.Point3D(_loc1_.y,- _loc1_.x,_loc1_.z);
- }
- function normalize()
- {
- var _loc1_ = this;
- if(!_loc1_.x && !_loc1_.y && !_loc1_.z)
- {
- }
- var _loc2_ = _loc1_.length;
- return new smashing.Point3D(_loc1_.x / _loc2_,_loc1_.y / _loc2_,_loc1_.z / _loc2_);
- }
- function normalizeMe()
- {
- var _loc1_ = this;
- if(!(!_loc1_.x && !_loc1_.y))
- {
- var _loc2_ = _loc1_.length;
- _loc1_.x /= _loc2_;
- _loc1_.y /= _loc2_;
- _loc1_.z /= _loc2_;
- }
- }
- function reverse()
- {
- var _loc1_ = this;
- var _loc2_ = new smashing.Point3D(_loc1_.x * -1,_loc1_.y * -1,_loc1_.z * -1);
- return _loc2_;
- }
- function reverseMe()
- {
- var _loc1_ = this;
- _loc1_.x *= -1;
- _loc1_.y *= -1;
- _loc1_.z *= -1;
- }
- function findCosine(vOther)
- {
- var _loc2_ = this.dot(vOther);
- var _loc1_ = this.length * vOther.length;
- var _loc3_ = _loc2_ / _loc1_;
- return _loc3_;
- }
- function equals(p)
- {
- var _loc1_ = p;
- var _loc2_ = this;
- if(_loc2_.x == _loc1_.x && _loc2_.y == _loc1_.y && _loc2_.z == _loc1_.z)
- {
- return true;
- }
- return false;
- }
- function zero()
- {
- var _loc1_ = this;
- _loc1_.x = 0;
- _loc1_.y = 0;
- _loc1_.z = 0;
- }
- function distSqu(p)
- {
- var _loc3_ = p.x - this.x;
- var _loc2_ = p.y - this.y;
- var _loc1_ = p.z - this.z;
- return _loc3_ * _loc3_ + _loc2_ * _loc2_ + _loc1_ * _loc1_;
- }
- function toString()
- {
- var _loc1_ = this;
- return "Point3D (" + _loc1_.x + "," + _loc1_.y + "," + _loc1_.z + ")";
- }
- }
-