private void addStakesToStakeTempStartingFrom(int i) {
		while (lastStake() < endStake) {
			if (nextStakeFitsInGeometry(i)) {
				addNewStake(i);
				resetLeftovers();
			} else if (onlyOneStakeLeft(i)) {
				addFinalStake(i);
				break;
			} else {
				addRestOfTheGeometryToLeftovers(i);
				i++;
			}
		}
	}