setMap method

List setMap(
  1. dynamic shape
)

Implementation

List setMap(dynamic shape) {
  List makemap = [[]];
  switch (shape.getType()) {
    case 'normal':
      for (var i = 0; i < mapX; i++) {
        for (var j = 0; j < mapY; j++) {
          makemap[i].add(0);
        }
        makemap.add([]);
      }
      break;

    case 'circle':
      for (var i = 0; i < mapX; i++) {
        for (var j = 0; j < mapY; j++) {
          if (pow(i - (mapX / 2), 2) + pow(j - (mapY / 2), 2) >
              pow(shape.getRadius(), 2)) {
            makemap[i].add(1);
          } else {
            makemap[i].add(0);
          }
        }
        makemap.add([]);
      }
      break;

    case 'ellipse':
      for (var i = 0; i < mapX; i++) {
        for (var j = 0; j < mapY; j++) {
          if (pow(i - (mapX / 2), 2) / pow(shape.getMajorAxis(), 2) +
                  pow(j - (mapY / 2), 2) / pow(shape.getMinorAxis(), 2) >
              1) {
            makemap[i].add(1);
          } else {
            makemap[i].add(0);
          }
        }
        makemap.add([]);
      }
      break;
  }
  return makemap;
}