}
private Point parsePoint(ValueGetter data, boolean haveZ, boolean haveM) {
double X = data.getDouble();
double Y = data.getDouble();
Point result;
if (haveZ) {
double Z = data.getDouble();
result = new Point(X, Y, Z);
} else {
result = new Point(X, Y);
}
if (haveM) {
result.setM(data.getDouble());
}
return result;
}