diff --git a/modules/scene/sceneSetup.js b/modules/scene/sceneSetup.js index 4fd82f8e..2e5feec8 100644 --- a/modules/scene/sceneSetup.js +++ b/modules/scene/sceneSetup.js @@ -57,13 +57,19 @@ export default class SceneSetUp { this.container.appendChild( this.renderer.domElement ); window.addEventListener( 'resize', () => { + this.updateViewportSize(); + }, false ); + } + + updateViewportSize() { + if (this.container.clientWidth > 0 && this.container.clientHeight > 0) { this.updatePerspectiveCameraViewport(); this.updateOrthographicCameraViewport(); this.renderer.setSize( this.container.clientWidth, this.container.clientHeight ); this.render(); - }, false ); + } } - + updatePerspectiveCameraViewport() { this.pCamera.aspect = this.aspect(); this.pCamera.updateProjectionMatrix(); diff --git a/web/app/cad/dom/components/View3d.jsx b/web/app/cad/dom/components/View3d.jsx index c425cf6b..83f351a1 100644 --- a/web/app/cad/dom/components/View3d.jsx +++ b/web/app/cad/dom/components/View3d.jsx @@ -36,4 +36,8 @@ export default class View3d extends React.Component { } + + componentWillUnmount() { + throw 'big no-no'; + } } \ No newline at end of file diff --git a/web/app/cad/dom/domPlugin.js b/web/app/cad/dom/domPlugin.js index 4fed287a..059694ad 100644 --- a/web/app/cad/dom/domPlugin.js +++ b/web/app/cad/dom/domPlugin.js @@ -1,6 +1,14 @@ -export function activate(context) { - context.services.dom = { +import {TOKENS as APP_TABS_TOKENS} from "./appTabsPlugin"; + +export function activate({bus, services}) { + services.dom = { viewerContainer: document.getElementById('viewer-container') }; + + bus.subscribe(APP_TABS_TOKENS.TABS, ({activeTab}) => { + if (activeTab === 0) { + services.viewer.updateViewportSize(); + } + }); }