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

  const rectangle = options.rectangle;
  const granularity = options.granularity ?? CesiumMath.RADIANS_PER_DEGREE;
  const ellipsoid = options.ellipsoid ?? Ellipsoid.default;
  const rotation = options.rotation ?? 0.0;

  //>>includeStart('debug', pragmas.debug);
  if (!defined(rectangle)) {
    throw new DeveloperError("rectangle is required.");
  }
  Rectangle._validate(rectangle);
  if (rectangle.north < rectangle.south) {
    throw new DeveloperError(
      "options.rectangle.north must be greater than options.rectangle.south",
    );
  }
  //>>includeEnd('debug');

  const height = options.height ?? 0.0;
  const extrudedHeight = options.extrudedHeight ?? height;

  this._rectangle = Rectangle.clone(rectangle);
  this._granularity = granularity;
  this._ellipsoid = ellipsoid;
  this._surfaceHeight = Math.max(height, extrudedHeight);
  this._rotation = rotation;
  this._extrudedHeight = Math.min(height, extrudedHeight);
  this._offsetAttribute = options.offsetAttribute;
  this._workerName = "createRectangleOutlineGeometry";
}
A description of the outline of a a cartographic rectangle on an ellipsoid centered at the origin.

@alias RectangleOutlineGeometry
@constructor

@param {object} options Object with the following properties:
@param {Rectangle} options.rectangle A cartographic rectangle with north, south, east and west properties in radians.
@param {Ellipsoid} [options.ellipsoid=Ellipsoid.default] The ellipsoid on which the rectangle lies.
@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 {number} [options.height=0.0] The distance in meters between the rectangle and the ellipsoid surface.
@param {number} [options.rotation=0.0] The rotation of the rectangle, in radians. A positive rotation is counter-clockwise.
@param {number} [options.extrudedHeight] The distance in meters between the rectangle's extruded face and the ellipsoid surface.

@exception {DeveloperError} <code>options.rectangle.north</code> must be in the interval [<code>-Pi/2</code>, <code>Pi/2</code>].
@exception {DeveloperError} <code>options.rectangle.south</code> must be in the interval [<code>-Pi/2</code>, <code>Pi/2</code>].
@exception {DeveloperError} <code>options.rectangle.east</code> must be in the interval [<code>-Pi</code>, <code>Pi</code>].
@exception {DeveloperError} <code>options.rectangle.west</code> must be in the interval [<code>-Pi</code>, <code>Pi</code>].
@exception {DeveloperError} <code>options.rectangle.north</code> must be greater than <code>rectangle.south</code>.

@see RectangleOutlineGeometry#createGeometry

@example
const rectangle = new Cesium.RectangleOutlineGeometry({
  ellipsoid : Cesium.Ellipsoid.WGS84,
  rectangle : Cesium.Rectangle.fromDegrees(-80.0, 39.0, -74.0, 42.0),
  height : 10000.0
});
const geometry = Cesium.RectangleOutlineGeometry.createGeometry(rectangle);