code: 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;
  		}
docs: Rotates the vector around the giving axis.
  
  @param axis
  rotation axis vector
  @param theta
  rotation angle (in radians)
  
  @return itself