| viewer.scene.addEventListener('materialUpdate', this._fadeMat) | viewer.scene.addEventListener('materialUpdate', this._fadeMat) | ||||
| viewer.scene.addEventListener('sceneUpdate', this._fadeScene) | viewer.scene.addEventListener('sceneUpdate', this._fadeScene) | ||||
| viewer.scene.addEventListener('objectUpdate', this._fadeObjectUpdate) | viewer.scene.addEventListener('objectUpdate', this._fadeObjectUpdate) | ||||
| window.addEventListener('pointermove', this._onPointerMove) | |||||
| window.addEventListener('pointermove', this._onPointerMove) // has to be on window | |||||
| } | } | ||||
| onRemove(viewer: ThreeViewer) { | onRemove(viewer: ThreeViewer) { | ||||
| const x = (ev.clientX - rect.left) / rect.width | const x = (ev.clientX - rect.left) / rect.width | ||||
| const y = (ev.clientY - rect.top) / rect.height | const y = (ev.clientY - rect.top) / rect.height | ||||
| this._pointerEnabled = x < 0 || x > 1 || y < 0 || y > 1 | this._pointerEnabled = x < 0 || x > 1 || y < 0 || y > 1 | ||||
| } | } | ||||
| setDirty() { | setDirty() { | ||||
| super.setDirty() | |||||
| if (this.isDisabled()) return | if (this.isDisabled()) return | ||||
| this._viewer?.setDirty() | this._viewer?.setDirty() | ||||
| } | } | ||||
| render(renderer: IWebGLRenderer, writeBuffer: WebGLRenderTarget, readBuffer: WebGLRenderTarget, deltaTime: number, maskActive: boolean) { | render(renderer: IWebGLRenderer, writeBuffer: WebGLRenderTarget, readBuffer: WebGLRenderTarget, deltaTime: number, maskActive: boolean) { | ||||
| this.needsSwap = false | this.needsSwap = false | ||||
| const target = this.plugin.target | const target = this.plugin.target | ||||
| if (!this.plugin.canFrameFade || !target) return | |||||
| if (!this.plugin.canFrameFade || !target) return | |||||
| const lastFrame = this.plugin.lastFrame | const lastFrame = this.plugin.lastFrame | ||||
| if (this.toSaveFrame && lastFrame) { | if (this.toSaveFrame && lastFrame) { | ||||
| renderer.renderManager.blit(target, {source: lastFrame, respectColorSpace: false}) | renderer.renderManager.blit(target, {source: lastFrame, respectColorSpace: false}) |