docs: boolean next() {
  		if (m_b_done)
  			return false;
  
  		boolean b_searching = true;
  		while (b_searching) {
  			switch (m_function) {
  			case State.initialize:
  				b_searching = initialize_();
  				break;
  			case State.initializeRed:
  				b_searching = initializeRed_();
  				break;
  			case State.initializeBlue:
  				b_searching = initializeBlue_();
  				break;
  			case State.initializeRedBlue:
  				b_searching = initializeRedBlue_();
  				break;
  			case State.sweep:
  				b_searching = sweep_();
  				break;
  			case State.sweepBruteForce:
  				b_searching = sweepBruteForce_();
  				break;
  			case State.sweepRedBlueBruteForce:
  				b_searching = sweepRedBlueBruteForce_();
  				break;
  			case State.sweepRedBlue:
  				b_searching = sweepRedBlue_();
  				break;
  			case State.sweepRed:
  				b_searching = sweepRed_();
  				break;
  			case State.sweepBlue:
  				b_searching = sweepBlue_();
  				break;
  			case State.iterate:
  				b_searching = iterate_();
  				break;
  			case State.iterateRed:
  				b_searching = iterateRed_();
  				break;
  			case State.iterateBlue:
  				b_searching = iterateBlue_();
  				break;
  			case State.iterateBruteForce:
  				b_searching = iterateBruteForce_();
  				break;
  			case State.iterateRedBlueBruteForce:
  				b_searching = iterateRedBlueBruteForce_();
  				break;
  			case State.resetRed:
  				b_searching = resetRed_();
  				break;
  			case State.resetBlue:
  				b_searching = resetBlue_();
  				break;
  			default:
  				throw GeometryException.GeometryInternalError();
  			}
  		}
  
  		if (m_b_done)
  			return false;
  
  		return true;
  	}