xtorcga
Version:
Xtor Compute Geometry Algorithm Libary 计算几何算法库
54 lines (41 loc) • 1.83 kB
text/typescript
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')
}
}
}