@needle-tools/engine 2.53.0-pre → 2.54.2-pre

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.
Files changed (149) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/dist/needle-engine.d.ts +2417 -2230
  3. package/dist/needle-engine.js +425 -425
  4. package/dist/needle-engine.js.map +4 -4
  5. package/dist/needle-engine.min.js +49 -49
  6. package/dist/needle-engine.min.js.map +4 -4
  7. package/dist/needle-engine.tsbuildinfo +1 -0
  8. package/lib/engine/codegen/register_types.d.ts +1 -0
  9. package/lib/engine/codegen/register_types.js +346 -0
  10. package/lib/engine/codegen/register_types.js.map +1 -0
  11. package/lib/engine/debug/debug.d.ts +1 -0
  12. package/lib/engine/debug/debug.js +4 -0
  13. package/lib/engine/debug/debug.js.map +1 -1
  14. package/lib/engine/debug/debug_console.js +2 -1
  15. package/lib/engine/debug/debug_console.js.map +1 -1
  16. package/lib/engine/debug/debug_overlay.js +3 -1
  17. package/lib/engine/debug/debug_overlay.js.map +1 -1
  18. package/lib/engine/engine_default_parameters.d.ts +2 -2
  19. package/lib/engine/engine_element.js +4 -2
  20. package/lib/engine/engine_element.js.map +1 -1
  21. package/lib/engine/engine_element_loading.d.ts +1 -0
  22. package/lib/engine/engine_element_loading.js +17 -6
  23. package/lib/engine/engine_element_loading.js.map +1 -1
  24. package/lib/engine/engine_element_overlay.js +4 -2
  25. package/lib/engine/engine_element_overlay.js.map +1 -1
  26. package/lib/engine/engine_fileloader.d.ts +3 -0
  27. package/lib/engine/engine_fileloader.js +8 -0
  28. package/lib/engine/engine_fileloader.js.map +1 -0
  29. package/lib/engine/engine_generic_utils.d.ts +1 -0
  30. package/lib/engine/engine_generic_utils.js +14 -0
  31. package/lib/engine/engine_generic_utils.js.map +1 -0
  32. package/lib/engine/engine_input.js +4 -0
  33. package/lib/engine/engine_input.js.map +1 -1
  34. package/lib/engine/engine_networking_websocket.d.ts +1 -0
  35. package/lib/engine/engine_networking_websocket.js +1 -1
  36. package/lib/engine/engine_networking_websocket.js.map +1 -1
  37. package/lib/engine/engine_serialization_builtin_serializer.js +6 -3
  38. package/lib/engine/engine_serialization_builtin_serializer.js.map +1 -1
  39. package/lib/engine/engine_utils.d.ts +1 -1
  40. package/lib/engine/engine_utils.js +3 -0
  41. package/lib/engine/engine_utils.js.map +1 -1
  42. package/lib/engine/extensions/NEEDLE_components.d.ts +1 -1
  43. package/lib/engine/extensions/NEEDLE_progressive.d.ts +22 -0
  44. package/lib/engine/extensions/NEEDLE_progressive.js +172 -44
  45. package/lib/engine/extensions/NEEDLE_progressive.js.map +1 -1
  46. package/lib/engine-components/GroundProjection.d.ts +2 -1
  47. package/lib/engine-components/GroundProjection.js +19 -12
  48. package/lib/engine-components/GroundProjection.js.map +1 -1
  49. package/lib/engine-components/ParticleSystemModules.d.ts +1 -1
  50. package/lib/engine-components/ParticleSystemModules.js +48 -44
  51. package/lib/engine-components/ParticleSystemModules.js.map +1 -1
  52. package/lib/engine-components/ReflectionProbe.d.ts +1 -1
  53. package/lib/engine-components/Renderer.d.ts +1 -1
  54. package/lib/engine-components/Renderer.js +3 -8
  55. package/lib/engine-components/Renderer.js.map +1 -1
  56. package/lib/engine-components/Volume.js +8 -1
  57. package/lib/engine-components/Volume.js.map +1 -1
  58. package/lib/engine-components/WebXR.d.ts +2 -2
  59. package/lib/engine-components/WebXRAvatar.d.ts +1 -1
  60. package/lib/engine-components/codegen/components.d.ts +99 -99
  61. package/lib/engine-components/codegen/components.js +99 -99
  62. package/lib/engine-components/codegen/components.js.map +1 -1
  63. package/lib/engine-components/export/usdz/USDZExporter.d.ts +1 -0
  64. package/lib/engine-components/export/usdz/USDZExporter.js +17 -1
  65. package/lib/engine-components/export/usdz/USDZExporter.js.map +1 -1
  66. package/lib/engine-components/ui/Button.js +30 -0
  67. package/lib/engine-components/ui/Button.js.map +1 -1
  68. package/lib/engine-components/ui/InputField.d.ts +2 -0
  69. package/lib/engine-components/ui/InputField.js +23 -1
  70. package/lib/engine-components/ui/InputField.js.map +1 -1
  71. package/lib/engine-components/ui/Utils.d.ts +2 -0
  72. package/lib/engine-components/ui/Utils.js +10 -9
  73. package/lib/engine-components/ui/Utils.js.map +1 -1
  74. package/lib/engine-components-experimental/Presentation.d.ts +6 -0
  75. package/lib/engine-components-experimental/Presentation.js +11 -0
  76. package/lib/engine-components-experimental/Presentation.js.map +1 -0
  77. package/lib/engine-components-experimental/annotation/LineDrawer.d.ts +18 -0
  78. package/lib/engine-components-experimental/annotation/LineDrawer.js +175 -0
  79. package/lib/engine-components-experimental/annotation/LineDrawer.js.map +1 -0
  80. package/lib/engine-components-experimental/annotation/LinesManager.d.ts +54 -0
  81. package/lib/engine-components-experimental/annotation/LinesManager.js +155 -0
  82. package/lib/engine-components-experimental/annotation/LinesManager.js.map +1 -0
  83. package/lib/engine-components-experimental/networking/PlayerSync.d.ts +26 -0
  84. package/lib/engine-components-experimental/networking/PlayerSync.js +121 -0
  85. package/lib/engine-components-experimental/networking/PlayerSync.js.map +1 -0
  86. package/lib/engine-schemes/vec2.d.ts +10 -0
  87. package/lib/engine-schemes/vec2.js +26 -0
  88. package/lib/engine-schemes/vec2.js.map +1 -0
  89. package/lib/include/three/ARButton.d.ts +3 -0
  90. package/lib/include/three/ARButton.js +158 -0
  91. package/lib/include/three/ARButton.js.map +1 -0
  92. package/lib/include/three/EXT_mesh_gpu_instancing_exporter.d.ts +6 -0
  93. package/lib/include/three/EXT_mesh_gpu_instancing_exporter.js +46 -0
  94. package/lib/include/three/EXT_mesh_gpu_instancing_exporter.js.map +1 -0
  95. package/lib/include/three/VRButton.d.ts +5 -0
  96. package/lib/include/three/VRButton.js +122 -0
  97. package/lib/include/three/VRButton.js.map +1 -0
  98. package/lib/tsconfig.tsbuildinfo +1 -0
  99. package/package.json +1 -1
  100. package/src/engine/codegen/register_types.js +214 -214
  101. package/src/engine/debug/debug.ts +5 -0
  102. package/src/engine/debug/debug_console.ts +3 -2
  103. package/src/engine/debug/debug_overlay.ts +3 -1
  104. package/src/engine/engine_element.ts +4 -2
  105. package/src/engine/engine_element_loading.ts +13 -6
  106. package/src/engine/engine_element_overlay.ts +4 -2
  107. package/src/engine/engine_input.ts +4 -0
  108. package/src/engine/engine_networking_websocket.ts +3 -1
  109. package/src/engine/engine_serialization_builtin_serializer.ts +8 -5
  110. package/src/engine/engine_utils.ts +3 -1
  111. package/src/engine/extensions/NEEDLE_progressive.ts +185 -43
  112. package/src/engine-components/GroundProjection.ts +18 -12
  113. package/src/engine-components/ParticleSystemModules.ts +50 -47
  114. package/src/engine-components/Renderer.ts +5 -9
  115. package/src/engine-components/Volume.ts +8 -1
  116. package/src/engine-components/WebXR.ts +2 -2
  117. package/src/engine-components/codegen/components.ts +99 -99
  118. package/src/engine-components/export/usdz/USDZExporter.ts +19 -2
  119. package/src/engine-components/ui/Button.ts +8 -8
  120. package/src/engine-components/ui/InputField.ts +25 -2
  121. package/src/engine-components/ui/Utils.ts +12 -11
  122. package/src/engine-components-experimental/annotation/LineDrawer.ts +10 -7
  123. package/src/engine-components-experimental/annotation/LinesManager.ts +6 -6
  124. package/src/engine-components-experimental/networking/PlayerSync.ts +1 -1
  125. package/lib/engine/engine_caching.d.ts +0 -0
  126. package/lib/engine/engine_caching.js +0 -2
  127. package/lib/engine/engine_caching.js.map +0 -1
  128. package/lib/engine/tests/simulate_avatars.d.ts +0 -0
  129. package/lib/engine/tests/simulate_avatars.js +0 -3
  130. package/lib/engine/tests/simulate_avatars.js.map +0 -1
  131. package/lib/engine-components/NavMesh.d.ts +0 -0
  132. package/lib/engine-components/NavMesh.js +0 -101
  133. package/lib/engine-components/NavMesh.js.map +0 -1
  134. package/lib/engine-components/ParticleSystemBehaviours.d.ts +0 -0
  135. package/lib/engine-components/ParticleSystemBehaviours.js +0 -2
  136. package/lib/engine-components/ParticleSystemBehaviours.js.map +0 -1
  137. package/lib/engine-components/SpringJoint.d.ts +0 -0
  138. package/lib/engine-components/SpringJoint.js +0 -43
  139. package/lib/engine-components/SpringJoint.js.map +0 -1
  140. package/lib/engine-components/ui/CanvasScaler.d.ts +0 -0
  141. package/lib/engine-components/ui/CanvasScaler.js +0 -17
  142. package/lib/engine-components/ui/CanvasScaler.js.map +0 -1
  143. package/src/engine/dist/engine_three_utils.js +0 -279
  144. package/src/engine/engine_caching.ts +0 -0
  145. package/src/engine/tests/simulate_avatars.ts +0 -2
  146. package/src/engine-components/NavMesh.ts +0 -117
  147. package/src/engine-components/ParticleSystemBehaviours.ts +0 -0
  148. package/src/engine-components/SpringJoint.ts +0 -45
  149. package/src/engine-components/ui/CanvasScaler.ts +0 -21
