enforceConsistency static method

void enforceConsistency(
  1. List<Coordinate?>? array
)

Implementation

static void enforceConsistency(List<Coordinate?>? array) {
  if (array == null) {
    return;
  }
  int maxDimension = -1;
  int maxMeasures = -1;
  bool isConsistent = true;
  for (int i = 0; i < array.length; i++) {
    Coordinate? coordinate = array[i];
    if (coordinate != null) {
      int d = Coordinates.dimension(coordinate);
      int m = Coordinates.measures(coordinate);
      if (maxDimension == (-1)) {
        maxDimension = d;
        maxMeasures = m;
        continue;
      }
      if ((d != maxDimension) || (m != maxMeasures)) {
        isConsistent = false;
        maxDimension = max(maxDimension, d).toInt();
        maxMeasures = max(maxMeasures, m).toInt();
      }
    }
  }
  if (!isConsistent) {
    Coordinate sample = Coordinates.createWithMeasure(maxDimension, maxMeasures);
    Type type = sample.runtimeType;
    for (int i = 0; i < array.length; i++) {
      Coordinate? coordinate = array[i];
      if ((coordinate != null) && (coordinate.runtimeType != type)) {
        Coordinate duplicate = Coordinates.createWithMeasure(maxDimension, maxMeasures);
        duplicate.setCoordinate(coordinate);
        array[i] = duplicate;
      }
    }
  }
}