docs: private E readPoint(int elementIndex, ShapeElementType type) throws IOException {
  		final boolean hasZ = type.hasZ();
  		final boolean hasM = type.hasM();
  
  		// Read coordinates
  		final double x = fromESRI_x(readLEDouble());
  		final double y = fromESRI_y(readLEDouble());
  		double z = 0;
  		double measure = Double.NaN;
  
  		if (hasZ) {
  			z = fromESRI_z(readLEDouble());
  		}
  
  		if (hasM) {
  			measure = fromESRI_m(readLEDouble());
  		}
  
  		// Create the point
  		if (!Double.isNaN(x) && !Double.isNaN(y)) {
  			return createPoint(createAttributeCollection(elementIndex), elementIndex, new ESRIPoint(x, y, z, measure));
  		}
  		return null;
  	}