@@ -14,5 +14,27 @@ export declare class NEEDLE_progressive implements GLTFLoaderPlugin {
14
14
  afterRoot(gltf: GLTF): null;
15
15
  private static cache;
16
16
  private static resolved;
17
+ private static currentlyLoading;
17
18
  private static getOrLoadTexture;
19
+ /** subscribe to events whenever a loading event starts, invoked for every single loading process that starts */
20
+ static beginListenStart(context: Context, evt: ProgressiveLoadingEvent): void;
21
+ static stopListenStart(context: Context, evt: ProgressiveLoadingEvent): void;
22
+ /** subscribe to loading event ended event */
23
+ static beginListenEnd(context: Context, evt: ProgressiveLoadingEvent): void;
24
+ static stopListenEnd(context: Context, evt: ProgressiveLoadingEvent): void;
25
+ /** event listeners per context */
26
+ private static _progressiveEventListeners;
27
+ private static _currentProgressiveLoadingInfo;
28
+ private static onProgressiveLoadStart;
29
+ private static onProgressiveLoadEnd;
18
30
  }
31
+ /** info object that holds information about a file that is currently being loaded */
32
+ export declare class ProgressiveLoadingInfo {
33
+ readonly context: Context;
34
+ readonly source: SourceIdentifier | undefined;
35
+ readonly uri: string;
36
+ readonly material?: Material;
37
+ readonly slot?: string;
38
+ constructor(context: Context, source: SourceIdentifier | undefined, uri: string, material?: Material, slot?: string);
39
+ }
40
+ export declare type ProgressiveLoadingEvent = (info: ProgressiveLoadingInfo) => void;
@@ -1,7 +1,7 @@
1
1
  import { TextureLoader } from "three";
