function Vector3DTileGeometry(options) {
  // these will all be released after the primitive is created
  this._boxes = options.boxes;
  this._boxBatchIds = options.boxBatchIds;
  this._cylinders = options.cylinders;
  this._cylinderBatchIds = options.cylinderBatchIds;
  this._ellipsoids = options.ellipsoids;
  this._ellipsoidBatchIds = options.ellipsoidBatchIds;
  this._spheres = options.spheres;
  this._sphereBatchIds = options.sphereBatchIds;
  this._modelMatrix = options.modelMatrix;
  this._batchTable = options.batchTable;
  this._boundingVolume = options.boundingVolume;

  this._center = options.center;
  if (!defined(this._center)) {
    if (defined(this._boundingVolume)) {
      this._center = Cartesian3.clone(this._boundingVolume.center);
    } else {
      this._center = Cartesian3.clone(Cartesian3.ZERO);
    }
  }

  this._boundingVolumes = undefined;
  this._batchedIndices = undefined;

  this._indices = undefined;
  this._indexOffsets = undefined;
  this._indexCounts = undefined;

  this._positions = undefined;
  this._vertexBatchIds = undefined;

  this._batchIds = undefined;

  this._batchTableColors = undefined;
  this._packedBuffer = undefined;

  this._ready = false;
  this._promise = undefined;
  this._error = undefined;

  this._verticesPromise = undefined;

  this._primitive = undefined;

  /**
   * Draws the wireframe of the classification geometries.
   * @type {boolean}
   * @default false
   */
  this.debugWireframe = false;

  /**
   * Forces a re-batch instead of waiting after a number of frames have been rendered. For testing only.
   * @type {boolean}
   * @default false
   */
  this.forceRebatch = false;

  /**
   * What this tile will classify.
   * @type {ClassificationType}
   * @default ClassificationType.BOTH
   */
  this.classificationType = ClassificationType.BOTH;
}
Creates a batch of box, cylinder, ellipsoid and/or sphere geometries intersecting terrain or 3D Tiles.

@alias Vector3DTileGeometry
@constructor

@param {object} options An object with following properties:
@param {Float32Array} [options.boxes] The boxes in the tile.
@param {Uint16Array} [options.boxBatchIds] The batch ids for each box.
@param {Float32Array} [options.cylinders] The cylinders in the tile.
@param {Uint16Array} [options.cylinderBatchIds] The batch ids for each cylinder.
@param {Float32Array} [options.ellipsoids] The ellipsoids in the tile.
@param {Uint16Array} [options.ellipsoidBatchIds] The batch ids for each ellipsoid.
@param {Float32Array} [options.spheres] The spheres in the tile.
@param {Uint16Array} [options.sphereBatchIds] The batch ids for each sphere.
@param {Cartesian3} options.center The RTC center of all geometries.
@param {Matrix4} options.modelMatrix The model matrix of all geometries. Applied after the individual geometry model matrices.
@param {Cesium3DTileBatchTable} options.batchTable The batch table.
@param {BoundingSphere} options.boundingVolume The bounding volume containing all of the geometry in the tile.

@private