private static void AddPoint(this OSGeo.OGR.Geometry geometry, double x, double y, double z = double.NaN, double m = double.NaN) { if (geometry != null) { if (double.IsNaN(z)) { if (double.IsNaN(m)) { geometry.AddPoint_2D(x, y); } else { geometry.AddPointM(x, y, m); } } else { if (double.IsNaN(m)) { geometry.AddPoint(x, y, z); } else { geometry.AddPointZM(x, y, z, m); } } } }