import { EventHandler } from "../src/render/eventhandler" import { Ellipsoid } from "./math/ellipsoid"; import { EllipsoidTerrainProvider } from "./core/EllipsoidTerrainProvider"; import { GlobeSurfaceShaderSet } from "./scene/GlobeSurfaceShaderSet"; import { GlobeSurfaceTileProvider } from "./scene/GlobeSurfaceTileProvider"; import { ImageryLayerCollection } from "./scene/ImageryLayerCollection"; import { QuadtreePrimitive } from "./scene/quadtree_primitive"; export class Globe extends EventHandler { private _ellipsoid: Ellipsoid; private _surface: QuadtreePrimitive; private _imageryLayerCollection: ImageryLayerCollection; private _surfaceShaderSet: GlobeSurfaceShaderSet; private _terrainProvider: EllipsoidTerrainProvider; constructor(ellipsoid: Ellipsoid) { super(); var terrainProvider = new EllipsoidTerrainProvider({ ellipsoid: ellipsoid, }); this._terrainProvider = terrainProvider; var imageryLayerCollection = new ImageryLayerCollection(); this._ellipsoid = ellipsoid; this._imageryLayerCollection = imageryLayerCollection; this._surfaceShaderSet = new GlobeSurfaceShaderSet(); this._surface = new QuadtreePrimitive({ tileProvider: new GlobeSurfaceTileProvider({ terrainProvider: terrainProvider, imageryLayers: imageryLayerCollection, surfaceShaderSet: this._surfaceShaderSet, }), }); } get terrainProvider() { return this._terrainProvider; } set terrainProvider(value: any) { if (value !== this._terrainProvider) { this._terrainProvider = value; this.fire('terrainProviderChanged') } } }