@needle-tools/engine 2.55.0-pre → 2.55.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 (65) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/needle-engine.d.ts +143 -133
  3. package/dist/needle-engine.js +358 -358
  4. package/dist/needle-engine.js.map +4 -4
  5. package/dist/needle-engine.min.js +20 -20
  6. package/dist/needle-engine.min.js.map +4 -4
  7. package/dist/needle-engine.tsbuildinfo +1 -1
  8. package/lib/engine/engine_gizmos.d.ts +2 -0
  9. package/lib/engine/engine_gizmos.js +24 -1
  10. package/lib/engine/engine_gizmos.js.map +1 -1
  11. package/lib/engine/engine_physics.d.ts +1 -0
  12. package/lib/engine/engine_physics.js +5 -2
  13. package/lib/engine/engine_physics.js.map +1 -1
  14. package/lib/engine/engine_serialization_core.js +20 -10
  15. package/lib/engine/engine_serialization_core.js.map +1 -1
  16. package/lib/engine/engine_setup.js +7 -1
  17. package/lib/engine/engine_setup.js.map +1 -1
  18. package/lib/engine/engine_time.js +3 -3
  19. package/lib/engine/engine_time.js.map +1 -1
  20. package/lib/engine/engine_types.d.ts +1 -0
  21. package/lib/engine/engine_types.js.map +1 -1
  22. package/lib/engine/extensions/NEEDLE_lightmaps.js +3 -1
  23. package/lib/engine/extensions/NEEDLE_lightmaps.js.map +1 -1
  24. package/lib/engine-components/Camera.d.ts +1 -2
  25. package/lib/engine-components/Camera.js +10 -10
  26. package/lib/engine-components/Camera.js.map +1 -1
  27. package/lib/engine-components/CameraUtils.d.ts +2 -2
  28. package/lib/engine-components/CameraUtils.js +13 -4
  29. package/lib/engine-components/CameraUtils.js.map +1 -1
  30. package/lib/engine-components/LODGroup.js +9 -0
  31. package/lib/engine-components/LODGroup.js.map +1 -1
  32. package/lib/engine-components/OrbitControls.d.ts +8 -7
  33. package/lib/engine-components/OrbitControls.js +38 -7
  34. package/lib/engine-components/OrbitControls.js.map +1 -1
  35. package/lib/engine-components/ParticleSystem.js +7 -1
  36. package/lib/engine-components/ParticleSystem.js.map +1 -1
  37. package/lib/engine-components/ParticleSystemModules.d.ts +1 -1
  38. package/lib/engine-components/ParticleSystemModules.js +2 -2
  39. package/lib/engine-components/ParticleSystemModules.js.map +1 -1
  40. package/lib/engine-components/Renderer.js +16 -2
  41. package/lib/engine-components/Renderer.js.map +1 -1
  42. package/lib/engine-components/RigidBody.d.ts +4 -0
  43. package/lib/engine-components/RigidBody.js +16 -0
  44. package/lib/engine-components/RigidBody.js.map +1 -1
  45. package/lib/engine-components/js-extensions/RGBAColor.d.ts +2 -0
  46. package/lib/engine-components/js-extensions/RGBAColor.js +2 -0
  47. package/lib/engine-components/js-extensions/RGBAColor.js.map +1 -1
  48. package/lib/tsconfig.tsbuildinfo +1 -1
  49. package/package.json +1 -1
  50. package/src/engine/engine_gizmos.ts +27 -2
  51. package/src/engine/engine_physics.ts +5 -4
  52. package/src/engine/engine_serialization_core.ts +25 -13
  53. package/src/engine/engine_setup.ts +9 -4
  54. package/src/engine/engine_time.ts +2 -2
  55. package/src/engine/engine_types.ts +1 -0
  56. package/src/engine/extensions/NEEDLE_lightmaps.ts +3 -1
  57. package/src/engine-components/Camera.ts +12 -15
  58. package/src/engine-components/CameraUtils.ts +15 -5
  59. package/src/engine-components/LODGroup.ts +9 -0
  60. package/src/engine-components/OrbitControls.ts +58 -19
  61. package/src/engine-components/ParticleSystem.ts +9 -2
  62. package/src/engine-components/ParticleSystemModules.ts +2 -2
  63. package/src/engine-components/Renderer.ts +19 -2
  64. package/src/engine-components/RigidBody.ts +22 -5
  65. package/src/engine-components/js-extensions/RGBAColor.ts +3 -0
