@needle-tools/engine 2.40.0-pre → 2.41.0-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 (52) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/dist/needle-engine.d.ts +269 -123
  3. package/dist/needle-engine.js +389 -389
  4. package/dist/needle-engine.js.map +4 -4
  5. package/dist/needle-engine.min.js +41 -41
  6. package/dist/needle-engine.min.js.map +4 -4
  7. package/lib/engine/engine_gizmos.d.ts +1 -0
  8. package/lib/engine/engine_gizmos.js +16 -4
  9. package/lib/engine/engine_gizmos.js.map +1 -1
  10. package/lib/engine/engine_math.d.ts +9 -6
  11. package/lib/engine/engine_math.js +9 -0
  12. package/lib/engine/engine_math.js.map +1 -1
  13. package/lib/engine/engine_physics.js +14 -6
  14. package/lib/engine/engine_physics.js.map +1 -1
  15. package/lib/engine/engine_serialization_core.js +2 -0
  16. package/lib/engine/engine_serialization_core.js.map +1 -1
  17. package/lib/engine/engine_utils.d.ts +1 -0
  18. package/lib/engine/engine_utils.js +3 -0
  19. package/lib/engine/engine_utils.js.map +1 -1
  20. package/lib/engine-components/AnimationCurve.js +20 -5
  21. package/lib/engine-components/AnimationCurve.js.map +1 -1
  22. package/lib/engine-components/Light.d.ts +2 -0
  23. package/lib/engine-components/Light.js +33 -9
  24. package/lib/engine-components/Light.js.map +1 -1
  25. package/lib/engine-components/ParticleSystem.d.ts +15 -26
  26. package/lib/engine-components/ParticleSystem.js +251 -184
  27. package/lib/engine-components/ParticleSystem.js.map +1 -1
  28. package/lib/engine-components/ParticleSystemModules.d.ts +208 -63
  29. package/lib/engine-components/ParticleSystemModules.js +640 -153
  30. package/lib/engine-components/ParticleSystemModules.js.map +1 -1
  31. package/lib/engine-components/WebXR.js +8 -3
  32. package/lib/engine-components/WebXR.js.map +1 -1
  33. package/lib/engine-components/codegen/components.d.ts +6 -0
  34. package/lib/engine-components/codegen/components.js +6 -0
  35. package/lib/engine-components/codegen/components.js.map +1 -1
  36. package/package.json +3 -1
  37. package/src/engine/codegen/register_types.js +24 -0
  38. package/src/engine/engine_gizmos.ts +19 -4
  39. package/src/engine/engine_math.ts +19 -6
  40. package/src/engine/engine_physics.ts +17 -7
  41. package/src/engine/engine_serialization_core.ts +1 -0
  42. package/src/engine/engine_utils.ts +5 -0
  43. package/src/engine-components/AnimationCurve.ts +25 -11
  44. package/src/engine-components/Light.ts +39 -8
  45. package/src/engine-components/ParticleSystem.ts +314 -194
  46. package/src/engine-components/ParticleSystemModules.ts +537 -154
  47. package/src/engine-components/WebXR.ts +11 -8
  48. package/src/engine-components/codegen/components.ts +6 -0
  49. package/src/engine/dist/engine_physics.js +0 -739
  50. package/src/engine/dist/engine_setup.js +0 -777
  51. package/src/engine-components/dist/CharacterController.js +0 -123
  52. package/src/engine-components/dist/RigidBody.js +0 -458
