pointer position semantic: bl(-1, -1) -> tr(1, 1)