|
|
|
@ -134,6 +134,7 @@ export class Wayline { |
|
|
|
|
|
|
|
setupDragEvent(): void { |
|
|
|
const handler = new ScreenSpaceEventHandler(viewer.scene.canvas) |
|
|
|
const store = useStore() |
|
|
|
|
|
|
|
let isDragging = false |
|
|
|
let isLifting = false |
|
|
|
@ -142,6 +143,7 @@ export class Wayline { |
|
|
|
|
|
|
|
const scene = viewer.scene |
|
|
|
handler.setInputAction((click: ScreenSpaceEventHandler.PositionedEvent) => { |
|
|
|
if (store.waylineMode === 'preview') return |
|
|
|
const object = scene.pick(click.position) |
|
|
|
if (object && object.id) { |
|
|
|
// 检查是否点击了高度调整按钮
|
|
|
|
@ -160,6 +162,7 @@ export class Wayline { |
|
|
|
}, ScreenSpaceEventType.LEFT_DOWN) |
|
|
|
|
|
|
|
handler.setInputAction((click: ScreenSpaceEventHandler.PositionedEvent) => { |
|
|
|
if (store.waylineMode === 'preview') return |
|
|
|
const object = scene.pick(click.position) |
|
|
|
if (object && object.id && (object.id as any).wayPoint && (object.id as any).wayPoint.selected) { |
|
|
|
isLifting = true |
|
|
|
@ -186,6 +189,10 @@ export class Wayline { |
|
|
|
}, ScreenSpaceEventType.LEFT_UP, KeyboardEventModifier.ALT) |
|
|
|
|
|
|
|
handler.setInputAction((movement: ScreenSpaceEventHandler.MotionEvent) => { |
|
|
|
if (store.waylineMode === 'preview') { |
|
|
|
scene.canvas.style.cursor = 'default' |
|
|
|
return |
|
|
|
} |
|
|
|
const object = scene.pick(movement.endPosition) |
|
|
|
if (object && object.id) { |
|
|
|
if ((object.id as any).heightAdjustButton) { |
|
|
|
@ -231,6 +238,7 @@ export class Wayline { |
|
|
|
}, ScreenSpaceEventType.MOUSE_MOVE) |
|
|
|
|
|
|
|
handler.setInputAction((movement: ScreenSpaceEventHandler.MotionEvent) => { |
|
|
|
if (store.waylineMode === 'preview') return |
|
|
|
if (isLifting && draggingWayPoint) { |
|
|
|
const lngLat = Cartographic.fromCartesian(draggingWayPoint.position) |
|
|
|
|
|
|
|
@ -247,6 +255,7 @@ export class Wayline { |
|
|
|
|
|
|
|
setupMovementEvent(): void { |
|
|
|
const { minimapViewer, uavEntity } = this |
|
|
|
const store = useStore() |
|
|
|
const camera = minimapViewer.camera |
|
|
|
const keyState: KeyState = { |
|
|
|
q: false, |
|
|
|
@ -264,6 +273,7 @@ export class Wayline { |
|
|
|
|
|
|
|
window.addEventListener('keydown', (event: KeyboardEvent) => { |
|
|
|
if (event.code === 'Space') { |
|
|
|
if (store.waylineMode === 'preview') return |
|
|
|
const position = minimapViewer.camera.position.clone() |
|
|
|
this.createWayPoint(position) |
|
|
|
} |
|
|
|
|