code: boolean removeUntil(int index, boolean inclusive) {
  		if (index >= 0) {
  			boolean changed = false;
  			PT startPoint = this.startingPoint;
  			ST segment;
  			int limit = index;
  			if (inclusive) {
  				++limit;
  			}
  			for (int i = 0; i < limit; ++i) {
  				segment = this.segmentList.remove(0);
  				this.length -= segment.getLength();
  				if (this.length < 0) {
  					this.length = 0;
  				}
  				startPoint = segment.getOtherSidePoint(startPoint);
  				changed = true;
  			}
  			if (changed) {
  				if (this.segmentList.isEmpty()) {
  					this.startingPoint = null;
  					this.endingPoint = null;
  					this.isReversable = true;
  				} else {
  					this.startingPoint = startPoint;
  				}
  				return true;
  			}
  		}
  		return false;
  	}
docs: Package access to avoid compilation error.
  You must not call this function directly.
  
  @param index the reference index.
  @param inclusive indicates if the element at the reference index is included in the removed elements.
  @return <code>true</code> or <code>false</code>