tosijs-3d 0.8.11 → 0.8.13

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/CHANGELOG.md CHANGED
@@ -6,6 +6,63 @@ All notable changes to **tosijs-3d**. This project is pre-1.0 (`0.x`), so minor
6
6
  versions may carry breaking peer-dependency changes — each is called out in a
7
7
  **⚠️ Breaking** block in its version section below, with what a consumer must do.
8
8
 
9
+ ## 0.8.13
10
+
11
+ **A schema for `<tosi-b3d>` itself, and an emulated headset in the repo.**
12
+
13
+ ### Added
14
+
15
+ - **`sceneSchemas.b3d` / `b3dSchema()`**: the host's scene-level attributes,
16
+ with ranges, units and useful bands: `clearColor`, `glowLayerIntensity`,
17
+ `ssao`, `ssaoStrength`, `ssaoRadius`, `timeScale`, `windSpeed`,
18
+ `windBearingDeg`, `windGust`. The attributes that configure a viewer rather
19
+ than a scene (camera limits, quality, pixel ratio, gamepad and panel chrome,
20
+ XR and pause behaviour) are declined by name in `SCENE_OMITTED.b3d`. The
21
+ drift test covers it like every other schema. `ssao` marks `always` in
22
+ `x-deprecated-values`. Asked by tosijs-3d-ensemble (#101).
23
+ - **`bun run xr <path>`** (`bin/xr-emulate.ts`, repo tooling, not shipped): an
24
+ emulated headset. Headless Chrome with a fake WebXR device enters VR on a
25
+ page, screenshots both eyes and drives controllers from script. It is how
26
+ 0.8.12's headset fixes were found.
27
+
28
+ ## 0.8.12
29
+
30
+ **0.8.11's ambient occlusion broke VR, and this takes it out of the headset.**
31
+ Also: headset popups can be dragged and closed, and a model no longer shields
32
+ itself from a blast. The headset fixes were verified in an EMULATED headset
33
+ (a fake WebXR device in headless Chrome), not yet on a device.
34
+
35
+ ### Fixed
36
+
37
+ - **SSAO broke VR.** With `ssao="always"` a headset drew one image stretched
38
+ across both eyes, and `on` put the same chain on the headset camera for the
39
+ moment of entry. A post-process chain on a WebXR camera does not render per
40
+ eye. SSAO is now removed before the headset camera takes over and
41
+ restored when the session ends.
42
+ - **Popups in a headset could not be dragged or closed by their title bar.**
43
+ Three causes, all found by driving an emulated controller:
44
+ - the press was re-cast along Babylon's XR pointer ray, which is cut to the
45
+ exact distance of what it hit, so the re-cast stopped a rounding error
46
+ short of the popup and missed;
47
+ - a drag that did start was cancelled by the first pointer move, because
48
+ Babylon's XR moves carry `button: 0` and the drag behaviour reads that as
49
+ "another button pressed";
50
+ - a popup torn off a tilted panel (the headset settings panel is tilted)
51
+ snapped upright, and the drag then threw it metres away.
52
+ The settings panel's own occlusion re-pick had the same cut-ray fault.
53
+ - **A model's own hull shielded it from every blast.** Blast line of sight
54
+ exempted only the node each destroyable registered, and a library model
55
+ registers a root with the hull as a child, so the ray to it stopped on its
56
+ own hull. An aircraft with `destroyable="on"` took no blast damage, its own
57
+ bomb included. Anything beneath a destroyable is now not cover; a wall
58
+ still is. From manta-recon (board #2906).
59
+
60
+ ### Changed
61
+
62
+ - **SSAO is flat-only, and `ssao="always"` is deprecated.** 0.8.11 said
63
+ `always` ran in a headset. It is the setting that broke the frame. It is
64
+ still accepted, means `on`, and warns once.
65
+
9
66
  ## 0.8.11
10
67
 
11
68
  **Ambient occlusion.** One attribute on `<tosi-b3d>`, off by default. Checked
@@ -1,10 +1,13 @@
1
1
  import * as BABYLON from '@babylonjs/core';
2
+ /** `always` is deprecated: it means `on`. SSAO does not run in XR. */
2
3
  export type SsaoSetting = 'off' | 'auto' | 'on' | 'always';
3
4
  /**
4
5
  * Should SSAO be running? Pure, so the rule is testable without an engine.
5
6
  *
6
- * `auto` and `on` are flat-only: a headset pays for the effect twice at a high
7
- * per-eye resolution. `always` is the explicit "also in XR".
7
+ * Never in XR, whatever the setting: a post-process pipeline on a WebXR camera
8
+ * draws one image across both eyes (see "Flat only" in the page above). `xr` must be true for
9
+ * the WHOLE session including entering and exiting, because the headset camera
10
+ * becomes the active camera before the session reports itself entered.
8
11
  */
9
12
  export declare function ssaoActive(setting: SsaoSetting | boolean | string | null | undefined, opts: {
10
13
  xr: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"b3d-ssao.d.ts","sourceRoot":"","sources":["../src/b3d-ssao.ts"],"names":[],"mappings":"AAqGA,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAA;AAE1C,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,MAAM,GAAG,IAAI,GAAG,QAAQ,CAAA;AAE1D;;;;;GAKG;AACH,wBAAgB,UAAU,CACxB,OAAO,EAAE,WAAW,GAAG,OAAO,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,EAC1D,IAAI,EAAE;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,YAAY,EAAE,OAAO,CAAA;CAAE,GAC3C,OAAO,CAQT;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,OAAO,CAAA;IACf,6CAA6C;IAC7C,QAAQ,EAAE,MAAM,CAAA;IAChB,4CAA4C;IAC5C,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,6CAA6C;IAC7C,KAAK,EAAE,MAAM,CAAA;CACd;AAED;;;;GAIG;AACH,qBAAa,cAAc;IAMb,OAAO,CAAC,MAAM;IAL1B,OAAO,CAAC,SAAS,CAA8C;IAC/D,OAAO,CAAC,OAAO,CAA8B;IAC7C,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,KAAK,CAAQ;gBAED,MAAM,EAAE,OAAO,CAAC,KAAK;IAIzC,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,MAAM,CAAC,CAAC,EAAE,UAAU,GAAG,IAAI;IAqE3B,OAAO,IAAI,IAAI;CAehB"}
1
+ {"version":3,"file":"b3d-ssao.d.ts","sourceRoot":"","sources":["../src/b3d-ssao.ts"],"names":[],"mappings":"AA8GA,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAA;AAE1C,sEAAsE;AACtE,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,MAAM,GAAG,IAAI,GAAG,QAAQ,CAAA;AAE1D;;;;;;;GAOG;AACH,wBAAgB,UAAU,CACxB,OAAO,EAAE,WAAW,GAAG,OAAO,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,EAC1D,IAAI,EAAE;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,YAAY,EAAE,OAAO,CAAA;CAAE,GAC3C,OAAO,CAYT;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,OAAO,CAAA;IACf,6CAA6C;IAC7C,QAAQ,EAAE,MAAM,CAAA;IAChB,4CAA4C;IAC5C,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,6CAA6C;IAC7C,KAAK,EAAE,MAAM,CAAA;CACd;AAED;;;;GAIG;AACH,qBAAa,cAAc;IAMb,OAAO,CAAC,MAAM;IAL1B,OAAO,CAAC,SAAS,CAA8C;IAC/D,OAAO,CAAC,OAAO,CAA8B;IAC7C,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,KAAK,CAAQ;gBAED,MAAM,EAAE,OAAO,CAAC,KAAK;IAIzC,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,MAAM,CAAC,CAAC,EAAE,UAAU,GAAG,IAAI;IA0E3B,OAAO,IAAI,IAAI;CAehB"}
package/dist/b3d-ssao.js CHANGED
@@ -10,9 +10,8 @@ attribute on `<tosi-b3d>` fixes it: `ssao="auto"`.
10
10
  ## Demo
11
11
 
12
12
  Open the ⚙ panel and switch `ssao` between `off` and `on`. Watch the foot of
13
- the walls, the gaps between the crates and the underside of the lintel.
14
- `always` keeps it on inside a headset, which is how you check what it costs
15
- there.
13
+ the walls, the gaps between the crates and the underside of the lintel. Enter
14
+ VR and it switches itself off: see "Flat only" below.
16
15
 
17
16
  ```js
18
17
  import { b3d, b3dSun, b3dSkybox, b3dLight, b3dBox, b3dSphere, b3dGround, select3d, slider3d } from 'tosijs-3d'
@@ -29,7 +28,7 @@ preview.append(
29
28
  ssaoStrength: ssaoDemo.strength,
30
29
  ssaoRadius: ssaoDemo.radius,
31
30
  scenePanel: () => [
32
- select3d({ label: 'ssao', value: ssaoDemo.mode, options: ['off', 'auto', 'on', 'always'] }),
31
+ select3d({ label: 'ssao', value: ssaoDemo.mode, options: ['off', 'auto', 'on'] }),
33
32
  slider3d({ label: 'strength', value: ssaoDemo.strength, min: 0, max: 3, step: 0.05 }),
34
33
  slider3d({ label: 'radius (m)', value: ssaoDemo.radius, min: 0.25, max: 6, step: 0.05 }),
35
34
  ],
@@ -67,16 +66,26 @@ draws the opaque scene a SECOND time into a depth-and-normals buffer, then for
67
66
  every pixel samples that buffer several times and blurs the result. So the
68
67
  cost is one extra pass over your geometry plus a per-pixel loop.
69
68
 
70
- | `ssao` | flat | in a headset |
71
- | --- | --- | --- |
72
- | `off` (default) | off | off |
73
- | `auto` | on if the device tier affords it (top tier only) | off |
74
- | `on` | on | off |
75
- | `always` | on | on |
69
+ | `ssao` | |
70
+ | --- | --- |
71
+ | `off` (default) | off |
72
+ | `auto` | on if the device tier affords it (top tier only) |
73
+ | `on` | on |
74
+
75
+ ## Flat only
76
+
77
+ **SSAO never runs in a headset**, whatever the setting, and it is switched off
78
+ before the session starts and back on when it ends.
79
+
80
+ That is not a budget decision. Babylon's SSAO is a post-process, and a
81
+ post-process chain on a WebXR camera does not render per eye: it draws ONE
82
+ image across both. That is what 0.8.11 did on a Quest, and an emulated headset
83
+ reproduces it whether the chain is carried into the session or built inside
84
+ it. Ambient occlusion in a headset needs a different technique, not a
85
+ different setting.
76
86
 
77
- A headset pays for it twice (two eyes) at a high per-eye resolution, so `auto`
78
- and `on` both stay off in XR. `always` is there for hardware that can pay: a
79
- PC-driven headset, or a Vision Pro. A standalone Quest-class device cannot.
87
+ (0.8.11 shipped an `always` value that claimed to run in XR. It never worked.
88
+ It is still accepted, means `on`, and warns once.)
80
89
 
81
90
  Sample count and resolution come from the device budget
82
91
  (`PerfBudgets.ssaoSamples`, `ssaoRatio`), so you tune the LOOK and the tier
@@ -86,7 +95,7 @@ tunes the COST.
86
95
 
87
96
  | Attribute | Default | Description |
88
97
  | --- | --- | --- |
89
- | `ssao` | `'off'` | `off`, `auto`, `on` or `always`: see the table above. LIVE |
98
+ | `ssao` | `'off'` | `off`, `auto` or `on`: see the table above. Flat only. LIVE |
90
99
  | `ssaoStrength` | `1` | How dark a fully occluded crease gets. `0` is none. LIVE |
91
100
  | `ssaoRadius` | `2` | How far, in metres, a surface looks for something occluding it. Small radii darken only tight creases; large ones shade whole alcoves. LIVE |
92
101
 
@@ -102,8 +111,10 @@ import * as BABYLON from '@babylonjs/core';
102
111
  /**
103
112
  * Should SSAO be running? Pure, so the rule is testable without an engine.
104
113
  *
105
- * `auto` and `on` are flat-only: a headset pays for the effect twice at a high
106
- * per-eye resolution. `always` is the explicit "also in XR".
114
+ * Never in XR, whatever the setting: a post-process pipeline on a WebXR camera
115
+ * draws one image across both eyes (see "Flat only" in the page above). `xr` must be true for
116
+ * the WHOLE session including entering and exiting, because the headset camera
117
+ * becomes the active camera before the session reports itself entered.
107
118
  */
108
119
  export function ssaoActive(setting, opts) {
109
120
  // No `isOff` here: b3d-utils pulls in tosijs, and this rule is tested headless.
@@ -111,13 +122,14 @@ export function ssaoActive(setting, opts) {
111
122
  return false;
112
123
  if (setting === false || setting === 'false')
113
124
  return false;
114
- if (setting === 'always')
115
- return true;
116
125
  if (opts.xr)
117
126
  return false;
118
127
  if (setting === 'auto')
119
128
  return opts.budgetAllows;
120
- return setting === 'on' || setting === true || setting === 'true';
129
+ return (setting === 'on' ||
130
+ setting === 'always' ||
131
+ setting === true ||
132
+ setting === 'true');
121
133
  }
122
134
  /**
123
135
  * Owns the SSAO pipeline for one scene: builds it on demand, follows the
@@ -140,7 +152,11 @@ export class SsaoController {
140
152
  update(p) {
141
153
  const scene = this._scene;
142
154
  const cam = scene.activeCamera;
143
- if (!p.active || cam == null || scene.isDisposed) {
155
+ // Belt and braces for the XR rule: never hang a pipeline on a headset
156
+ // camera or one of its per-eye rig cameras, whoever asked.
157
+ const xrCamera = cam != null &&
158
+ (cam.getClassName() === 'WebXRCamera' || cam.isRigCamera === true);
159
+ if (!p.active || cam == null || xrCamera || scene.isDisposed) {
144
160
  this.dispose();
145
161
  return;
146
162
  }
@@ -1 +1 @@
1
- {"version":3,"file":"b3d-ssao.js","sourceRoot":"","sources":["../src/b3d-ssao.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkGE;AACF,wCAAwC;AAExC,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAA;AAI1C;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CACxB,OAA0D,EAC1D,IAA4C;IAE5C,gFAAgF;IAChF,IAAI,OAAO,IAAI,IAAI,IAAI,OAAO,KAAK,EAAE,IAAI,OAAO,KAAK,KAAK;QAAE,OAAO,KAAK,CAAA;IACxE,IAAI,OAAO,KAAK,KAAK,IAAI,OAAO,KAAK,OAAO;QAAE,OAAO,KAAK,CAAA;IAC1D,IAAI,OAAO,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAA;IACrC,IAAI,IAAI,CAAC,EAAE;QAAE,OAAO,KAAK,CAAA;IACzB,IAAI,OAAO,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC,YAAY,CAAA;IAChD,OAAO,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,MAAM,CAAA;AACnE,CAAC;AAaD;;;;GAIG;AACH,MAAM,OAAO,cAAc;IAML;IALZ,SAAS,GAA0C,IAAI,CAAA;IACvD,OAAO,GAA0B,IAAI,CAAA;IACrC,MAAM,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAA;IACjC,KAAK,CAAQ;IAErB,YAAoB,MAAqB;QAArB,WAAM,GAAN,MAAM,CAAe;QACvC,IAAI,CAAC,KAAK,GAAG,QAAQ,MAAM,CAAC,GAAG,EAAE,CAAA;IACnC,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,SAAS,IAAI,IAAI,CAAA;IAC/B,CAAC;IAED,MAAM,CAAC,CAAa;QAClB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAA;QACzB,MAAM,GAAG,GAAG,KAAK,CAAC,YAAY,CAAA;QAC9B,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;YACjD,IAAI,CAAC,OAAO,EAAE,CAAA;YACd,OAAM;QACR,CAAC;QACD,kEAAkE;QAClE,IACE,IAAI,CAAC,SAAS,IAAI,IAAI;YACtB,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,KAAK,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,CAAC,EACpE,CAAC;YACD,IAAI,CAAC,OAAO,EAAE,CAAA;QAChB,CAAC;QACD,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE,CAAC;YAC3B;;;;;;;;cAQE;YACF;;;;;;;cAOE;YACF,IAAI,KAAK,CAAC,sBAAsB,IAAI,IAAI,EAAE,CAAC;gBACzC,KAAK,CAAC,4BAA4B,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;YAC7C,CAAC;YACD,MAAM,QAAQ,GAAG,IAAI,OAAO,CAAC,sBAAsB,CACjD,IAAI,CAAC,KAAK,EACV,KAAK,EACL,EAAE,SAAS,EAAE,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,KAAK,EAAE,EAC1C,CAAC,GAAG,CAAC,EACL,IAAI,CACL,CAAA;YACD,QAAQ,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAA;YAC5B,qEAAqE;YACrE,0EAA0E;YAC1E,QAAQ,CAAC,cAAc,GAAG,CAAC,CAAA;YAC3B,QAAQ,CAAC,aAAa,GAAG,IAAI,CAAA;YAC7B,MAAM,IAAI,GAAG,KAAK,CAAC,sBAAsB,CAAA;YACzC,IAAI,IAAI;gBAAE,IAAI,CAAC,uBAAuB,GAAG,KAAK,CAAA;YAC9C,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAA;YACzB,IAAI,CAAC,OAAO,GAAG,GAAG,CAAA;YAClB,IAAI,CAAC,MAAM,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAA;QACtD,CAAC;aAAM,IAAI,IAAI,CAAC,OAAO,KAAK,GAAG,EAAE,CAAC;YAChC,MAAM,GAAG,GAAG,KAAK,CAAC,gCAAgC,CAAA;YAClD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,GAAG,CAAC,+BAA+B,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;YAC/D,CAAC;YACD,GAAG,CAAC,6BAA6B,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;YAClD,IAAI,CAAC,OAAO,GAAG,GAAG,CAAA;QACpB,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAA;QAC/B,QAAQ,CAAC,aAAa,GAAG,CAAC,CAAC,QAAQ,CAAA;QACnC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAA;QAC1B,qEAAqE;QACrE,mEAAmE;QACnE,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,CAAA;QAC7C,QAAQ,CAAC,UAAU,GAAG,GAAG,CAAA;IAC3B,CAAC;IAED,OAAO;QACL,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI;YAAE,OAAM;QAClC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAA;QACzB,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;YACtB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,KAAK,CAAC,gCAAgC,CAAC,+BAA+B,CACpE,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,OAAO,CACb,CAAA;YACH,CAAC;YACD,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAC9B,CAAC;QACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;QACrB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;IACrB,CAAC;CACF"}
1
+ {"version":3,"file":"b3d-ssao.js","sourceRoot":"","sources":["../src/b3d-ssao.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"b3d-warhead.d.ts","sourceRoot":"","sources":["../src/b3d-warhead.ts"],"names":[],"mappings":"AAsIA,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAA;AAC1C,OAAO,EAAE,YAAY,EAAiC,MAAM,gBAAgB,CAAA;AAC5E,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAc,KAAK,WAAW,EAAkB,MAAM,cAAc,CAAA;AAE3E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AAM7C,qBAAa,UAAW,SAAQ,YAAY;IAC1C,MAAM,CAAC,gBAAgB,SAAqB;IAE5C,MAAM,CAAC,cAAc;;;;;;;;;;;;;MAYpB;IAEO,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,GAAG,EAAE,MAAM,CAAA;IACX,EAAE,EAAE,MAAM,CAAA;IAElB,IAAI,IAAI,IAAI,WAAW,CAMtB;IAED,UAAU,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,GAAG,IAAI;IAKlD;;;;OAIG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,OAAO,GAAG,IAAI;CAazC;AAED,eAAO,MAAM,UAAU,EAAkC,CACvD,GAAG,IAAI,EAAE,OAAO,EAAE,KACf,UAAU,CAAA;AAEf;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,GAAG,EACV,MAAM,EAAE,OAAO,CAAC,OAAO,EACvB,IAAI,EAAE,WAAW,EACjB,MAAM,UAAO,EAcb,KAAK,CAAC,EAAE,KAAK,GACZ,IAAI,CA0DN;AAyBD;;;;GAIG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,OAAO,CAAC,KAAK,EACpB,MAAM,EAAE,OAAO,CAAC,OAAO,EACvB,WAAW,EAAE,MAAM,GAClB,IAAI,CAuBN"}
1
+ {"version":3,"file":"b3d-warhead.d.ts","sourceRoot":"","sources":["../src/b3d-warhead.ts"],"names":[],"mappings":"AAsIA,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAA;AAC1C,OAAO,EAAE,YAAY,EAAiC,MAAM,gBAAgB,CAAA;AAC5E,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAc,KAAK,WAAW,EAAkB,MAAM,cAAc,CAAA;AAE3E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AAM7C,qBAAa,UAAW,SAAQ,YAAY;IAC1C,MAAM,CAAC,gBAAgB,SAAqB;IAE5C,MAAM,CAAC,cAAc;;;;;;;;;;;;;MAYpB;IAEO,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,GAAG,EAAE,MAAM,CAAA;IACX,EAAE,EAAE,MAAM,CAAA;IAElB,IAAI,IAAI,IAAI,WAAW,CAMtB;IAED,UAAU,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,GAAG,IAAI;IAKlD;;;;OAIG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,OAAO,GAAG,IAAI;CAazC;AAED,eAAO,MAAM,UAAU,EAAkC,CACvD,GAAG,IAAI,EAAE,OAAO,EAAE,KACf,UAAU,CAAA;AAEf;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,GAAG,EACV,MAAM,EAAE,OAAO,CAAC,OAAO,EACvB,IAAI,EAAE,WAAW,EACjB,MAAM,UAAO,EAcb,KAAK,CAAC,EAAE,KAAK,GACZ,IAAI,CA0DN;AA6CD;;;;GAIG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,OAAO,CAAC,KAAK,EACpB,MAAM,EAAE,OAAO,CAAC,OAAO,EACvB,WAAW,EAAE,MAAM,GAClB,IAAI,CAuBN"}
@@ -255,6 +255,17 @@ cause) {
255
255
  }
256
256
  // A target is visible unless a NON-destroyable pickable mesh (a wall/cover) sits
257
257
  // between the blast center and it — cubes don't shadow each other from a blast.
258
+ /*
259
+ "DESTROYABLE" MEANS THE WHOLE MODEL, not the node that was registered.
260
+
261
+ A library model registers its ROOT, and the root is a TransformNode: the mesh a
262
+ ray can actually hit is a child. Exempting only the registered nodes therefore
263
+ exempted nothing for such a model, and the ray to its origin stopped on its own
264
+ hull. An aircraft with `destroyable="on"` took no blast damage from anything,
265
+ including its own bomb going off under it (manta-recon, board #2906). So the
266
+ exemption walks up: a mesh anywhere beneath a destroyable is not cover. Same
267
+ ancestry rule as `destroyableAt`, for the same reason.
268
+ */
258
269
  function hasLos(owner, from, targetMesh, destroyableMeshes) {
259
270
  const to = targetMesh.absolutePosition;
260
271
  const dir = to.subtract(from);
@@ -264,7 +275,17 @@ function hasLos(owner, from, targetMesh, destroyableMeshes) {
264
275
  const ray = new BABYLON.Ray(from, dir.normalize(), dist - 0.1);
265
276
  // Shared predicate — a UI panel must not provide BLAST COVER. `ground` is
266
277
  // deliberately transparent to LOS here (it is the floor, not a wall).
267
- const hit = owner.scene.pickWithRay(ray, collidable((m) => m.name === 'ground' || destroyableMeshes.includes(m)));
278
+ const roots = new Set(destroyableMeshes);
279
+ const underDestroyable = (m) => {
280
+ let node = m;
281
+ while (node != null) {
282
+ if (roots.has(node))
283
+ return true;
284
+ node = node.parent;
285
+ }
286
+ return false;
287
+ };
288
+ const hit = owner.scene.pickWithRay(ray, collidable((m) => m.name === 'ground' || underDestroyable(m)));
268
289
  return !(hit != null && hit.hit);
269
290
  }
270
291
  // Expanding, fading flash at the blast center.
@@ -1 +1 @@
1
- {"version":3,"file":"b3d-warhead.js","sourceRoot":"","sources":["../src/b3d-warhead.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"b3d-warhead.js","sourceRoot":"","sources":["../src/b3d-warhead.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"popup-surface.d.ts","sourceRoot":"","sources":["../src/popup-surface.ts"],"names":[],"mappings":"AAkKA,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAA;AAC1C,OAAO,EAAe,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAIlE,OAAO,EAAE,YAAY,EAA0B,MAAM,mBAAmB,CAAA;AAQxE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,eAAe,CAAA;AAExC,MAAM,WAAW,mBAAmB;IAClC,uEAAuE;IACvE,GAAG,EAAE,aAAa,CAAA;IAClB;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC,aAAa,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAA;IAC5D,+DAA+D;IAC/D,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,+EAA+E;IAC/E,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,oEAAoE;IACpE,MAAM,CAAC,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAC/C;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB;;;;;;;;;;;OAWG;IACH,YAAY,CAAC,EAAE,MAAM,IAAI,CAAA;IACzB;;;;;;;;OAQG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB;yDACqD;IACrD,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,2EAA2E;IAC3E,KAAK,EAAE,WAAW,CAAA;IAClB,sCAAsC;IACtC,KAAK,IAAI,IAAI,CAAA;IACb;;;OAGG;IACH,OAAO,IAAI,IAAI,CAAA;IACf,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB;+CAC2C;IAC3C,SAAS,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAC/C,uDAAuD;IACvD,KAAK,CAAC,EAAE,OAAO,CAAA;IACf;4EACwE;IACxE,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,CAAA;IAC7C,yEAAyE;IACzE;;;OAGG;IACH,SAAS,CACP,SAAS,EAAE,MAAM,EACjB,WAAW,CAAC,EAAE,OAAO,CAAC,OAAO,EAC7B,GAAG,CAAC,EAAE,OAAO,CAAC,GAAG,GAChB,IAAI,CAAA;IACP,+EAA+E;IAC/E,OAAO,IAAI,IAAI,CAAA;IACf,kDAAkD;IAClD,OAAO,IAAI,IAAI,CAAA;CAChB;AAyDD;;;;;;;;;;;;;;;;GAgBG;AACH;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,EAAE,GAAG,OAAO,EAAE,CAGtE;AAuLD,wBAAgB,SAAS,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,mBAAmB,GAAG,YAAY,CA6Z7E"}
1
+ {"version":3,"file":"popup-surface.d.ts","sourceRoot":"","sources":["../src/popup-surface.ts"],"names":[],"mappings":"AAkKA,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAA;AAC1C,OAAO,EAAe,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAIlE,OAAO,EAAE,YAAY,EAA0B,MAAM,mBAAmB,CAAA;AAQxE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,eAAe,CAAA;AAExC,MAAM,WAAW,mBAAmB;IAClC,uEAAuE;IACvE,GAAG,EAAE,aAAa,CAAA;IAClB;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC,aAAa,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAA;IAC5D,+DAA+D;IAC/D,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,+EAA+E;IAC/E,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,oEAAoE;IACpE,MAAM,CAAC,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAC/C;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB;;;;;;;;;;;OAWG;IACH,YAAY,CAAC,EAAE,MAAM,IAAI,CAAA;IACzB;;;;;;;;OAQG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB;yDACqD;IACrD,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,2EAA2E;IAC3E,KAAK,EAAE,WAAW,CAAA;IAClB,sCAAsC;IACtC,KAAK,IAAI,IAAI,CAAA;IACb;;;OAGG;IACH,OAAO,IAAI,IAAI,CAAA;IACf,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB;+CAC2C;IAC3C,SAAS,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAC/C,uDAAuD;IACvD,KAAK,CAAC,EAAE,OAAO,CAAA;IACf;4EACwE;IACxE,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,CAAA;IAC7C,yEAAyE;IACzE;;;OAGG;IACH,SAAS,CACP,SAAS,EAAE,MAAM,EACjB,WAAW,CAAC,EAAE,OAAO,CAAC,OAAO,EAC7B,GAAG,CAAC,EAAE,OAAO,CAAC,GAAG,GAChB,IAAI,CAAA;IACP,+EAA+E;IAC/E,OAAO,IAAI,IAAI,CAAA;IACf,kDAAkD;IAClD,OAAO,IAAI,IAAI,CAAA;CAChB;AAyDD;;;;;;;;;;;;;;;;GAgBG;AACH;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,EAAE,GAAG,OAAO,EAAE,CAGtE;AA8MD,wBAAgB,SAAS,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,mBAAmB,GAAG,YAAY,CA+b7E"}
@@ -385,7 +385,27 @@ function wirePointer(owner) {
385
385
  return;
386
386
  // Un-pickable panels are skipped by the pick itself, so a modal's blocking
387
387
  // needs no test here.
388
- const hit = scene.pick(scene.pointerX, scene.pointerY, (m) => list.some((p) => p.plane.mesh === m));
388
+ /*
389
+ ALONG THE RAY THAT PRESSED, not from the screen position. In a headset the
390
+ press comes from a controller, and `scene.pointerX/Y` is only that
391
+ controller projected onto the screen: picking from there casts a ray from
392
+ the HEAD through that point, which is not where the hand is aiming. The
393
+ title bar is a thin target, so the two disagree about it most of the time,
394
+ and the popup could be neither dragged nor closed in VR. Flat, the event's
395
+ ray IS the screen ray, so this is the same pick.
396
+ */
397
+ const isPopup = (m) => list.some((p) => p.plane.mesh === m);
398
+ const pressRay = info.pickInfo?.ray;
399
+ /*
400
+ A COPY AT FULL LENGTH. Babylon's XR pointer shortens its ray to the distance
401
+ of whatever it hit, so re-casting that same ray stops a rounding error short
402
+ of the surface it just found and reports a miss. Measured in an emulated
403
+ session: length 1.4968695 against a hit at 1.4968695, no hit; the same
404
+ origin and direction at full length, hit.
405
+ */
406
+ const hit = pressRay != null
407
+ ? scene.pickWithRay(new BABYLON.Ray(pressRay.origin, pressRay.direction, 1e4), isPopup)
408
+ : scene.pick(scene.pointerX, scene.pointerY, isPopup);
389
409
  const onPopup = hit?.hit === true ? hit.pickedMesh : null;
390
410
  if (onPopup != null) {
391
411
  // CLICK to front, not just drag-to-front: raising something only when you
@@ -426,7 +446,7 @@ function wirePointer(owner) {
426
446
  target.beginDrag(info.event?.pointerId ?? 0,
427
447
  // The point on the panel actually under the pointer, and the ray that
428
448
  // found it — see beginDrag for why both are required.
429
- info.pickInfo?.pickedPoint ?? undefined, info.pickInfo?.ray ?? undefined);
449
+ hit?.pickedPoint ?? info.pickInfo?.pickedPoint ?? undefined, pressRay ?? undefined);
430
450
  }
431
451
  });
432
452
  }
@@ -659,6 +679,17 @@ export function openPopup(owner, opts) {
659
679
  // failed drag.
660
680
  if (gripHeight > 0)
661
681
  drag.startAndReleaseDragOnPointerEvents = false;
682
+ /*
683
+ A HEADSET DRAG DIED ON ITS FIRST FRAME without this. The behaviour cancels
684
+ a drag when "another button" arrives on the same pointer, meaning any event
685
+ whose `button` is neither -1 nor the button that started it. `startDrag()`
686
+ records no starting button (-1), a mouse move carries -1 so it passes, and
687
+ Babylon's XR pointer synthesises its moves as `new PointerEvent('pointermove')`,
688
+ whose button defaults to 0. So in VR the first move after the press
689
+ released the drag: the popup tore off and then sat there. We end the drag
690
+ ourselves on POINTERUP, so the rule has nothing to protect.
691
+ */
692
+ drag.allowOtherButtonsDuringDrag = true;
662
693
  mesh.addBehavior(drag);
663
694
  drag.onDragStartObservable.add(() => {
664
695
  // Pull a tab out of the window: moving an owned popup promotes it.
@@ -729,7 +760,12 @@ export function openPopup(owner, opts) {
729
760
  point — Babylon reuses its pick info between events.
730
761
  */
731
762
  const grabRay = ray != null
732
- ? new BABYLON.Ray(ray.origin.clone(), ray.direction.clone(), ray.length)
763
+ ? new BABYLON.Ray(ray.origin.clone(), ray.direction.clone(),
764
+ // NOT `ray.length`: an XR pointer's ray is cut to its hit
765
+ // distance, and Babylon starts the drag by casting this ray at
766
+ // a plane through the grab point. A ray that ends exactly there
767
+ // misses it, and the drag silently never starts.
768
+ 1e4)
733
769
  : undefined;
734
770
  queueMicrotask(() => {
735
771
  if (drag == null || closed)
@@ -769,6 +805,25 @@ export function openPopup(owner, opts) {
769
805
  plane.x = world.x;
770
806
  plane.y = world.y;
771
807
  plane.z = world.z;
808
+ /*
809
+ …AND THE ORIENTATION, which the element also rewrites every frame.
810
+
811
+ Position alone was enough only while every opener happened to be
812
+ upright. The headset's settings panel is tilted back to face you, so a
813
+ popup torn off it snapped vertical: it turned edge-on to the viewer, and
814
+ because the drag plane is the panel's own plane, a controller ray aimed
815
+ up at it met that plane metres away. Measured in an emulated session: a
816
+ 0.25 m sweep of the pointer threw the popup 7 m into the sky.
817
+ `setParent(null)` has just baked the world rotation into the mesh, so
818
+ read it back in the element's own yaw/pitch/roll.
819
+ */
820
+ const e = mesh.rotationQuaternion?.toEulerAngles();
821
+ if (e != null) {
822
+ const deg = 180 / Math.PI;
823
+ plane.rx = e.x * deg;
824
+ plane.ry = e.y * deg;
825
+ plane.rz = e.z * deg;
826
+ }
772
827
  attachDrag();
773
828
  });
774
829
  },
@@ -1 +1 @@
1
- {"version":3,"file":"popup-surface.js","sourceRoot":"","sources":["../src/popup-surface.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"popup-surface.js","sourceRoot":"","sources":["../src/popup-surface.ts"],"names":[],"mappings":"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"}
@@ -162,7 +162,25 @@ export declare function soundSchema(extra?: Record<string, unknown>): {
162
162
  properties: Record<string, unknown>;
163
163
  };
164
164
  /** Every scene-primitive schema, by the element name a consumer would use. */
165
+ /**
166
+ * `tosi-b3d` — the scene HOST's own attributes: the ones that say how the
167
+ * scene looks and moves, as opposed to how one viewer is looking at it.
168
+ *
169
+ * Asked by `tosijs-3d-ensemble` (#101). A document can RECOMMEND an ambient
170
+ * occlusion look (`ssaoStrength`, `ssaoRadius`) and carry the scene's wind, and
171
+ * a consumer must never type those ranges itself.
172
+ *
173
+ * `ssao` is listed because the look is meaningless without it, but whether it
174
+ * is ON is usually the viewer's call (it costs frame time and never runs in a
175
+ * headset): store the recommendation, and let the device decide.
176
+ */
177
+ export declare function b3dSchema(extra?: Record<string, unknown>): {
178
+ type: string;
179
+ title: string;
180
+ properties: Record<string, unknown>;
181
+ };
165
182
  export declare const sceneSchemas: {
183
+ readonly b3d: typeof b3dSchema;
166
184
  readonly skybox: typeof skyboxSchema;
167
185
  readonly sun: typeof sunSchema;
168
186
  readonly water: typeof waterSchema;
@@ -1 +1 @@
1
- {"version":3,"file":"scene-schemas.d.ts","sourceRoot":"","sources":["../src/scene-schemas.ts"],"names":[],"mappings":"AAsJA;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;;;;EA+I/D;AAED,sEAAsE;AACtE,wBAAgB,SAAS,CAAC,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;;;;EAiC5D;AAED,gFAAgF;AAChF,wBAAgB,WAAW,CAAC,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;;;;EA6F9D;AAED,sEAAsE;AACtE,wBAAgB,SAAS,CAAC,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;;;;EAkB5D;AAED,mEAAmE;AACnE,wBAAgB,YAAY,CAAC,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;;;;EAyB/D;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;;;;EAkChE;AAED,oFAAoF;AACpF,wBAAgB,sBAAsB,CAAC,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;;;;EAiBzE;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAoClD,CAAA;AAED,oFAAoF;AACpF,wBAAgB,YAAY,CAAC,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;;;;EAqB/D;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;;;;EAiJhE;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;;;;EA6BpE;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;;;;EAyJlE;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;;;;EAkB7D;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;;;;EAqCpE;AAED,2EAA2E;AAC3E,wBAAgB,eAAe,CAAC,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;;;;EAsBlE;AAED;qBACqB;AACrB,wBAAgB,iBAAiB,CAAC,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;;;;EAiBpE;AAED;uCACuC;AACvC,wBAAgB,eAAe,CAAC,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;;;;EA6BlE;AAED,6EAA6E;AAC7E,wBAAgB,WAAW,CAAC,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;;;;EAuB9D;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;;;;EAsB9D;AAED,8EAA8E;AAC9E,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;CAmBf,CAAA"}
1
+ {"version":3,"file":"scene-schemas.d.ts","sourceRoot":"","sources":["../src/scene-schemas.ts"],"names":[],"mappings":"AAgKA;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;;;;EA+I/D;AAED,sEAAsE;AACtE,wBAAgB,SAAS,CAAC,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;;;;EAiC5D;AAED,gFAAgF;AAChF,wBAAgB,WAAW,CAAC,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;;;;EA6F9D;AAED,sEAAsE;AACtE,wBAAgB,SAAS,CAAC,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;;;;EAkB5D;AAED,mEAAmE;AACnE,wBAAgB,YAAY,CAAC,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;;;;EAyB/D;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;;;;EAkChE;AAED,oFAAoF;AACpF,wBAAgB,sBAAsB,CAAC,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;;;;EAiBzE;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAgElD,CAAA;AAED,oFAAoF;AACpF,wBAAgB,YAAY,CAAC,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;;;;EAqB/D;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;;;;EAiJhE;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;;;;EA6BpE;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;;;;EAyJlE;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;;;;EAkB7D;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;;;;EAqCpE;AAED,2EAA2E;AAC3E,wBAAgB,eAAe,CAAC,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;;;;EAsBlE;AAED;qBACqB;AACrB,wBAAgB,iBAAiB,CAAC,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;;;;EAiBpE;AAED;uCACuC;AACvC,wBAAgB,eAAe,CAAC,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;;;;EA6BlE;AAED,6EAA6E;AAC7E,wBAAgB,WAAW,CAAC,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;;;;EAuB9D;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;;;;EAsB9D;AAED,8EAA8E;AAC9E;;;;;;;;;;;GAWG;AACH,wBAAgB,SAAS,CAAC,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;;;;EA4E5D;AAED,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;CAoBf,CAAA"}