function CubeGeometry(levelPropertiesList) {
  if (type(levelPropertiesList) !== 'array') {
    throw new Error('Level list must be an array');
  }

  this.levelList = makeLevelList(levelPropertiesList, CubeLevel);
  this.selectableLevelList = makeSelectableLevelList(this.levelList);

  for (var i = 1; i < this.levelList.length; i++) {
    this.levelList[i]._validateWithParentLevel(this.levelList[i-1]);
  }

  this._tileSearcher = new TileSearcher(this);

  this._neighborsCache = new LruMap(neighborsCacheSize);

  this._vec = vec4.create();

  this._viewSize = {};
}
/**
 * @class CubeGeometry
 * @implements Geometry
 * @classdesc
 *
 * A {@link Geometry} implementation suitable for tiled cube images with
 * multiple resolution levels.
 *
 * The following restrictions apply:
 *   - All tiles in a level must be square and form a rectangular grid;
 *   - The size of a level must be a multiple of the tile size;
 *   - The size of a level must be a multiple of the parent level size;
 *   - The number of tiles in a level must be a multiple of the number of tiles
 *     in the parent level.
 *
 * @param {Object[]} levelPropertiesList Level description
 * @param {number} levelPropertiesList[].size Cube face size in pixels
 * @param {number} levelPropertiesList[].tileSize Tile size in pixels
 */
@class CubeGeometry
@implements Geometry
@classdesc

A  Geometry implementation suitable for tiled cube images with
multiple resolution levels.

The following restrictions apply:
- All tiles in a level must be square and form a rectangular grid;
- The size of a level must be a multiple of the tile size;
- The size of a level must be a multiple of the parent level size;
- The number of tiles in a level must be a multiple of the number of tiles
in the parent level.

@param {Object[]} levelPropertiesList Level description
@param {number} levelPropertiesList[].size Cube face size in pixels
@param {number} levelPropertiesList[].tileSize Tile size in pixels
@class CubeGeometry @implements Geometry @classdesc A Geometry implementation suitable for tiled cube images with multiple resolution levels . The following restrictions apply : - All tiles in a level must be square and form a rectangular grid ; - The size of a level must be a multiple of the tile size ; - The size of a level must be a multiple of the parent level size ; - The number of tiles in a level must be a multiple of the number of tiles in the parent level . @param { Object [] } levelPropertiesList Level description @param { number } levelPropertiesList [] . size Cube face size in pixels @param { number } levelPropertiesList [] . tileSize Tile size in pixels
function CubeGeometry(levelPropertiesList) {
  if (type(levelPropertiesList) !== 'array') {
    throw new Error('Level list must be an array');
  }
  this.levelList = makeLevelList(levelPropertiesList, CubeLevel);
  this.selectableLevelList = makeSelectableLevelList(this.levelList);
  for (var i = 1; i < this.levelList.length; i++) {
    this.levelList[i]._validateWithParentLevel(this.levelList[i-1]);
  }
  this._tileSearcher = new TileSearcher(this);
  this._neighborsCache = new LruMap(neighborsCacheSize);
  this._vec = vec4.create();
  this._viewSize = {};
}
function CubeGeometry ( levelPropertiesList ) { if ( type ( levelPropertiesList ) !== 'array' ) { throw new Error ( 'Level list must be an array' ) ; } this . levelList = makeLevelList ( levelPropertiesList , CubeLevel ) ; this . selectableLevelList = makeSelectableLevelList ( this . levelList ) ; for ( var i = 1 ; i < this . levelList . length ; i ++ ) { this . levelList [ i ] . _validateWithParentLevel ( this . levelList [ i - 1 ] ) ; } this . _tileSearcher = new TileSearcher ( this ) ; this . _neighborsCache = new LruMap ( neighborsCacheSize ) ; this . _vec = vec4 . create ( ) ; this . _viewSize = { } ; }
@class CubeGeometry
 @implements Geometry
 @classdesc
@class CubeGeometry @implements Geometry @classdesc