瀏覽代碼

add primitive event

tags/2.2.3
Caven Chen 4 年之前
父節點
當前提交
c5d3dabed9
共有 3 個文件被更改,包括 42 次插入5 次删除
  1. 14
    4
      modules/event/type/MouseEvent.js
  2. 1
    0
      modules/thirdpart/index.js
  3. 27
    1
      modules/widget/type/ContextMenu.js

+ 14
- 4
modules/event/type/MouseEvent.js 查看文件

@@ -160,7 +160,7 @@ class MouseEvent extends Event {
}

// for Cesium3DTileFeature
if (target && target instanceof Cesium.Cesium3DTileFeature) {
else if (target && target instanceof Cesium.Cesium3DTileFeature) {
layer = this._viewer
.getLayers()
.filter(item => item.layerId === target.tileset.layerId)[0]
@@ -177,10 +177,10 @@ class MouseEvent extends Event {
}

// for Cesium3DTileset
if (
else if (
target &&
target?.primitive &&
target?.primitive instanceof Cesium.Cesium3DTileset
target.primitive &&
target.primitive instanceof Cesium.Cesium3DTileset
) {
layer = this._viewer
.getLayers()
@@ -190,6 +190,16 @@ class MouseEvent extends Event {
}
}

// for Primitve
else {
layer = this._viewer
.getLayers()
.filter(item => item.layerId === target.primitive.layerId)[0]
if (layer && layer.getOverlay) {
overlay = layer.getOverlay(target.primitive.overlayId)
}
}

return { layer: layer, overlay: overlay, feature: feature }
}


+ 1
- 0
modules/thirdpart/index.js 查看文件

@@ -10,6 +10,7 @@ const thirdPart = {
Cartesian3: Cesium.Cartesian3,
Matrix3: Cesium.Matrix3,
Matrix4: Cesium.Matrix4,
Material: Cesium.Material,
SceneMode: Cesium.SceneMode,
SkyBox: Cesium.SkyBox,
Color: Cesium.Color,

+ 27
- 1
modules/widget/type/ContextMenu.js 查看文件

@@ -177,8 +177,9 @@ class ContextMenu extends Widget {
this._overlay = layer.getOverlay(target.id.overlayId)
}
}

// for Cesium3DTileFeature
if (target && target instanceof Cesium.Cesium3DTileFeature) {
else if (target && target instanceof Cesium.Cesium3DTileFeature) {
let layer = this._viewer
.getLayers()
.filter(item => item.layerId === target.tileset.layerId)[0]
@@ -186,6 +187,31 @@ class ContextMenu extends Widget {
this._overlay = layer.getOverlay(target.tileset.overlayId)
}
}

// for Cesium3DTileset
else if (
target &&
target.primitive &&
target.primitive instanceof Cesium.Cesium3DTileset
) {
let layer = this._viewer
.getLayers()
.filter(item => item.layerId === target.primitive.layerId)[0]
if (layer && layer.getOverlay) {
this._overlay = layer.getOverlay(target.primitive.overlayId)
}
}

// for Primitve
else {
let layer = this._viewer
.getLayers()
.filter(item => item.layerId === target.primitive.layerId)[0]
if (layer && layer.getOverlay) {
this._overlay = layer.getOverlay(target.primitive.overlayId)
}
}

this._overlayMenu = this._overlay?.contextMenu || []
this._mountMenu()
}

Loading…
取消
儲存