function Vector3DTileClampedPolylines(options) {
  // these arrays hold data from the tile payload
  // and are all released after the first update.
  this._positions = options.positions;
  this._widths = options.widths;
  this._counts = options.counts;
  this._batchIds = options.batchIds;

  this._ellipsoid = options.ellipsoid ?? Ellipsoid.WGS84;
  this._minimumHeight = options.minimumHeight;
  this._maximumHeight = options.maximumHeight;
  this._center = options.center;
  this._rectangle = options.rectangle;

  this._batchTable = options.batchTable;

  this._va = undefined;
  this._sp = undefined;
  this._rs = undefined;
  this._uniformMap = undefined;
  this._command = undefined;

  this._transferrableBatchIds = undefined;
  this._packedBuffer = undefined;
  this._minimumMaximumVectorHeights = new Cartesian2(
    ApproximateTerrainHeights._defaultMinTerrainHeight,
    ApproximateTerrainHeights._defaultMaxTerrainHeight,
  );
  this._boundingVolume = OrientedBoundingBox.fromRectangle(
    options.rectangle,
    ApproximateTerrainHeights._defaultMinTerrainHeight,
    ApproximateTerrainHeights._defaultMaxTerrainHeight,
    this._ellipsoid,
  );
  this._classificationType = options.classificationType;

  this._keepDecodedPositions = options.keepDecodedPositions;
  this._decodedPositions = undefined;
  this._decodedPositionOffsets = undefined;

  // Fat vertices - all information for each volume packed to a vec3 and 5 vec4s
  this._startEllipsoidNormals = undefined;
  this._endEllipsoidNormals = undefined;
  this._startPositionAndHeights = undefined;
  this._startFaceNormalAndVertexCornerIds = undefined;
  this._endPositionAndHeights = undefined;
  this._endFaceNormalAndHalfWidths = undefined;
  this._vertexBatchIds = undefined;

  this._indices = undefined;

  this._constantColor = Color.clone(Color.WHITE);
  this._highlightColor = this._constantColor;

  this._trianglesLength = 0;
  this._geometryByteLength = 0;

  this._ready = false;
  this._promise = undefined;
  this._error = undefined;
}
Creates a batch of polylines as volumes with shader-adjustable width.

@alias Vector3DTileClampedPolylines
@constructor

@param {object} options An object with following properties:
@param {Uint16Array} options.positions The positions of the polylines
@param {Uint32Array} options.counts The number or positions in the each polyline.
@param {Uint16Array} options.widths The width of each polyline.
@param {number} options.minimumHeight The minimum height of the tile's region.
@param {number} options.maximumHeight The maximum height of the tile's region.
@param {Rectangle} options.rectangle The rectangle containing the tile.
@param {Cartesian3} [options.center=Cartesian3.ZERO] The RTC center.
@param {Cesium3DTileBatchTable} options.batchTable The batch table for the tile containing the batched polylines.
@param {Uint16Array} options.batchIds The batch ids for each polyline.
@param {ClassificationType} options.classificationType The classification type.
@param {boolean} options.keepDecodedPositions Whether to keep decoded positions in memory.

@private