redhotmagma-visualization 1.44.0 → 1.44.1

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.
@@ -13,6 +13,7 @@ var _RGBELoader = require("three/examples/jsm/loaders/RGBELoader");
13
13
  var _get = _interopRequireDefault(require("lodash/get"));
14
14
  var _size = _interopRequireDefault(require("lodash/size"));
15
15
  var _isPlainObject = _interopRequireDefault(require("lodash/isPlainObject"));
16
+ var _isEqual = _interopRequireDefault(require("lodash/isEqual"));
16
17
  var _glTFExporter = require("./Exporters/glTFExporter");
17
18
  var _findIndex = _interopRequireDefault(require("lodash/findIndex"));
18
19
  var _merge = _interopRequireDefault(require("lodash/merge"));
@@ -1111,7 +1112,7 @@ var Three3DScene = exports.Three3DScene = /*#__PURE__*/function (_Three3D) {
1111
1112
  var lookat = dir.multiplyScalar(distance).add(position);
1112
1113
  var rotation = new _three.Quaternion();
1113
1114
  camera.getWorldQuaternion(rotation);
1114
- var orientation = _three.Object3D.DefaultUp.clone().applyQuaternion(rotation);
1115
+ var orientation = _three.Object3D.DefaultUp.clone();
1115
1116
  var fov = camera.fov || 45;
1116
1117
  var cameraView = {
1117
1118
  position: position,
@@ -1187,11 +1188,6 @@ var Three3DScene = exports.Three3DScene = /*#__PURE__*/function (_Three3D) {
1187
1188
  };
1188
1189
  }
1189
1190
  this.screenshotViews = this.calculateRelativeViews(this.relativeScreenshotViews, center, (this.controls.minDistance + this.controls.maxDistance) * 0.5);
1190
- if (!this._firstCameraInitDone) {
1191
- this._firstCameraInitDone = true;
1192
- this.currentCameraView = null;
1193
- this.jumpToView("default", false);
1194
- }
1195
1191
  }
1196
1192
  }, {
1197
1193
  key: "initCameraViews",
@@ -1205,8 +1201,18 @@ var Three3DScene = exports.Three3DScene = /*#__PURE__*/function (_Three3D) {
1205
1201
  }
1206
1202
  var box = this.getSceneContainerBox();
1207
1203
  var center = box.getCenter(new _three.Vector3());
1204
+ var currentCameraName = this.currentCameraView;
1205
+ var previousCameraView = this.cameraViews[currentCameraName];
1208
1206
  this.setupRelativeCameras(center);
1209
1207
  this.setupSceneCameras(cameras, center);
1208
+ if (!this._firstCameraInitDone) {
1209
+ this._firstCameraInitDone = true;
1210
+ this.currentCameraView = null;
1211
+ this.jumpToView("default", false);
1212
+ } else if (previousCameraView && this.cameraViews[currentCameraName] && !(0, _isEqual["default"])(previousCameraView, this.cameraViews[currentCameraName])) {
1213
+ this.currentCameraView = null;
1214
+ this.jumpToView(currentCameraName, true);
1215
+ }
1210
1216
  }
1211
1217
  }, {
1212
1218
  key: "jumpToView",
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "redhotmagma-visualization",
3
- "version": "1.44.0",
3
+ "version": "1.44.1",
4
4
  "license": "UNLICENSED",
5
5
  "private": false,
6
6
  "main": "./index.js",
7
7
  "dependencies": {
8
8
  "@babel/polyfill": "^7.12.1",
9
- "@configuratorware/scripts": "1.44.0",
9
+ "@configuratorware/scripts": "1.44.1",
10
10
  "@tweenjs/tween.js": "^17.6.0",
11
11
  "console-polyfill": "^0.3.0",
12
12
  "css-element-queries": "^1.2.3",
@@ -35,6 +35,7 @@ import { RGBELoader } from "three/examples/jsm/loaders/RGBELoader";
35
35
  import get from "lodash/get";
36
36
  import size from "lodash/size";
37
37
  import isPlainObject from "lodash/isPlainObject";
38
+ import isEqual from "lodash/isEqual";
38
39
  import { exportGLTF } from "./Exporters/glTFExporter";
39
40
  import findIndex from "lodash/findIndex";
40
41
  import merge from "lodash/merge";
@@ -888,7 +889,7 @@ export class Three3DScene extends Three3D {
888
889
 
889
890
  const rotation = new Quaternion();
890
891
  camera.getWorldQuaternion(rotation);
891
- const orientation = Object3D.DefaultUp.clone().applyQuaternion(rotation);
892
+ const orientation = Object3D.DefaultUp.clone();
892
893
 
893
894
  const fov = camera.fov || 45;
894
895
 
@@ -964,12 +965,6 @@ export class Three3DScene extends Three3D {
964
965
  center,
965
966
  (this.controls.minDistance + this.controls.maxDistance) * 0.5
966
967
  );
967
-
968
- if (!this._firstCameraInitDone) {
969
- this._firstCameraInitDone = true;
970
- this.currentCameraView = null;
971
- this.jumpToView("default", false);
972
- }
973
968
  }
974
969
 
975
970
  initCameraViews(cameras) {
@@ -983,8 +978,24 @@ export class Three3DScene extends Three3D {
983
978
  const box = this.getSceneContainerBox();
984
979
  const center = box.getCenter(new Vector3());
985
980
 
981
+ const currentCameraName = this.currentCameraView;
982
+ const previousCameraView = this.cameraViews[currentCameraName];
983
+
986
984
  this.setupRelativeCameras(center);
987
985
  this.setupSceneCameras(cameras, center);
986
+
987
+ if (!this._firstCameraInitDone) {
988
+ this._firstCameraInitDone = true;
989
+ this.currentCameraView = null;
990
+ this.jumpToView("default", false);
991
+ } else if (
992
+ previousCameraView &&
993
+ this.cameraViews[currentCameraName] &&
994
+ !isEqual(previousCameraView, this.cameraViews[currentCameraName])
995
+ ) {
996
+ this.currentCameraView = null;
997
+ this.jumpToView(currentCameraName, true);
998
+ }
988
999
  }
989
1000
 
990
1001
  jumpToView(viewName, animate = true, duration = {}) {