| @@ -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 } | |||
| } | |||
| @@ -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, | |||
| @@ -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() | |||
| } | |||