Merge branch 'master' of http://xny.yj-3d.com:3000/zh/sdk4.0 into project
This commit is contained in:
@ -324,7 +324,7 @@ class AttackArrowObject extends Base {
|
||||
}
|
||||
set labelShow(v) {
|
||||
this.options.label.show = v
|
||||
if (this.show &&!this.showView || this.showView == 3) {
|
||||
if (this.show && !this.showView || this.showView == 3) {
|
||||
this.label.show = v
|
||||
}
|
||||
else {
|
||||
|
@ -14,6 +14,8 @@ import {
|
||||
|
||||
class LabelObject extends Base {
|
||||
#updateBillboardImageTimeout
|
||||
#canvas = document.createElement('canvas')
|
||||
#canvas2 = document.createElement('canvas')
|
||||
constructor(sdk, options = {}, model) {
|
||||
super(sdk, options)
|
||||
this.model = model
|
||||
@ -438,11 +440,12 @@ class LabelObject extends Base {
|
||||
this.updateBillboardImage()
|
||||
}
|
||||
updateBillboardImage() {
|
||||
clearTimeout(this.#updateBillboardImageTimeout)
|
||||
this.#updateBillboardImageTimeout = setTimeout(() => {
|
||||
clearTimeout(this.#updateBillboardImageTimeout)
|
||||
this.entity && (this.entity.billboard.image = this.getcanvas())
|
||||
}, 500)
|
||||
this.entity.billboard.image = this.getcanvas()
|
||||
// clearTimeout(this.#updateBillboardImageTimeout)
|
||||
// this.#updateBillboardImageTimeout = setTimeout(() => {
|
||||
// clearTimeout(this.#updateBillboardImageTimeout)
|
||||
// this.entity.billboard.image = this.getcanvas()
|
||||
// }, 500)
|
||||
}
|
||||
get lineColor() {
|
||||
return this.options.pixelOffset
|
||||
@ -489,9 +492,8 @@ class LabelObject extends Base {
|
||||
// }
|
||||
|
||||
getcanvas() {
|
||||
const canvas = document.createElement('canvas')
|
||||
const ctx = canvas.getContext('2d')
|
||||
|
||||
const ctx = this.#canvas.getContext('2d')
|
||||
ctx.clearRect(0, 0, this.#canvas.width, this.#canvas.height);
|
||||
ctx.font = this.options.fontSize + 'px ' + this.font
|
||||
let texts = this.options.text.split('\n')
|
||||
let canvasWidth = 0
|
||||
@ -509,9 +511,8 @@ class LabelObject extends Base {
|
||||
if (canvasWidth < this.options.lineWidth) {
|
||||
canvasWidth = this.options.lineWidth
|
||||
}
|
||||
canvas.width = canvasWidth
|
||||
|
||||
canvas.height = this.options.pixelOffset + canvasHeight
|
||||
this.#canvas.width = canvasWidth
|
||||
this.#canvas.height = this.options.pixelOffset + canvasHeight
|
||||
const linearGradient = ctx.createLinearGradient(
|
||||
0,
|
||||
0,
|
||||
@ -558,15 +559,14 @@ class LabelObject extends Base {
|
||||
ctx.stroke()
|
||||
ctx.closePath()
|
||||
|
||||
const canvas2 = document.createElement('canvas')
|
||||
const ctx2 = canvas2.getContext('2d')
|
||||
canvas2.width = canvas.width + 10
|
||||
canvas2.height = canvas.height + 10
|
||||
ctx2.drawImage(canvas, 5, 5);
|
||||
const ctx2 = this.#canvas2.getContext('2d')
|
||||
this.#canvas2.width = this.#canvas.width + 10
|
||||
this.#canvas2.height = this.#canvas.height + 10
|
||||
ctx2.drawImage(this.#canvas, 5, 5);
|
||||
|
||||
// const imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);
|
||||
// ctx.putImageData(imageData, 40, 40);
|
||||
return canvas2
|
||||
return this.#canvas2.toDataURL("image/png")
|
||||
}
|
||||
|
||||
remove() {
|
||||
|
@ -157,7 +157,7 @@ class WallStereoscopic extends Base {
|
||||
}
|
||||
set labelShow(v) {
|
||||
this.options.label.show = v
|
||||
if (this.show) {
|
||||
if (this.show && !this.showView || this.showView == 3) {
|
||||
this.label.show = v
|
||||
}
|
||||
else {
|
||||
|
@ -243,7 +243,7 @@ class WallRealStereoscopic extends Base {
|
||||
}
|
||||
set labelShow(v) {
|
||||
this.options.label.show = v
|
||||
if (this.show) {
|
||||
if (this.show && !this.showView || this.showView == 3) {
|
||||
this.label.show = v
|
||||
}
|
||||
else {
|
||||
|
@ -1,6 +1,13 @@
|
||||
class cy_tabs {
|
||||
constructor(id, clickTabCallBack, sdk) {
|
||||
let elm = document.getElementById(id);
|
||||
constructor(boxElm, clickTabCallBack, sdk) {
|
||||
let elm
|
||||
if(typeof boxElm === 'string') {
|
||||
elm = document.getElementById(boxElm);
|
||||
}
|
||||
else {
|
||||
elm = boxElm
|
||||
}
|
||||
// let elm = document.getElementById(id);
|
||||
let pane = elm.getElementsByTagName('DIV-cy-tab-pane')
|
||||
|
||||
let tabTop = `<div class="DIV-cy-tab-top">`
|
||||
@ -37,7 +44,9 @@
|
||||
tabContent = tabContent + `</div>`
|
||||
|
||||
let BoxElm = document.createElement('div');
|
||||
BoxElm.setAttribute('id', id)
|
||||
if(typeof boxElm === 'string') {
|
||||
BoxElm.setAttribute('id', boxElm)
|
||||
}
|
||||
BoxElm.setAttribute('class', 'DIV-cy-tabs')
|
||||
BoxElm.innerHTML = tabTop + tabContent
|
||||
elm.parentNode.insertBefore(BoxElm, elm);
|
||||
|
113
src/Obj/Materail/RoadTextureMaterialProperty.js
Normal file
113
src/Obj/Materail/RoadTextureMaterialProperty.js
Normal file
@ -0,0 +1,113 @@
|
||||
/*
|
||||
* @Description: 流动线
|
||||
*/
|
||||
function RoadTexture() {
|
||||
class RoadTextureMaterialProperty {
|
||||
constructor(options) {
|
||||
this._definitionChanged = new Cesium.Event();
|
||||
this._image = undefined;
|
||||
this._repeat = undefined;
|
||||
this._stRotation = undefined;
|
||||
this._repeatLength = undefined;
|
||||
this.image = options.image || "";
|
||||
this.repeat = options.repeat || 1.0;
|
||||
this.stRotation = options.stRotation || 0.0;
|
||||
// this.rotations = options.rotations || new Array(100).fill(0.0);
|
||||
}
|
||||
|
||||
get isConstant() {
|
||||
return false;
|
||||
}
|
||||
|
||||
get definitionChanged() {
|
||||
return this._definitionChanged;
|
||||
}
|
||||
|
||||
getType(time) {
|
||||
return Cesium.Material.RoadTextureMaterialType;
|
||||
}
|
||||
|
||||
getValue(time, result) {
|
||||
if (!Cesium.defined(result)) {
|
||||
result = {};
|
||||
}
|
||||
result.image = Cesium.Property.getValueOrDefault(
|
||||
this._image,
|
||||
time,
|
||||
"",
|
||||
result.image
|
||||
);
|
||||
result.repeat = Cesium.Property.getValueOrDefault(
|
||||
this._repeat,
|
||||
time,
|
||||
1.0,
|
||||
result.repeat
|
||||
);
|
||||
result.stRotation = Cesium.Property.getValueOrDefault(
|
||||
this._stRotation,
|
||||
time,
|
||||
0.0,
|
||||
result.stRotation
|
||||
);
|
||||
console.log(result, 'result')
|
||||
return result;
|
||||
}
|
||||
|
||||
equals(other) {
|
||||
return (
|
||||
this === other ||
|
||||
(other instanceof RoadTextureMaterialProperty &&
|
||||
Cesium.Property.equals(this._image, other._image) &&
|
||||
Cesium.Property.equals(this._repeat, other._repeat) &&
|
||||
// Cesium.Property.equals(this._rotations, other._rotations) &&
|
||||
Cesium.Property.equals(this._stRotation, other._stRotation)
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Object.defineProperties(RoadTextureMaterialProperty.prototype, {
|
||||
image: Cesium.createPropertyDescriptor("image"),
|
||||
repeat: Cesium.createPropertyDescriptor("repeat"),
|
||||
repeatLength: Cesium.createPropertyDescriptor("stRotation"),
|
||||
});
|
||||
|
||||
Cesium.RoadTextureMaterialProperty = RoadTextureMaterialProperty;
|
||||
Cesium.Material.RoadTextureMaterialProperty = "RoadTextureMaterialProperty";
|
||||
Cesium.Material.RoadTextureMaterialType = "RoadTextureMaterialType";
|
||||
Cesium.Material.RoadTextureMaterialSource = `
|
||||
uniform sampler2D image;
|
||||
uniform float repeat;
|
||||
czm_material czm_getMaterial(czm_materialInput materialInput)
|
||||
{
|
||||
czm_material material = czm_getDefaultMaterial(materialInput);
|
||||
vec2 st = materialInput.st;
|
||||
st.s *= repeat;
|
||||
mat2 rot = mat2(cos(stRotation), -sin(stRotation), sin(stRotation), cos(stRotation));
|
||||
vec2 newSt = rot * (st - 0.5) + 0.5;
|
||||
|
||||
vec4 colorImage = texture2D(image, newSt);
|
||||
material.diffuse = colorImage.rgb;
|
||||
return material;
|
||||
}
|
||||
`;
|
||||
Cesium.Material._materialCache.addMaterial(
|
||||
Cesium.Material.RoadTextureMaterialType,
|
||||
{
|
||||
fabric: {
|
||||
type: Cesium.Material.RoadTextureMaterialType,
|
||||
uniforms: {
|
||||
image: '',
|
||||
repeat: 1.0,
|
||||
stRotation: 0.0,
|
||||
},
|
||||
source: Cesium.Material.RoadTextureMaterialSource,
|
||||
},
|
||||
translucent: function (material) {
|
||||
return true;
|
||||
},
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
export { RoadTexture }
|
@ -7,6 +7,7 @@ import { PolylineFlow } from './PolylineFlowMaterialProperty'
|
||||
import { PolylineFlowMult } from './PolylineFlowMultMaterialProperty'
|
||||
import { FlowDashedLine } from './FlowDashedLineFlowMaterialProperty'
|
||||
import { LineTexture } from './LineTextureMaterialProperty'
|
||||
import { RoadTexture } from './RoadTextureMaterialProperty'
|
||||
|
||||
function init_material() {
|
||||
StreamWall1()
|
||||
@ -19,6 +20,7 @@ function init_material() {
|
||||
PolylineFlowMult()
|
||||
FlowDashedLine()
|
||||
LineTexture()
|
||||
RoadTexture()
|
||||
}
|
||||
|
||||
export { init_material }
|
||||
|
@ -62,9 +62,9 @@ class YJEarth {
|
||||
|
||||
removeIncetance(id) {
|
||||
this.entityMap.delete(id)
|
||||
unRegLeftClickCallback(this,id)
|
||||
unRegRightClickCallback(this,id)
|
||||
unregMoveCallback(this,id)
|
||||
unRegLeftClickCallback(this, id)
|
||||
unRegRightClickCallback(this, id)
|
||||
unregMoveCallback(this, id)
|
||||
|
||||
syncSplitData(this, id)
|
||||
}
|
||||
@ -436,6 +436,7 @@ class YJEarth {
|
||||
textList[i].style['pointer-events'] = 'all'
|
||||
textList[i].querySelector('textarea').focus()
|
||||
_this.isLeftClick = true
|
||||
_this.entityMap.get(_this.clickTextDom.id).isClick(movement.position, _this.clickTextDom.id)
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user