function PolylineVolumeOutlineGeometry(options) {
  options = options ?? Frozen.EMPTY_OBJECT;
  const positions = options.polylinePositions;
  const shape = options.shapePositions;

  //>>includeStart('debug', pragmas.debug);
  if (!defined(positions)) {
    throw new DeveloperError("options.polylinePositions is required.");
  }
  if (!defined(shape)) {
    throw new DeveloperError("options.shapePositions is required.");
  }
  //>>includeEnd('debug');

  this._positions = positions;
  this._shape = shape;
  this._ellipsoid = Ellipsoid.clone(options.ellipsoid ?? Ellipsoid.default);
  this._cornerType = options.cornerType ?? CornerType.ROUNDED;
  this._granularity = options.granularity ?? CesiumMath.RADIANS_PER_DEGREE;
  this._workerName = "createPolylineVolumeOutlineGeometry";

  let numComponents = 1 + positions.length * Cartesian3.packedLength;
  numComponents += 1 + shape.length * Cartesian2.packedLength;

  /**
   * The number of elements used to pack the object into an array.
   * @type {number}
   */
  this.packedLength = numComponents + Ellipsoid.packedLength + 2;
}
A description of a polyline with a volume (a 2D shape extruded along a polyline).

@alias PolylineVolumeOutlineGeometry
@constructor

@param {object} options Object with the following properties:
@param {Cartesian3[]} options.polylinePositions An array of positions that define the center of the polyline volume.
@param {Cartesian2[]} options.shapePositions An array of positions that define the shape to be extruded along the polyline
@param {Ellipsoid} [options.ellipsoid=Ellipsoid.default] The ellipsoid to be used as a reference.
@param {number} [options.granularity=CesiumMath.RADIANS_PER_DEGREE] The distance, in radians, between each latitude and longitude. Determines the number of positions in the buffer.
@param {CornerType} [options.cornerType=CornerType.ROUNDED] Determines the style of the corners.

@see PolylineVolumeOutlineGeometry#createGeometry

@example
function computeCircle(radius) {
  const positions = [];
  for (let i = 0; i < 360; i++) {
    const radians = Cesium.Math.toRadians(i);
    positions.push(new Cesium.Cartesian2(radius * Math.cos(radians), radius * Math.sin(radians)));
  }
  return positions;
}

const volumeOutline = new Cesium.PolylineVolumeOutlineGeometry({
  polylinePositions : Cesium.Cartesian3.fromDegreesArray([
    -72.0, 40.0,
    -70.0, 35.0
  ]),
  shapePositions : computeCircle(100000.0)
});