constructor(fileDirectory, geoKeys, dataView, littleEndian, cache, source) {
    this.fileDirectory = fileDirectory;
    this.geoKeys = geoKeys;
    this.dataView = dataView;
    this.littleEndian = littleEndian;
    this.tiles = cache ? {} : null;
    this.isTiled = !fileDirectory.StripOffsets;
    const planarConfiguration = fileDirectory.PlanarConfiguration;
    this.planarConfiguration = (typeof planarConfiguration === 'undefined') ? 1 : planarConfiguration;
    if (this.planarConfiguration !== 1 && this.planarConfiguration !== 2) {
      throw new Error('Invalid planar configuration.');
    }

    this.source = source;
  }
@constructor
@param {Object} fileDirectory The parsed file directory
@param {Object} geoKeys The parsed geo-keys
@param {DataView} dataView The DataView for the underlying file.
@param {Boolean} littleEndian Whether the file is encoded in little or big endian
@param {Boolean} cache Whether or not decoded tiles shall be cached
@param {import('./source/basesource').BaseSource} source The datasource to read from