text: import { defaultValue } from "../Source/Cesium.js";
  import { Ellipsoid } from "../Source/Cesium.js";
  import { Event } from "../Source/Cesium.js";
  
  function createGlobe(ellipsoid) {
    ellipsoid = defaultValue(ellipsoid, Ellipsoid.WGS84);
  
    var globe = {
      callback: undefined,
      removedCallback: false,
      ellipsoid: ellipsoid,
      beginFrame: function () {},
      endFrame: function () {},
      update: function () {},
      render: function () {},
      getHeight: function () {
        return 0.0;
      },
      _surface: {},
      imageryLayersUpdatedEvent: new Event(),
      _terrainProvider: undefined,
      terrainProviderChanged: new Event(),
      destroy: function () {},
    };
  
    globe._surface.updateHeight = function (position, callback) {
      globe.callback = callback;
      return function () {
        globe.removedCallback = true;
        globe.callback = undefined;
      };
    };
  
    globe.terrainProviderChanged = new Event();
    Object.defineProperties(globe, {
      terrainProvider: {
        get: function () {
          return this._terrainProvider;
        },
        set: function (value) {
          this._terrainProvider = value;
          this.terrainProviderChanged.raiseEvent(value);
        },
      },
    });
  
    return globe;
  }
  export default createGlobe;
  