RestrictablePoint for restricting the possible point positions
LineRestrictor