Explorar el Código

improve the scene split

tags/4.0.0
cavencj hace 1 año
padre
commit
48d04b37bc
Se han modificado 2 ficheros con 21 adiciones y 16 borrados
  1. 16
    11
      src/modules/event/type/MouseEvent.js
  2. 5
    5
      src/modules/widget/type/SceneSplit.js

+ 16
- 11
src/modules/event/type/MouseEvent.js Ver fichero

@@ -10,11 +10,12 @@ import Event from '../Event'
* Mouse events in 3D scene, optimized Cesium event model
*/
class MouseEvent extends Event {
constructor(viewer, eventPropagation) {
constructor(viewer, options = {}) {
super(MouseEventType)
this._viewer = viewer
this._selected = undefined
this._eventPropagation = eventPropagation
this._enableEventPropagation = options.enableEventPropagation
this._enableMouseOver = options.enableMouseOver
this._registerEvent()
this._addDefaultEvent()
}
@@ -265,7 +266,9 @@ class MouseEvent extends Event {

// get Viewer Event
if (
(!event || event.numberOfListeners === 0 || this._eventPropagation) &&
(!event ||
event.numberOfListeners === 0 ||
this._enableEventPropagation) &&
this._viewer?.viewerEvent
) {
event = this._viewer.viewerEvent.getEvent(type)
@@ -370,14 +373,16 @@ class MouseEvent extends Event {
this._raiseEvent(MouseEventType.MOUSE_MOVE, mouseInfo)

// add event for overlay
if (
!this._selected ||
this._getOverlayId(this._selected.target) !==
this._getOverlayId(mouseInfo.target)
) {
this._raiseEvent(MouseEventType.MOUSE_OUT, this._selected)
this._raiseEvent(MouseEventType.MOUSE_OVER, mouseInfo)
this._selected = mouseInfo
if (this._enableMouseOver) {
if (
!this._selected ||
this._getOverlayId(this._selected.target) !==
this._getOverlayId(mouseInfo.target)
) {
this._raiseEvent(MouseEventType.MOUSE_OUT, this._selected)
this._raiseEvent(MouseEventType.MOUSE_OVER, mouseInfo)
this._selected = mouseInfo
}
}
}


+ 5
- 5
src/modules/widget/type/SceneSplit.js Ver fichero

@@ -113,9 +113,9 @@ class SceneSplit extends Widget {
}
if (tileset) {
this._tileset && this._viewer.scene.primitives.remove(this._tileset)
this._tileset = this._viewer.scene.primitives.add(
tileset.delegate || tileset
)
Promise.resolve(tileset.delegate || tileset).then((tileset) => {
this._tileset = this._viewer.scene.primitives.add(tileset)
})
}
return this
}
@@ -130,8 +130,8 @@ class SceneSplit extends Widget {
return this
}
if (baseLayer) {
baseLayer.then((provider) => {
this._baseLayer && this._viewer.imageryLayers.remove(this._baseLayer)
this._baseLayer && this._viewer.imageryLayers.remove(this._baseLayer)
Promise.resolve(baseLayer).then((provider) => {
this._baseLayer =
this._viewer.imageryLayers.addImageryProvider(provider)
this._baseLayer.splitDirection = 1

Cargando…
Cancelar
Guardar