2
2
  import { GLTFLoader } from "three/examples/jsm/loaders/GLTFLoader";
3
3
  import { addDracoAndKTX2Loaders } from "../engine_loaders";
4
- import { getParam, getPath } from "../engine_utils";
4
+ import { delay, getParam, getPath } from "../engine_utils";
5
5
  export const EXTENSION_NAME = "NEEDLE_progressive";
6
6
  const debug = getParam("debugprogressive");
7
7
  const debug_toggle_maps = new Map();
@@ -103,6 +103,7 @@ export class NEEDLE_progressive {
103
103
  }
104
104
  static cache = new Map();
105
105
  static resolved = {};
106
+ static currentlyLoading = {};
106
107
  static async getOrLoadTexture(context, source, material, slot, current, _level) {
107
108
  const key = current.uuid;
108
109
  const ext = NEEDLE_progressive.cache.get(key); // || current.userData.deferred;
@@ -121,56 +122,83 @@ export class NEEDLE_progressive {
121
122
  console.log("Texture has already been loaded: " + resolveKey, material.name, slot, current.name);
122
123
  return this.resolved[resolveKey];
123
124
  }
124
- const loader = new GLTFLoader();
125
- addDracoAndKTX2Loaders(loader, context);
126
- if (debug)
127
- console.log("Load " + uri, material.name, slot, ext.guid);
128
- const gltf = await loader.loadAsync(uri);
129
- const parser = gltf.parser;
130
- if (debug)
131
- console.log("Loading finished " + uri, material.name, slot, ext.guid);
132
- let index = -1;
133
- let found = false;
134
- for (const tex of gltf.parser.json.textures) {
135
- index++;
136
- if (tex?.extensions) {
137
- const other = tex?.extensions[EXTENSION_NAME];
138
- if (other?.guid) {
139
- if (other.guid === ext.guid) {
140
- found = true;
141
- break;
142
- // if (debug)
143
- // console.log(material.name, slot, "change \"" + current.name + "\" → \"" + tex.name + "\"", uri, index, tex, material);
144
- // this.resolved[resolveKey] = tex as Texture;
145
- // return tex;
125
+ const info = this.onProgressiveLoadStart(context, source, uri, material, slot);
126
+ try {
127
+ if (this.currentlyLoading[resolveKey] !== undefined) {
128
+ if (debug)
129
+ console.log("Already loading:", material.name + "." + slot, resolveKey);
130
+ const tex = await this.currentlyLoading[resolveKey];
131
+ return tex;
132
+ }
133
+ const request = new Promise(async (resolve, _) => {
134
+ const loader = new GLTFLoader();
135
+ addDracoAndKTX2Loaders(loader, context);
136
+ if (debug)
137
+ console.log("Load " + uri, material.name, slot, ext.guid);
138
+ if (debug) {
139
+ await delay(Math.random() * 1000);
140
+ }
141
+ const gltf = await loader.loadAsync(uri);
142
+ const parser = gltf.parser;
143
+ if (debug)
144
+ console.log("Loading finished " + uri, material.name, slot, ext.guid);
145
+ let index = -1;
146
+ let found = false;
147
+ for (const tex of gltf.parser.json.textures) {
148
+ index++;
149
+ if (tex?.extensions) {
150
+ const other = tex?.extensions[EXTENSION_NAME];
151
+ if (other?.guid) {
152
+ if (other.guid === ext.guid) {
153
+ found = true;
154
+ break;
155
+ }
156
+ }
146
157
  }
147
158
  }
148
- }
159
+ if (!found)
160
+ return resolve(null);
161
+ const tex = await parser.getDependency("texture", index);
162
+ tex.encoding = current.encoding;
163
+ if (tex) {
164
+ tex.guid = ext.guid;
165
+ }
166
+ this.resolved[resolveKey] = tex;
167
+ if (debug)
168
+ console.log(material.name, slot, "change \"" + current.name + "\" → \"" + tex.name + "\"", uri, index, tex, material, resolveKey);
169
+ resolve(tex);
170
+ });
171
+ this.currentlyLoading[resolveKey] = request;
172
+ const tex = await request;
173
+ return tex;
149
174
  }
150
- if (!found)
151
- return null;
152
- // const index = Number.parseInt(ext.pointer.substring("textures/".length));
153
- const tex = await parser.getDependency("texture", index);
154
- tex.encoding = current.encoding;
155
- if (tex) {
156
- tex.guid = ext.guid;
175
+ finally {
176
+ delete this.currentlyLoading[resolveKey];
177
+ this.onProgressiveLoadEnd(info);
157
178
  }
158
- this.resolved[resolveKey] = tex;
159
- if (debug)
160
- console.log(material.name, slot, "change \"" + current.name + "\" → \"" + tex.name + "\"", uri, index, tex, material, resolveKey);
161
- return tex;
162
179
  }
163
180
  else {
164
- if (debug)
165
- console.log("Load texture from uri: " + uri);
166
- const loader = new TextureLoader();
167
- const loaded = await loader.loadAsync(uri);
168
- if (loaded && debug) {
169
- console.log(ext, loaded);
181
+ const info = this.onProgressiveLoadStart(context, source, uri, material, slot);
182
+ try {
183
+ if (debug)
184
+ console.log("Load texture from uri: " + uri);
185
+ const loader = new TextureLoader();
186
+ const tex = await loader.loadAsync(uri);
187
+ if (tex) {
188
+ tex.guid = ext.guid;
189
+ tex.flipY = false;
190
+ tex.needsUpdate = true;
191
+ tex.encoding = current.encoding;
192
+ if (debug)
193
+ console.log(ext, tex);
194
+ }
195
+ else if (debug)
196
+ console.warn("failed loading", uri);
197
+ return tex;
198
+ }
199
+ finally {
200
+ this.onProgressiveLoadEnd(info);
170
201
  }
171
- else
172
- console.warn("failed loading", uri);
173
- return loaded;
174
202
  }
175
203
  // loader.then((h: Texture) => {
176
204
  // // console.log(t, h);
@@ -190,5 +218,105 @@ export class NEEDLE_progressive {
190
218
  }
191
219
  return null;
192
220
  }
221
+ /** subscribe to events whenever a loading event starts, invoked for every single loading process that starts */
222
+ static beginListenStart(context, evt) {
223
+ if (!this._progressiveEventListeners.has(context)) {
224
+ this._progressiveEventListeners.set(context, new ProgressiveLoadingEventHandler());
225
+ }
226
+ this._progressiveEventListeners.get(context).start.push(evt);
227
+ }
228
+ static stopListenStart(context, evt) {
229
+ if (!this._progressiveEventListeners.has(context)) {
230
+ return;
231
+ }
232
+ const listeners = this._progressiveEventListeners.get(context).start;
233
+ const index = listeners.indexOf(evt);
234
+ if (index >= 0) {
235
+ listeners.splice(index, 1);
236
+ }
237
+ }
238
+ /** subscribe to loading event ended event */
239
+ static beginListenEnd(context, evt) {
240
+ if (!this._progressiveEventListeners.has(context)) {
241
+ this._progressiveEventListeners.set(context, new ProgressiveLoadingEventHandler());
242
+ }
243
+ this._progressiveEventListeners.get(context).end.push(evt);
244
+ }
245
+ static stopListenEnd(context, evt) {
246
+ if (!this._progressiveEventListeners.has(context)) {
247
+ return;
248
+ }
249
+ const listeners = this._progressiveEventListeners.get(context).end;
250
+ const index = listeners.indexOf(evt);
251
+ if (index >= 0) {
252
+ listeners.splice(index, 1);
253
+ }
254
+ }
255
+ /** event listeners per context */
256
+ static _progressiveEventListeners = new Map();
257
+ //** loading info per context, contains an array of urls that are currently being loaded */
258
+ static _currentProgressiveLoadingInfo = new Map();
259
+ // called whenever a progressive loading event starts
260
+ static onProgressiveLoadStart(context, source, uri, material, slot) {
261
+ if (!this._currentProgressiveLoadingInfo.has(context)) {
262
+ this._currentProgressiveLoadingInfo.set(context, []);
263
+ }
264
+ const info = new ProgressiveLoadingInfo(context, source, uri, material, slot);
265
+ const current = this._currentProgressiveLoadingInfo.get(context);
266
+ const listener = this._progressiveEventListeners.get(context);
267
+ if (listener)
268
+ listener.onStart(info);
269
+ current.push(info);
270
+ return info;
271
+ }
272
+ static onProgressiveLoadEnd(info) {
273
+ if (!info)
274
+ return;
275
+ const context = info.context;
276
+ if (!this._currentProgressiveLoadingInfo.has(context)) {
277
+ return;
278
+ }
279
+ const current = this._currentProgressiveLoadingInfo.get(context);
280
+ const index = current.indexOf(info);
281
+ if (index < 0) {
282
+ return;
283
+ }
284
+ current.splice(index, 1);
285
+ const listener = this._progressiveEventListeners.get(context);
286
+ if (listener)
287
+ listener.onEnd(info);
288
+ }
289
+ }
290
+ /** info object that holds information about a file that is currently being loaded */
291
+ export class ProgressiveLoadingInfo {
292
+ context;
293
+ source;
294
+ uri;
295
+ material;
296
+ slot;
297
+ // TODO: can contain information if the event is a background process / preloading or if the object is currently visible
298
+ constructor(context, source, uri, material, slot) {
299
+ this.context = context;
300
+ this.source = source;
301
+ this.uri = uri;
302
+ this.material = material;
303
+ this.slot = slot;
304
+ }
305
+ }
306
+ ;
307
+ /** progressive loading event handler implementation */
308
+ class ProgressiveLoadingEventHandler {
309
+ start = [];
310
+ end = [];
311
+ onStart(listener) {
312
+ for (const l of this.start) {
313
+ l(listener);
314
+ }
315
+ }
316
+ onEnd(listener) {
317
+ for (const l of this.end) {
318
+ l(listener);
319
+ }
320
+ }
193
321
  }
194
322
  //# sourceMappingURL=NEEDLE_progressive.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"NEEDLE_progressive.js","sourceRoot":"","sources":["../../../../engine/extensions/NEEDLE_progressive.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NEEDLE_progressive.js","sourceRoot":"","sources":["../../../../engine/extensions/NEEDLE_progressive.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { Behaviour } from "./Component";
2
2
  export declare class GroundProjectedEnv extends Behaviour {
3
+ applyOnAwake: boolean;
3
4
  set scale(val: number);
4
5
  get scale(): number;
5
6
  private _scale;
@@ -12,8 +13,8 @@ export declare class GroundProjectedEnv extends Behaviour {
12
13
  private _lastEnvironment?;
13
14
  private env?;
14
15
  private _watcher?;
16
+ awake(): void;
15
17
  onEnable(): void;
16
- start(): void;
17
18
  onDisable(): void;
18
19
  private updateAndCreate;
19
20
  updateProjection(): void;
@@ -9,6 +9,7 @@ import { GroundProjectedEnv as GroundProjection } from 'three/examples/jsm/objec
9
9
  import { serializable } from "../engine/engine_serialization_decorator";
10
10
  import { Watch as Watch } from "../engine/engine_utils";
11
11
  export class GroundProjectedEnv extends Behaviour {
12
+ applyOnAwake = false;
12
13
  set scale(val) {
13
14
  this._scale = val;
14
15
  this.env?.scale.setScalar(val);
@@ -34,13 +35,22 @@ export class GroundProjectedEnv extends Behaviour {
34
35
  _lastEnvironment;
35
36
  env;
36
37
  _watcher;
37
- onEnable() {
38
- // TODO: if we do this in the first frame we can not disable it again. Something buggy with the watch?!
39
- if (this.context.time.frameCount > 0)
38
+ awake() {
39
+ if (this.applyOnAwake)
40
40
  this.updateAndCreate();
41
41
  }
42
- start() {
43
- this.updateAndCreate();
42
+ onEnable() {
43
+ // TODO: if we do this in the first frame we can not disable it again. Something buggy with the watch?!
44
+ if (this.context.time.frameCount > 0) {
45
+ if (this.applyOnAwake)
46
+ this.updateAndCreate();
47
+ }
48
+ if (!this._watcher) {
49
+ this._watcher = new Watch(this.context.scene, "environment");
50
+ this._watcher.subscribeWrite(_ => {
51
+ this.updateProjection();
52
+ });
53
+ }
44
54
  }
45
55
  onDisable() {
46
56
  this._watcher?.revoke();
@@ -48,13 +58,7 @@ export class GroundProjectedEnv extends Behaviour {
48
58
  }
49
59
  updateAndCreate() {
50
60
  this.updateProjection();
51
- if (!this._watcher) {
52
- this._watcher = new Watch(this.context.scene, "environment");
53
- this._watcher.subscribeWrite(_ => {
54
- this.updateProjection();
55
- });
56
- }
57
- this._watcher.apply();
61
+ this._watcher?.apply();
58
62
  }
59
63
  updateProjection() {
60
64
  if (!this.context.scene.environment) {
@@ -77,6 +81,9 @@ export class GroundProjectedEnv extends Behaviour {
77
81
  }
78
82
  }
79
83
  }
84
+ __decorate([
85
+ serializable()
86
+ ], GroundProjectedEnv.prototype, "applyOnAwake", void 0);
80
87
  __decorate([
81
88
  serializable()
82
89
  ], GroundProjectedEnv.prototype, "scale", null);
@@ -1 +1 @@
1
- {"version":3,"file":"GroundProjection.js","sourceRoot":"","sources":["../../../engine-components/GroundProjection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GroundProjection.js","sourceRoot":"","sources":["../../../engine-components/GroundProjection.ts"],"names":[],"mappings":"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"}
@@ -245,8 +245,8 @@ export declare class ShapeModule implements EmitterShape {
245
245
  private _space?;
246
246
  private readonly _worldSpaceMatrix;
247
247
  private readonly _worldSpaceMatrixInverse;
248
- constructor();
249
248
  update(system: IParticleSystem, _context: Context, simulationSpace: ParticleSystemSimulationSpace, obj: Object3D): void;
249
+ private updateRotation;
250
250
  /** nebula implementations: */
251
251
  /** initializer implementation */
252
252
  private _vector;
@@ -502,9 +502,9 @@ export class ShapeModule {
502
502
  _space;
503
503
  _worldSpaceMatrix = new Matrix4();
504
504
  _worldSpaceMatrixInverse = new Matrix4();
505
- constructor() {
506
- // console.log(this);
507
- }
505
+ // constructor() {
506
+ // console.log(this);
507
+ // }
508
508
  update(system, _context, simulationSpace, obj) {
509
509
  this.system = system;
510
510
  this._space = simulationSpace;
@@ -517,6 +517,15 @@ export class ShapeModule {
517
517
  this._worldSpaceMatrixInverse.copy(this._worldSpaceMatrix).invert();
518
518
  }
519
519
  }
520
+ updateRotation() {
521
+ const isRotated = this.rotation.x !== 0 || this.rotation.y !== 0 || this.rotation.z !== 0;
522
+ if (isRotated) {
523
+ this._rotation.x = Mathf.toRadians(this.rotation.x);
524
+ this._rotation.y = -Mathf.toRadians(this.rotation.y);
525
+ this._rotation.z = -Mathf.toRadians(this.rotation.z);
526
+ }
527
+ return isRotated;
528
+ }
520
529
  /** nebula implementations: */
521
530
  /** initializer implementation */
522
531
  _vector = new Vector3(0, 0, 0);
@@ -526,57 +535,50 @@ export class ShapeModule {
526
535
  return this._vector;
527
536
  }
528
537
  getPosition() {
529
- if (!this.enabled) {
530
- this._vector.set(0, 0, 0);
531
- return;
532
- }
538
+ this._vector.set(0, 0, 0);
533
539
  const pos = this._temp.copy(this.position);
534
540
  const isWorldSpace = this._space === ParticleSystemSimulationSpace.World;
535
541
  if (isWorldSpace) {
536
542
  pos.applyQuaternion(this.system.worldQuaternion);
537
543
  }
538
- const isRotated = this.rotation.x !== 0 || this.rotation.y !== 0 || this.rotation.z !== 0;
539
- if (isRotated) {
540
- this._rotation.x = Mathf.toRadians(this.rotation.x);
541
- this._rotation.y = -Mathf.toRadians(this.rotation.y);
542
- this._rotation.z = -Mathf.toRadians(this.rotation.z);
543
- }
544
544
  let radius = this.radius;
545
545
  if (isWorldSpace)
546
546
  radius *= this.system.worldScale.x;
547
- switch (this.shapeType) {
548
- case ParticleSystemShapeType.Box:
549
- this._vector.x = Math.random() * this.scale.x - this.scale.x / 2;
550
- this._vector.y = Math.random() * this.scale.y - this.scale.y / 2;
551
- this._vector.z = Math.random() * this.scale.z - this.scale.z / 2;
552
- this._vector.add(pos);
553
- break;
554
- case ParticleSystemShapeType.Cone:
555
- this.randomConePoint(this.position, this.angle, radius, this.radiusThickness, this.arc, this.arcMode, this._vector);
556
- break;
557
- case ParticleSystemShapeType.Sphere:
558
- this.randomSpherePoint(this.position, radius, this.radiusThickness, this.arc, this._vector);
559
- this._vector.x *= this.scale.x;
560
- this._vector.y *= this.scale.y;
561
- this._vector.z *= this.scale.z;
562
- break;
563
- case ParticleSystemShapeType.Circle:
564
- this.randomSpherePoint(this.position, radius, this.radiusThickness, this.arc, this._vector);
565
- this._vector.x *= this.scale.x;
566
- this._vector.y *= this.scale.y;
567
- this._vector.z *= 0;
568
- break;
569
- default:
570
- this._vector.set(0, 0, 0);
571
- break;
572
- // case ParticleSystemShapeType.Hemisphere:
573
- // randomSpherePoint(this.position.x, this.position.y, this.position.z, this.radius, this.radiusThickness, 180, this._vector);
574
- // break;
547
+ if (this.enabled) {
548
+ switch (this.shapeType) {
549
+ case ParticleSystemShapeType.Box:
550
+ this._vector.x = Math.random() * this.scale.x - this.scale.x / 2;
551
+ this._vector.y = Math.random() * this.scale.y - this.scale.y / 2;
552
+ this._vector.z = Math.random() * this.scale.z - this.scale.z / 2;
553
+ this._vector.add(pos);
554
+ break;
555
+ case ParticleSystemShapeType.Cone:
556
+ this.randomConePoint(this.position, this.angle, radius, this.radiusThickness, this.arc, this.arcMode, this._vector);
557
+ break;
558
+ case ParticleSystemShapeType.Sphere:
559
+ this.randomSpherePoint(this.position, radius, this.radiusThickness, this.arc, this._vector);
560
+ this._vector.x *= this.scale.x;
561
+ this._vector.y *= this.scale.y;
562
+ this._vector.z *= this.scale.z;
563
+ break;
564
+ case ParticleSystemShapeType.Circle:
565
+ this.randomSpherePoint(this.position, radius, this.radiusThickness, this.arc, this._vector);
566
+ this._vector.x *= this.scale.x;
567
+ this._vector.y *= this.scale.y;
568
+ this._vector.z *= 0;
569
+ break;
570
+ default:
571
+ this._vector.set(0, 0, 0);
572
+ break;
573
+ // case ParticleSystemShapeType.Hemisphere:
574
+ // randomSpherePoint(this.position.x, this.position.y, this.position.z, this.radius, this.radiusThickness, 180, this._vector);
575
+ // break;
576
+ }
577
+ this.randomizePosition(this._vector, this.randomPositionAmount);
575
578
  }
576
- this.randomizePosition(this._vector, this.randomPositionAmount);
577
- if (isRotated)
579
+ if (this.updateRotation())
578
580
  this._vector.applyEuler(this._rotation);
579
- if (this._space === ParticleSystemSimulationSpace.World) {
581
+ if (isWorldSpace) {
580
582
  this._vector.add(this.system.worldPos);
581
583
  }
582
584
  }
@@ -609,6 +611,8 @@ export class ShapeModule {
609
611
  if (this._space === ParticleSystemSimulationSpace.World) {
610
612
  this._dir.applyMatrix4(this._worldSpaceMatrixInverse);
611
613
  }
614
+ if (this.updateRotation())
615
+ this._dir.applyEuler(this._rotation);
612
616
  this._dir.normalize();
613
617
  this.spherizeDirection(this._dir, this.sphericalDirectionAmount);
614
618
  this.randomizeDirection(this._dir, this.randomDirectionAmount);