From 01ffc9e4ebb7e1d7e1fdbe18696bb388e7e20c7e Mon Sep 17 00:00:00 2001 From: Terry Jia Date: Tue, 18 Feb 2025 14:59:43 -0500 Subject: [PATCH] [3d] allow using mouse wheel to adjust preview screen size (#2619) --- src/extensions/core/load3d/Load3d.ts | 29 ++++++++++++++++++++++------ 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/src/extensions/core/load3d/Load3d.ts b/src/extensions/core/load3d/Load3d.ts index feebc3d0d..168d762c1 100644 --- a/src/extensions/core/load3d/Load3d.ts +++ b/src/extensions/core/load3d/Load3d.ts @@ -53,6 +53,7 @@ class Load3d { targetWidth: number = 1024 targetHeight: number = 1024 showPreview: boolean = true + previewWidth: number = 120 node: LGraphNode = {} as LGraphNode private listeners: { [key: string]: Function[] } = {} @@ -205,6 +206,22 @@ class Load3d { ` this.previewContainer.appendChild(this.previewRenderer.domElement) + this.previewContainer.addEventListener('wheel', (event) => { + event.preventDefault() + event.stopPropagation() + + const delta = event.deltaY + + if (delta > 0) { + this.previewWidth = Math.max(120, this.previewWidth - 10) + } else { + this.previewWidth = Math.min(240, this.previewWidth + 10) + } + + this.updatePreviewSize() + this.updatePreviewRender() + }) + this.previewContainer.style.display = this.showPreview ? 'block' : 'none' container.appendChild(this.previewContainer) @@ -254,19 +271,19 @@ class Load3d { this.previewCamera.lookAt(this.controls.target) - const previewWidth = 120 - const previewHeight = (previewWidth * this.targetHeight) / this.targetWidth - this.previewRenderer.setSize(previewWidth, previewHeight, false) + const previewHeight = + (this.previewWidth * this.targetHeight) / this.targetWidth + this.previewRenderer.setSize(this.previewWidth, previewHeight, false) this.previewRenderer.render(this.scene, this.previewCamera) } updatePreviewSize() { if (!this.previewContainer) return - const previewWidth = 120 - const previewHeight = (previewWidth * this.targetHeight) / this.targetWidth + const previewHeight = + (this.previewWidth * this.targetHeight) / this.targetWidth - this.previewRenderer?.setSize(previewWidth, previewHeight, false) + this.previewRenderer?.setSize(this.previewWidth, previewHeight, false) } setTargetSize(width: number, height: number) {