@@ -87,6 +87,8 @@ export class WebXR extends Behaviour {
87
87
  if (!WebXR.XRSupported) {
88
88
  console.warn("WebXR is not supported on this device");
89
89
  }
90
+ else
91
+ webXR.__internalAwake();
90
92
  const vrButton = VRButton.createButton(webXR.context.renderer);
91
93
  vrButton.classList.add('webxr-ar-button');
92
94
  vrButton.classList.add('webxr-button');
@@ -98,12 +100,14 @@ export class WebXR extends Behaviour {
98
100
  }
99
101
 
100
102
  public static createARButton(webXR: WebXR, opts?: CreateButtonOptions): HTMLButtonElement {
103
+ webXR.__internalAwake();
101
104
  const domOverlayRoot = webXR.webAR?.getAROverlayContainer();
102
105
  const features: any = {};
103
106
  if (domOverlayRoot) {
104
107
  features.domOverlay = { root: domOverlayRoot };
105
108
  features.optionalFeatures = ['hit-test', 'dom-overlay'];
106
109
  }
110
+ else console.warn("No dom overlay root found, AR will not work");
107
111
  const arButton = ARButton.createButton(webXR.context.renderer, features);
108
112
  arButton.classList.add('webxr-ar-button');
109
113
  arButton.classList.add('webxr-button');
@@ -126,7 +130,7 @@ export class WebXR extends Behaviour {
126
130
  }
127
131
 
128
132
  public get Rig(): Object3D {
129
- if(!this.rig) this.ensureRig();
133
+ if (!this.rig) this.ensureRig();
130
134
  return this.rig;
131
135
  }
132
136
 
@@ -184,6 +188,7 @@ export class WebXR extends Behaviour {
184
188
  const sync = GameObject.addNewComponent(this.gameObject, WebXRSync, false) as WebXRSync;
185
189
  sync.webXR = this;
186
190
  }
191
+ this.webAR = new WebAR(this);
187
192
  }
188
193
 
189
194
  onEnable() {
@@ -192,7 +197,6 @@ export class WebXR extends Behaviour {
192
197
  this.isInit = true;
193
198
 
194
199
  this.context.renderer.xr.enabled = true;
195
- this.webAR = new WebAR(this);
196
200
 
197
201
  // general WebXR support?
198
202
  const browserSupportsXR = WebXR.XRSupported;
@@ -490,7 +494,7 @@ export class WebAR {
490
494
  getAROverlayContainer(): HTMLElement | null {
491
495
  this.arDomOverlay = this.webxr.context.domElement as HTMLElement;
492
496
  // for react cases we dont have an Engine Element
493
- const element : any = this.arDomOverlay;
497
+ const element: any = this.arDomOverlay;
494
498
  if (element.getAROverlayContainer)
495
499
  this.arOverlayElement = element.getAROverlayContainer();
496
500
  else this.arOverlayElement = this.arDomOverlay;
@@ -523,9 +527,9 @@ export class WebAR {
523
527
  session.requestReferenceSpace('viewer').then((referenceSpace) => {
524
528
  session.requestHitTestSource({ space: referenceSpace }).then((source) => {
525
529
  this.hitTestSource = source;
526
- }).catch((_) => {
530
+ }).catch((err) => {
527
531
  this.noHitTestAvailable = true;
528
- console.warn("WebXR: Hit test not supported");
532
+ console.warn("WebXR: Hit test not supported", err);
529
533
  });
530
534
  });
531
535
 
@@ -544,7 +548,7 @@ export class WebAR {
544
548
  this.reticleParent.matrixAutoUpdate = false;
545
549
  this.reticleParent.add(this.reticle);
546
550
  this.reticleParent.matrix.copy(this.sessionRoot.gameObject.matrixWorld);
547
-
551
+
548
552
  if (this.webxr.scene) {
549
553
  this.context.scene.add(this.reticleParent);
550
554
  // this.context.scene.add(this.reticle);
@@ -583,8 +587,7 @@ export class WebAR {
583
587
  if (this.sessionRoot) {
584
588
  this.sessionRoot.onEnd(this.webxr.Rig, session);
585
589
  }
586
- if (this.arDomOverlay)
587
- {
590
+ if (this.arDomOverlay) {
588
591
  const el = this.arOverlayElement as INeedleEngineComponent;
589
592
  el.onExitAR?.call(el, session);
590
593
  }
@@ -50,9 +50,15 @@ export { OffsetConstraint } from "../OffsetConstraint";
50
50
  export { OrbitControls } from "../OrbitControls";
51
51
  export { ParticleSystemRenderer } from "../ParticleSystem";
52
52
  export { ParticleSystem } from "../ParticleSystem";
53
+ export { Gradient } from "../ParticleSystemModules";
54
+ export { MinMaxCurve } from "../ParticleSystemModules";
55
+ export { MinMaxGradient } from "../ParticleSystemModules";
53
56
  export { MainModule } from "../ParticleSystemModules";
54
57
  export { EmissionModule } from "../ParticleSystemModules";
58
+ export { ColorOverLifetimeModule } from "../ParticleSystemModules";
59
+ export { SizeOverLifetimeModule } from "../ParticleSystemModules";
55
60
  export { ShapeModule } from "../ParticleSystemModules";
61
+ export { NoiseModule } from "../ParticleSystemModules";
56
62
  export { PlayerColor } from "../PlayerColor";
57
63
  export { ReflectionProbe } from "../ReflectionProbe";
58
64
  export { FieldWithDefault } from "../Renderer";