public void addExternalStep(int x, int y) {
		if (isFocusPointsEmpty()) {
			resetMovement();
		}
		MovementPoint lastPosition = getFocusPoints().peekLast();
		int deltaX = x - lastPosition.getX();
		int deltaY = y - lastPosition.getY();
		int maximumDelta = Math.max(Math.abs(deltaX), Math.abs(deltaY));
		for (int i = 0; i < maximumDelta ; i ++) {
			if (deltaX < 0) {
				deltaX ++;
			} else if (deltaX > 0) {
				deltaX --;
			}
			if (deltaY < 0) {
				deltaY ++;
			} else if (deltaY > 0) {
				deltaY --;
			}
			addInternalStep(x - deltaX, y - deltaY);
		}
	}