code: function (center, majorRadius, minorRadius, heading, attributes) {
              if (!center) {
                  throw new ArgumentError(
                      Logger.logMessage(Logger.LEVEL_SEVERE, "SurfaceEllipse", "constructor", "missingLocation"));
              }
  
              if (majorRadius < 0 || minorRadius < 0) {
                  throw new ArgumentError(
                      Logger.logMessage(Logger.LEVEL_SEVERE, "SurfaceEllipse", "constructor", "Radius is negative."));
              }
  
              SurfaceShape.call(this, attributes);
  
              // All these are documented with their property accessors below.
              this._center = center;
              this._majorRadius = majorRadius;
              this._minorRadius = minorRadius;
              this._heading = heading;
              this._intervals = SurfaceEllipse.DEFAULT_NUM_INTERVALS;
          }
docs: Constructs a surface ellipse with a specified center and radii and an optional attributes bundle.
  @alias SurfaceEllipse
  @constructor
  @augments SurfaceShape
  @classdesc Represents an ellipse draped over the terrain surface.
  <p>
  SurfaceEllipse uses the following attributes from its associated shape attributes bundle:
  <ul>
  <li>Draw interior</li>
  <li>Draw outline</li>
  <li>Interior color</li>
  <li>Outline color</li>
  <li>Outline width</li>
  <li>Outline stipple factor</li>
  <li>Outline stipple pattern</li>
  </ul>
  @param {Location} center The ellipse's center location.
  @param {Number} majorRadius The ellipse's major radius in meters.
  @param {Number} minorRadius The ellipse's minor radius in meters.
  @param {Number} heading The heading of the major axis in degrees.
  @param {ShapeAttributes} attributes The attributes to apply to this shape. May be null, in which case
  attributes must be set directly before the shape is drawn.
  @throws {ArgumentError} If the specified center location is null or undefined or if either specified radii
  is negative.