code: function (center, radius, attributes) {
              if (!center) {
                  throw new ArgumentError(
                      Logger.logMessage(Logger.LEVEL_SEVERE, "SurfaceCircle", "constructor", "missingLocation"));
              }
  
              if (radius < 0) {
                  throw new ArgumentError(
                      Logger.logMessage(Logger.LEVEL_SEVERE, "SurfaceCircle", "constructor", "Radius is negative"));
              }
  
              SurfaceShape.call(this, attributes);
  
              // All these are documented with their property accessors below.
              this._center = center;
              this._radius = radius;
              this._intervals = SurfaceCircle.DEFAULT_NUM_INTERVALS;
          }
docs: Constructs a surface circle with a specified center and radius and an optional attributes bundle.
  @alias SurfaceCircle
  @constructor
  @augments SurfaceShape
  @classdesc Represents a circle draped over the terrain surface.
  <p>
  SurfaceCircle 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 circle's center location.
  @param {Number} radius The circle's radius in meters.
  @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 the specified radius
  is negative.