lib/toxi/geom/vectors.js
function(vec_axis,theta){
			var ax = vec_axis.x,
				ay = vec_axis.y,
				az = vec_axis.z,
				ux = ax * this.x,
				uy = ax * this.y,
				uz = ax * this.z,
				vx = ay * this.x,
				vy = ay * this.y,
				vz = ay * this.z,
				wx = az * this.x,
				wy = az * this.y,
				wz = az * this.z,
				si = Math.sin(theta),
				co = Math.cos(theta);
			var xx = (ax * (ux + vy + wz) + (this.x * (ay * ay + az * az) - ax * (vy + wz)) * co + (-wy + vz) * si);
			var yy = (ay * (ux + vy + wz) + (this.y * (ax * ax + az * az) - ay * (ux + wz)) * co + (wx - uz) * si);
			var zz = (az * (ux + vy + wz) + (this.z * (ax * ax + ay * ay) - az * (ux + vy)) * co + (-vx + uy) * si);
			this.x = xx;
			this.y = yy;
			this.z = zz;
			return this;
		}
function(vec_axis,theta){
			var ax = vec_axis.x,
				ay = vec_axis.y,
				az = vec_axis.z,
				ux = ax * this.x,
				uy = ax * this.y,
				uz = ax * this.z,
				vx = ay * this.x,
				vy = ay * this.y,
				vz = ay * this.z,
				wx = az * this.x,
				wy = az * this.y,
				wz = az * this.z,
				si = Math.sin(theta),
				co = Math.cos(theta);
			var xx = (ax * (ux + vy + wz) + (this.x * (ay * ay + az * az) - ax * (vy + wz)) * co + (-wy + vz) * si);
			var yy = (ay * (ux + vy + wz) + (this.y * (ax * ax + az * az) - ay * (ux + wz)) * co + (wx - uz) * si);
			var zz = (az * (ux + vy + wz) + (this.z * (ax * ax + ay * ay) - az * (ux + vy)) * co + (-vx + uy) * si);
			this.x = xx;
			this.y = yy;
			this.z = zz;
			return this;
		}
function ( vec_axis , theta ) { var ax = vec_axis . x , ay = vec_axis . y , az = vec_axis . z , ux = ax * this . x , uy = ax * this . y , uz = ax * this . z , vx = ay * this . x , vy = ay * this . y , vz = ay * this . z , wx = az * this . x , wy = az * this . y , wz = az * this . z , si = Math . sin ( theta ) , co = Math . cos ( theta ) ; var xx = ( ax * ( ux + vy + wz ) + ( this . x * ( ay * ay + az * az ) - ax * ( vy + wz ) ) * co + ( - wy + vz ) * si ) ; var yy = ( ay * ( ux + vy + wz ) + ( this . y * ( ax * ax + az * az ) - ay * ( ux + wz ) ) * co + ( wx - uz ) * si ) ; var zz = ( az * ( ux + vy + wz ) + ( this . z * ( ax * ax + ay * ay ) - az * ( ux + vy ) ) * co + ( - vx + uy ) * si ) ; this . x = xx ; this . y = yy ; this . z = zz ; return this ; }
Rotates the vector around the giving axis.

@param axis
rotation axis vector
@param theta
rotation angle (in radians)

@return itself
Rotates the vector around the giving axis .