vue-cesium
Version:
Vue 3.x components for CesiumJS.
96 lines (91 loc) • 2.95 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
require('../../shaders/materials/index.js');
var VcLineFlowMaterial = require('../../shaders/materials/VcLineFlowMaterial.js');
var VcCircleWaveMaterial = require('../../shaders/materials/VcCircleWaveMaterial.js');
var VcLineTrailMaterial = require('../../shaders/materials/VcLineTrailMaterial.js');
;
let isExtended = false;
class MaterialExtend {
static extend(viewer) {
var _a;
if (isExtended) {
return;
}
const { Material, Color, Cartesian2 } = Cesium;
const webgl2 = (_a = viewer.scene.context) == null ? void 0 : _a.webgl2;
let shaderSourceTextVcLineFlow = VcLineFlowMaterial["default"];
let shaderSourceTextVcCircle = VcCircleWaveMaterial["default"];
let shaderSourceTextVcLineTrail = VcLineTrailMaterial["default"];
if (!webgl2) {
shaderSourceTextVcLineFlow = shaderSourceTextVcLineFlow.replace(/texture\(/g, "texture2D(");
shaderSourceTextVcCircle = shaderSourceTextVcCircle.replace(/texture\(/g, "texture2D(");
shaderSourceTextVcLineTrail = shaderSourceTextVcLineTrail.replace(/texture\(/g, "texture2D(");
}
Material["VcCircleWave"] = "VcCircleWave";
Cesium.Material["_materialCache"].addMaterial(Material["VcCircleWave"], {
fabric: {
type: Material["VcCircleWave"],
uniforms: {
color: new Color(1, 0, 0, 1),
time: 1,
count: 1,
gradient: 0.1
},
source: shaderSourceTextVcCircle
},
translucent() {
return true;
}
});
Material["VcLineFlow"] = "VcLineFlow";
Cesium.Material["_materialCache"].addMaterial(Material["VcLineFlow"], {
fabric: {
type: Material["VcLineFlow"],
uniforms: {
image: Material.DefaultImageId,
color: new Color(1, 1, 1, 1),
repeat: new Cartesian2(1, 1),
axisY: false,
mixt: false,
speed: 10,
time: -1,
hasImage2: false,
image2: Material.DefaultImageId,
color2: new Color(1, 1, 1),
globalAlpha: 1
},
source: shaderSourceTextVcLineFlow
},
translucent() {
return true;
}
});
Material["VcLineTrail"] = "VcLineTrail";
Cesium.Material["_materialCache"].addMaterial(Material["VcLineTrail"], {
fabric: {
type: Material["VcLineTrail"],
uniforms: {
image: Material.DefaultImageId,
color: new Color(1, 0, 0, 1),
repeat: new Cartesian2(1, 1),
time: 0,
axisY: false
},
source: shaderSourceTextVcLineTrail
},
translucent() {
return true;
}
});
isExtended = true;
}
static revoke(viewer) {
if (!isExtended) {
return;
}
isExtended = false;
}
}
exports["default"] = MaterialExtend;
//# sourceMappingURL=MaterialExtend.js.map