support rotation + snap to grid