/* 2017-12-4 08:27:25 | 修改 木遥（微信:  http://marsgis.cn/weixin.html ） */
//模块：
mars3d.widget.bindClass(mars3d.widget.BaseWidget.extend({
    options: {
        //弹窗
        view: {
            type: "window",
            url: "view.html",
            windowOptions: {
                width: 270,
                height: 500,
                "position": {
                    "top": 70,
                    "bottom": 40,
                    "left": 15
                }
            }
        }
    },
    //初始化[仅执行1次]
    create: function () {


    },
    viewWindow: null,
    //每个窗口创建完成后调用
    winCreateOK: function (opt, result) {
        this.viewWindow = result;
    },
    //打开激活
    activate: function () {


    },
    //关闭释放
    disable: function () {
        this.viewWindow = null;
        this.resetStyle();
    },
    getTreeUrl: function () {
        var url = this.config.layerCfg.url;
        url = url.substring(0, url.lastIndexOf('/') + 1) + this.config.layerCfg.scenetree;

        var that = this;
        $.ajax({
            url: url,
            dataType: 'json',
            success: function (scene) {
                that.viewWindow.initSceneTree(scene);
            }
        });
    },
    resetStyle: function () {
        var layerWork = this.viewer.mars.getLayer(this.config.layerCfg);
        if (!layerWork) return;
        var tileset = layerWork.model; 
        if (!tileset) return;
        tileset.style = undefined;
    },
    //定位
    locateNode: function (nodeid, nodesphere) {
        if (nodesphere[3] <= 0)
            return;


        var layerWork = this.viewer.mars.getLayer(this.config.layerCfg);
        var tileset = layerWork.model;
        var orginMatrixInverse = layerWork.orginMatrixInverse;

        //飞行过去 
        var center = new Cesium.Cartesian3(nodesphere[0], nodesphere[1], nodesphere[2]);
        if (orginMatrixInverse && tileset._root.transform) {
            var mat = Cesium.Matrix4.multiply(tileset._root.transform, orginMatrixInverse, new Cesium.Matrix4());
            center = Cesium.Matrix4.multiplyByPoint(mat, center, new Cesium.Cartesian3());
        }

        var sphere = new Cesium.BoundingSphere(center, nodesphere[3]);
        this.viewer.camera.flyToBoundingSphere(sphere, {
            duration: 0.5
        });

        //设置tileset的样式 
        tileset.style = new Cesium.Cesium3DTileStyle({
            color: {
                conditions: [
                    ["${id} ==='" + nodeid + "'", "rgb(255, 255, 255)"],
                    ["true", "rgba(255, 200, 200,0.2)"]
                ]
            }
        });

    },




}));