package/CHANGELOG.md CHANGED
@@ -4,6 +4,19 @@ All notable changes to this package will be documented in this file.
4
4
  The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
5
5
  and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
6
6
 
7
+ ## [2.55.2-pre] - 2023-01-02
8
+ - Add: Rigidbody.gravityScale property
9
+ - Add: Gizmos.DrawArrow method
10
+ - Add: Rigidbody.getAngularVelocity method
11
+ - Fix: Mesh collider center of mass
12
+
13
+ ## [2.55.1-pre] - 2022-12-30
14
+ - Add: Warning when serialized component field name is starting with uppercase letter
15
+ - Change: bump component compiler dependency
16
+ - Fix: Particle rotation over lifetime
17
+ - Fix: Particles should not emit when emission module is disabled
18
+ - Fix: LODGroup breaking rendering when used with multi-material objects or added on mesh to be culled directly
19
+
7
20
  ## [2.55.0-pre] - 2022-12-21
8
21
  - Add: PhysicsMaterial support
9
22
  - Add: ``Time.timesScale`` factor
@@ -21,6 +21,8 @@ declare module "engine-components/js-extensions/RGBAColor" {
21
21
  export class RGBAColor extends Color {
22
22
  alpha: number;
23
23
  get isRGBAColor(): boolean;
24
+ set a(val: number);
25
+ get a(): number;
24
26
  constructor(r: number, g: number, b: number, a: number);
25
27
  clone(): this;
26
28
  copy(col: RGBAColor | Color): this;
@@ -225,6 +227,7 @@ declare module "engine/engine_types" {
225
227
  drag: number;
226
228
  angularDrag: number;
227
229
  useGravity: boolean;
230
+ gravityScale: number;
228
231
  collisionDetectionMode: CollisionDetectionMode;
229
232
  lockPositionX: boolean;
230
233
  lockPositionY: boolean;
@@ -834,6 +837,8 @@ declare module "engine/engine_gizmos" {
834
837
  static DrawSphere(center: Vec3, radius: number, color?: ColorRepresentation, duration?: number, depthTest?: boolean): void;
835
838
  static DrawBox(center: Vec3, size: Vec3, color?: ColorRepresentation, duration?: number, depthTest?: boolean): void;
836
839
  static DrawBox3(box: Box3, color?: ColorRepresentation, duration?: number, depthTest?: boolean): void;
840
+ private static _up;
841
+ static DrawArrow(pt0: Vec3, pt1: Vec3, color?: ColorRepresentation, duration?: number, depthTest?: boolean, wireframe?: boolean): void;
837
842
  }
838
843
  export function CreateWireCube(col?: THREE.ColorRepresentation | null): THREE.LineSegments;
839
844
  }
@@ -931,6 +936,7 @@ declare module "engine/engine_physics" {
931
936
  private static centerConnectionPos;
932
937
  private static centerConnectionRot;
933
938
  addFixedJoint(body1: IRigidbody, body2: IRigidbody): void;
939
+ /** The joint prevents any relative movement between two rigid-bodies, except for relative rotations along one axis. This is typically used to simulate wheels, fans, etc. They are characterized by one local anchor as well as one local axis on each rigid-body. */
934
940
  addHingeJoint(body1: IRigidbody, body2: IRigidbody, anchor: {
935
941
  x: number;
936
942
  y: number;
@@ -1796,6 +1802,138 @@ declare module "engine/engine_playerview" {
1796
1802
  removePlayerView(id: string, device: ViewDevice): void;
1797
1803
  }
1798
1804
  }
1805
+ declare module "engine/engine_serialization_decorator" {
1806
+ import { Constructor } from "engine/engine_types";
1807
+ export type TypeResolver<T> = (data: any) => Constructor<T> | null;
1808
+ /** Please use "@serializable" - this version has a typo and will be removed in future versions */
1809
+ export const serializeable: <T>(type?: Constructor<T> | TypeResolver<T> | (Constructor<any> | TypeResolver<T>)[] | null | undefined) => (_target: any, _propertyKey: string) => void;
1810
+ export const serializable: <T>(type?: Constructor<T> | TypeResolver<T> | (Constructor<any> | TypeResolver<T>)[] | null | undefined) => (_target: any, _propertyKey: string) => void;
1811
+ export const ALL_PROPERTIES_MARKER = "__NEEDLE__ALL_PROPERTIES";
1812
+ /** @deprecated current not used */
1813
+ export function allProperties(constructor: Function): void;
1814
+ export const STRICT_MARKER = "__NEEDLE__STRICT";
1815
+ /** @deprecated current not used */
1816
+ export function strict(constructor: Function): void;
1817
+ }
1818
+ declare module "engine-components/Camera" {
1819
+ import { Behaviour } from "engine-components/Component";
1820
+ import { RGBAColor } from "engine-components/js-extensions/RGBAColor";
1821
+ import { ICamera } from "engine/engine_types";
1822
+ import { Ray } from "three";
1823
+ export enum ClearFlags {
1824
+ Skybox = 1,
1825
+ SolidColor = 2,
1826
+ Uninitialized = 4
1827
+ }
1828
+ export class Camera extends Behaviour implements ICamera {
1829
+ get isCamera(): boolean;
1830
+ get aspect(): number;
1831
+ get fieldOfView(): number;
1832
+ set fieldOfView(val: number);
1833
+ get nearClipPlane(): number;
1834
+ set nearClipPlane(val: number);
1835
+ private _nearClipPlane;
1836
+ get farClipPlane(): number;
1837
+ set farClipPlane(val: number);
1838
+ private _farClipPlane;
1839
+ get clearFlags(): ClearFlags;
1840
+ set clearFlags(val: ClearFlags);
1841
+ orthographic: boolean;
1842
+ orthographicSize: number;
1843
+ ARBackgroundAlpha: number;
1844
+ set cullingMask(val: number);
1845
+ get cullingMask(): number;
1846
+ private _cullingMask;
1847
+ set backgroundBlurriness(val: number | undefined);
1848
+ get backgroundBlurriness(): number | undefined;
1849
+ private _backgroundBlurriness?;
1850
+ set backgroundIntensity(val: number | undefined);
1851
+ get backgroundIntensity(): number | undefined;
1852
+ private _backgroundIntensity?;
1853
+ get backgroundColor(): RGBAColor | null;
1854
+ set backgroundColor(val: RGBAColor | null);
1855
+ private _backgroundColor?;
1856
+ private _fov;
1857
+ private _cam;
1858
+ private _clearFlags;
1859
+ private _skybox?;
1860
+ get cam(): THREE.PerspectiveCamera | THREE.OrthographicCamera;
1861
+ private static _origin;
1862
+ private static _direction;
1863
+ screenPointToRay(x: number, y: number, ray?: Ray): Ray;
1864
+ awake(): void;
1865
+ onEnable(): void;
1866
+ onDisable(): void;
1867
+ buildCamera(): void;
1868
+ applyClearFlagsIfIsActiveCamera(): void;
1869
+ private environmentIsTransparent;
1870
+ private enableSkybox;
1871
+ }
1872
+ }
1873
+ declare module "engine-components/LookAtConstraint" {
1874
+ import { Behaviour } from "engine-components/Component";
1875
+ import * as THREE from "three";
1876
+ export class LookAtConstraint extends Behaviour {
1877
+ constraintActive: boolean;
1878
+ locked: boolean;
1879
+ sources: THREE.Object3D[];
1880
+ }
1881
+ }
1882
+ declare module "engine-components/OrbitControls" {
1883
+ import { Behaviour } from "engine-components/Component";
1884
+ import { LookAtConstraint } from "engine-components/LookAtConstraint";
1885
+ import { Object3D, Vector3 } from "three";
1886
+ import { OrbitControls as ThreeOrbitControls } from "three/examples/jsm/controls/OrbitControls";
1887
+ export class OrbitControls extends Behaviour {
1888
+ get controls(): ThreeOrbitControls | null;
1889
+ get controllerObject(): Object3D | null;
1890
+ onStartInteraction(func: Function): void;
1891
+ autoRotate: boolean;
1892
+ autoRotateSpeed: number;
1893
+ enableKeys: boolean;
1894
+ enableDamping: boolean;
1895
+ dampingFactor: number;
1896
+ enableZoom: boolean;
1897
+ minZoom: number;
1898
+ maxZoom: number;
1899
+ enablePan: boolean;
1900
+ lookAtConstraint: LookAtConstraint | null;
1901
+ lookAtConstraint01: number;
1902
+ middleClickToFocus: boolean;
1903
+ doubleClickToFocus: boolean;
1904
+ useSlerp: boolean;
1905
+ debugLog: boolean;
1906
+ targetLerpSpeed: number;
1907
+ private _lookTargetPosition;
1908
+ private _controls;
1909
+ private _cameraObject;
1910
+ private _lerpToTargetPosition;
1911
+ private _lerpCameraToTarget;
1912
+ private _cameraTargetPosition;
1913
+ private _inputs;
1914
+ private _enableTime;
1915
+ private _startedListeningToKeyEvents;
1916
+ awake(): void;
1917
+ onEnable(): void;
1918
+ onDisable(): void;
1919
+ onDestroy(): void;
1920
+ start(): void;
1921
+ private startRaycastDelayed;
1922
+ onBeforeRender(): void;
1923
+ setCameraTarget(position?: Vector3 | null, immediate?: boolean): void;
1924
+ setFromTargetPosition(index?: number, t?: number): boolean;
1925
+ setTarget(position?: Vector3 | null, immediate?: boolean): void;
1926
+ lerpTarget(position: Vector3, delta: number): void;
1927
+ distanceToTarget(position: Vector3): number;
1928
+ private setTargetFromRaycast;
1929
+ fitCameraToObjects(objects: Array<Object3D>, fitOffset?: number): void;
1930
+ }
1931
+ }
1932
+ declare module "engine-components/CameraUtils" {
1933
+ import { Scene } from "three";
1934
+ import { ICamera, SourceIdentifier } from "engine/engine_types";
1935
+ export function createCameraWithOrbitControl(scene: Scene, source: SourceIdentifier): ICamera;
1936
+ }
1799
1937
  declare module "engine/engine_setup" {
1800
1938
  import * as THREE from 'three';
1801
1939
  import { Input } from "engine/engine_input";
@@ -2211,19 +2349,6 @@ declare module "engine-components/AnimatorController" {
2211
2349
  private rootMotionHandler?;
2212
2350
  }
2213
2351
  }
2214
- declare module "engine/engine_serialization_decorator" {
2215
- import { Constructor } from "engine/engine_types";
2216
- export type TypeResolver<T> = (data: any) => Constructor<T> | null;
2217
- /** Please use "@serializable" - this version has a typo and will be removed in future versions */
2218
- export const serializeable: <T>(type?: Constructor<T> | TypeResolver<T> | (Constructor<any> | TypeResolver<T>)[] | null | undefined) => (_target: any, _propertyKey: string) => void;
2219
- export const serializable: <T>(type?: Constructor<T> | TypeResolver<T> | (Constructor<any> | TypeResolver<T>)[] | null | undefined) => (_target: any, _propertyKey: string) => void;
2220
- export const ALL_PROPERTIES_MARKER = "__NEEDLE__ALL_PROPERTIES";
2221
- /** @deprecated current not used */
2222
- export function allProperties(constructor: Function): void;
2223
- export const STRICT_MARKER = "__NEEDLE__STRICT";
2224
- /** @deprecated current not used */
2225
- export function strict(constructor: Function): void;
2226
- }
2227
2352
  declare module "engine-components/Animator" {
2228
2353
  import { Behaviour } from "engine-components/Component";
2229
2354
  import * as THREE from 'three';
@@ -2819,62 +2944,6 @@ declare module "engine-components/AudioSource" {
2819
2944
  update(): void;
2820
2945
  }
2821
2946
  }
2822
- declare module "engine-components/Camera" {
2823
- import { Behaviour } from "engine-components/Component";
2824
- import * as THREE from "three";
2825
- import { RGBAColor } from "engine-components/js-extensions/RGBAColor";
2826
- import { Ray } from "three";
2827
- import { ICamera } from "engine/engine_types";
2828
- export enum ClearFlags {
2829
- Skybox = 1,
2830
- SolidColor = 2,
2831
- Uninitialized = 4
2832
- }
2833
- export class Camera extends Behaviour implements ICamera {
2834
- get isCamera(): boolean;
2835
- get aspect(): number;
2836
- get fieldOfView(): number;
2837
- set fieldOfView(val: number);
2838
- get nearClipPlane(): number;
2839
- set nearClipPlane(val: number);
2840
- private _nearClipPlane;
2841
- get farClipPlane(): number;
2842
- set farClipPlane(val: number);
2843
- private _farClipPlane;
2844
- get clearFlags(): ClearFlags;
2845
- set clearFlags(val: ClearFlags);
2846
- orthographic: boolean;
2847
- orthographicSize: number;
2848
- ARBackgroundAlpha: number;
2849
- set cullingMask(val: number);
2850
- get cullingMask(): number;
2851
- private _cullingMask;
2852
- set backgroundBlurriness(val: number | undefined);
2853
- get backgroundBlurriness(): number | undefined;
2854
- private _backgroundBlurriness?;
2855
- set backgroundIntensity(val: number | undefined);
2856
- get backgroundIntensity(): number | undefined;
2857
- private _backgroundIntensity?;
2858
- get backgroundColor(): RGBAColor | null;
2859
- set backgroundColor(val: RGBAColor | null);
2860
- private _backgroundColor?;
2861
- private _fov;
2862
- private _cam;
2863
- private _clearFlags;
2864
- private _skybox?;
2865
- get cam(): THREE.PerspectiveCamera | THREE.OrthographicCamera;
2866
- private static _origin;
2867
- private static _direction;
2868
- screenPointToRay(x: number, y: number, ray?: Ray): Ray;
2869
- awake(): void;
2870
- onEnable(): void;
2871
- onDisable(): void;
2872
- buildCamera(): void;
2873
- applyClearFlagsIfIsActiveCamera(): void;
2874
- private environmentIsTransparent;
2875
- private enableSkybox;
2876
- }
2877
- }
2878
2947
  declare module "engine-components/AudioListener" {
2879
2948
  import { Behaviour } from "engine-components/Component";
2880
2949
  import * as THREE from "three";
@@ -3656,6 +3725,9 @@ declare module "engine-components/RigidBody" {
3656
3725
  set lockRotationX(v: boolean);
3657
3726
  set lockRotationY(v: boolean);
3658
3727
  set lockRotationZ(v: boolean);
3728
+ set gravityScale(val: number);
3729
+ get gravityScale(): number;
3730
+ private _gravityScale;
3659
3731
  private static tempPosition;
3660
3732
  private _propertiesChanged;
3661
3733
  private _currentVelocity;
@@ -3686,6 +3758,7 @@ declare module "engine-components/RigidBody" {
3686
3758
  getVelocity(): Vector3;
3687
3759
  setVelocity(x: number | Vector3, y?: number, z?: number): void;
3688
3760
  setAngularVelocity(x: number | Vector3, y?: number, z?: number): void;
3761
+ getAngularVelocity(): Vector3;
3689
3762
  setTorque(x: number | Vector3, y: number, z: number): void;
3690
3763
  get smoothedVelocity(): Vector3;
3691
3764
  /**d
@@ -3736,64 +3809,6 @@ declare module "engine-components/SyncedTransform" {
3736
3809
  onBeforeRender(): void;
3737
3810
  }
3738
3811
  }
3739
- declare module "engine-components/LookAtConstraint" {
3740
- import { Behaviour } from "engine-components/Component";
3741
- import * as THREE from "three";
3742
- export class LookAtConstraint extends Behaviour {
3743
- constraintActive: boolean;
3744
- locked: boolean;
3745
- sources: THREE.Object3D[];
3746
- }
3747
- }
3748
- declare module "engine-components/OrbitControls" {
3749
- import { Behaviour } from "engine-components/Component";
3750
- import { OrbitControls as ThreeOrbitControls } from "three/examples/jsm/controls/OrbitControls";
3751
- import { LookAtConstraint } from "engine-components/LookAtConstraint";
3752
- import * as THREE from "three";
3753
- export class OrbitControls extends Behaviour {
3754
- get controls(): ThreeOrbitControls | null;
3755
- get controllerObject(): THREE.Object3D | null;
3756
- onStartInteraction(func: Function): void;
3757
- autoRotate: boolean;
3758
- autoRotateSpeed: number;
3759
- enableKeys: boolean;
3760
- enableDamping: boolean;
3761
- dampingFactor: number;
3762
- enableZoom: boolean;
3763
- minZoom: number;
3764
- maxZoom: number;
3765
- enablePan: boolean;
3766
- lookAtConstraint: LookAtConstraint | null;
3767
- lookAtConstraint01: number;
3768
- middleClickToFocus: boolean;
3769
- doubleClickToFocus: boolean;
3770
- useSlerp: boolean;
3771
- debugLog: boolean;
3772
- targetLerpSpeed: number;
3773
- private _lookTargetPosition;
3774
- private _controls;
3775
- private _cameraObject;
3776
- private _lerpToTargetPosition;
3777
- private _lerpCameraToTarget;
3778
- private _cameraTargetPosition;
3779
- private _inputs;
3780
- private _enableTime;
3781
- private _startedListeningToKeyEvents;
3782
- awake(): void;
3783
- onEnable(): void;
3784
- onDisable(): void;
3785
- onDestroy(): void;
3786
- start(): void;
3787
- private startRaycastDelayed;
3788
- onBeforeRender(): void;
3789
- setCameraTarget(position?: THREE.Vector3 | null, immediate?: boolean): void;
3790
- setFromTargetPosition(index?: number, t?: number): boolean;
3791
- setTarget(position?: THREE.Vector3 | null, immediate?: boolean): void;
3792
- lerpTarget(position: THREE.Vector3, delta: number): void;
3793
- distanceToTarget(position: THREE.Vector3): number;
3794
- private setTargetFromRaycast;
3795
- }
3796
- }
3797
3812
  declare module "engine-components/ui/Raycaster" {
3798
3813
  import { RaycastOptions } from "engine/engine_physics";
3799
3814
  import { Behaviour } from "engine-components/Component";
@@ -5053,7 +5068,7 @@ declare module "engine-components/ParticleSystemModules" {
5053
5068
  yMultiplier: number;
5054
5069
  z: MinMaxCurve;
5055
5070
  zMultiplier: number;
5056
- evaluate(t01: number): number;
5071
+ evaluate(t01: number, t: number): number;
5057
5072
  }
5058
5073
  export class RotationBySpeedModule {
5059
5074
  enabled: boolean;
@@ -6551,11 +6566,6 @@ declare module "engine-components/BoxCollider" {
6551
6566
  import { BoxCollider } from "engine-components/Collider";
6552
6567
  export default BoxCollider;
6553
6568
  }
6554
- declare module "engine-components/CameraUtils" {
6555
- import { Camera } from "engine-components/Camera";
6556
- import { Scene } from "three";
6557
- export function createCameraWithOrbitControl(scene: Scene): Camera;
6558
- }
6559
6569
  declare module "engine-components/SphereCollider" {
6560
6570
  import { SphereCollider } from "engine-components/Collider";
6561
6571
  export default SphereCollider;