docs: @Pure
  	public Point2d getPointAt(int index) {
  		final int count = getPointCount();
  		int idx = index;
  		if (idx < 0) {
  			idx = count + idx;
  		}
  		if (idx < 0) {
  			throw new IndexOutOfBoundsException(idx + "<0"); //$NON-NLS-1$
  		}
  		if (idx >= count) {
  			throw new IndexOutOfBoundsException(idx + ">=" + count); //$NON-NLS-1$
  		}
  		return new Point2d(
  				this.pointCoordinates[idx * 2],
  				this.pointCoordinates[idx * 2 + 1]);
  	}