{"version":3,"file":"MaterialExtend.mjs","sources":["../../../../../../packages/shared/extends/materials/MaterialExtend.ts"],"sourcesContent":["/*\n * @Author: zouyaoji@https://github.com/zouyaoji\n * @Date: 2023-08-18 00:56:13\n * @Description: Do not edit\n * @LastEditors: zouyaoji 370681295@qq.com\n * @LastEditTime: 2024-02-29 00:41:04\n * @FilePath: \\vue-cesium\\packages\\shared\\extends\\materials\\MaterialExtend.ts\n */\n\nimport { VcCircleWaveMaterial, VcLineFlowMaterial, VcLineTrailMaterial } from '@vue-cesium/shared/shaders/materials'\n\nlet isExtended = false\nexport default class MaterialExtend {\n  static extend(viewer: Cesium.Viewer) {\n    if (isExtended) {\n      return\n    }\n\n    const { Material, Color, Cartesian2 } = Cesium\n    const webgl2 = viewer.scene.context?.webgl2\n\n    let shaderSourceTextVcLineFlow = VcLineFlowMaterial\n    let shaderSourceTextVcCircle = VcCircleWaveMaterial\n    let shaderSourceTextVcLineTrail = VcLineTrailMaterial\n\n    if (!webgl2) {\n      shaderSourceTextVcLineFlow = shaderSourceTextVcLineFlow.replace(/texture\\(/g, 'texture2D(')\n      shaderSourceTextVcCircle = shaderSourceTextVcCircle.replace(/texture\\(/g, 'texture2D(')\n      shaderSourceTextVcLineTrail = shaderSourceTextVcLineTrail.replace(/texture\\(/g, 'texture2D(')\n    }\n\n    /**\n     * Gets the name of the VcCircleWave material.\n     * @type {string}\n     * @readonly\n     */\n    Material['VcCircleWave'] = 'VcCircleWave'\n    Cesium.Material['_materialCache'].addMaterial(Material['VcCircleWave'], {\n      fabric: {\n        type: Material['VcCircleWave'],\n        uniforms: {\n          color: new Color(1, 0, 0, 1),\n          time: 1,\n          count: 1,\n          gradient: 0.1\n        },\n        source: shaderSourceTextVcCircle\n      },\n      translucent() {\n        return true\n      }\n    })\n\n    /**\n     * Gets the name of the VcLineFlow material.\n     * @type {string}\n     * @readonly\n     */\n    Material['VcLineFlow'] = 'VcLineFlow'\n    Cesium.Material['_materialCache'].addMaterial(Material['VcLineFlow'], {\n      fabric: {\n        type: Material['VcLineFlow'],\n        uniforms: {\n          image: Material.DefaultImageId,\n          color: new Color(1, 1, 1, 1),\n          repeat: new Cartesian2(1, 1),\n          axisY: false,\n          mixt: false,\n          speed: 10,\n          time: -1,\n          hasImage2: false,\n          image2: Material.DefaultImageId,\n          color2: new Color(1, 1, 1),\n          globalAlpha: 1\n        },\n        source: shaderSourceTextVcLineFlow\n      },\n      translucent() {\n        return true\n      }\n    })\n\n    /**\n     * Gets the name of the VcLineTrail material.\n     * @type {string}\n     * @readonly\n     */\n    Material['VcLineTrail'] = 'VcLineTrail'\n    Cesium.Material['_materialCache'].addMaterial(Material['VcLineTrail'], {\n      fabric: {\n        type: Material['VcLineTrail'],\n        uniforms: {\n          image: Material.DefaultImageId,\n          color: new Color(1, 0, 0, 1),\n          repeat: new Cartesian2(1, 1),\n          time: 0,\n          axisY: false\n        },\n        source: shaderSourceTextVcLineTrail\n      },\n      translucent() {\n        return true\n      }\n    })\n\n    isExtended = true\n  }\n\n  static revoke(viewer?: Cesium.Viewer) {\n    if (!isExtended) {\n      return\n    }\n\n    isExtended = false\n  }\n}\n"],"names":[],"mappings":"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"}