private List<double> ParseOptionalOrdinates(WktTokenQueue tokens)
{
var attempt = true;
var doubles = new List<double>();
while (attempt)
{
if (tokens.NextTokenIs(WktTokenType.Number))
{
var token = tokens.Dequeue(WktTokenType.Number);
doubles.Add(double.Parse(token.Value, CultureInfo.InvariantCulture));
}
else if (tokens.NextTokenIs(double.NaN.ToString(CultureInfo.InvariantCulture)))
{
//TODO: Review this
tokens.Dequeue(WktTokenType.String);
doubles.Add(double.NaN);
}
else
{
attempt = false;
}
}
return doubles;
}