@crystaldesign/real-time-viewer 24.12.0-beta.2 → 24.12.0-beta.20
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.
- package/build/esm/index.js +242 -100
- package/build/types/real-time-viewer/src/CustomMaterial/index.d.ts.map +1 -1
- package/build/types/real-time-viewer/src/SelectionHandler/index.d.ts.map +1 -1
- package/build/types/real-time-viewer/src/ViewpointGui.d.ts +3 -2
- package/build/types/real-time-viewer/src/ViewpointGui.d.ts.map +1 -1
- package/build/types/real-time-viewer/src/context.d.ts +4 -1
- package/build/types/real-time-viewer/src/context.d.ts.map +1 -1
- package/build/types/real-time-viewer/src/controls/index.d.ts.map +1 -1
- package/build/types/real-time-viewer/src/index.d.ts +5 -2
- package/build/types/real-time-viewer/src/index.d.ts.map +1 -1
- package/build/types/real-time-viewer/src/parser/buildScene/index.d.ts +1 -1
- package/build/types/real-time-viewer/src/parser/buildScene/index.d.ts.map +1 -1
- package/build/types/real-time-viewer/src/parser/createCams/index.d.ts +1 -0
- package/build/types/real-time-viewer/src/parser/createCams/index.d.ts.map +1 -1
- package/build/types/real-time-viewer/src/parser/index.d.ts.map +1 -1
- package/build/types/real-time-viewer/src/store/GridStore.d.ts.map +1 -1
- package/build/types/real-time-viewer/src/store/SceneStore.d.ts +9 -0
- package/build/types/real-time-viewer/src/store/SceneStore.d.ts.map +1 -1
- package/build/types/real-time-viewer/src/store/UIStore.d.ts +11 -3
- package/build/types/real-time-viewer/src/store/UIStore.d.ts.map +1 -1
- package/build/types/real-time-viewer/src/store/UtilStore.d.ts +6 -0
- package/build/types/real-time-viewer/src/store/UtilStore.d.ts.map +1 -1
- package/build/types/real-time-viewer/src/useRealTimeRenderData.d.ts +0 -1
- package/build/types/real-time-viewer/src/useRealTimeRenderData.d.ts.map +1 -1
- package/build/umd/{689.real-time-viewer.umd.min.js → 105.real-time-viewer.umd.min.js} +2 -2
- package/build/umd/105.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
- package/build/umd/153.real-time-viewer.umd.min.js +2 -0
- package/build/umd/153.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
- package/build/umd/229.real-time-viewer.umd.min.js +2 -0
- package/build/umd/229.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
- package/build/umd/240.real-time-viewer.umd.min.js +2 -0
- package/build/umd/240.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
- package/build/umd/243.real-time-viewer.umd.min.js +2 -0
- package/build/umd/243.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
- package/build/umd/276.real-time-viewer.umd.min.js +2 -0
- package/build/umd/276.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
- package/build/umd/334.real-time-viewer.umd.min.js +2 -0
- package/build/umd/334.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
- package/build/umd/{951.real-time-viewer.umd.min.js → 351.real-time-viewer.umd.min.js} +2 -2
- package/build/umd/351.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
- package/build/umd/357.real-time-viewer.umd.min.js +2 -0
- package/build/umd/357.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
- package/build/umd/439.real-time-viewer.umd.min.js +2 -0
- package/build/umd/439.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
- package/build/umd/{145.real-time-viewer.umd.min.js → 483.real-time-viewer.umd.min.js} +2 -2
- package/build/umd/483.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
- package/build/umd/499.real-time-viewer.umd.min.js +2 -0
- package/build/umd/499.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
- package/build/umd/522.real-time-viewer.umd.min.js +2 -0
- package/build/umd/522.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
- package/build/umd/526.real-time-viewer.umd.min.js +2 -0
- package/build/umd/526.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
- package/build/umd/607.real-time-viewer.umd.min.js +2 -0
- package/build/umd/607.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
- package/build/umd/631.real-time-viewer.umd.min.js +2 -0
- package/build/umd/631.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
- package/build/umd/632.real-time-viewer.umd.min.js +2 -0
- package/build/umd/632.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
- package/build/umd/653.real-time-viewer.umd.min.js +2 -0
- package/build/umd/653.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
- package/build/umd/{964.real-time-viewer.umd.min.js → 669.real-time-viewer.umd.min.js} +2 -2
- package/build/umd/669.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
- package/build/umd/{595.real-time-viewer.umd.min.js → 754.real-time-viewer.umd.min.js} +2 -2
- package/build/umd/754.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
- package/build/umd/815.real-time-viewer.umd.min.js +2 -0
- package/build/umd/815.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
- package/build/umd/829.real-time-viewer.umd.min.js +2 -0
- package/build/umd/829.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
- package/build/umd/896.real-time-viewer.umd.min.js +2 -0
- package/build/umd/896.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
- package/build/umd/91.real-time-viewer.umd.min.js +2 -0
- package/build/umd/91.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
- package/build/umd/913.real-time-viewer.umd.min.js +2 -0
- package/build/umd/913.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
- package/build/umd/945.real-time-viewer.umd.min.js +2 -0
- package/build/umd/945.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
- package/build/umd/95.real-time-viewer.umd.min.js +2 -0
- package/build/umd/95.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
- package/build/umd/real-time-viewer.umd.min.js +1 -1
- package/build/umd/real-time-viewer.umd.min.js.LICENSE.txt +2 -7
- package/build/umd/report.html +1 -1
- package/package.json +9 -9
- package/build/umd/100.real-time-viewer.umd.min.js +0 -2
- package/build/umd/100.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
- package/build/umd/132.real-time-viewer.umd.min.js +0 -2
- package/build/umd/132.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
- package/build/umd/145.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
- package/build/umd/152.real-time-viewer.umd.min.js +0 -2
- package/build/umd/152.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
- package/build/umd/173.real-time-viewer.umd.min.js +0 -2
- package/build/umd/173.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
- package/build/umd/190.real-time-viewer.umd.min.js +0 -2
- package/build/umd/190.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
- package/build/umd/224.real-time-viewer.umd.min.js +0 -2
- package/build/umd/224.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
- package/build/umd/292.real-time-viewer.umd.min.js +0 -2
- package/build/umd/292.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
- package/build/umd/333.real-time-viewer.umd.min.js +0 -2
- package/build/umd/333.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
- package/build/umd/360.real-time-viewer.umd.min.js +0 -2
- package/build/umd/360.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
- package/build/umd/508.real-time-viewer.umd.min.js +0 -2
- package/build/umd/508.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
- package/build/umd/552.real-time-viewer.umd.min.js +0 -2
- package/build/umd/552.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
- package/build/umd/593.real-time-viewer.umd.min.js +0 -2
- package/build/umd/593.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
- package/build/umd/595.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
- package/build/umd/662.real-time-viewer.umd.min.js +0 -2
- package/build/umd/662.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
- package/build/umd/664.real-time-viewer.umd.min.js +0 -2
- package/build/umd/664.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
- package/build/umd/67.real-time-viewer.umd.min.js +0 -2
- package/build/umd/67.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
- package/build/umd/689.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
- package/build/umd/691.real-time-viewer.umd.min.js +0 -2
- package/build/umd/691.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
- package/build/umd/856.real-time-viewer.umd.min.js +0 -2
- package/build/umd/856.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
- package/build/umd/882.real-time-viewer.umd.min.js +0 -2
- package/build/umd/882.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
- package/build/umd/934.real-time-viewer.umd.min.js +0 -2
- package/build/umd/934.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
- package/build/umd/942.real-time-viewer.umd.min.js +0 -2
- package/build/umd/942.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
- package/build/umd/951.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
- package/build/umd/964.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
- package/build/umd/974.real-time-viewer.umd.min.js +0 -2
- package/build/umd/974.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
- package/build/umd/98.real-time-viewer.umd.min.js +0 -2
- package/build/umd/98.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
package/build/esm/index.js
CHANGED
|
@@ -26,7 +26,7 @@ import { Tools, Observable, WebRequest } from '@babylonjs/core/Misc';
|
|
|
26
26
|
import { SceneOptimizerOptions, ShadowsOptimization, RenderTargetsOptimization, SceneOptimizer } from '@babylonjs/core/Misc/sceneOptimizer';
|
|
27
27
|
import { getLogger, DivaError } from '@crystaldesign/diva-core';
|
|
28
28
|
import { TransformNode } from '@babylonjs/core/Meshes/transformNode';
|
|
29
|
-
import { Ellipse, Rectangle, Button, TextBlock,
|
|
29
|
+
import { Ellipse, Rectangle, Button, TextBlock, AdvancedDynamicTexture, Image } from '@babylonjs/gui';
|
|
30
30
|
import { Matrix as Matrix$1, Vector3 as Vector3$1 } from '@babylonjs/core/Maths/math';
|
|
31
31
|
import { Engine } from '@babylonjs/core/Engines/engine';
|
|
32
32
|
import { Scene } from '@babylonjs/core/scene';
|
|
@@ -57,13 +57,13 @@ function GetCameraControls(camera) {
|
|
|
57
57
|
var previousTouch;
|
|
58
58
|
var isZooming = false;
|
|
59
59
|
var initDistance = 0;
|
|
60
|
-
var targetCameraPosition = camera.position;
|
|
61
60
|
function renderLoop() {
|
|
62
|
-
if (!sceneStore.doRenderControlLoop) return;
|
|
61
|
+
if (!sceneStore.doRenderControlLoop || sceneStore.isInitializing || uistore.isStaticBg) return;
|
|
62
|
+
if (sceneStore.cameraTargetPosition.x == 0 && sceneStore.cameraTargetPosition.y == 0 && sceneStore.cameraTargetPosition.z == 0) sceneStore.setCameraTarget();
|
|
63
63
|
uistore.onMove();
|
|
64
64
|
var stopRender = true;
|
|
65
65
|
var delta = sceneStore.scene.getEngine().getDeltaTime();
|
|
66
|
-
var deltaCamPos = targetCameraPosition.subtract(camera.position).multiplyByFloats(delta / 100, delta / 100, delta / 100);
|
|
66
|
+
var deltaCamPos = sceneStore.targetCameraPosition.subtract(camera.position).multiplyByFloats(delta / 100, delta / 100, delta / 100);
|
|
67
67
|
var deltaTarget = sceneStore.cameraTargetPosition.subtract(camera.target).multiplyByFloats(delta / 100, delta / 100, delta / 100);
|
|
68
68
|
if (Math.abs(deltaCamPos.x) + Math.abs(deltaCamPos.y) + Math.abs(deltaCamPos.z) > 0.01) {
|
|
69
69
|
camera.position = camera.position.addInPlaceFromFloats(deltaCamPos.x, deltaCamPos.y, deltaCamPos.z);
|
|
@@ -98,43 +98,43 @@ function GetCameraControls(camera) {
|
|
|
98
98
|
var localUp = Vector3.TransformNormal(Vector3.Up(), camera.getWorldMatrix());
|
|
99
99
|
localRight = localRight.normalize();
|
|
100
100
|
localUp = localUp.normalize();
|
|
101
|
-
targetCameraPosition = targetCameraPosition.add(localUp.scale(deltaY));
|
|
102
|
-
targetCameraPosition = targetCameraPosition.add(localRight.scale(-deltaX));
|
|
103
|
-
var newCalculatedTarget = targetCameraPosition.add(camera.getForwardRay().direction.scale(Vector3.Distance(targetCameraPosition, sceneStore.cameraTargetPosition)));
|
|
101
|
+
sceneStore.targetCameraPosition = sceneStore.targetCameraPosition.add(localUp.scale(deltaY));
|
|
102
|
+
sceneStore.targetCameraPosition = sceneStore.targetCameraPosition.add(localRight.scale(-deltaX));
|
|
103
|
+
var newCalculatedTarget = sceneStore.targetCameraPosition.add(camera.getForwardRay().direction.scale(Vector3.Distance(sceneStore.targetCameraPosition, sceneStore.cameraTargetPosition)));
|
|
104
104
|
sceneStore.cameraTargetPosition = newCalculatedTarget;
|
|
105
105
|
if (newCalculatedTarget.x > maxCamPosition.x) {
|
|
106
|
-
targetCameraPosition.x = camera.position.x;
|
|
106
|
+
sceneStore.targetCameraPosition.x = camera.position.x;
|
|
107
107
|
sceneStore.cameraTargetPosition.x = maxCamPosition.x;
|
|
108
108
|
}
|
|
109
109
|
if (newCalculatedTarget.x < -maxCamPosition.x) {
|
|
110
|
-
targetCameraPosition.x = camera.position.x;
|
|
110
|
+
sceneStore.targetCameraPosition.x = camera.position.x;
|
|
111
111
|
sceneStore.cameraTargetPosition.x = -maxCamPosition.x;
|
|
112
112
|
}
|
|
113
113
|
if (newCalculatedTarget.z > maxCamPosition.z) {
|
|
114
|
-
targetCameraPosition.z = camera.position.z;
|
|
114
|
+
sceneStore.targetCameraPosition.z = camera.position.z;
|
|
115
115
|
sceneStore.cameraTargetPosition.z = maxCamPosition.z;
|
|
116
116
|
}
|
|
117
117
|
if (newCalculatedTarget.z < -maxCamPosition.z) {
|
|
118
|
-
targetCameraPosition.z = camera.position.z;
|
|
118
|
+
sceneStore.targetCameraPosition.z = camera.position.z;
|
|
119
119
|
sceneStore.cameraTargetPosition.z = -maxCamPosition.z;
|
|
120
120
|
}
|
|
121
121
|
}
|
|
122
122
|
function moveCameraAwayFromTarget(distance) {
|
|
123
|
-
var directionVector = targetCameraPosition.subtract(camera.target);
|
|
123
|
+
var directionVector = sceneStore.targetCameraPosition.subtract(camera.target);
|
|
124
124
|
directionVector.normalize();
|
|
125
|
-
var previousDistToTarget = Vector3.Distance(sceneStore.cameraTargetPosition, targetCameraPosition);
|
|
126
|
-
var newPosition = targetCameraPosition.add(directionVector.scale(distance * previousDistToTarget));
|
|
125
|
+
var previousDistToTarget = Vector3.Distance(sceneStore.cameraTargetPosition, sceneStore.targetCameraPosition);
|
|
126
|
+
var newPosition = sceneStore.targetCameraPosition.add(directionVector.scale(distance * previousDistToTarget));
|
|
127
127
|
var distToTarget = Vector3.Distance(sceneStore.cameraTargetPosition, newPosition);
|
|
128
128
|
if (distToTarget < 0.1) return;
|
|
129
|
-
if (distToTarget >
|
|
130
|
-
targetCameraPosition = newPosition;
|
|
129
|
+
if (distToTarget > 75) return;
|
|
130
|
+
sceneStore.targetCameraPosition = newPosition;
|
|
131
131
|
}
|
|
132
132
|
function onRotate(deltaX, deltaY) {
|
|
133
133
|
function rotateUniversalCamera(deltaX, deltaY) {
|
|
134
134
|
function calculateAngles() {
|
|
135
|
-
var dx = targetCameraPosition.x - sceneStore.cameraTargetPosition.x;
|
|
136
|
-
var dy = targetCameraPosition.y - sceneStore.cameraTargetPosition.y;
|
|
137
|
-
var dz = targetCameraPosition.z - sceneStore.cameraTargetPosition.z;
|
|
135
|
+
var dx = sceneStore.targetCameraPosition.x - sceneStore.cameraTargetPosition.x;
|
|
136
|
+
var dy = sceneStore.targetCameraPosition.y - sceneStore.cameraTargetPosition.y;
|
|
137
|
+
var dz = sceneStore.targetCameraPosition.z - sceneStore.cameraTargetPosition.z;
|
|
138
138
|
var distance = Math.sqrt(dx * dx + dy * dy + dz * dz);
|
|
139
139
|
var alpha = Math.atan2(dz, dx); // angle around the y-axis
|
|
140
140
|
var beta = Math.acos(dy / distance); // elevation angle
|
|
@@ -157,7 +157,7 @@ function GetCameraControls(camera) {
|
|
|
157
157
|
var x = sceneStore.cameraTargetPosition.x + distance * Math.sin(beta) * Math.cos(alpha);
|
|
158
158
|
var y = sceneStore.cameraTargetPosition.y + distance * Math.cos(beta);
|
|
159
159
|
var z = sceneStore.cameraTargetPosition.z + distance * Math.sin(beta) * Math.sin(alpha);
|
|
160
|
-
targetCameraPosition = new Vector3(x, y, z);
|
|
160
|
+
sceneStore.targetCameraPosition = new Vector3(x, y, z);
|
|
161
161
|
}
|
|
162
162
|
rotateUniversalCamera(deltaX, deltaY);
|
|
163
163
|
sceneStore.doRenderControlLoop = true;
|
|
@@ -833,10 +833,10 @@ var GridStore = /*#__PURE__*/function () {
|
|
|
833
833
|
var lightning = function lightning(diva3durl, scene, cams, isMobile, sceneStore) {
|
|
834
834
|
var environmentTexture = CubeTexture.CreateFromPrefilteredData(diva3durl + 'environment.env', scene);
|
|
835
835
|
environmentTexture.gammaSpace = false;
|
|
836
|
-
environmentTexture.rotationY = 1.
|
|
836
|
+
environmentTexture.rotationY = 1.25663706144;
|
|
837
837
|
scene.environmentTexture = environmentTexture;
|
|
838
838
|
scene.createDefaultSkybox(environmentTexture);
|
|
839
|
-
scene.environmentIntensity =
|
|
839
|
+
scene.environmentIntensity = 0.5;
|
|
840
840
|
scene.getMaterialByName('skyBox').alpha = 0;
|
|
841
841
|
var ssao = new SSAO2RenderingPipeline('ssao', scene, {
|
|
842
842
|
ssaoRatio: 0.5,
|
|
@@ -863,8 +863,8 @@ function ownKeys$1(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymb
|
|
|
863
863
|
function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
864
864
|
function createCams(scene, activeViewpoint, viewPoints) {
|
|
865
865
|
var _useUtilStoreContext = useUtilStoreContext(),
|
|
866
|
-
|
|
867
|
-
|
|
866
|
+
vector3ToBVector3 = _useUtilStoreContext.vector3ToBVector3,
|
|
867
|
+
degreesToRadians = _useUtilStoreContext.degreesToRadians;
|
|
868
868
|
function createCam(_ref) {
|
|
869
869
|
var name = _ref.name,
|
|
870
870
|
pos = _ref.pos,
|
|
@@ -911,11 +911,22 @@ function createCams(scene, activeViewpoint, viewPoints) {
|
|
|
911
911
|
parent: undefined
|
|
912
912
|
})];
|
|
913
913
|
}
|
|
914
|
+
function updateCam(camera, scene) {
|
|
915
|
+
if (camera.pos.x == 0 && camera.pos.y == 0 && camera.pos.z == 0) return;
|
|
916
|
+
var utilStore = useUtilStoreContext();
|
|
917
|
+
var sceneStore = useSceneStoreContext();
|
|
918
|
+
var cam = scene.getCameraByName('defaultCam');
|
|
919
|
+
var newPos = utilStore.vector3ToBVector3(camera.pos).multiply(new Vector3(-0.01, 0.01, 0.01));
|
|
920
|
+
cam.position = newPos;
|
|
921
|
+
cam.rotation = utilStore.degreesToRadians(utilStore.vector3ToBVector3(_objectSpread$1(_objectSpread$1({}, camera.rot), {}, {
|
|
922
|
+
x: -camera.rot.x
|
|
923
|
+
})));
|
|
924
|
+
sceneStore.targetCameraPosition = newPos;
|
|
925
|
+
}
|
|
914
926
|
|
|
915
927
|
function _createForOfIteratorHelper$7(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$7(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
|
|
916
928
|
function _unsupportedIterableToArray$7(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$7(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$7(r, a) : void 0; } }
|
|
917
929
|
function _arrayLikeToArray$7(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
918
|
-
|
|
919
930
|
/*
|
|
920
931
|
SceneStore
|
|
921
932
|
Wraps the scene with additional data and methods
|
|
@@ -931,6 +942,7 @@ var SceneStore = /*#__PURE__*/function () {
|
|
|
931
942
|
_defineProperty(this, "_geos", []);
|
|
932
943
|
_defineProperty(this, "_sceneConstruct", {});
|
|
933
944
|
_defineProperty(this, "_hasRendered", false);
|
|
945
|
+
_defineProperty(this, "_hasPlanned", false);
|
|
934
946
|
_defineProperty(this, "_utilStore", void 0);
|
|
935
947
|
_defineProperty(this, "_cache", []);
|
|
936
948
|
_defineProperty(this, "_ssao", undefined);
|
|
@@ -945,6 +957,7 @@ var SceneStore = /*#__PURE__*/function () {
|
|
|
945
957
|
_defineProperty(this, "_renderControlLoop", undefined);
|
|
946
958
|
_defineProperty(this, "_doRenderControlLoop", false);
|
|
947
959
|
_defineProperty(this, "_cameraTargetPosition", Vector3.Zero());
|
|
960
|
+
_defineProperty(this, "_targetCameraPosition", Vector3.Zero());
|
|
948
961
|
_defineProperty(this, "_selectedElement", void 0);
|
|
949
962
|
_defineProperty(this, "light", undefined);
|
|
950
963
|
_defineProperty(this, "changedElements", void 0);
|
|
@@ -1093,6 +1106,14 @@ var SceneStore = /*#__PURE__*/function () {
|
|
|
1093
1106
|
set: function set(pos) {
|
|
1094
1107
|
this._cameraTargetPosition = pos;
|
|
1095
1108
|
}
|
|
1109
|
+
}, {
|
|
1110
|
+
key: "targetCameraPosition",
|
|
1111
|
+
get: function get() {
|
|
1112
|
+
return this._targetCameraPosition;
|
|
1113
|
+
},
|
|
1114
|
+
set: function set(pos) {
|
|
1115
|
+
this._targetCameraPosition = pos;
|
|
1116
|
+
}
|
|
1096
1117
|
}, {
|
|
1097
1118
|
key: "isInitializing",
|
|
1098
1119
|
get: function get() {
|
|
@@ -1101,6 +1122,12 @@ var SceneStore = /*#__PURE__*/function () {
|
|
|
1101
1122
|
set: function set(isInit) {
|
|
1102
1123
|
this._isInitializing = isInit;
|
|
1103
1124
|
}
|
|
1125
|
+
}, {
|
|
1126
|
+
key: "enableSSAO",
|
|
1127
|
+
value: function enableSSAO(enable) {
|
|
1128
|
+
if (!this._ssao) return;
|
|
1129
|
+
this._ssao.totalStrength = enable ? 0.7 : 0;
|
|
1130
|
+
}
|
|
1104
1131
|
}, {
|
|
1105
1132
|
key: "getElementByName",
|
|
1106
1133
|
value: function getElementByName(name) {
|
|
@@ -1174,6 +1201,15 @@ var SceneStore = /*#__PURE__*/function () {
|
|
|
1174
1201
|
if (!value) throw new Error("can't unrender");
|
|
1175
1202
|
this._hasRendered = value;
|
|
1176
1203
|
}
|
|
1204
|
+
}, {
|
|
1205
|
+
key: "hasPlanned",
|
|
1206
|
+
get: function get() {
|
|
1207
|
+
return this._hasPlanned;
|
|
1208
|
+
},
|
|
1209
|
+
set: function set(value) {
|
|
1210
|
+
if (!value) throw new Error("can't set has planned to false");
|
|
1211
|
+
this._hasPlanned = value;
|
|
1212
|
+
}
|
|
1177
1213
|
}, {
|
|
1178
1214
|
key: "cams",
|
|
1179
1215
|
get: function get() {
|
|
@@ -1233,6 +1269,7 @@ var SceneStore = /*#__PURE__*/function () {
|
|
|
1233
1269
|
Tools.fallbackTexture = 'data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=='; // blank white image
|
|
1234
1270
|
this.setResolution(resolutionDiv, gameCanvas, resolution);
|
|
1235
1271
|
var cams = createCams(this._scene, initViewpoint);
|
|
1272
|
+
this._targetCameraPosition = cams[0].position;
|
|
1236
1273
|
lightning(diva3durl, this._scene, cams, this._utilStore.isMobile, this);
|
|
1237
1274
|
}
|
|
1238
1275
|
}, {
|
|
@@ -1272,6 +1309,18 @@ var SceneStore = /*#__PURE__*/function () {
|
|
|
1272
1309
|
geos: []
|
|
1273
1310
|
});
|
|
1274
1311
|
}
|
|
1312
|
+
}, {
|
|
1313
|
+
key: "removeElement",
|
|
1314
|
+
value: function removeElement(hqs) {
|
|
1315
|
+
var _this$_sceneConstruct8;
|
|
1316
|
+
var set = (_this$_sceneConstruct8 = this._sceneConstruct.root) === null || _this$_sceneConstruct8 === void 0 ? void 0 : _this$_sceneConstruct8.sets[this._sceneConstruct.root.sets.length - 1];
|
|
1317
|
+
if (!set) {
|
|
1318
|
+
throw new Error("can't register sets before root");
|
|
1319
|
+
}
|
|
1320
|
+
set.elements = set.elements.filter(function (el) {
|
|
1321
|
+
return el.hqs.name != hqs.name;
|
|
1322
|
+
});
|
|
1323
|
+
}
|
|
1275
1324
|
}, {
|
|
1276
1325
|
key: "shouldExport",
|
|
1277
1326
|
value: function shouldExport(node) {
|
|
@@ -1342,12 +1391,39 @@ var SceneStore = /*#__PURE__*/function () {
|
|
|
1342
1391
|
}, {
|
|
1343
1392
|
key: "setCameraTarget",
|
|
1344
1393
|
value: function setCameraTarget() {
|
|
1345
|
-
var
|
|
1346
|
-
var bbox = (_this$scene$transform = this.scene.transformNodes.find(function (transformNode) {
|
|
1394
|
+
var root = this.scene.transformNodes.find(function (transformNode) {
|
|
1347
1395
|
return transformNode.name == 'Root';
|
|
1348
|
-
})
|
|
1396
|
+
});
|
|
1397
|
+
if (!root) return;
|
|
1398
|
+
var bbox = root.getHierarchyBoundingVectors();
|
|
1399
|
+
if (root.getChildren()[0].getChildren()[0].getChildren().length == 0) return; // planning is empty
|
|
1349
1400
|
var pos = new Vector3((bbox.max.x + bbox.min.x) / 2, (bbox.max.y + bbox.min.y) / 2, (bbox.max.z + bbox.min.z) / 2);
|
|
1401
|
+
this.scene.getCameraByName('defaultCam').target = pos;
|
|
1350
1402
|
this.cameraTargetPosition = pos;
|
|
1403
|
+
|
|
1404
|
+
// this.doRenderControlLoop = true;
|
|
1405
|
+
}
|
|
1406
|
+
}, {
|
|
1407
|
+
key: "focusElement",
|
|
1408
|
+
value: function focusElement(root) {
|
|
1409
|
+
if (!root) root = this.scene.transformNodes.find(function (transformNode) {
|
|
1410
|
+
return transformNode.name == 'Root';
|
|
1411
|
+
});
|
|
1412
|
+
if (!root) return;
|
|
1413
|
+
var engine = this.scene.getEngine();
|
|
1414
|
+
var cam = this.scene.activeCamera;
|
|
1415
|
+
var bbox = root.getHierarchyBoundingVectors();
|
|
1416
|
+
var center = Vector3.Center(bbox.min, bbox.max);
|
|
1417
|
+
var radius = Vector3.Distance(bbox.min, bbox.max) / 2;
|
|
1418
|
+
if (radius == Infinity) return;
|
|
1419
|
+
var aspectRatio = engine.getRenderWidth() / engine.getRenderHeight();
|
|
1420
|
+
var distance = radius / Math.tan(cam.fov * 0.7);
|
|
1421
|
+
var direction = cam.getDirection(Vector3.Backward());
|
|
1422
|
+
if (aspectRatio > 1) distance *= aspectRatio;
|
|
1423
|
+
var newPosition = center.add(direction.scale(distance));
|
|
1424
|
+
if (newPosition.x == 0 && newPosition.y == 0 && newPosition.z == 0) return;
|
|
1425
|
+
this.cameraTargetPosition = center;
|
|
1426
|
+
this.targetCameraPosition = newPosition;
|
|
1351
1427
|
this.doRenderControlLoop = true;
|
|
1352
1428
|
}
|
|
1353
1429
|
}, {
|
|
@@ -1372,64 +1448,76 @@ function _unsupportedIterableToArray$6(r, a) { if (r) { if ("string" == typeof r
|
|
|
1372
1448
|
function _arrayLikeToArray$6(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
1373
1449
|
function SelHandler (_ref) {
|
|
1374
1450
|
var onElSelected = _ref.onElSelected;
|
|
1375
|
-
|
|
1451
|
+
useUtilStoreContext();
|
|
1376
1452
|
var gridStore = useGridStoreContext();
|
|
1377
1453
|
var sceneStore = useSceneStoreContext();
|
|
1378
1454
|
var uiStore = useUIStoreContext();
|
|
1455
|
+
var timeoutId;
|
|
1379
1456
|
var onSelection = function onSelection(evt) {
|
|
1380
|
-
if (evt.event.button == 2) return;
|
|
1457
|
+
if (evt.event.button == 2 || !(evt.type == 16 || evt.type == 64)) return;
|
|
1381
1458
|
var ray = sceneStore.scene.createPickingRay(sceneStore.scene.pointerX, sceneStore.scene.pointerY, Matrix.Identity(), sceneStore.scene.activeCamera);
|
|
1382
1459
|
var hit = sceneStore.scene.pickWithRay(ray);
|
|
1383
1460
|
var pickedElement = false;
|
|
1384
1461
|
var element = hit === null || hit === void 0 ? void 0 : hit.pickedMesh;
|
|
1385
|
-
|
|
1386
|
-
|
|
1387
|
-
|
|
1388
|
-
|
|
1389
|
-
|
|
1390
|
-
if (
|
|
1391
|
-
|
|
1392
|
-
|
|
1462
|
+
clearTimeout(timeoutId);
|
|
1463
|
+
timeoutId = setTimeout(function () {
|
|
1464
|
+
while (element) {
|
|
1465
|
+
var _element, _element2;
|
|
1466
|
+
element = (_element = element) === null || _element === void 0 ? void 0 : _element.parent;
|
|
1467
|
+
if ((_element2 = element) !== null && _element2 !== void 0 && _element2.name.toLowerCase().startsWith('element')) {
|
|
1468
|
+
pickedElement = true;
|
|
1469
|
+
if (evt.type == 64 && hit !== null && hit !== void 0 && hit.pickedPoint) {
|
|
1470
|
+
onElementSelected(element, hit, true);
|
|
1471
|
+
return;
|
|
1472
|
+
} else if (evt.type == 16 && hit !== null && hit !== void 0 && hit.pickedPoint) {
|
|
1473
|
+
onElementSelected(element, hit);
|
|
1474
|
+
return;
|
|
1475
|
+
}
|
|
1393
1476
|
}
|
|
1394
1477
|
}
|
|
1395
|
-
|
|
1396
|
-
|
|
1397
|
-
|
|
1398
|
-
|
|
1399
|
-
|
|
1400
|
-
|
|
1401
|
-
|
|
1402
|
-
|
|
1403
|
-
|
|
1404
|
-
|
|
1405
|
-
|
|
1406
|
-
|
|
1407
|
-
|
|
1408
|
-
|
|
1409
|
-
|
|
1410
|
-
|
|
1478
|
+
if (!pickedElement && hit !== null && hit !== void 0 && hit.pickedPoint) {
|
|
1479
|
+
var _hit$pickedMesh;
|
|
1480
|
+
if (sceneStore.elements) {
|
|
1481
|
+
var _iterator = _createForOfIteratorHelper$6(sceneStore.elements),
|
|
1482
|
+
_step;
|
|
1483
|
+
try {
|
|
1484
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
1485
|
+
var _element3 = _step.value;
|
|
1486
|
+
var _element3$bbn$getHier = _element3.bbn.getHierarchyBoundingVectors(),
|
|
1487
|
+
min = _element3$bbn$getHier.min,
|
|
1488
|
+
max = _element3$bbn$getHier.max;
|
|
1489
|
+
var point = hit.pickedPoint;
|
|
1490
|
+
if (min.x < point.x && min.z < point.y && max.x > point.x && max.z > point.z && evt.type == 16) {
|
|
1491
|
+
pickedElement = true;
|
|
1492
|
+
onElementSelected(_element3.bbn, hit);
|
|
1493
|
+
}
|
|
1411
1494
|
}
|
|
1495
|
+
} catch (err) {
|
|
1496
|
+
_iterator.e(err);
|
|
1497
|
+
} finally {
|
|
1498
|
+
_iterator.f();
|
|
1412
1499
|
}
|
|
1413
|
-
} catch (err) {
|
|
1414
|
-
_iterator.e(err);
|
|
1415
|
-
} finally {
|
|
1416
|
-
_iterator.f();
|
|
1417
1500
|
}
|
|
1501
|
+
if (!pickedElement && (hit === null || hit === void 0 || (_hit$pickedMesh = hit.pickedMesh) === null || _hit$pickedMesh === void 0 ? void 0 : _hit$pickedMesh.name) == 'ground' && sceneStore.sets && evt.type == 16) onSetSelected(sceneStore.sets[0].bbn);
|
|
1418
1502
|
}
|
|
1419
|
-
|
|
1420
|
-
}
|
|
1503
|
+
}, 200);
|
|
1421
1504
|
};
|
|
1422
1505
|
var onSetSelected = function onSetSelected(elem) {
|
|
1423
1506
|
gridStore.deselectGrids();
|
|
1424
|
-
sceneStore.
|
|
1425
|
-
sceneStore.doRenderControlLoop = true;
|
|
1507
|
+
sceneStore.focusElement(elem);
|
|
1426
1508
|
};
|
|
1427
|
-
var onElementSelected = function onElementSelected(elem,
|
|
1509
|
+
var onElementSelected = function onElementSelected(elem, hit, doubleClick) {
|
|
1428
1510
|
var elemName = elem.name.slice(-1);
|
|
1429
|
-
if (sceneStore.selectedElement == elemName) {
|
|
1430
|
-
|
|
1431
|
-
|
|
1511
|
+
if (doubleClick && sceneStore.selectedElement == elemName && hit.pickedMesh) {
|
|
1512
|
+
var _getParent = function getParent(mesh) {
|
|
1513
|
+
var _mesh$parent;
|
|
1514
|
+
if (((_mesh$parent = mesh.parent) === null || _mesh$parent === void 0 ? void 0 : _mesh$parent.getClassName()) == 'TransformNode') return mesh.parent;
|
|
1515
|
+
return _getParent(mesh.parent);
|
|
1516
|
+
};
|
|
1517
|
+
sceneStore.focusElement(_getParent(hit.pickedMesh));
|
|
1432
1518
|
return;
|
|
1519
|
+
} else if (doubleClick || sceneStore.selectedElement == elemName) {
|
|
1520
|
+
sceneStore.focusElement(elem);
|
|
1433
1521
|
}
|
|
1434
1522
|
sceneStore.selectedElement = elemName;
|
|
1435
1523
|
uiStore.selectElem(elemName);
|
|
@@ -1448,7 +1536,7 @@ function _arrayLikeToArray$5(r, a) { (null == a || a > r.length) && (a = r.lengt
|
|
|
1448
1536
|
*/
|
|
1449
1537
|
|
|
1450
1538
|
var UIStore = /*#__PURE__*/function () {
|
|
1451
|
-
function UIStore(scene, utilStore, uiConfig, requestNewOverlayImage, _overlayImage) {
|
|
1539
|
+
function UIStore(scene, enableSSAO, utilStore, uiConfig, requestNewOverlayImage, _overlayImage) {
|
|
1452
1540
|
var _this = this;
|
|
1453
1541
|
_classCallCheck(this, UIStore);
|
|
1454
1542
|
_defineProperty(this, "_utilStore", void 0);
|
|
@@ -1457,10 +1545,10 @@ var UIStore = /*#__PURE__*/function () {
|
|
|
1457
1545
|
_defineProperty(this, "_overlayImage", void 0);
|
|
1458
1546
|
_defineProperty(this, "_requestNewOverlayImage", void 0);
|
|
1459
1547
|
_defineProperty(this, "_timeoutId", void 0);
|
|
1460
|
-
_defineProperty(this, "_outstandingImageCount", void 0);
|
|
1461
1548
|
_defineProperty(this, "_latestViewpoint", void 0);
|
|
1462
1549
|
_defineProperty(this, "_guiElements", []);
|
|
1463
1550
|
_defineProperty(this, "_scene", void 0);
|
|
1551
|
+
_defineProperty(this, "_enableSSAO", void 0);
|
|
1464
1552
|
_defineProperty(this, "_selectionHandler", void 0);
|
|
1465
1553
|
_defineProperty(this, "_colors", {
|
|
1466
1554
|
defaultBg: 'rgba(240, 240, 240, 255)',
|
|
@@ -1469,20 +1557,17 @@ var UIStore = /*#__PURE__*/function () {
|
|
|
1469
1557
|
hoverBg: 'White'
|
|
1470
1558
|
});
|
|
1471
1559
|
_defineProperty(this, "_gridGui", void 0);
|
|
1560
|
+
_defineProperty(this, "_isStaticBg", void 0);
|
|
1472
1561
|
_defineProperty(this, "updateOverlayImage", function (overlayImage) {
|
|
1473
|
-
|
|
1474
|
-
_this.
|
|
1475
|
-
|
|
1476
|
-
|
|
1477
|
-
_this._overlayImage = new Image('overlayImage', overlayImage);
|
|
1478
|
-
_this._overlayImage.width = '100%';
|
|
1479
|
-
_this._overlayImage.height = '100%';
|
|
1480
|
-
_this._overlayImage.alpha = 1;
|
|
1481
|
-
_this._gui.addControl(_this._overlayImage);
|
|
1482
|
-
}
|
|
1562
|
+
var _this$_overlayImage;
|
|
1563
|
+
if (!overlayImage || !_this._scene || ((_this$_overlayImage = _this._overlayImage) === null || _this$_overlayImage === void 0 ? void 0 : _this$_overlayImage.source) == overlayImage.base64) return;
|
|
1564
|
+
_this._isStaticBg = overlayImage.isStaticBg;
|
|
1565
|
+
_this._overlayImage.source = overlayImage.base64;
|
|
1483
1566
|
_this._overlayImage.isVisible = true;
|
|
1567
|
+
_this._enableSSAO(false);
|
|
1484
1568
|
});
|
|
1485
1569
|
this._scene = scene;
|
|
1570
|
+
this._enableSSAO = enableSSAO;
|
|
1486
1571
|
this._utilStore = utilStore;
|
|
1487
1572
|
this._gui = AdvancedDynamicTexture.CreateFullscreenUI('UI');
|
|
1488
1573
|
this._gui.renderScale = 1;
|
|
@@ -1496,10 +1581,24 @@ var UIStore = /*#__PURE__*/function () {
|
|
|
1496
1581
|
this._colors.defaultBg = '#dfdfdf';
|
|
1497
1582
|
this._colors.selectedBg = '#db3433';
|
|
1498
1583
|
}
|
|
1499
|
-
this.
|
|
1500
|
-
if (_overlayImage)
|
|
1584
|
+
this._isStaticBg = _overlayImage === null || _overlayImage === void 0 ? void 0 : _overlayImage.isStaticBg;
|
|
1585
|
+
if (_overlayImage) {
|
|
1586
|
+
this._overlayImage = new Image('overlayImage', _overlayImage.base64);
|
|
1587
|
+
this._overlayImage.width = '100%';
|
|
1588
|
+
this._overlayImage.height = '100%';
|
|
1589
|
+
this._overlayImage.alpha = 1;
|
|
1590
|
+
this._gui.addControl(this._overlayImage);
|
|
1591
|
+
this._overlayImage.source = _overlayImage.base64;
|
|
1592
|
+
this._overlayImage.isVisible = true;
|
|
1593
|
+
this._enableSSAO(false);
|
|
1594
|
+
}
|
|
1501
1595
|
}
|
|
1502
1596
|
return _createClass(UIStore, [{
|
|
1597
|
+
key: "isStaticBg",
|
|
1598
|
+
get: function get() {
|
|
1599
|
+
return !!this._isStaticBg;
|
|
1600
|
+
}
|
|
1601
|
+
}, {
|
|
1503
1602
|
key: "initSelectionHandler",
|
|
1504
1603
|
value: function initSelectionHandler(onElementSelected) {
|
|
1505
1604
|
var _this2 = this;
|
|
@@ -1673,8 +1772,7 @@ var UIStore = /*#__PURE__*/function () {
|
|
|
1673
1772
|
dbt.width = this._uiConfig.templateConfig == 'standard' ? '40px' : '60%';
|
|
1674
1773
|
dbt.height = this._uiConfig.templateConfig == 'standard' ? '40px' : '70%';
|
|
1675
1774
|
dbt.onPointerClickObservable.add(function () {
|
|
1676
|
-
|
|
1677
|
-
return (_this6$_utilStore$vie = _this6._utilStore.viewHandler) === null || _this6$_utilStore$vie === void 0 ? void 0 : _this6$_utilStore$vie.viewPlannerHandler.onElementDeleted(setId, elementId);
|
|
1775
|
+
return _this6._utilStore.onElementDeleted(setId, elementId);
|
|
1678
1776
|
});
|
|
1679
1777
|
if (this._uiConfig.templateConfig == 'standard') dtarget.linkOffsetY = -48;
|
|
1680
1778
|
dtarget.addControl(dbt);
|
|
@@ -1704,6 +1802,8 @@ var UIStore = /*#__PURE__*/function () {
|
|
|
1704
1802
|
value: function onMove() {
|
|
1705
1803
|
if (!this._overlayImage) return;
|
|
1706
1804
|
this._overlayImage.isVisible = false;
|
|
1805
|
+
this._enableSSAO(true);
|
|
1806
|
+
this._utilStore.updateCam = false;
|
|
1707
1807
|
}
|
|
1708
1808
|
}, {
|
|
1709
1809
|
key: "requestNewOverlayImage",
|
|
@@ -1716,9 +1816,11 @@ var UIStore = /*#__PURE__*/function () {
|
|
|
1716
1816
|
var _this7$_requestNewOve;
|
|
1717
1817
|
if (JSON.stringify(viewpoint) == JSON.stringify(_this7._latestViewpoint)) {
|
|
1718
1818
|
_this7._overlayImage.isVisible = true;
|
|
1819
|
+
_this7._enableSSAO(false);
|
|
1719
1820
|
return;
|
|
1720
1821
|
}
|
|
1721
|
-
_this7.
|
|
1822
|
+
_this7._utilStore.addOutstandingImage();
|
|
1823
|
+
_this7._utilStore.updateCam = true;
|
|
1722
1824
|
_this7._latestViewpoint = viewpoint;
|
|
1723
1825
|
(_this7$_requestNewOve = _this7._requestNewOverlayImage) === null || _this7$_requestNewOve === void 0 || _this7$_requestNewOve.call(_this7, viewpoint);
|
|
1724
1826
|
}, 500);
|
|
@@ -1735,6 +1837,8 @@ var UtilStore = /*#__PURE__*/function () {
|
|
|
1735
1837
|
_classCallCheck(this, UtilStore);
|
|
1736
1838
|
_defineProperty(this, "_isMobile", void 0);
|
|
1737
1839
|
_defineProperty(this, "_rtvAnalyzeData", []);
|
|
1840
|
+
_defineProperty(this, "_outstandingImageCount", void 0);
|
|
1841
|
+
_defineProperty(this, "_updateCam", void 0);
|
|
1738
1842
|
_defineProperty(this, "_viewHandler", void 0);
|
|
1739
1843
|
_defineProperty(this, "calculateBBoxCenter", function (ob) {
|
|
1740
1844
|
var boundingBox = ob.getHierarchyBoundingVectors();
|
|
@@ -1758,6 +1862,8 @@ var UtilStore = /*#__PURE__*/function () {
|
|
|
1758
1862
|
});
|
|
1759
1863
|
this._isMobile = !!isMobile;
|
|
1760
1864
|
this._viewHandler = viewHandler;
|
|
1865
|
+
this._outstandingImageCount = 0;
|
|
1866
|
+
this._updateCam = true;
|
|
1761
1867
|
}
|
|
1762
1868
|
return _createClass(UtilStore, [{
|
|
1763
1869
|
key: "isMobile",
|
|
@@ -1775,6 +1881,31 @@ var UtilStore = /*#__PURE__*/function () {
|
|
|
1775
1881
|
var _this$_viewHandler;
|
|
1776
1882
|
return (_this$_viewHandler = this._viewHandler) === null || _this$_viewHandler === void 0 ? void 0 : _this$_viewHandler.tabGroupState.curTabGroup.key;
|
|
1777
1883
|
}
|
|
1884
|
+
}, {
|
|
1885
|
+
key: "updateCam",
|
|
1886
|
+
set: function set(doUpdateCam) {
|
|
1887
|
+
this._updateCam = doUpdateCam;
|
|
1888
|
+
}
|
|
1889
|
+
}, {
|
|
1890
|
+
key: "updateWithUnityData",
|
|
1891
|
+
get: function get() {
|
|
1892
|
+
var isNotOutStandingImage = this._outstandingImageCount > 0;
|
|
1893
|
+
if (isNotOutStandingImage) this._outstandingImageCount--;
|
|
1894
|
+
return !isNotOutStandingImage && this._updateCam;
|
|
1895
|
+
}
|
|
1896
|
+
}, {
|
|
1897
|
+
key: "onElementDeleted",
|
|
1898
|
+
value: function onElementDeleted(setId, elementId) {
|
|
1899
|
+
var _this$viewHandler;
|
|
1900
|
+
this.addOutstandingImage();
|
|
1901
|
+
(_this$viewHandler = this.viewHandler) === null || _this$viewHandler === void 0 || _this$viewHandler.viewPlannerHandler.onElementDeleted(setId, elementId);
|
|
1902
|
+
this._updateCam = true;
|
|
1903
|
+
}
|
|
1904
|
+
}, {
|
|
1905
|
+
key: "addOutstandingImage",
|
|
1906
|
+
value: function addOutstandingImage() {
|
|
1907
|
+
this._outstandingImageCount++;
|
|
1908
|
+
}
|
|
1778
1909
|
}, {
|
|
1779
1910
|
key: "disableElementRows",
|
|
1780
1911
|
value: function disableElementRows(element, cache) {
|
|
@@ -1899,7 +2030,7 @@ var unregisterContext = function unregisterContext() {
|
|
|
1899
2030
|
var registerContext = function registerContext(scene, hqRenderScript, apiConfig, jwt, viewHandler, onMissingGeo, requestNewOverlayImage, overlayImage, uiConfig) {
|
|
1900
2031
|
var utilStore = new UtilStore(false, viewHandler);
|
|
1901
2032
|
var sceneStore = new SceneStore(scene, hqRenderScript, utilStore, apiConfig, jwt, onMissingGeo);
|
|
1902
|
-
var uiStore = new UIStore(scene, utilStore, uiConfig, requestNewOverlayImage, overlayImage);
|
|
2033
|
+
var uiStore = new UIStore(scene, sceneStore.enableSSAO.bind(sceneStore), utilStore, uiConfig, requestNewOverlayImage, overlayImage);
|
|
1903
2034
|
return _context = {
|
|
1904
2035
|
utilStore: utilStore,
|
|
1905
2036
|
sceneStore: sceneStore,
|
|
@@ -2676,6 +2807,7 @@ var buildScene = function buildScene(_ref) {
|
|
|
2676
2807
|
}
|
|
2677
2808
|
if ((parentNode === null || parentNode === void 0 ? void 0 : parentNode.name) == 'Wohnzimmer') sceneStore.addSet(node, hqsNode);
|
|
2678
2809
|
if (node !== null && node !== void 0 && node.name.startsWith('Element')) {
|
|
2810
|
+
sceneStore.hasPlanned = true;
|
|
2679
2811
|
sceneStore.addElement(node, hqsNode);
|
|
2680
2812
|
curElement = hqsNode;
|
|
2681
2813
|
}
|
|
@@ -2732,7 +2864,6 @@ var buildScene = function buildScene(_ref) {
|
|
|
2732
2864
|
}
|
|
2733
2865
|
}
|
|
2734
2866
|
recursiveIteration(startNode, parentNode);
|
|
2735
|
-
sceneStore.setCameraTarget();
|
|
2736
2867
|
sceneStore.cache = cachedAssets;
|
|
2737
2868
|
};
|
|
2738
2869
|
|
|
@@ -2881,19 +3012,21 @@ function shadow() {
|
|
|
2881
3012
|
var parser = /*#__PURE__*/function () {
|
|
2882
3013
|
var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
|
|
2883
3014
|
var _changedElements$upda;
|
|
2884
|
-
var sceneStore, hasRendered, hqRenderScript, scene, cache, changedElements, utilStore, _yield$findAssets, cacheGroup, newCache, _changedElements$upda2;
|
|
3015
|
+
var sceneStore, hasRendered, hqRenderScript, scene, cache, changedElements, utilStore, wasPlanned, elementCount, _yield$findAssets, cacheGroup, newCache, _changedElements$upda2;
|
|
2885
3016
|
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
2886
3017
|
while (1) switch (_context.prev = _context.next) {
|
|
2887
3018
|
case 0:
|
|
2888
3019
|
sceneStore = useSceneStoreContext();
|
|
2889
3020
|
hasRendered = sceneStore.hasRendered, hqRenderScript = sceneStore.hqRenderScript, scene = sceneStore.scene, cache = sceneStore.cache, changedElements = sceneStore.changedElements;
|
|
2890
|
-
utilStore = useUtilStoreContext();
|
|
3021
|
+
utilStore = useUtilStoreContext();
|
|
3022
|
+
wasPlanned = sceneStore.hasPlanned;
|
|
3023
|
+
elementCount = sceneStore.elements.length; //disable elementrows from old cache
|
|
2891
3024
|
changedElements === null || changedElements === void 0 || (_changedElements$upda = changedElements.updatedElements) === null || _changedElements$upda === void 0 || _changedElements$upda.forEach(function (el) {
|
|
2892
3025
|
return utilStore.disableElementRows(el.name, cache);
|
|
2893
3026
|
});
|
|
2894
|
-
_context.next =
|
|
3027
|
+
_context.next = 8;
|
|
2895
3028
|
return findAssets(hqRenderScript.assets, cache);
|
|
2896
|
-
case
|
|
3029
|
+
case 8:
|
|
2897
3030
|
_yield$findAssets = _context.sent;
|
|
2898
3031
|
cacheGroup = _yield$findAssets.cacheGroup;
|
|
2899
3032
|
newCache = _yield$findAssets.newCache;
|
|
@@ -2901,8 +3034,8 @@ var parser = /*#__PURE__*/function () {
|
|
|
2901
3034
|
changedElements.deletedElements.forEach(function (deletedElement) {
|
|
2902
3035
|
var _scene$getTransformNo;
|
|
2903
3036
|
(_scene$getTransformNo = scene.getTransformNodeByName(deletedElement.name)) === null || _scene$getTransformNo === void 0 || _scene$getTransformNo.dispose();
|
|
3037
|
+
sceneStore.removeElement(deletedElement);
|
|
2904
3038
|
});
|
|
2905
|
-
sceneStore.setCameraTarget();
|
|
2906
3039
|
}
|
|
2907
3040
|
if (changedElements && changedElements.updatedElements && changedElements.updatedElements.length > 0) {
|
|
2908
3041
|
(_changedElements$upda2 = changedElements.updatedElements) === null || _changedElements$upda2 === void 0 || _changedElements$upda2.forEach(function (updatedElement) {
|
|
@@ -2930,7 +3063,8 @@ var parser = /*#__PURE__*/function () {
|
|
|
2930
3063
|
}
|
|
2931
3064
|
utilStore.setRTVAnalyzeData();
|
|
2932
3065
|
deacCache(cacheGroup);
|
|
2933
|
-
|
|
3066
|
+
if (wasPlanned && elementCount != sceneStore.elements.length) sceneStore.focusElement();
|
|
3067
|
+
case 16:
|
|
2934
3068
|
case "end":
|
|
2935
3069
|
return _context.stop();
|
|
2936
3070
|
}
|
|
@@ -3015,7 +3149,7 @@ function useRealTimeRenderData (_ref) {
|
|
|
3015
3149
|
return _context2.abrupt("return");
|
|
3016
3150
|
case 2:
|
|
3017
3151
|
sceneStore.isInitializing = true;
|
|
3018
|
-
actions.toggleLoading('buildScene', false, true);
|
|
3152
|
+
if (!overlayImage) actions.toggleLoading('buildScene', false, true);
|
|
3019
3153
|
if (sceneStore.hasRendered) {
|
|
3020
3154
|
_context2.next = 11;
|
|
3021
3155
|
break;
|
|
@@ -3051,7 +3185,7 @@ function useRealTimeRenderData (_ref) {
|
|
|
3051
3185
|
break;
|
|
3052
3186
|
}
|
|
3053
3187
|
if (elementsInfo) uiStore.initGui(callbacks.onElementSelected, sceneStore.elements, elementsInfo);
|
|
3054
|
-
actions.toggleLoading('buildScene', false, false);
|
|
3188
|
+
if (!overlayImage) actions.toggleLoading('buildScene', false, false);
|
|
3055
3189
|
sceneStore.isInitializing = false;
|
|
3056
3190
|
return _context2.abrupt("return");
|
|
3057
3191
|
case 17:
|
|
@@ -3083,13 +3217,13 @@ function useRealTimeRenderData (_ref) {
|
|
|
3083
3217
|
var _callbacks$setGlb;
|
|
3084
3218
|
if (res) (_callbacks$setGlb = callbacks.setGlb) === null || _callbacks$setGlb === void 0 || _callbacks$setGlb.call(callbacks, URL.createObjectURL(res.glTFFiles['fileName.glb']));
|
|
3085
3219
|
});
|
|
3220
|
+
} else {
|
|
3221
|
+
LOG.debug('callbacks.setGlb is undefined');
|
|
3086
3222
|
}
|
|
3087
3223
|
if (!sceneStore.hasRendered) {
|
|
3088
3224
|
sceneStore.scene.getEngine().runRenderLoop(renderLoop);
|
|
3089
3225
|
sceneStore.hasRendered = true;
|
|
3090
3226
|
}
|
|
3091
|
-
|
|
3092
|
-
// sceneStore.scene.debugLayer?.show();
|
|
3093
3227
|
sceneStore.scene.onAfterRenderObservable.add(onFirstFrame);
|
|
3094
3228
|
LOG.successTransaction('BUILD_SCENE');
|
|
3095
3229
|
case 34:
|
|
@@ -3102,9 +3236,10 @@ function useRealTimeRenderData (_ref) {
|
|
|
3102
3236
|
}
|
|
3103
3237
|
function onFirstFrame() {
|
|
3104
3238
|
var _callbacks$onInitiali2, _sceneStore;
|
|
3239
|
+
// sceneStore.scene.debugLayer!.show();
|
|
3105
3240
|
sceneStore.isInitializing = false;
|
|
3106
3241
|
sceneStore.scene.onAfterRenderObservable.removeCallback(onFirstFrame);
|
|
3107
|
-
actions.toggleLoading('buildScene', false, false);
|
|
3242
|
+
if (!overlayImage) actions.toggleLoading('buildScene', false, false);
|
|
3108
3243
|
(_callbacks$onInitiali2 = callbacks.onInitialized) === null || _callbacks$onInitiali2 === void 0 || _callbacks$onInitiali2.call(callbacks);
|
|
3109
3244
|
(_sceneStore = sceneStore) === null || _sceneStore === void 0 || _sceneStore.optimizeScene();
|
|
3110
3245
|
}
|
|
@@ -3142,7 +3277,8 @@ function useRealTimeRenderData (_ref) {
|
|
|
3142
3277
|
}
|
|
3143
3278
|
engine = new Engine(gameCanvas.current, true, {
|
|
3144
3279
|
antialias: true,
|
|
3145
|
-
stencil:
|
|
3280
|
+
stencil: false,
|
|
3281
|
+
audioEngine: false
|
|
3146
3282
|
}, true);
|
|
3147
3283
|
engine.renderEvenInBackground = renderInBackground;
|
|
3148
3284
|
engine.disablePerformanceMonitorInBackground = true;
|
|
@@ -3168,7 +3304,9 @@ function useRealTimeRenderData (_ref) {
|
|
|
3168
3304
|
});
|
|
3169
3305
|
case 17:
|
|
3170
3306
|
resize = function resize() {
|
|
3171
|
-
scene.getEngine()
|
|
3307
|
+
if (inBackground || !scene || !scene.getEngine()) return;
|
|
3308
|
+
if (sceneStore.hasPlanned) sceneStore.doRenderControlLoop = true;
|
|
3309
|
+
return scene.getEngine().resize();
|
|
3172
3310
|
};
|
|
3173
3311
|
if (window) {
|
|
3174
3312
|
window.addEventListener('resize', resize);
|
|
@@ -3194,7 +3332,9 @@ function useRealTimeRenderData (_ref) {
|
|
|
3194
3332
|
asyncUseEffect();
|
|
3195
3333
|
}, []);
|
|
3196
3334
|
useEffect(function () {
|
|
3335
|
+
if (!utilStore.updateWithUnityData) return;
|
|
3197
3336
|
if (overlayImage && uiStore) uiStore.updateOverlayImage(overlayImage);
|
|
3337
|
+
if (sceneStore && sceneStore.scene.activeCamera) updateCam(sceneStore.hqRenderScript.cams[0], sceneStore.scene);
|
|
3198
3338
|
}, [overlayImage]);
|
|
3199
3339
|
useEffect(function () {
|
|
3200
3340
|
if (inBackground) {
|
|
@@ -3432,8 +3572,9 @@ var RealTimeRenderer = /*#__PURE__*/memo(function (props) {
|
|
|
3432
3572
|
ref: resolutionDiv,
|
|
3433
3573
|
style: {
|
|
3434
3574
|
position: 'absolute',
|
|
3575
|
+
top: '-70px',
|
|
3435
3576
|
width: '100%',
|
|
3436
|
-
height: '100%',
|
|
3577
|
+
height: 'calc(100% + 70px)',
|
|
3437
3578
|
backgroundColor: 'white',
|
|
3438
3579
|
zIndex: 2
|
|
3439
3580
|
},
|
|
@@ -3462,7 +3603,8 @@ var RealTimeRenderer = /*#__PURE__*/memo(function (props) {
|
|
|
3462
3603
|
})]
|
|
3463
3604
|
});
|
|
3464
3605
|
}, function (prevProps, curProps) {
|
|
3465
|
-
|
|
3606
|
+
var _prevProps$overlayIma, _curProps$overlayImag, _prevProps$overlayIma2, _curProps$overlayImag2;
|
|
3607
|
+
if (((_prevProps$overlayIma = prevProps.overlayImage) === null || _prevProps$overlayIma === void 0 ? void 0 : _prevProps$overlayIma.base64) != ((_curProps$overlayImag = curProps.overlayImage) === null || _curProps$overlayImag === void 0 ? void 0 : _curProps$overlayImag.base64) || ((_prevProps$overlayIma2 = prevProps.overlayImage) === null || _prevProps$overlayIma2 === void 0 ? void 0 : _prevProps$overlayIma2.isStaticBg) != ((_curProps$overlayImag2 = curProps.overlayImage) === null || _curProps$overlayImag2 === void 0 ? void 0 : _curProps$overlayImag2.isStaticBg)) return false;
|
|
3466
3608
|
if (prevProps.renderjob != curProps.renderjob) return false;
|
|
3467
3609
|
if (JSON.stringify(prevProps.elementsInfo) != JSON.stringify(curProps.elementsInfo)) return false;
|
|
3468
3610
|
if (prevProps.inBackground != curProps.inBackground) return false;
|