/// <summary>
 /// Starts the call sequence for a geometry figure.
 /// </summary>
 /// <param name="x"></param>
 /// <param name="y"></param>
 /// <param name="z"></param>
 /// <param name="m"></param>
 public virtual void BeginFigure(double x, double y, double?z, double?m)
 {
     if (double.IsNaN(x))
     {
         throw new ArgumentException(nameof(x));
     }
     if (double.IsNaN(y))
     {
         throw new ArgumentException(nameof(y));
     }
     _builder.BeginFigure();
     _builder.AddPoint(x, y, z, m);
 }
 /// <inheritdoc />
 public virtual void BeginFigure(double latitude, double longitude, double?z, double?m)
 {
     if (_srid < 0)
     {
         throw new FormatException($"24300: Expected a call to SetSrid, but BeginFigure was called.");
     }
     ValidateLatLon(latitude, longitude);
     _builder.BeginFigure();
     _builder.AddPoint(latitude, longitude, z, m);
 }