docs: public Point2d removePointAt(int groupIndex, int indexInGroup) {
  		final int startIndex = firstInGroup(groupIndex);
  		final int lastIndex = lastInGroup(groupIndex);
  
  		// Translate local point's coordinate into global point's coordinate
  		final int g = indexInGroup * 2 + startIndex;
  
  		// Be sure that the member's index is in the group index's range
  		if (g < startIndex) {
  			throw new IndexOutOfBoundsException(g + "<" + startIndex); //$NON-NLS-1$
  		}
  		if (g > lastIndex) {
  			throw new IndexOutOfBoundsException(g + ">" + lastIndex); //$NON-NLS-1$
  		}
  
  		final Point2d p = new Point2d(
  				this.pointCoordinates[g],
  				this.pointCoordinates[g + 1]);
  
  		// Deleting the point
  		final double[] newPtsArray;
  		if (this.pointCoordinates.length <= 2) {
  			newPtsArray = null;
  		} else {
  			newPtsArray = new double[this.pointCoordinates.length - 2];
  			System.arraycopy(this.pointCoordinates, 0, newPtsArray, 0, g);
  			System.arraycopy(
  					this.pointCoordinates, g + 2,
  					newPtsArray, g, this.pointCoordinates.length - g - 2);
  		}
  		this.pointCoordinates = newPtsArray;
  
  		if (this.partIndexes != null) {
  			// Shift the group's indexes
  			for (int i = groupIndex; i < this.partIndexes.length; ++i) {
  				this.partIndexes[i] -= 2;
  			}
  			// Removing the group
  			final int ptsCount = (lastIndex - startIndex) / 2;
  			if (ptsCount <= 0) {
  				int[] newGroups = null;
  
  				if (this.partIndexes.length > 1) {
  					newGroups = new int[this.partIndexes.length - 1];
  					if (groupIndex == 0) {
  						System.arraycopy(this.partIndexes, 1, newGroups, 0, this.partIndexes.length - 1);
  					} else {
  						System.arraycopy(this.partIndexes, 0, newGroups, 0, groupIndex - 1);
  						System.arraycopy(
  								this.partIndexes, groupIndex,
  								newGroups, groupIndex - 1,
  								this.partIndexes.length - groupIndex);
  					}
  				}
  
  				this.partIndexes = newGroups;
  			}
  		}
  
  		fireShapeChanged();
  		fireElementChanged();
  
  		return p;
  	}