@shopware-ag/dive 2.1.1 → 2.1.2
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/chunks/{AssetCache-B02vAmfm.cjs → AssetCache-TvwR2H4n.cjs} +1 -1
- package/build/chunks/{AssetCache-DP95DtBA.mjs → AssetCache-nWe2kXVH.mjs} +1 -1
- package/build/chunks/{AssetLoader-BOnrkFcl.mjs → AssetLoader-BUfmW1RY.mjs} +2 -2
- package/build/chunks/{AssetLoader-C6MLrKu2.cjs → AssetLoader-CX9EEQuM.cjs} +1 -1
- package/build/chunks/{FileTypes-D5zw1toN.mjs → FileTypes-BIdZgVcQ.mjs} +123 -167
- package/build/chunks/FileTypes-CfyYHJWw.cjs +29 -0
- package/build/chunks/{SelectTool-BNZdhIaO.mjs → SelectTool-CwQY2P8A.mjs} +1 -1
- package/build/chunks/{SelectTool-J55L_APQ.cjs → SelectTool-LE2592aq.cjs} +1 -1
- package/build/components/model/Model.d.ts +3 -3
- package/build/components/primitive/Primitive.d.ts +6 -7
- package/build/dive.cjs +1 -1
- package/build/dive.mjs +2 -2
- package/build/plugins/ar/index.cjs +1 -1
- package/build/plugins/ar/index.mjs +1 -1
- package/build/plugins/assetcache/index.cjs +1 -1
- package/build/plugins/assetcache/index.mjs +1 -1
- package/build/plugins/assetloader/index.cjs +1 -1
- package/build/plugins/assetloader/index.mjs +1 -1
- package/build/plugins/orbitcontroller/index.cjs +1 -1
- package/build/plugins/orbitcontroller/index.mjs +1 -1
- package/build/plugins/orientationdisplay/index.cjs +1 -1
- package/build/plugins/orientationdisplay/index.mjs +1 -1
- package/build/plugins/quickview/index.cjs +1 -1
- package/build/plugins/quickview/index.mjs +1 -1
- package/build/plugins/state/index.cjs +1 -1
- package/build/plugins/state/index.mjs +2 -2
- package/build/plugins/toolbox/index.cjs +1 -1
- package/build/plugins/toolbox/index.mjs +2 -2
- package/package.json +1 -1
- package/build/chunks/FileTypes-BobMthbh.cjs +0 -29
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
var $ = Object.defineProperty;
|
|
2
2
|
var j = (r, s, t) => s in r ? $(r, s, { enumerable: !0, configurable: !0, writable: !0, value: t }) : r[s] = t;
|
|
3
3
|
var i = (r, s, t) => j(r, typeof s != "symbol" ? s + "" : s, t);
|
|
4
|
-
import { WebGLRenderer as tt, PCFSoftShadowMap as et, PCFShadowMap as it, BasicShadowMap as st, MathUtils as S, Object3D as w, AmbientLight as at, PointLight as nt, SphereGeometry as I, MeshBasicMaterial as
|
|
5
|
-
import { P as
|
|
6
|
-
import
|
|
7
|
-
class
|
|
4
|
+
import { WebGLRenderer as tt, PCFSoftShadowMap as et, PCFShadowMap as it, BasicShadowMap as st, MathUtils as S, Object3D as w, AmbientLight as at, PointLight as nt, SphereGeometry as I, MeshBasicMaterial as B, FrontSide as G, Mesh as P, HemisphereLight as rt, DirectionalLight as ot, Vector3 as h, Box3 as T, MeshStandardMaterial as M, Raycaster as ht, CylinderGeometry as lt, BufferGeometry as F, BufferAttribute as R, BoxGeometry as v, ConeGeometry as dt, LineDashedMaterial as ct, Line as ut, PlaneGeometry as pt, Color as g, GridHelper as mt, Scene as _t, TOUCH as _, MOUSE as p, EventDispatcher as gt, Spherical as A, Vector2 as u, Quaternion as x, AxesHelper as ft, Matrix4 as wt, OrthographicCamera as yt, Vector4 as bt, Box3Helper as Dt, Sphere as Et } from "three";
|
|
5
|
+
import { P as f, U as St, H as Pt, C as y, a as vt, D as C } from "./PerspectiveCamera-8tnOn5YS.mjs";
|
|
6
|
+
import L from "three-spritetext";
|
|
7
|
+
class Lt {
|
|
8
8
|
constructor() {
|
|
9
9
|
i(this, "isDIVEClock", !0);
|
|
10
10
|
i(this, "_lastTime", 0);
|
|
@@ -36,7 +36,7 @@ class vt {
|
|
|
36
36
|
this._lastTime = s, this._tickers.forEach((e) => e.tick(t)), requestAnimationFrame(this._tick.bind(this));
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
|
-
const
|
|
39
|
+
const U = {
|
|
40
40
|
canvas: void 0,
|
|
41
41
|
antialias: !0,
|
|
42
42
|
alpha: !0,
|
|
@@ -48,13 +48,13 @@ const Y = {
|
|
|
48
48
|
shadows: !0,
|
|
49
49
|
shadowQuality: "high"
|
|
50
50
|
};
|
|
51
|
-
class
|
|
51
|
+
class H {
|
|
52
52
|
constructor(s, t, e) {
|
|
53
53
|
i(this, "isDIVERenderer", !0);
|
|
54
54
|
i(this, "_webglrenderer");
|
|
55
55
|
i(this, "_settings");
|
|
56
56
|
this._scene = s, this._camera = t, this._settings = {
|
|
57
|
-
...
|
|
57
|
+
...U,
|
|
58
58
|
...e ?? {}
|
|
59
59
|
}, this._webglrenderer = this._createWebGLRenderer();
|
|
60
60
|
}
|
|
@@ -81,8 +81,8 @@ class W {
|
|
|
81
81
|
return s.shadowMap.enabled = this._settings.shadows, s.shadowMap.type = this._settings.shadowQuality === "high" ? et : this._settings.shadowQuality === "medium" ? it : st, s.setPixelRatio(window.devicePixelRatio), s;
|
|
82
82
|
}
|
|
83
83
|
}
|
|
84
|
-
const te =
|
|
85
|
-
class
|
|
84
|
+
const te = H;
|
|
85
|
+
class xt {
|
|
86
86
|
constructor(s, t) {
|
|
87
87
|
i(this, "isDIVEResizeManager", !0);
|
|
88
88
|
i(this, "_resizeObserver");
|
|
@@ -111,18 +111,18 @@ class Mt {
|
|
|
111
111
|
}
|
|
112
112
|
}
|
|
113
113
|
}
|
|
114
|
-
class
|
|
114
|
+
class O {
|
|
115
115
|
constructor(s, t, e) {
|
|
116
116
|
i(this, "isDIVEView", !0);
|
|
117
117
|
i(this, "uuid", S.generateUUID());
|
|
118
118
|
i(this, "_paused", !1);
|
|
119
119
|
i(this, "_renderer");
|
|
120
120
|
i(this, "_resizeManager");
|
|
121
|
-
this._scene = s, this._camera = t, this._settings = e, this._renderer = new
|
|
121
|
+
this._scene = s, this._camera = t, this._settings = e, this._renderer = new H(
|
|
122
122
|
this._scene,
|
|
123
123
|
this._camera,
|
|
124
124
|
this._settings
|
|
125
|
-
), this._resizeManager = new
|
|
125
|
+
), this._resizeManager = new xt(
|
|
126
126
|
this._renderer,
|
|
127
127
|
this._camera
|
|
128
128
|
);
|
|
@@ -159,14 +159,14 @@ class B {
|
|
|
159
159
|
this._paused = !1;
|
|
160
160
|
}
|
|
161
161
|
}
|
|
162
|
-
class
|
|
162
|
+
class It extends w {
|
|
163
163
|
constructor() {
|
|
164
164
|
super();
|
|
165
165
|
i(this, "isDIVELight", !0);
|
|
166
166
|
i(this, "isDIVEAmbientLight", !0);
|
|
167
167
|
i(this, "isSelectable", !0);
|
|
168
168
|
i(this, "_light");
|
|
169
|
-
this.name = "DIVEAmbientLight", this._light = new at(16777215, 1), this._light.layers.mask =
|
|
169
|
+
this.name = "DIVEAmbientLight", this._light = new at(16777215, 1), this._light.layers.mask = f, this.add(this._light);
|
|
170
170
|
}
|
|
171
171
|
setColor(t) {
|
|
172
172
|
this._light.color = t;
|
|
@@ -188,18 +188,18 @@ class Tt extends w {
|
|
|
188
188
|
i(this, "gizmo", null);
|
|
189
189
|
i(this, "light");
|
|
190
190
|
i(this, "mesh");
|
|
191
|
-
this.name = "DIVEPointLight", this.light = new nt(16777215, 1), this.light.layers.mask =
|
|
191
|
+
this.name = "DIVEPointLight", this.light = new nt(16777215, 1), this.light.layers.mask = f, this.light.castShadow = !0, this.light.shadow.mapSize.width = 512, this.light.shadow.mapSize.height = 512, this.add(this.light);
|
|
192
192
|
const t = 0.1, e = new I(
|
|
193
193
|
t,
|
|
194
194
|
t * 320,
|
|
195
195
|
t * 320
|
|
196
|
-
), a = new
|
|
196
|
+
), a = new B({
|
|
197
197
|
color: this.light.color,
|
|
198
198
|
transparent: !0,
|
|
199
199
|
opacity: 0.8,
|
|
200
|
-
side:
|
|
200
|
+
side: G
|
|
201
201
|
});
|
|
202
|
-
this.mesh = new P(e, a), this.mesh.layers.mask =
|
|
202
|
+
this.mesh = new P(e, a), this.mesh.layers.mask = St, this.add(this.mesh);
|
|
203
203
|
}
|
|
204
204
|
setColor(t) {
|
|
205
205
|
this.light.color = t, this.mesh.material.color = t;
|
|
@@ -236,7 +236,7 @@ class Tt extends w {
|
|
|
236
236
|
});
|
|
237
237
|
}
|
|
238
238
|
}
|
|
239
|
-
class
|
|
239
|
+
class Mt extends w {
|
|
240
240
|
constructor() {
|
|
241
241
|
super();
|
|
242
242
|
i(this, "isDIVELight", !0);
|
|
@@ -244,7 +244,7 @@ class It extends w {
|
|
|
244
244
|
i(this, "isSelectable", !0);
|
|
245
245
|
i(this, "_hemiLight");
|
|
246
246
|
i(this, "_dirLight");
|
|
247
|
-
this.name = "DIVESceneLight", this._hemiLight = new
|
|
247
|
+
this.name = "DIVESceneLight", this._hemiLight = new rt(16777215, 16777215, 2), this._hemiLight.layers.mask = f, this._hemiLight.position.set(0, 50, 0), this._hemiLight.visible = !0, this.add(this._hemiLight), this._dirLight = new ot(16777215, 3), this._dirLight.layers.mask = f, this._dirLight.position.set(1, 1.75, 1), this._dirLight.position.multiplyScalar(30), this._dirLight.castShadow = !0, this._dirLight.visible = !0, this._dirLight.shadow.mapSize.width = 2048, this._dirLight.shadow.mapSize.height = 2048;
|
|
248
248
|
const t = 5;
|
|
249
249
|
this._dirLight.shadow.camera.left = -5, this._dirLight.shadow.camera.right = t, this._dirLight.shadow.camera.top = t, this._dirLight.shadow.camera.bottom = -5, this._dirLight.shadow.camera.far = 3500, this.add(this._dirLight);
|
|
250
250
|
}
|
|
@@ -258,8 +258,8 @@ class It extends w {
|
|
|
258
258
|
this._hemiLight.visible = t, this._dirLight.visible = t;
|
|
259
259
|
}
|
|
260
260
|
}
|
|
261
|
-
const
|
|
262
|
-
class
|
|
261
|
+
const Y = (r) => r.parent ? Y(r.parent) : r;
|
|
262
|
+
class k extends w {
|
|
263
263
|
constructor() {
|
|
264
264
|
super();
|
|
265
265
|
i(this, "isSelectable", !0);
|
|
@@ -268,7 +268,7 @@ class v extends w {
|
|
|
268
268
|
i(this, "gizmo", null);
|
|
269
269
|
i(this, "_positionWorldBuffer");
|
|
270
270
|
i(this, "_boundingBox");
|
|
271
|
-
this.layers.mask =
|
|
271
|
+
this.layers.mask = f, this._positionWorldBuffer = new h(), this._boundingBox = new T();
|
|
272
272
|
}
|
|
273
273
|
setPosition(t) {
|
|
274
274
|
if (!this.parent) {
|
|
@@ -329,7 +329,7 @@ class v extends w {
|
|
|
329
329
|
});
|
|
330
330
|
}
|
|
331
331
|
}
|
|
332
|
-
class
|
|
332
|
+
class W extends k {
|
|
333
333
|
constructor() {
|
|
334
334
|
super();
|
|
335
335
|
i(this, "isDIVEModel", !0);
|
|
@@ -356,7 +356,7 @@ class Lt extends v {
|
|
|
356
356
|
}), this.add(t), this;
|
|
357
357
|
}
|
|
358
358
|
setMaterial(t) {
|
|
359
|
-
this._material || (this._material = new
|
|
359
|
+
this._material || (this._material = new M()), t.vertexColors !== void 0 && (this._material.vertexColors = t.vertexColors), t.color !== void 0 && this._material.color.set(t.color), t.map !== void 0 && (this._material.map = t.map), t.normalMap !== void 0 && (this._material.normalMap = t.normalMap), t.roughness !== void 0 && (this._material.roughness = t.roughness), t.roughnessMap !== void 0 && (this._material.roughnessMap = t.roughnessMap, this._material.roughnessMap && (this._material.roughness = 1)), t.metalness !== void 0 && (this._material.metalness = t.metalness), t.metalnessMap !== void 0 && (this._material.metalnessMap = t.metalnessMap, this._material.metalnessMap && (this._material.metalness = 1)), this._mesh && (this._mesh.material = this._material);
|
|
360
360
|
}
|
|
361
361
|
placeOnFloor() {
|
|
362
362
|
var n, o, l, c;
|
|
@@ -364,8 +364,8 @@ class Lt extends v {
|
|
|
364
364
|
(o = (n = this._mesh) == null ? void 0 : n.geometry) == null || o.computeBoundingBox();
|
|
365
365
|
const a = (c = (l = this._mesh) == null ? void 0 : l.geometry) == null ? void 0 : c.boundingBox;
|
|
366
366
|
!a || !this._mesh || (t.y = t.y - this._mesh.localToWorld(a.min.clone()).y, t.y !== e.y && import("../plugins/state/index.mjs").then(({ State: d }) => {
|
|
367
|
-
var
|
|
368
|
-
(
|
|
367
|
+
var m;
|
|
368
|
+
(m = d.get(this.userData.id)) == null || m.performAction("UPDATE_OBJECT", {
|
|
369
369
|
id: this.userData.id,
|
|
370
370
|
position: t,
|
|
371
371
|
rotation: this.rotation,
|
|
@@ -385,85 +385,41 @@ class Lt extends v {
|
|
|
385
385
|
this._boundingBox.getCenter(new h()).multiply(this.scale)
|
|
386
386
|
);
|
|
387
387
|
e.y = t + this.position.y;
|
|
388
|
-
const a = new
|
|
389
|
-
a.layers.mask =
|
|
388
|
+
const a = new ht(e, new h(0, -1, 0));
|
|
389
|
+
a.layers.mask = f;
|
|
390
390
|
const n = a.intersectObjects(
|
|
391
|
-
|
|
391
|
+
Y(this).root.children,
|
|
392
392
|
!0
|
|
393
393
|
);
|
|
394
394
|
if (n.length > 0) {
|
|
395
395
|
const o = n[0].object;
|
|
396
396
|
o.geometry.computeBoundingBox();
|
|
397
|
-
const l = o.geometry.boundingBox, c = o.localToWorld(l.max.clone()), d = this.position.clone(),
|
|
398
|
-
if (this.position.copy(
|
|
397
|
+
const l = o.geometry.boundingBox, c = o.localToWorld(l.max.clone()), d = this.position.clone(), m = this.position.clone().setY(c.y).sub(new h(0, t, 0));
|
|
398
|
+
if (this.position.copy(m), this.position.y === d.y) return;
|
|
399
399
|
this.onMove();
|
|
400
400
|
}
|
|
401
401
|
}
|
|
402
402
|
}
|
|
403
|
-
class kt extends
|
|
403
|
+
class kt extends W {
|
|
404
404
|
constructor() {
|
|
405
405
|
super();
|
|
406
406
|
i(this, "isDIVEPrimitive", !0);
|
|
407
407
|
i(this, "_mesh");
|
|
408
|
-
|
|
408
|
+
i(this, "_material");
|
|
409
|
+
this._mesh = new P(), this._mesh.name = "PrimitiveMesh", this._mesh.layers.mask = f, this._mesh.castShadow = !0, this._mesh.receiveShadow = !0, this.add(this._mesh), this._material = new M(), this._mesh.material = this._material;
|
|
409
410
|
}
|
|
410
411
|
setGeometry(t) {
|
|
411
412
|
const e = this.assembleGeometry(t);
|
|
412
413
|
e && (this._mesh.geometry = e, this._boundingBox.setFromObject(this._mesh));
|
|
413
414
|
}
|
|
414
|
-
setMaterial(t) {
|
|
415
|
-
const e = this._mesh.material;
|
|
416
|
-
t.vertexColors !== void 0 && (e.vertexColors = t.vertexColors), t.color !== void 0 && (e.color = new g(t.color)), t.map !== void 0 && (e.map = t.map), t.normalMap !== void 0 && (e.normalMap = t.normalMap), t.roughness !== void 0 && (e.roughness = t.roughness), t.roughnessMap !== void 0 && (e.roughnessMap = t.roughnessMap, e.roughnessMap && (e.roughness = 1)), t.metalness !== void 0 && (e.metalness = t.metalness), t.metalnessMap !== void 0 && (e.metalnessMap = t.metalnessMap, e.metalnessMap && (e.metalness = 0)), this._mesh && (this._mesh.material = e);
|
|
417
|
-
}
|
|
418
|
-
placeOnFloor() {
|
|
419
|
-
var n, o, l, c;
|
|
420
|
-
const t = this.getWorldPosition(this._positionWorldBuffer), e = t.clone();
|
|
421
|
-
(o = (n = this._mesh) == null ? void 0 : n.geometry) == null || o.computeBoundingBox();
|
|
422
|
-
const a = (c = (l = this._mesh) == null ? void 0 : l.geometry) == null ? void 0 : c.boundingBox;
|
|
423
|
-
!a || !this._mesh || (t.y = t.y - this._mesh.localToWorld(a.min.clone()).y, t.y !== e.y && import("../plugins/state/index.mjs").then(({ State: d }) => {
|
|
424
|
-
var u;
|
|
425
|
-
(u = d.get(this.userData.id)) == null || u.performAction("UPDATE_OBJECT", {
|
|
426
|
-
id: this.userData.id,
|
|
427
|
-
position: t,
|
|
428
|
-
rotation: this.rotation,
|
|
429
|
-
scale: this.scale
|
|
430
|
-
});
|
|
431
|
-
}));
|
|
432
|
-
}
|
|
433
|
-
dropIt() {
|
|
434
|
-
if (!this.parent) {
|
|
435
|
-
console.warn(
|
|
436
|
-
"DIVEPrimitive: dropIt() called on a model that is not in the scene.",
|
|
437
|
-
this
|
|
438
|
-
);
|
|
439
|
-
return;
|
|
440
|
-
}
|
|
441
|
-
const t = this._boundingBox.min.y * this.scale.y, e = this.localToWorld(
|
|
442
|
-
this._boundingBox.getCenter(new h()).multiply(this.scale)
|
|
443
|
-
);
|
|
444
|
-
e.y = t + this.position.y;
|
|
445
|
-
const a = new U(e, new h(0, -1, 0));
|
|
446
|
-
a.layers.mask = _;
|
|
447
|
-
const n = a.intersectObjects(
|
|
448
|
-
V(this).root.children,
|
|
449
|
-
!0
|
|
450
|
-
);
|
|
451
|
-
if (n.length > 0) {
|
|
452
|
-
const o = n[0].object;
|
|
453
|
-
o.geometry.computeBoundingBox();
|
|
454
|
-
const l = o.geometry.boundingBox, c = o.localToWorld(l.max.clone()), d = this.position.clone(), u = this.position.clone().setY(c.y).sub(new h(0, t, 0));
|
|
455
|
-
if (this.position.copy(u), this.position.y === d.y) return;
|
|
456
|
-
this.onMove();
|
|
457
|
-
}
|
|
458
|
-
}
|
|
459
415
|
assembleGeometry(t) {
|
|
460
|
-
switch (this.
|
|
416
|
+
switch (this._material.flatShading = !1, t.name.toLowerCase()) {
|
|
461
417
|
case "cylinder":
|
|
462
418
|
return this.createCylinderGeometry(t);
|
|
463
419
|
case "sphere":
|
|
464
420
|
return this.createSphereGeometry(t);
|
|
465
421
|
case "pyramid":
|
|
466
|
-
return this.
|
|
422
|
+
return this._material.flatShading = !0, this.createPyramidGeometry(t);
|
|
467
423
|
case "cube":
|
|
468
424
|
case "box":
|
|
469
425
|
return this.createBoxGeometry(t);
|
|
@@ -481,7 +437,7 @@ class kt extends v {
|
|
|
481
437
|
}
|
|
482
438
|
}
|
|
483
439
|
createCylinderGeometry(t) {
|
|
484
|
-
const e = new
|
|
440
|
+
const e = new lt(
|
|
485
441
|
t.width / 2,
|
|
486
442
|
t.width / 2,
|
|
487
443
|
t.height,
|
|
@@ -532,14 +488,14 @@ class kt extends v {
|
|
|
532
488
|
3,
|
|
533
489
|
4,
|
|
534
490
|
0
|
|
535
|
-
]), n = new
|
|
491
|
+
]), n = new F();
|
|
536
492
|
return n.setAttribute(
|
|
537
493
|
"position",
|
|
538
|
-
new
|
|
539
|
-
), n.setIndex(new
|
|
494
|
+
new R(e, 3)
|
|
495
|
+
), n.setIndex(new R(a, 1)), n.computeVertexNormals(), n.computeBoundingBox(), n.computeBoundingSphere(), n;
|
|
540
496
|
}
|
|
541
497
|
createBoxGeometry(t) {
|
|
542
|
-
const e = new
|
|
498
|
+
const e = new v(
|
|
543
499
|
t.width,
|
|
544
500
|
t.height,
|
|
545
501
|
t.depth
|
|
@@ -547,11 +503,11 @@ class kt extends v {
|
|
|
547
503
|
return e.translate(0, t.height / 2, 0), e;
|
|
548
504
|
}
|
|
549
505
|
createConeGeometry(t) {
|
|
550
|
-
const e = new
|
|
506
|
+
const e = new dt(t.width / 2, t.height, 256);
|
|
551
507
|
return e.translate(0, t.height / 2, 0), e;
|
|
552
508
|
}
|
|
553
509
|
createWallGeometry(t) {
|
|
554
|
-
const e = new
|
|
510
|
+
const e = new v(
|
|
555
511
|
t.width,
|
|
556
512
|
t.height,
|
|
557
513
|
t.depth || 0.05,
|
|
@@ -560,7 +516,7 @@ class kt extends v {
|
|
|
560
516
|
return e.translate(0, t.height / 2, 0), e;
|
|
561
517
|
}
|
|
562
518
|
createPlaneGeometry(t) {
|
|
563
|
-
const e = new
|
|
519
|
+
const e = new v(
|
|
564
520
|
t.width,
|
|
565
521
|
t.height,
|
|
566
522
|
t.depth
|
|
@@ -568,7 +524,7 @@ class kt extends v {
|
|
|
568
524
|
return e.translate(0, t.height / 2, 0), e;
|
|
569
525
|
}
|
|
570
526
|
}
|
|
571
|
-
class Vt extends
|
|
527
|
+
class Vt extends k {
|
|
572
528
|
// lines to children
|
|
573
529
|
constructor() {
|
|
574
530
|
super();
|
|
@@ -622,11 +578,11 @@ class Vt extends v {
|
|
|
622
578
|
* Creates a line for visualization.
|
|
623
579
|
*/
|
|
624
580
|
createLine() {
|
|
625
|
-
const t = new
|
|
581
|
+
const t = new F(), e = new ct({
|
|
626
582
|
color: 6710886,
|
|
627
583
|
dashSize: 0.05,
|
|
628
584
|
gapSize: 0.025
|
|
629
|
-
}), a = new
|
|
585
|
+
}), a = new ut(t, e);
|
|
630
586
|
return a.visible = !1, a;
|
|
631
587
|
}
|
|
632
588
|
/**
|
|
@@ -689,15 +645,15 @@ class Vt extends v {
|
|
|
689
645
|
}
|
|
690
646
|
class Rt extends P {
|
|
691
647
|
constructor() {
|
|
692
|
-
const t = new
|
|
648
|
+
const t = new pt(1, 1);
|
|
693
649
|
t.scale(1e3, 1e3, 1), t.rotateX(-Math.PI / 2);
|
|
694
|
-
const e = new
|
|
650
|
+
const e = new M({
|
|
695
651
|
color: new g(16777215),
|
|
696
|
-
side:
|
|
652
|
+
side: G
|
|
697
653
|
});
|
|
698
654
|
super(t, e);
|
|
699
655
|
i(this, "isDIVEFloor", !0);
|
|
700
|
-
this.name = "Floor", this.layers.mask =
|
|
656
|
+
this.name = "Floor", this.layers.mask = f, this.receiveShadow = !0;
|
|
701
657
|
}
|
|
702
658
|
setVisibility(t) {
|
|
703
659
|
this.visible = t;
|
|
@@ -717,7 +673,7 @@ class At extends w {
|
|
|
717
673
|
return this._floor;
|
|
718
674
|
}
|
|
719
675
|
computeSceneBB() {
|
|
720
|
-
const t = new
|
|
676
|
+
const t = new T();
|
|
721
677
|
return this.children.forEach((e) => {
|
|
722
678
|
"isDIVEFloor" in e || e.traverse((a) => {
|
|
723
679
|
"isObject3D" in a && t.expandByObject(a);
|
|
@@ -742,11 +698,11 @@ class At extends w {
|
|
|
742
698
|
case "light": {
|
|
743
699
|
switch (t.type) {
|
|
744
700
|
case "scene": {
|
|
745
|
-
e = new
|
|
701
|
+
e = new Mt();
|
|
746
702
|
break;
|
|
747
703
|
}
|
|
748
704
|
case "ambient": {
|
|
749
|
-
e = new
|
|
705
|
+
e = new It();
|
|
750
706
|
break;
|
|
751
707
|
}
|
|
752
708
|
case "point": {
|
|
@@ -762,7 +718,7 @@ class At extends w {
|
|
|
762
718
|
break;
|
|
763
719
|
}
|
|
764
720
|
case "model": {
|
|
765
|
-
e = new
|
|
721
|
+
e = new W(), e.name = t.name, e.userData.id = t.id, e.userData.uri = t.uri, this.add(e), this._updateModel(e, t);
|
|
766
722
|
break;
|
|
767
723
|
}
|
|
768
724
|
case "primitive": {
|
|
@@ -899,16 +855,16 @@ class At extends w {
|
|
|
899
855
|
}
|
|
900
856
|
}
|
|
901
857
|
const Ct = "#888888", Ot = "#dddddd";
|
|
902
|
-
class
|
|
858
|
+
class zt extends w {
|
|
903
859
|
constructor() {
|
|
904
860
|
super(), this.name = "Grid";
|
|
905
|
-
const s = new
|
|
861
|
+
const s = new mt(
|
|
906
862
|
100,
|
|
907
863
|
100,
|
|
908
864
|
Ct,
|
|
909
865
|
Ot
|
|
910
866
|
);
|
|
911
|
-
s.material.depthTest = !1, s.layers.mask =
|
|
867
|
+
s.material.depthTest = !1, s.layers.mask = Pt, this.add(s);
|
|
912
868
|
}
|
|
913
869
|
setVisibility(s) {
|
|
914
870
|
this.visible = s;
|
|
@@ -919,7 +875,7 @@ const E = {
|
|
|
919
875
|
displayGrid: !1,
|
|
920
876
|
backgroundColor: "#ffffff"
|
|
921
877
|
};
|
|
922
|
-
class
|
|
878
|
+
class Bt extends _t {
|
|
923
879
|
constructor(t) {
|
|
924
880
|
super();
|
|
925
881
|
i(this, "isDIVEScene", !0);
|
|
@@ -929,7 +885,7 @@ class zt extends mt {
|
|
|
929
885
|
(t == null ? void 0 : t.backgroundColor) ?? E.backgroundColor
|
|
930
886
|
), this._root = new At(), this._root.floor.setVisibility(
|
|
931
887
|
(t == null ? void 0 : t.displayFloor) ?? E.displayFloor
|
|
932
|
-
), this.add(this._root), this._grid = new
|
|
888
|
+
), this.add(this._root), this._grid = new zt(), this._grid.setVisibility(
|
|
933
889
|
(t == null ? void 0 : t.displayGrid) ?? E.displayGrid
|
|
934
890
|
), this.add(this._grid);
|
|
935
891
|
}
|
|
@@ -976,13 +932,13 @@ const Gt = {
|
|
|
976
932
|
BOTTOM: "ArrowDown"
|
|
977
933
|
},
|
|
978
934
|
mouseButtons: {
|
|
979
|
-
LEFT:
|
|
980
|
-
MIDDLE:
|
|
981
|
-
RIGHT:
|
|
935
|
+
LEFT: p.ROTATE,
|
|
936
|
+
MIDDLE: p.DOLLY,
|
|
937
|
+
RIGHT: p.PAN
|
|
982
938
|
},
|
|
983
939
|
touches: {
|
|
984
|
-
ONE:
|
|
985
|
-
TWO:
|
|
940
|
+
ONE: _.ROTATE,
|
|
941
|
+
TWO: _.DOLLY_PAN
|
|
986
942
|
}
|
|
987
943
|
}, b = class b extends gt {
|
|
988
944
|
constructor(t, e, a) {
|
|
@@ -1023,11 +979,11 @@ const Gt = {
|
|
|
1023
979
|
BOTTOM: "ArrowDown"
|
|
1024
980
|
});
|
|
1025
981
|
i(this, "mouseButtons", {
|
|
1026
|
-
LEFT:
|
|
1027
|
-
MIDDLE:
|
|
1028
|
-
RIGHT:
|
|
982
|
+
LEFT: p.ROTATE,
|
|
983
|
+
MIDDLE: p.DOLLY,
|
|
984
|
+
RIGHT: p.PAN
|
|
1029
985
|
});
|
|
1030
|
-
i(this, "touches", { ONE:
|
|
986
|
+
i(this, "touches", { ONE: _.ROTATE, TWO: _.DOLLY_PAN });
|
|
1031
987
|
i(this, "target0");
|
|
1032
988
|
i(this, "position0");
|
|
1033
989
|
i(this, "zoom0");
|
|
@@ -1035,20 +991,20 @@ const Gt = {
|
|
|
1035
991
|
// private state
|
|
1036
992
|
i(this, "state", -1);
|
|
1037
993
|
i(this, "EPS", 1e-6);
|
|
1038
|
-
i(this, "spherical", new
|
|
1039
|
-
i(this, "sphericalDelta", new
|
|
994
|
+
i(this, "spherical", new A());
|
|
995
|
+
i(this, "sphericalDelta", new A());
|
|
1040
996
|
i(this, "scale", 1);
|
|
1041
997
|
i(this, "panOffset", new h());
|
|
1042
998
|
i(this, "zoomChanged", !1);
|
|
1043
|
-
i(this, "rotateStart", new
|
|
1044
|
-
i(this, "rotateEnd", new
|
|
1045
|
-
i(this, "rotateDelta", new
|
|
1046
|
-
i(this, "panStart", new
|
|
1047
|
-
i(this, "panEnd", new
|
|
1048
|
-
i(this, "panDelta", new
|
|
1049
|
-
i(this, "dollyStart", new
|
|
1050
|
-
i(this, "dollyEnd", new
|
|
1051
|
-
i(this, "dollyDelta", new
|
|
999
|
+
i(this, "rotateStart", new u());
|
|
1000
|
+
i(this, "rotateEnd", new u());
|
|
1001
|
+
i(this, "rotateDelta", new u());
|
|
1002
|
+
i(this, "panStart", new u());
|
|
1003
|
+
i(this, "panEnd", new u());
|
|
1004
|
+
i(this, "panDelta", new u());
|
|
1005
|
+
i(this, "dollyStart", new u());
|
|
1006
|
+
i(this, "dollyEnd", new u());
|
|
1007
|
+
i(this, "dollyDelta", new u());
|
|
1052
1008
|
i(this, "pointers", []);
|
|
1053
1009
|
i(this, "pointerPositions", {});
|
|
1054
1010
|
// for update() function
|
|
@@ -1056,7 +1012,7 @@ const Gt = {
|
|
|
1056
1012
|
i(this, "quat");
|
|
1057
1013
|
i(this, "quatInverse");
|
|
1058
1014
|
i(this, "lastPosition", new h());
|
|
1059
|
-
i(this, "lastQuaternion", new
|
|
1015
|
+
i(this, "lastQuaternion", new x());
|
|
1060
1016
|
i(this, "lastTarget", new h());
|
|
1061
1017
|
i(this, "panLeft", (() => {
|
|
1062
1018
|
const t = new h();
|
|
@@ -1086,11 +1042,11 @@ const Gt = {
|
|
|
1086
1042
|
e = -1;
|
|
1087
1043
|
}
|
|
1088
1044
|
switch (e) {
|
|
1089
|
-
case
|
|
1045
|
+
case p.DOLLY:
|
|
1090
1046
|
if (this.enableZoom === !1) return;
|
|
1091
1047
|
this.handleMouseDownDolly(t), this.state = 1;
|
|
1092
1048
|
break;
|
|
1093
|
-
case
|
|
1049
|
+
case p.ROTATE:
|
|
1094
1050
|
if (t.ctrlKey || t.metaKey || t.shiftKey) {
|
|
1095
1051
|
if (this.enablePan === !1) return;
|
|
1096
1052
|
this.handleMouseDownPan(t), this.state = 2;
|
|
@@ -1099,7 +1055,7 @@ const Gt = {
|
|
|
1099
1055
|
this.handleMouseDownRotate(t), this.state = 0;
|
|
1100
1056
|
}
|
|
1101
1057
|
break;
|
|
1102
|
-
case
|
|
1058
|
+
case p.PAN:
|
|
1103
1059
|
if (t.ctrlKey || t.metaKey || t.shiftKey) {
|
|
1104
1060
|
if (this.enableRotate === !1) return;
|
|
1105
1061
|
this.handleMouseDownRotate(t), this.state = 0;
|
|
@@ -1140,11 +1096,11 @@ const Gt = {
|
|
|
1140
1096
|
switch (this.trackPointer(t), this.pointers.length) {
|
|
1141
1097
|
case 1:
|
|
1142
1098
|
switch (this.touches.ONE) {
|
|
1143
|
-
case
|
|
1099
|
+
case _.ROTATE:
|
|
1144
1100
|
if (this.enableRotate === !1) return;
|
|
1145
1101
|
this.handleTouchStartRotate(t), this.state = 3;
|
|
1146
1102
|
break;
|
|
1147
|
-
case
|
|
1103
|
+
case _.PAN:
|
|
1148
1104
|
if (this.enablePan === !1) return;
|
|
1149
1105
|
this.handleTouchStartPan(t), this.state = 4;
|
|
1150
1106
|
break;
|
|
@@ -1154,12 +1110,12 @@ const Gt = {
|
|
|
1154
1110
|
break;
|
|
1155
1111
|
case 2:
|
|
1156
1112
|
switch (this.touches.TWO) {
|
|
1157
|
-
case
|
|
1113
|
+
case _.DOLLY_PAN:
|
|
1158
1114
|
if (this.enableZoom === !1 && this.enablePan === !1)
|
|
1159
1115
|
return;
|
|
1160
1116
|
this.handleTouchStartDollyPan(t), this.state = 5;
|
|
1161
1117
|
break;
|
|
1162
|
-
case
|
|
1118
|
+
case _.DOLLY_ROTATE:
|
|
1163
1119
|
if (this.enableZoom === !1 && this.enableRotate === !1)
|
|
1164
1120
|
return;
|
|
1165
1121
|
this.handleTouchStartDollyRotate(t), this.state = 6;
|
|
@@ -1221,7 +1177,7 @@ const Gt = {
|
|
|
1221
1177
|
i(this, "onContextMenu", (t) => {
|
|
1222
1178
|
this.enabled !== !1 && t.preventDefault();
|
|
1223
1179
|
});
|
|
1224
|
-
this.object = t, this.domElements = Array.isArray(e) ? e : [e], Object.assign(this, a), this.target0 = this.target.clone(), this.position0 = this.object.position.clone(), this.zoom0 = this.object.zoom, this.quat = new
|
|
1180
|
+
this.object = t, this.domElements = Array.isArray(e) ? e : [e], Object.assign(this, a), this.target0 = this.target.clone(), this.position0 = this.object.position.clone(), this.zoom0 = this.object.zoom, this.quat = new x().setFromUnitVectors(
|
|
1225
1181
|
t.up,
|
|
1226
1182
|
new h(0, 1, 0)
|
|
1227
1183
|
), this.quatInverse = this.quat.clone().invert(), this.domElements.forEach((n) => this.addEventListeners(n)), this.update();
|
|
@@ -1279,7 +1235,7 @@ const Gt = {
|
|
|
1279
1235
|
this.removeDomElements(...this.domElements), this.domElements = [], this.addDomElements(...t);
|
|
1280
1236
|
}
|
|
1281
1237
|
computeEncompassingView(t, e = 0) {
|
|
1282
|
-
const a = t.center, o = t.sphere.radius, l = this.object.fov * (Math.PI / 180), c = this.object.aspect, d = l / 2,
|
|
1238
|
+
const a = t.center, o = t.sphere.radius, l = this.object.fov * (Math.PI / 180), c = this.object.aspect, d = l / 2, m = Math.atan(Math.tan(d) * c), q = o / Math.sin(d), K = o / Math.sin(m), Q = Math.max(q, K) * (1 + e), V = this.object.position.clone().sub(this.target).normalize(), J = V.length() > 1e-3 ? V : new h(0, 0, 1);
|
|
1283
1239
|
return {
|
|
1284
1240
|
position: a.clone().add(J.multiplyScalar(Q)),
|
|
1285
1241
|
target: a
|
|
@@ -1492,7 +1448,7 @@ const Gt = {
|
|
|
1492
1448
|
}
|
|
1493
1449
|
trackPointer(t) {
|
|
1494
1450
|
let e = this.pointerPositions[t.pointerId];
|
|
1495
|
-
e === void 0 && (e = new
|
|
1451
|
+
e === void 0 && (e = new u(), this.pointerPositions[t.pointerId] = e), e.set(t.pageX, t.pageY);
|
|
1496
1452
|
}
|
|
1497
1453
|
getSecondPointer(t) {
|
|
1498
1454
|
return this.pointers[0].pointerId === t.pointerId ? this.pointers[1] : this.pointers[0];
|
|
@@ -1509,17 +1465,17 @@ class Ft extends w {
|
|
|
1509
1465
|
constructor() {
|
|
1510
1466
|
super();
|
|
1511
1467
|
i(this, "_axesHelper");
|
|
1512
|
-
this._axesHelper = new
|
|
1468
|
+
this._axesHelper = new ft(0.5), this._axesHelper.layers.mask = y, this._axesHelper.material.depthTest = !1, this._axesHelper.position.set(0, 0, -1), this._axesHelper.setColors(
|
|
1513
1469
|
new g(Wt),
|
|
1514
1470
|
new g(Zt),
|
|
1515
1471
|
new g(Nt)
|
|
1516
1472
|
);
|
|
1517
|
-
const t = new
|
|
1473
|
+
const t = new L("X", 0.2, Z), e = new L("Y", 0.2, N), a = new L("Z", 0.2, X);
|
|
1518
1474
|
t.layers.mask = y, e.layers.mask = y, a.layers.mask = y, t.position.set(0.7, 0, 0), e.position.set(0, 0.7, 0), a.position.set(0, 0, 0.7), this._axesHelper.add(t), this._axesHelper.add(e), this._axesHelper.add(a);
|
|
1519
1475
|
}
|
|
1520
1476
|
setFromCameraMatrix(t) {
|
|
1521
1477
|
this._axesHelper.rotation.setFromRotationMatrix(
|
|
1522
|
-
new
|
|
1478
|
+
new wt().extractRotation(t).invert()
|
|
1523
1479
|
);
|
|
1524
1480
|
}
|
|
1525
1481
|
}
|
|
@@ -1528,8 +1484,8 @@ class Ut {
|
|
|
1528
1484
|
i(this, "uuid", S.generateUUID());
|
|
1529
1485
|
i(this, "_axes");
|
|
1530
1486
|
i(this, "_orthographicCamera");
|
|
1531
|
-
i(this, "_restoreViewport", new
|
|
1532
|
-
this._renderer = s, this._scene = t, this._camera = e, this._orthographicCamera = new
|
|
1487
|
+
i(this, "_restoreViewport", new bt());
|
|
1488
|
+
this._renderer = s, this._scene = t, this._camera = e, this._orthographicCamera = new yt(
|
|
1533
1489
|
-1,
|
|
1534
1490
|
1,
|
|
1535
1491
|
1,
|
|
@@ -1588,8 +1544,8 @@ const D = {
|
|
|
1588
1544
|
autoStart: !0,
|
|
1589
1545
|
displayAxes: !1,
|
|
1590
1546
|
...E,
|
|
1591
|
-
...
|
|
1592
|
-
...
|
|
1547
|
+
...vt,
|
|
1548
|
+
...U,
|
|
1593
1549
|
...Gt
|
|
1594
1550
|
};
|
|
1595
1551
|
class Yt {
|
|
@@ -1605,23 +1561,23 @@ class Yt {
|
|
|
1605
1561
|
this._settings = {
|
|
1606
1562
|
...D,
|
|
1607
1563
|
...s ?? {}
|
|
1608
|
-
}, this._clock = new
|
|
1564
|
+
}, this._clock = new Lt(), this._scene = new Bt(), this.scene.setBackground(
|
|
1609
1565
|
(s == null ? void 0 : s.backgroundColor) ?? D.backgroundColor
|
|
1610
1566
|
), this.scene.grid.setVisibility(
|
|
1611
1567
|
(s == null ? void 0 : s.displayGrid) ?? D.displayGrid
|
|
1612
1568
|
), this.scene.root.floor.setVisibility(
|
|
1613
1569
|
(s == null ? void 0 : s.displayFloor) ?? D.displayFloor
|
|
1614
1570
|
);
|
|
1615
|
-
const t = new
|
|
1571
|
+
const t = new O(
|
|
1616
1572
|
this._scene,
|
|
1617
|
-
new
|
|
1573
|
+
new C(),
|
|
1618
1574
|
this._settings
|
|
1619
1575
|
);
|
|
1620
1576
|
this._clock.addTicker(t), this._views = [t], this._mainView = t, this._settings.autoStart && this.start(), this._settings.displayAxes ? (console.log("displayAxes", this._settings.displayAxes), this.orientationDisplay = new Ut(
|
|
1621
1577
|
this.mainView.renderer,
|
|
1622
1578
|
this.scene,
|
|
1623
1579
|
this.mainView.camera
|
|
1624
|
-
), this.clock.addTicker(this.orientationDisplay)) : this.orientationDisplay = null, console.log("DIVE 2.1.
|
|
1580
|
+
), this.clock.addTicker(this.orientationDisplay)) : this.orientationDisplay = null, console.log("DIVE 2.1.2 initialized successfully!"), console.log(Ht), window.DIVE.instances.push(this);
|
|
1625
1581
|
}
|
|
1626
1582
|
/**
|
|
1627
1583
|
* @deprecated This static method will be removed in a future version. Please use `import { QuickView, QuickViewSettings, QuickViewDefaultSettings } from '@shopware-ag/dive/quickview'` instead.
|
|
@@ -1683,9 +1639,9 @@ class Yt {
|
|
|
1683
1639
|
});
|
|
1684
1640
|
}
|
|
1685
1641
|
createView(s) {
|
|
1686
|
-
const t = new
|
|
1642
|
+
const t = new O(
|
|
1687
1643
|
this._scene,
|
|
1688
|
-
s ?? new
|
|
1644
|
+
s ?? new C(),
|
|
1689
1645
|
{
|
|
1690
1646
|
...this._settings,
|
|
1691
1647
|
canvas: void 0
|
|
@@ -1699,7 +1655,7 @@ class Yt {
|
|
|
1699
1655
|
}
|
|
1700
1656
|
}
|
|
1701
1657
|
const ee = Yt, Z = "#c20017", N = "#00ab26", X = "#0081d4", Wt = Z, Zt = N, Nt = X;
|
|
1702
|
-
class Xt extends
|
|
1658
|
+
class Xt extends k {
|
|
1703
1659
|
/**
|
|
1704
1660
|
* Creates a new BoundingBox instance for the specified 3D object.
|
|
1705
1661
|
*
|
|
@@ -1738,19 +1694,19 @@ class Xt extends v {
|
|
|
1738
1694
|
i(this, "_sphereHelper");
|
|
1739
1695
|
/** The dimensions (width, height, depth) of the bounding box */
|
|
1740
1696
|
i(this, "_size");
|
|
1741
|
-
const n = new
|
|
1697
|
+
const n = new T();
|
|
1742
1698
|
e ? n.setFromObject(t) : (t.updateWorldMatrix(!0, !0), t.traverse((l) => {
|
|
1743
1699
|
if (l.isMesh) {
|
|
1744
1700
|
const c = l, d = c.geometry.clone();
|
|
1745
1701
|
d.applyMatrix4(c.matrixWorld);
|
|
1746
|
-
const
|
|
1747
|
-
d.applyQuaternion(
|
|
1702
|
+
const m = c.getWorldQuaternion(new x()).invert();
|
|
1703
|
+
d.applyQuaternion(m), d.computeBoundingBox(), d.boundingBox && n.union(d.boundingBox);
|
|
1748
1704
|
}
|
|
1749
|
-
})), this.rotation.copy(t.rotation), this._box = n, this._size = n.getSize(new h()), this._center = n.getCenter(new h()), this._boxHelper = new
|
|
1705
|
+
})), this.rotation.copy(t.rotation), this._box = n, this._size = n.getSize(new h()), this._center = n.getCenter(new h()), this._boxHelper = new Dt(this._box, a), this._boxHelper.visible = !1, this.add(this._boxHelper), this._sphere = n.getBoundingSphere(new Et()), this._radius = this._sphere.radius;
|
|
1750
1706
|
const o = new I(this._radius, 32, 32);
|
|
1751
1707
|
o.translate(this._center.x, this._center.y, this._center.z), this._sphereHelper = new P(
|
|
1752
1708
|
o,
|
|
1753
|
-
new
|
|
1709
|
+
new B({ color: a, wireframe: !0 })
|
|
1754
1710
|
), this._sphereHelper.visible = !1, this.add(this._sphereHelper);
|
|
1755
1711
|
}
|
|
1756
1712
|
/**
|
|
@@ -1845,13 +1801,13 @@ const qt = {
|
|
|
1845
1801
|
);
|
|
1846
1802
|
export {
|
|
1847
1803
|
Wt as A,
|
|
1848
|
-
|
|
1804
|
+
k as B,
|
|
1849
1805
|
kt as C,
|
|
1850
1806
|
D,
|
|
1851
1807
|
At as E,
|
|
1852
1808
|
Xt as F,
|
|
1853
1809
|
Ct as G,
|
|
1854
|
-
|
|
1810
|
+
Y as H,
|
|
1855
1811
|
qt as I,
|
|
1856
1812
|
Gt as O,
|
|
1857
1813
|
ie as S,
|
|
@@ -1859,26 +1815,26 @@ export {
|
|
|
1859
1815
|
Ut as b,
|
|
1860
1816
|
Ft as c,
|
|
1861
1817
|
Yt as d,
|
|
1862
|
-
|
|
1863
|
-
|
|
1818
|
+
Mt as e,
|
|
1819
|
+
W as f,
|
|
1864
1820
|
Zt as g,
|
|
1865
1821
|
Nt as h,
|
|
1866
1822
|
ee as i,
|
|
1867
|
-
|
|
1868
|
-
|
|
1869
|
-
|
|
1823
|
+
Lt as j,
|
|
1824
|
+
U as k,
|
|
1825
|
+
H as l,
|
|
1870
1826
|
te as m,
|
|
1871
|
-
|
|
1827
|
+
xt as n,
|
|
1872
1828
|
E as o,
|
|
1873
|
-
|
|
1874
|
-
|
|
1829
|
+
Bt as p,
|
|
1830
|
+
O as q,
|
|
1875
1831
|
Z as r,
|
|
1876
1832
|
N as s,
|
|
1877
1833
|
X as t,
|
|
1878
1834
|
Ot as u,
|
|
1879
1835
|
Rt as v,
|
|
1880
|
-
|
|
1836
|
+
zt as w,
|
|
1881
1837
|
Vt as x,
|
|
1882
|
-
|
|
1838
|
+
It as y,
|
|
1883
1839
|
Tt as z
|
|
1884
1840
|
};
|