-- math library

function vec3_magnitude(_x, _y, _z)
	return math.sqrt(_x * _x + _y * _y + _z * _z)
end

function vec3_normalize(_x, _y, _z)
	local mag = vec3_magnitude(_x, _y, _z)
	if mag == 0 then return 0, 0, 0 end
	return _x / mag, _y / mag, _z / mag
end

function vec3_cross(_x1, _y1, _z1, _x2, _y2, _z2)
	return 	_y1 * _z2 - _y2 * _z1, 
			_z1 * _x2 - _z2 * _x1,
			_x1 * _y2 - _x2 * _y1
end
