function CylinderOutlineGeometry(options) {
  options = options ?? Frozen.EMPTY_OBJECT;

  const length = options.length;
  const topRadius = options.topRadius;
  const bottomRadius = options.bottomRadius;
  const slices = options.slices ?? 128;
  const numberOfVerticalLines = Math.max(
    options.numberOfVerticalLines ?? 16,
    0,
  );

  //>>includeStart('debug', pragmas.debug);
  Check.typeOf.number("options.positions", length);
  Check.typeOf.number("options.topRadius", topRadius);
  Check.typeOf.number("options.bottomRadius", bottomRadius);
  Check.typeOf.number.greaterThanOrEquals("options.slices", slices, 3);
  if (
    defined(options.offsetAttribute) &&
    options.offsetAttribute === GeometryOffsetAttribute.TOP
  ) {
    throw new DeveloperError(
      "GeometryOffsetAttribute.TOP is not a supported options.offsetAttribute for this geometry.",
    );
  }
  //>>includeEnd('debug');

  this._length = length;
  this._topRadius = topRadius;
  this._bottomRadius = bottomRadius;
  this._slices = slices;
  this._numberOfVerticalLines = numberOfVerticalLines;
  this._offsetAttribute = options.offsetAttribute;
  this._workerName = "createCylinderOutlineGeometry";
}
A description of the outline of a cylinder.

@alias CylinderOutlineGeometry
@constructor

@param {object} options Object with the following properties:
@param {number} options.length The length of the cylinder.
@param {number} options.topRadius The radius of the top of the cylinder.
@param {number} options.bottomRadius The radius of the bottom of the cylinder.
@param {number} [options.slices=128] The number of edges around the perimeter of the cylinder.
@param {number} [options.numberOfVerticalLines=16] Number of lines to draw between the top and bottom surfaces of the cylinder.

@exception {DeveloperError} options.length must be greater than 0.
@exception {DeveloperError} options.topRadius must be greater than 0.
@exception {DeveloperError} options.bottomRadius must be greater than 0.
@exception {DeveloperError} bottomRadius and topRadius cannot both equal 0.
@exception {DeveloperError} options.slices must be greater than or equal to 3.

@see CylinderOutlineGeometry.createGeometry

@example
// create cylinder geometry
const cylinder = new Cesium.CylinderOutlineGeometry({
    length: 200000,
    topRadius: 80000,
    bottomRadius: 200000,
});
const geometry = Cesium.CylinderOutlineGeometry.createGeometry(cylinder);