@inweb/viewer-three 26.4.1 → 26.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1947,24 +1947,33 @@ class BackgroundComponent {
1947
1947
  };
1948
1948
  this.viewer = viewer;
1949
1949
  this.backgroundColor = new Color(16777215);
1950
- const environment = new RoomEnvironment;
1951
- const pmremGenerator = new PMREMGenerator(this.viewer.renderer);
1952
1950
  this.viewer.renderer.setClearColor(this.backgroundColor);
1953
1951
  this.viewer.scene.background = this.backgroundColor;
1954
- this.viewer.scene.environment = pmremGenerator.fromScene(environment).texture;
1955
1952
  this.viewer.addEventListener("optionschange", this.syncOptions);
1956
- environment.dispose();
1957
1953
  }
1958
1954
  dispose() {
1959
1955
  this.viewer.removeEventListener("optionschange", this.syncOptions);
1960
- this.viewer.scene.environment = undefined;
1961
1956
  this.viewer.scene.background = undefined;
1962
1957
  }
1963
1958
  }
1964
1959
 
1960
+ class RoomEnvironmentComponent {
1961
+ constructor(viewer) {
1962
+ this.viewer = viewer;
1963
+ const environment = new RoomEnvironment;
1964
+ const pmremGenerator = new PMREMGenerator(this.viewer.renderer);
1965
+ this.viewer.scene.environment = pmremGenerator.fromScene(environment).texture;
1966
+ environment.dispose();
1967
+ }
1968
+ dispose() {
1969
+ this.viewer.scene.environment = undefined;
1970
+ }
1971
+ }
1972
+
1965
1973
  class CameraComponent {
1966
1974
  constructor(viewer) {
1967
1975
  this.geometryEnd = () => {
1976
+ const extentsCenter = this.viewer.extents.getCenter(new Vector3);
1968
1977
  const extentsSize = this.viewer.extents.getBoundingSphere(new Sphere).radius * 2;
1969
1978
  const rendererSize = this.viewer.renderer.getSize(new Vector2);
1970
1979
  const aspect = rendererSize.x / rendererSize.y;
@@ -1991,6 +2000,7 @@ class CameraComponent {
1991
2000
  camera.far = extentsSize * 100;
1992
2001
  camera.updateProjectionMatrix();
1993
2002
  }
2003
+ this.viewer.target.copy(extentsCenter);
1994
2004
  if (!sceneCamera) {
1995
2005
  this.viewer.executeCommand("setDefaultViewPosition");
1996
2006
  }
@@ -2009,7 +2019,6 @@ class ExtentsComponent {
2009
2019
  const extents = new Box3;
2010
2020
  this.viewer.scene.traverseVisible((object => !object.children.length && extents.expandByObject(object)));
2011
2021
  this.viewer.extents.copy(extents);
2012
- this.viewer.target.copy(extents.getCenter(new Vector3));
2013
2022
  };
2014
2023
  this.viewer = viewer;
2015
2024
  this.viewer.addEventListener("databasechunk", this.syncExtents);
@@ -2189,6 +2198,8 @@ components.registerComponent("CameraComponent", (viewer => new CameraComponent(v
2189
2198
 
2190
2199
  components.registerComponent("BackgroundComponent", (viewer => new BackgroundComponent(viewer)));
2191
2200
 
2201
+ components.registerComponent("RoomEnvironmentComponent", (viewer => new RoomEnvironmentComponent(viewer)));
2202
+
2192
2203
  components.registerComponent("ResizeCanvasComponent", (viewer => new ResizeCanvasComponent(viewer)));
2193
2204
 
2194
2205
  components.registerComponent("RenderLoopComponent", (viewer => new RenderLoopComponent(viewer)));