The math is just a very simple equation:
public function isInside(pos:Vec2Const):Boolean
{
const q2x:Number = Math.abs(pos.x - _center.x); // transform the test point locally and to quadrant 2
const q2y:Number = Math.abs(pos.y - _center.y); // transform the test point locally and to quadrant 2
if (q2x > _hori || q2y > _vert*2) return false; // bounding test (since q2 is in quadrant 2 only 2 tests are needed)
return 2 * _vert * _hori - _vert * q2x - _hori * q2y >= 0; // finally the dot product can be reduced to this due to the hexagon symmetry
}