@crystaldesign/real-time-viewer 25.7.0-beta.28 → 25.7.0-beta.29
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
CHANGED
|
@@ -7,7 +7,7 @@ import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
|
|
|
7
7
|
import _createClass from '@babel/runtime/helpers/createClass';
|
|
8
8
|
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
9
9
|
import { Tags } from '@babylonjs/core/Misc/tags';
|
|
10
|
-
import { Vector3, Matrix } from '@babylonjs/core/Maths/math.vector';
|
|
10
|
+
import { Vector3, Matrix, Vector2 } from '@babylonjs/core/Maths/math.vector';
|
|
11
11
|
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
|
|
12
12
|
import { MeshBuilder } from '@babylonjs/core/Meshes/meshBuilder';
|
|
13
13
|
import { ActionManager } from '@babylonjs/core/Actions/actionManager';
|
|
@@ -30,6 +30,8 @@ import { TransformNode } from '@babylonjs/core/Meshes/transformNode';
|
|
|
30
30
|
import { AdvancedDynamicTexture } from '@babylonjs/gui/2D/advancedDynamicTexture';
|
|
31
31
|
import { Button } from '@babylonjs/gui/2D/controls/button';
|
|
32
32
|
import { Ellipse } from '@babylonjs/gui/2D/controls/ellipse';
|
|
33
|
+
import { Effect } from '@babylonjs/core/Materials/effect';
|
|
34
|
+
import { ShaderMaterial } from '@babylonjs/core/Materials/shaderMaterial';
|
|
33
35
|
import '@babylonjs/core/Engines/WebGPU/Extensions/engine.dynamicTexture';
|
|
34
36
|
import '@babylonjs/core/Engines/WebGPU/Extensions/engine.multiRender';
|
|
35
37
|
import '@babylonjs/core/Engines/WebGPU/Extensions/engine.renderTarget';
|
|
@@ -38,7 +40,6 @@ import { Rectangle } from '@babylonjs/gui/2D/controls/rectangle';
|
|
|
38
40
|
import { TextBlock } from '@babylonjs/gui/2D/controls/textBlock';
|
|
39
41
|
import { Mesh } from '@babylonjs/core/Meshes/mesh';
|
|
40
42
|
import { Axis } from '@babylonjs/core/Maths/math.axis';
|
|
41
|
-
import { StandardMaterial } from '@babylonjs/core/Materials/standardMaterial';
|
|
42
43
|
import { Texture } from '@babylonjs/core/Materials/Textures/texture';
|
|
43
44
|
import { Constants } from '@babylonjs/core/Engines/constants';
|
|
44
45
|
import { HighlightLayer } from '@babylonjs/core/Layers';
|
|
@@ -997,7 +998,7 @@ function shadow() {
|
|
|
997
998
|
scene = _useSceneStoreContext.scene;
|
|
998
999
|
var _useUtilStoreContext = useUtilStoreContext(),
|
|
999
1000
|
degreesToRadians = _useUtilStoreContext.degreesToRadians;
|
|
1000
|
-
if (!hasRendered) {
|
|
1001
|
+
if (!hasRendered && !scene.getMeshByName('ground')) {
|
|
1001
1002
|
var light = new DirectionalLight('dirl', new Vector3(-1, 0, 0), scene);
|
|
1002
1003
|
var lightf = new DirectionalLight('dirf', new Vector3(0, -0.436, -0.9), scene);
|
|
1003
1004
|
var lightr = new DirectionalLight('dirr', new Vector3(0, -1, 0.3), scene);
|
|
@@ -1846,6 +1847,7 @@ var UIStore = /*#__PURE__*/function () {
|
|
|
1846
1847
|
_defineProperty(this, "_elementsInfo", void 0);
|
|
1847
1848
|
_defineProperty(this, "_diffuseTexture", void 0);
|
|
1848
1849
|
_defineProperty(this, "_plane", void 0);
|
|
1850
|
+
_defineProperty(this, "_shaderMat", void 0);
|
|
1849
1851
|
_defineProperty(this, "_selectedMeshes", []);
|
|
1850
1852
|
_defineProperty(this, "_isUnityComb", false);
|
|
1851
1853
|
_defineProperty(this, "_selectedHl", void 0);
|
|
@@ -1854,41 +1856,57 @@ var UIStore = /*#__PURE__*/function () {
|
|
|
1854
1856
|
_defineProperty(this, "_isMobile", void 0);
|
|
1855
1857
|
_defineProperty(this, "_guiIsPicked", void 0);
|
|
1856
1858
|
_defineProperty(this, "updateOverlayImage", function (overlayImage) {
|
|
1857
|
-
var _this$_diffuseTexture
|
|
1858
|
-
if (!overlayImage || !_this._scene ||
|
|
1859
|
+
var _this$_diffuseTexture;
|
|
1860
|
+
if (!overlayImage || !_this._scene || ((_this$_diffuseTexture = _this._diffuseTexture) === null || _this$_diffuseTexture === void 0 ? void 0 : _this$_diffuseTexture.url) == overlayImage.base64) return;
|
|
1861
|
+
if (!_this._scene.activeCamera) createCams(_this._scene, undefined);
|
|
1859
1862
|
var utilStore = useUtilStoreContext();
|
|
1860
1863
|
if (!utilStore || !utilStore.updateCam) return;
|
|
1861
1864
|
_this._isStaticBg = overlayImage.isStaticBg;
|
|
1862
|
-
if (_this._isStaticBg)
|
|
1865
|
+
if (_this._isStaticBg) {
|
|
1863
1866
|
// no highlightlayer on static room bg
|
|
1864
1867
|
_this.deactivateHighlightLayer();
|
|
1865
|
-
|
|
1868
|
+
_this._plane.setEnabled(true);
|
|
1869
|
+
} else
|
|
1870
|
+
// never switch to rtv when in room
|
|
1871
|
+
_this._plane.setEnabled(false);
|
|
1866
1872
|
_this.resize();
|
|
1867
1873
|
_this._diffuseTexture.updateURL(overlayImage.base64, undefined, function () {
|
|
1868
|
-
return _this.fadeInOverlayImage(_this._plane.visibility == 1);
|
|
1874
|
+
return _this.fadeInOverlayImage(_this._plane.visibility == 1 || !!_this._isStaticBg);
|
|
1869
1875
|
});
|
|
1870
|
-
(_this$_runRenderLoopF = _this._runRenderLoopForTime) === null || _this$_runRenderLoopF === void 0 || _this$_runRenderLoopF.call(_this, 2000);
|
|
1871
1876
|
});
|
|
1872
1877
|
this._scene = scene;
|
|
1873
1878
|
this._tabgroupTypeActive = tabgroupTypeActive;
|
|
1874
1879
|
this._isMobile = !!isMobile;
|
|
1875
1880
|
this._guiIsPicked = false;
|
|
1876
|
-
|
|
1881
|
+
|
|
1882
|
+
// Define shader
|
|
1883
|
+
Effect.ShadersStore["customVertexShader"] = "\n precision highp float;\n\n attribute vec3 position;\n attribute vec2 uv;\n\n uniform mat4 worldViewProjection;\n\n varying vec2 vUV;\n\n void main(void) {\n gl_Position = worldViewProjection * vec4(position, 1.0);\n vUV = uv;\n }\n ";
|
|
1884
|
+
Effect.ShadersStore["customFragmentShader"] = "\n precision highp float;\n\n varying vec2 vUV;\n\n uniform sampler2D textureSampler;\n uniform vec2 scale;\n uniform float visibility;\n\n void main(void) {\n vec2 center = vec2(0.5, 0.5);\n vec2 halfScale = scale * 0.5;\n vec2 minUV = center - halfScale;\n vec2 maxUV = center + halfScale;\n\n // Always sample the texture\n vec2 localUV = (vUV - minUV) / scale;\n vec4 texColor = texture2D(textureSampler, localUV);\n\n // Calculate mask: 1.0 inside, 0.0 outside\n float inside = step(minUV.x, vUV.x) * step(vUV.x, maxUV.x)\n * step(minUV.y, vUV.y) * step(vUV.y, maxUV.y);\n\n // Mix texture and white\n vec4 finalColor = mix(vec4(1.0), texColor, inside);\n gl_FragColor = finalColor;\n gl_FragColor.a *= visibility;\n }\n ";
|
|
1885
|
+
|
|
1886
|
+
// Create material
|
|
1887
|
+
var shaderMat = new ShaderMaterial("shader", scene, {
|
|
1888
|
+
vertex: "custom",
|
|
1889
|
+
fragment: "custom"
|
|
1890
|
+
}, {
|
|
1891
|
+
attributes: ["position", "uv"],
|
|
1892
|
+
uniforms: ["worldViewProjection", "scale", "visibility"],
|
|
1893
|
+
samplers: ["textureSampler"]
|
|
1894
|
+
});
|
|
1877
1895
|
this._diffuseTexture = new Texture((_overlayImage$base = _overlayImage === null || _overlayImage === void 0 ? void 0 : _overlayImage.base64) !== null && _overlayImage$base !== void 0 ? _overlayImage$base : 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8/wcAAwAB/ep3wWkAAAAASUVORK5CYII=', scene, false, true);
|
|
1896
|
+
shaderMat.setTexture("textureSampler", this._diffuseTexture);
|
|
1897
|
+
shaderMat.setVector2("scale", new Vector2(1, 1)); // adjust scale here
|
|
1898
|
+
shaderMat.alpha = 1;
|
|
1899
|
+
shaderMat.backFaceCulling = true;
|
|
1878
1900
|
this._diffuseTexture.anisotropicFilteringLevel = 16;
|
|
1879
1901
|
this._diffuseTexture.updateSamplingMode(Texture.TRILINEAR_SAMPLINGMODE);
|
|
1880
|
-
mat.bumpTexture = null;
|
|
1881
|
-
mat.diffuseTexture = this._diffuseTexture;
|
|
1882
|
-
mat.emissiveTexture = this._diffuseTexture;
|
|
1883
|
-
mat.specularColor = Color3.Black();
|
|
1884
1902
|
|
|
1885
1903
|
// Get aspect ratio of the current screen
|
|
1886
1904
|
this._plane = MeshBuilder.CreatePlane('overlayplane', {
|
|
1887
1905
|
size: 1
|
|
1888
1906
|
}, scene);
|
|
1889
1907
|
this._plane.setEnabled(false);
|
|
1890
|
-
this._plane.material =
|
|
1891
|
-
this.
|
|
1908
|
+
this._plane.material = shaderMat;
|
|
1909
|
+
this._shaderMat = shaderMat;
|
|
1892
1910
|
|
|
1893
1911
|
// Position it in front of the camera
|
|
1894
1912
|
this._plane.position.z = 0.11;
|
|
@@ -1921,6 +1939,7 @@ var UIStore = /*#__PURE__*/function () {
|
|
|
1921
1939
|
if (_overlayImage) {
|
|
1922
1940
|
this._isUnityComb = true;
|
|
1923
1941
|
this._enableSSAO(false);
|
|
1942
|
+
if (_overlayImage.isStaticBg) this.fadeInOverlayImage(true);
|
|
1924
1943
|
}
|
|
1925
1944
|
this._runRenderLoopForTime = runRenderLoopForTime;
|
|
1926
1945
|
}
|
|
@@ -1959,6 +1978,7 @@ var UIStore = /*#__PURE__*/function () {
|
|
|
1959
1978
|
key: "fadeOutOverlayImage",
|
|
1960
1979
|
value: function fadeOutOverlayImage() {
|
|
1961
1980
|
this._plane.visibility = 0;
|
|
1981
|
+
this._shaderMat.setFloat("visiblity", 0);
|
|
1962
1982
|
var root = this._scene.getTransformNodeByName('Root');
|
|
1963
1983
|
if (root) root.getChildMeshes().forEach(function (m) {
|
|
1964
1984
|
m.visibility = 1;
|
|
@@ -1969,17 +1989,18 @@ var UIStore = /*#__PURE__*/function () {
|
|
|
1969
1989
|
}
|
|
1970
1990
|
}, {
|
|
1971
1991
|
key: "fadeInOverlayImage",
|
|
1972
|
-
value: function fadeInOverlayImage(
|
|
1992
|
+
value: function fadeInOverlayImage(skip) {
|
|
1973
1993
|
var _this3 = this;
|
|
1974
1994
|
var startTime = performance.now();
|
|
1975
1995
|
this._plane.setEnabled(true);
|
|
1976
1996
|
this._selectedHl.addExcludedMesh(this._plane);
|
|
1977
1997
|
var _animate = function animate() {
|
|
1978
1998
|
var elapsedTime = performance.now() - startTime;
|
|
1979
|
-
var progress = Math.min(elapsedTime /
|
|
1999
|
+
var progress = Math.min(elapsedTime / 500, 1); // Normalize progress (0 to 1)
|
|
1980
2000
|
|
|
1981
|
-
_this3._plane.visibility = progress;
|
|
1982
|
-
|
|
2001
|
+
_this3._plane.visibility = skip ? 1 : progress;
|
|
2002
|
+
_this3._shaderMat.setFloat("visibility", skip ? 1 : progress);
|
|
2003
|
+
if (!skip && progress < 1) {
|
|
1983
2004
|
requestAnimationFrame(_animate);
|
|
1984
2005
|
} else {
|
|
1985
2006
|
//animation finished
|
|
@@ -2055,7 +2076,13 @@ var UIStore = /*#__PURE__*/function () {
|
|
|
2055
2076
|
var size = this._diffuseTexture.getSize();
|
|
2056
2077
|
var engine = this._scene.getEngine();
|
|
2057
2078
|
if (Math.round(size.width / size.height * 100) / 100 != Math.round(engine.getRenderWidth() / engine.getRenderHeight() * 100) / 100) {
|
|
2058
|
-
this.
|
|
2079
|
+
if (!this._isStaticBg) {
|
|
2080
|
+
this.fadeOutOverlayImage();
|
|
2081
|
+
} else {
|
|
2082
|
+
var ratio = size.width / size.height;
|
|
2083
|
+
var engineRatio = engine.getRenderWidth() / engine.getRenderHeight();
|
|
2084
|
+
this._shaderMat.setVector2("scale", new Vector2(1 / (engineRatio / ratio), 1)); // adjust scale here */
|
|
2085
|
+
}
|
|
2059
2086
|
}
|
|
2060
2087
|
this._gui.dispose();
|
|
2061
2088
|
this._gui = AdvancedDynamicTexture.CreateFullscreenUI('UI', true, this._scene);
|
|
@@ -2077,9 +2104,9 @@ var UIStore = /*#__PURE__*/function () {
|
|
|
2077
2104
|
}, {
|
|
2078
2105
|
key: "pointerOverElement",
|
|
2079
2106
|
value: function pointerOverElement(element) {
|
|
2080
|
-
var _this$
|
|
2107
|
+
var _this$_runRenderLoopF,
|
|
2081
2108
|
_this5 = this;
|
|
2082
|
-
this.unityCombActive && ((_this$
|
|
2109
|
+
this.unityCombActive && ((_this$_runRenderLoopF = this._runRenderLoopForTime) === null || _this$_runRenderLoopF === void 0 ? void 0 : _this$_runRenderLoopF.call(this, 1000));
|
|
2083
2110
|
this._selectedHl.removeAllMeshes();
|
|
2084
2111
|
this._selectedHl.addExcludedMesh(this._plane);
|
|
2085
2112
|
if (this._plane.visibility == 1) this._selectedMeshes.forEach(function (_m) {
|
|
@@ -2093,9 +2120,9 @@ var UIStore = /*#__PURE__*/function () {
|
|
|
2093
2120
|
}, {
|
|
2094
2121
|
key: "pointerOutElement",
|
|
2095
2122
|
value: function pointerOutElement(element) {
|
|
2096
|
-
var _this$
|
|
2123
|
+
var _this$_runRenderLoopF2,
|
|
2097
2124
|
_this6 = this;
|
|
2098
|
-
this.unityCombActive && ((_this$
|
|
2125
|
+
this.unityCombActive && ((_this$_runRenderLoopF2 = this._runRenderLoopForTime) === null || _this$_runRenderLoopF2 === void 0 ? void 0 : _this$_runRenderLoopF2.call(this, 1000));
|
|
2099
2126
|
this._selectedHl.removeAllMeshes();
|
|
2100
2127
|
this._selectedHl.addExcludedMesh(this._plane);
|
|
2101
2128
|
if (this._plane.visibility == 1) element.getChildMeshes().forEach(function (_m) {
|
|
@@ -2405,7 +2432,7 @@ var UIStore = /*#__PURE__*/function () {
|
|
|
2405
2432
|
}, {
|
|
2406
2433
|
key: "onMove",
|
|
2407
2434
|
value: function onMove() {
|
|
2408
|
-
if (!this._isUnityComb) return;
|
|
2435
|
+
if (!this._isUnityComb || this._isStaticBg) return;
|
|
2409
2436
|
if (this._plane.visibility != 0) {
|
|
2410
2437
|
this._enableSSAO(true);
|
|
2411
2438
|
this.fadeOutOverlayImage();
|
|
@@ -2417,7 +2444,7 @@ var UIStore = /*#__PURE__*/function () {
|
|
|
2417
2444
|
value: function requestNewOverlayImage(viewpoint, focusedElement, targetCameraPosition, updateCameraInformation) {
|
|
2418
2445
|
var _this11 = this;
|
|
2419
2446
|
//this._overlayImage exists only when unity combi is enabled
|
|
2420
|
-
if (!this._isUnityComb) return;
|
|
2447
|
+
if (!this._isUnityComb || this._isStaticBg) return;
|
|
2421
2448
|
var elementId = undefined;
|
|
2422
2449
|
var setId = undefined;
|
|
2423
2450
|
var ob = this._scene.getTransformNodeByName(focusedElement.name);
|
|
@@ -3305,26 +3332,27 @@ function createOrGetMaterial(_x3, _x4, _x5, _x6, _x7, _x8, _x9, _x10) {
|
|
|
3305
3332
|
}
|
|
3306
3333
|
function _createOrGetMaterial() {
|
|
3307
3334
|
_createOrGetMaterial = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee4(name, blob, fileName, checkExisting, isStdMat, isIDM3D, tiling, setDataRow) {
|
|
3308
|
-
var sceneStore, _iterator5, _step5, cachedMaterial, mat, material;
|
|
3335
|
+
var sceneStore, uiStore, _iterator5, _step5, cachedMaterial, mat, material;
|
|
3309
3336
|
return _regeneratorRuntime.wrap(function _callee4$(_context6) {
|
|
3310
3337
|
while (1) switch (_context6.prev = _context6.next) {
|
|
3311
3338
|
case 0:
|
|
3312
3339
|
sceneStore = useSceneStoreContext();
|
|
3340
|
+
uiStore = useUIStoreContext();
|
|
3313
3341
|
if (!checkExisting) {
|
|
3314
|
-
_context6.next =
|
|
3342
|
+
_context6.next = 21;
|
|
3315
3343
|
break;
|
|
3316
3344
|
}
|
|
3317
3345
|
_iterator5 = _createForOfIteratorHelper$3(sceneStore.materialCache);
|
|
3318
|
-
_context6.prev =
|
|
3346
|
+
_context6.prev = 4;
|
|
3319
3347
|
_iterator5.s();
|
|
3320
|
-
case
|
|
3348
|
+
case 6:
|
|
3321
3349
|
if ((_step5 = _iterator5.n()).done) {
|
|
3322
|
-
_context6.next =
|
|
3350
|
+
_context6.next = 13;
|
|
3323
3351
|
break;
|
|
3324
3352
|
}
|
|
3325
3353
|
cachedMaterial = _step5.value;
|
|
3326
3354
|
if (!(name === cachedMaterial.mat.name)) {
|
|
3327
|
-
_context6.next =
|
|
3355
|
+
_context6.next = 11;
|
|
3328
3356
|
break;
|
|
3329
3357
|
}
|
|
3330
3358
|
cachedMaterial.lastUsage = sceneStore.modelIteration;
|
|
@@ -3332,21 +3360,21 @@ function _createOrGetMaterial() {
|
|
|
3332
3360
|
mat: cachedMaterial.mat,
|
|
3333
3361
|
found: true
|
|
3334
3362
|
});
|
|
3335
|
-
case
|
|
3336
|
-
_context6.next =
|
|
3363
|
+
case 11:
|
|
3364
|
+
_context6.next = 6;
|
|
3337
3365
|
break;
|
|
3338
|
-
case
|
|
3339
|
-
_context6.next =
|
|
3366
|
+
case 13:
|
|
3367
|
+
_context6.next = 18;
|
|
3340
3368
|
break;
|
|
3341
|
-
case
|
|
3342
|
-
_context6.prev =
|
|
3343
|
-
_context6.t0 = _context6["catch"](
|
|
3369
|
+
case 15:
|
|
3370
|
+
_context6.prev = 15;
|
|
3371
|
+
_context6.t0 = _context6["catch"](4);
|
|
3344
3372
|
_iterator5.e(_context6.t0);
|
|
3345
|
-
case
|
|
3346
|
-
_context6.prev =
|
|
3373
|
+
case 18:
|
|
3374
|
+
_context6.prev = 18;
|
|
3347
3375
|
_iterator5.f();
|
|
3348
|
-
return _context6.finish(
|
|
3349
|
-
case
|
|
3376
|
+
return _context6.finish(18);
|
|
3377
|
+
case 21:
|
|
3350
3378
|
mat = {
|
|
3351
3379
|
isStdMat: !!isStdMat,
|
|
3352
3380
|
isIDM3D: isIDM3D,
|
|
@@ -3356,10 +3384,11 @@ function _createOrGetMaterial() {
|
|
|
3356
3384
|
scene: sceneStore.scene,
|
|
3357
3385
|
tiling: tiling
|
|
3358
3386
|
};
|
|
3359
|
-
_context6.next =
|
|
3387
|
+
_context6.next = 24;
|
|
3360
3388
|
return customMat(mat, setDataRow);
|
|
3361
|
-
case
|
|
3389
|
+
case 24:
|
|
3362
3390
|
material = _context6.sent;
|
|
3391
|
+
if (uiStore.unityCombActive) material.mat.disableColorWrite = true;
|
|
3363
3392
|
sceneStore.addMaterialToCache({
|
|
3364
3393
|
mat: material.mat,
|
|
3365
3394
|
isStdMat: isStdMat,
|
|
@@ -3369,11 +3398,11 @@ function _createOrGetMaterial() {
|
|
|
3369
3398
|
mat: material.mat,
|
|
3370
3399
|
found: material.found
|
|
3371
3400
|
});
|
|
3372
|
-
case
|
|
3401
|
+
case 28:
|
|
3373
3402
|
case "end":
|
|
3374
3403
|
return _context6.stop();
|
|
3375
3404
|
}
|
|
3376
|
-
}, _callee4, null, [[
|
|
3405
|
+
}, _callee4, null, [[4, 15, 18, 21]]);
|
|
3377
3406
|
}));
|
|
3378
3407
|
return _createOrGetMaterial.apply(this, arguments);
|
|
3379
3408
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UIStore.d.ts","sourceRoot":"","sources":["../../../../../src/store/UIStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;
|
|
1
|
+
{"version":3,"file":"UIStore.d.ts","sourceRoot":"","sources":["../../../../../src/store/UIStore.ts"],"names":[],"mappings":"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"}
|