/** Reflects grid along vertical axis */
  private void reflectNumberingVertical() {
    for (int r = 0; r < super.getGridHeight(); r++) {

      for (int c = 0; c < super.getGridWidth() / 2; c++) {
        String temp = super.getTileName(r, c);

        super.setTileName(r, c, super.getTileName(r, super.getGridWidth() - c - 1));
        super.setTileName(r, super.getGridWidth() - c - 1, temp);
      }
    }
  }
  /** Fill numbering by row chained */
  private void fillNumberingByRowChained() {
    fillNumberingByRow();

    for (int r = 1; r < super.getGridHeight(); r += 2) {
      for (int c = 0; c < super.getGridWidth() / 2; c++) {
        String temp = super.getTileName(r, c);

        super.setTileName(r, c, super.getTileName(r, super.getGridWidth() - c - 1));
        super.setTileName(r, super.getGridWidth() - c - 1, temp);
      }
    }
  }
  /** Reflects grid along horizontal axis */
  private void reflectNumberingHorizontal() {
    for (int r = 0; r < super.getGridHeight() / 2; r++) {
      int rowOffset = (super.getGridHeight() - r - 1);

      for (int c = 0; c < super.getGridWidth(); c++) {
        String temp = super.getTileName(r, c);

        super.setTileName(r, c, super.getTileName(rowOffset, c));
        super.setTileName(rowOffset, c, temp);
      }
    }
  }
  /** Fill numbering by column chained */
  private void fillNumberingByColumnChained() {
    fillNumberingByColumn();

    for (int r = 0; r < super.getGridHeight() / 2; r++) {
      int rowOffset = (super.getGridHeight() - r - 1);

      for (int c = 1; c < super.getGridWidth(); c += 2) {
        String temp = super.getTileName(r, c);

        super.setTileName(r, c, super.getTileName(rowOffset, c));
        super.setTileName(rowOffset, c, temp);
      }
    }
  }
  /** Fill numbering by row */
  private void fillNumberingByRow() {
    for (int r = 0; r < super.getGridHeight(); r++) {
      for (int c = 0; c < super.getGridWidth(); c++) {
        int index = r * super.getGridWidth() + c;

        String fileName = String.format(this.nameMatcher, index + super.getStartTile());
        super.setTileName(r, c, fileName);
      }
    }
  }
  /** Fill numbering by column */
  private void fillNumberingByColumn() {
    for (int r = 0; r < super.getGridHeight(); r++) {
      int val = r + super.getStartTile();

      for (int c = 0; c < super.getGridWidth(); c++) {
        String fileName = String.format(this.nameMatcher, val);
        super.setTileName(r, c, fileName);
        val += super.getGridHeight();
      }
    }
  }