"use strict";
/*
 * @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
 */
Object.defineProperty(exports, "__esModule", { value: true });
exports.Globe = void 0;
var EllipsoidTerrainProvider_1 = require("src-gis/core/EllipsoidTerrainProvider");
var ellipsoid_1 = require("src-gis/math/ellipsoid");
var GlobeSurfaceShaderSet_1 = require("./GlobeSurfaceShaderSet");
var GlobeSurfaceTileProvider_1 = require("./GlobeSurfaceTileProvider");
var ImageryLayerCollection_1 = require("./ImageryLayerCollection");
var quadtree_primitive_1 = require("./quadtree_primitive");
var Globe = /** @class */ (function () {
    function Globe(ellipsoid) {
        if (ellipsoid === void 0) { ellipsoid = ellipsoid_1.Ellipsoid.WGS84; }
        /**
         *   图层集合
         */
        this.imageLayers = new ImageryLayerCollection_1.ImageryLayerCollection();
        /**
         *  地形块存数量
         */
        this.tileCacheSize = 100;
        this.loadingDescendantLimit = 20;
        /**
         * 显示水的效果
         */
        this.showWaterEffect = false;
        this.showSkirts = true;
        this.ellipsoid = ellipsoid;
        this._terrainProvider = new EllipsoidTerrainProvider_1.EllipsoidTerrainProvider({
            ellipsoid: ellipsoid,
        });
        this._surfaceShaderSet = new GlobeSurfaceShaderSet_1.GlobeSurfaceShaderSet();
        this._surface = new quadtree_primitive_1.QuadtreePrimitive({
            tileProvider: new GlobeSurfaceTileProvider_1.GlobeSurfaceTileProvider({
                terrainProvider: this._terrainProvider,
                imageryLayers: this.imageLayers,
                surfaceShaderSet: this._surfaceShaderSet
            })
        });
    }
    Globe.prototype.pick = function (rat, scene, result) { };
    ;
    Globe.prototype.getHeight = function (cartographic) {
        return 0;
    };
    Object.defineProperty(Globe.prototype, "tilesLoaded", {
        get: function () {
            return true;
        },
        enumerable: false,
        configurable: true
    });
    return Globe;
}());
exports.Globe = Globe;
