constructor(map) {
		super(map.cols, map.rows, map.tilewidth & ~1, map.tileheight & ~1);

		this.hexsidelength = map.hexsidelength || 0;
		this.staggerX = map.staggeraxis === "x";
		this.staggerEven = map.staggerindex === "even";

		this.sidelengthx = 0;
		this.sidelengthy = 0;

		if (map.orientation === "hexagonal") {
			if (this.staggerX) {
				this.sidelengthx = this.hexsidelength;
			} else {
				this.sidelengthy = this.hexsidelength;
			}
		}

		this.sideoffsetx = (this.tilewidth - this.sidelengthx) / 2;
		this.sideoffsety = (this.tileheight - this.sidelengthy) / 2;

		this.columnwidth = this.sideoffsetx + this.sidelengthx;
		this.rowheight = this.sideoffsety + this.sidelengthy;

		this.centers = [
			new Vector2d(),
			new Vector2d(),
			new Vector2d(),
			new Vector2d(),
		];
	}
@param {TMXTileMap} map - the TMX map