xtorcga
Version:
Xtor Compute Geometry Algorithm Libary 计算几何算法库
76 lines (62 loc) • 2.25 kB
text/typescript
/*
* @Description : 地球 或者不同圆椭球体
* @Author : 赵耀圣
* @QQ : 549184003
* @Date : 2021-08-05 10:10:40
* @LastEditTime : 2021-08-05 10:54:14
* @FilePath : \cga.js\src-gis\scene\Globe.ts
*/
import { EllipsoidTerrainProvider } from "src-gis/core/EllipsoidTerrainProvider";
import { Cartographic } from "src-gis/math/Cartographic";
import { Ellipsoid } from "src-gis/math/ellipsoid";
import { GVec3 } from "src-gis/math/GVec3";
import { TerrainProvider } from "src-gis/provider/TerrainProvider";
import { Ray } from "src/struct/3d/Ray";
import { GlobeSurfaceShaderSet } from "./GlobeSurfaceShaderSet";
import { GlobeSurfaceTileProvider } from "./GlobeSurfaceTileProvider";
import { ImageryLayerCollection } from "./ImageryLayerCollection";
import { QuadtreePrimitive } from "./quadtree_primitive";
export class Globe {
ellipsoid: Ellipsoid;
/**
* 地形提供器
*/
private _terrainProvider!: TerrainProvider;
/**
* 图层集合
*/
imageLayers: ImageryLayerCollection = new ImageryLayerCollection();
/**
* 地形块存数量
*/
tileCacheSize: number = 100;
loadingDescendantLimit: number = 20;
/**
* 显示水的效果
*/
showWaterEffect: boolean = false;
_surface: QuadtreePrimitive;
_surfaceShaderSet: GlobeSurfaceShaderSet;
showSkirts: boolean = true;
constructor(ellipsoid: Ellipsoid = Ellipsoid.WGS84) {
this.ellipsoid = ellipsoid;
this._terrainProvider = new EllipsoidTerrainProvider({
ellipsoid: ellipsoid,
});
this._surfaceShaderSet = new GlobeSurfaceShaderSet();
this._surface = new QuadtreePrimitive({
tileProvider: new GlobeSurfaceTileProvider({
terrainProvider: this._terrainProvider,
imageryLayers: this.imageLayers,
surfaceShaderSet: this._surfaceShaderSet
})
})
}
pick(rat: Ray, scene: any, result: GVec3) { };
getHeight(cartographic: Cartographic): number | undefined {
return 0;
}
get tilesLoaded() {
return true;
}
}