@needle-tools/engine 2.55.1-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 (38) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/needle-engine.d.ts +140 -132
  3. package/dist/needle-engine.js +355 -355
  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_setup.js +7 -1
  15. package/lib/engine/engine_setup.js.map +1 -1
  16. package/lib/engine/engine_time.js +3 -3
  17. package/lib/engine/engine_time.js.map +1 -1
  18. package/lib/engine/engine_types.d.ts +1 -0
  19. package/lib/engine/engine_types.js.map +1 -1
  20. package/lib/engine-components/Camera.js +2 -0
  21. package/lib/engine-components/Camera.js.map +1 -1
  22. package/lib/engine-components/CameraUtils.d.ts +2 -2
  23. package/lib/engine-components/CameraUtils.js +13 -4
  24. package/lib/engine-components/CameraUtils.js.map +1 -1
  25. package/lib/engine-components/RigidBody.d.ts +4 -0
  26. package/lib/engine-components/RigidBody.js +16 -0
  27. package/lib/engine-components/RigidBody.js.map +1 -1
  28. package/lib/tsconfig.tsbuildinfo +1 -1
  29. package/package.json +1 -1
  30. package/src/engine/codegen/register_types.js +2 -2
  31. package/src/engine/engine_gizmos.ts +27 -2
  32. package/src/engine/engine_physics.ts +5 -4
  33. package/src/engine/engine_setup.ts +9 -4
  34. package/src/engine/engine_time.ts +2 -2
  35. package/src/engine/engine_types.ts +1 -0
  36. package/src/engine-components/Camera.ts +2 -0
  37. package/src/engine-components/CameraUtils.ts +15 -5
  38. package/src/engine-components/RigidBody.ts +22 -5
package/CHANGELOG.md CHANGED
@@ -4,6 +4,12 @@ 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
+
7
13
  ## [2.55.1-pre] - 2022-12-30
8
14
  - Add: Warning when serialized component field name is starting with uppercase letter
9
15
  - Change: bump component compiler dependency
@@ -227,6 +227,7 @@ declare module "engine/engine_types" {
227
227
  drag: number;
228
228
  angularDrag: number;
229
229
  useGravity: boolean;
230
+ gravityScale: number;
230
231
  collisionDetectionMode: CollisionDetectionMode;
231
232
  lockPositionX: boolean;
232
233
  lockPositionY: boolean;
@@ -836,6 +837,8 @@ declare module "engine/engine_gizmos" {
836
837
  static DrawSphere(center: Vec3, radius: number, color?: ColorRepresentation, duration?: number, depthTest?: boolean): void;
837
838
  static DrawBox(center: Vec3, size: Vec3, color?: ColorRepresentation, duration?: number, depthTest?: boolean): void;
838
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;
839
842
  }
840
843
  export function CreateWireCube(col?: THREE.ColorRepresentation | null): THREE.LineSegments;
841
844
  }
@@ -933,6 +936,7 @@ declare module "engine/engine_physics" {
933
936
  private static centerConnectionPos;
934
937
  private static centerConnectionRot;
935
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. */
936
940
  addHingeJoint(body1: IRigidbody, body2: IRigidbody, anchor: {
937
941
  x: number;
938
942
  y: number;
@@ -1798,6 +1802,138 @@ declare module "engine/engine_playerview" {
1798
1802
  removePlayerView(id: string, device: ViewDevice): void;
1799
1803
  }
1800
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
+ }
1801
1937
  declare module "engine/engine_setup" {
1802
1938
  import * as THREE from 'three';
1803
1939
  import { Input } from "engine/engine_input";
@@ -2213,19 +2349,6 @@ declare module "engine-components/AnimatorController" {
2213
2349
  private rootMotionHandler?;
2214
2350
  }
2215
2351
  }
2216
- declare module "engine/engine_serialization_decorator" {
2217
- import { Constructor } from "engine/engine_types";
2218
- export type TypeResolver<T> = (data: any) => Constructor<T> | null;
2219
- /** Please use "@serializable" - this version has a typo and will be removed in future versions */
2220
- export const serializeable: <T>(type?: Constructor<T> | TypeResolver<T> | (Constructor<any> | TypeResolver<T>)[] | null | undefined) => (_target: any, _propertyKey: string) => void;
2221
- export const serializable: <T>(type?: Constructor<T> | TypeResolver<T> | (Constructor<any> | TypeResolver<T>)[] | null | undefined) => (_target: any, _propertyKey: string) => void;
2222
- export const ALL_PROPERTIES_MARKER = "__NEEDLE__ALL_PROPERTIES";
2223
- /** @deprecated current not used */
2224
- export function allProperties(constructor: Function): void;
2225
- export const STRICT_MARKER = "__NEEDLE__STRICT";
2226
- /** @deprecated current not used */
2227
- export function strict(constructor: Function): void;
2228
- }
2229
2352
  declare module "engine-components/Animator" {
2230
2353
  import { Behaviour } from "engine-components/Component";
2231
2354
  import * as THREE from 'three';
@@ -2821,61 +2944,6 @@ declare module "engine-components/AudioSource" {
2821
2944
  update(): void;
2822
2945
  }
2823
2946
  }
2824
- declare module "engine-components/Camera" {
2825
- import { Behaviour } from "engine-components/Component";
2826
- import { RGBAColor } from "engine-components/js-extensions/RGBAColor";
2827
- import { ICamera } from "engine/engine_types";
2828
- import { Ray } from "three";
2829
- export enum ClearFlags {
2830
- Skybox = 1,
2831
- SolidColor = 2,
2832
- Uninitialized = 4
2833
- }
2834
- export class Camera extends Behaviour implements ICamera {
2835
- get isCamera(): boolean;
2836
- get aspect(): number;
2837
- get fieldOfView(): number;
2838
- set fieldOfView(val: number);
2839
- get nearClipPlane(): number;
2840
- set nearClipPlane(val: number);
2841
- private _nearClipPlane;
2842
- get farClipPlane(): number;
2843
- set farClipPlane(val: number);
2844
- private _farClipPlane;
2845
- get clearFlags(): ClearFlags;
2846
- set clearFlags(val: ClearFlags);
2847
- orthographic: boolean;
2848
- orthographicSize: number;
2849
- ARBackgroundAlpha: number;
2850
- set cullingMask(val: number);
2851
- get cullingMask(): number;
2852
- private _cullingMask;
2853
- set backgroundBlurriness(val: number | undefined);
2854
- get backgroundBlurriness(): number | undefined;
2855
- private _backgroundBlurriness?;
2856
- set backgroundIntensity(val: number | undefined);
2857
- get backgroundIntensity(): number | undefined;
2858
- private _backgroundIntensity?;
2859
- get backgroundColor(): RGBAColor | null;
2860
- set backgroundColor(val: RGBAColor | null);
2861
- private _backgroundColor?;
2862
- private _fov;
2863
- private _cam;
2864
- private _clearFlags;
2865
- private _skybox?;
2866
- get cam(): THREE.PerspectiveCamera | THREE.OrthographicCamera;
2867
- private static _origin;
2868
- private static _direction;
2869
- screenPointToRay(x: number, y: number, ray?: Ray): Ray;
2870
- awake(): void;
2871
- onEnable(): void;
2872
- onDisable(): void;
2873
- buildCamera(): void;
2874
- applyClearFlagsIfIsActiveCamera(): void;
2875
- private environmentIsTransparent;
2876
- private enableSkybox;
2877
- }
2878
- }
2879
2947
  declare module "engine-components/AudioListener" {
2880
2948
  import { Behaviour } from "engine-components/Component";
2881
2949
  import * as THREE from "three";
@@ -3657,6 +3725,9 @@ declare module "engine-components/RigidBody" {
3657
3725
  set lockRotationX(v: boolean);
3658
3726
  set lockRotationY(v: boolean);
3659
3727
  set lockRotationZ(v: boolean);
3728
+ set gravityScale(val: number);
3729
+ get gravityScale(): number;
3730
+ private _gravityScale;
3660
3731
  private static tempPosition;
3661
3732
  private _propertiesChanged;
3662
3733
  private _currentVelocity;
@@ -3687,6 +3758,7 @@ declare module "engine-components/RigidBody" {
3687
3758
  getVelocity(): Vector3;
3688
3759
  setVelocity(x: number | Vector3, y?: number, z?: number): void;
3689
3760
  setAngularVelocity(x: number | Vector3, y?: number, z?: number): void;
3761
+ getAngularVelocity(): Vector3;
3690
3762
  setTorque(x: number | Vector3, y: number, z: number): void;
3691
3763
  get smoothedVelocity(): Vector3;
3692
3764
  /**d
@@ -3737,65 +3809,6 @@ declare module "engine-components/SyncedTransform" {
3737
3809
  onBeforeRender(): void;
3738
3810
  }
3739
3811
  }
3740
- declare module "engine-components/LookAtConstraint" {
3741
- import { Behaviour } from "engine-components/Component";
3742
- import * as THREE from "three";
3743
- export class LookAtConstraint extends Behaviour {
3744
- constraintActive: boolean;
3745
- locked: boolean;
3746
- sources: THREE.Object3D[];
3747
- }
3748
- }
3749
- declare module "engine-components/OrbitControls" {
3750
- import { Behaviour } from "engine-components/Component";
3751
- import { LookAtConstraint } from "engine-components/LookAtConstraint";
3752
- import { Object3D, Vector3 } from "three";
3753
- import { OrbitControls as ThreeOrbitControls } from "three/examples/jsm/controls/OrbitControls";
3754
- export class OrbitControls extends Behaviour {
3755
- get controls(): ThreeOrbitControls | null;
3756
- get controllerObject(): Object3D | null;
3757
- onStartInteraction(func: Function): void;
3758
- autoRotate: boolean;
3759
- autoRotateSpeed: number;
3760
- enableKeys: boolean;
3761
- enableDamping: boolean;
3762
- dampingFactor: number;
3763
- enableZoom: boolean;
3764
- minZoom: number;
3765
- maxZoom: number;
3766
- enablePan: boolean;
3767
- lookAtConstraint: LookAtConstraint | null;
3768
- lookAtConstraint01: number;
3769
- middleClickToFocus: boolean;
3770
- doubleClickToFocus: boolean;
3771
- useSlerp: boolean;
3772
- debugLog: boolean;
3773
- targetLerpSpeed: number;
3774
- private _lookTargetPosition;
3775
- private _controls;
3776
- private _cameraObject;
3777
- private _lerpToTargetPosition;
3778
- private _lerpCameraToTarget;
3779
- private _cameraTargetPosition;
3780
- private _inputs;
3781
- private _enableTime;
3782
- private _startedListeningToKeyEvents;
3783
- awake(): void;
3784
- onEnable(): void;
3785
- onDisable(): void;
3786
- onDestroy(): void;
3787
- start(): void;
3788
- private startRaycastDelayed;
3789
- onBeforeRender(): void;
3790
- setCameraTarget(position?: Vector3 | null, immediate?: boolean): void;
3791
- setFromTargetPosition(index?: number, t?: number): boolean;
3792
- setTarget(position?: Vector3 | null, immediate?: boolean): void;
3793
- lerpTarget(position: Vector3, delta: number): void;
3794
- distanceToTarget(position: Vector3): number;
3795
- private setTargetFromRaycast;
3796
- fitCameraToObjects(objects: Array<Object3D>, fitOffset?: number): void;
3797
- }
3798
- }
3799
3812
  declare module "engine-components/ui/Raycaster" {
3800
3813
  import { RaycastOptions } from "engine/engine_physics";
3801
3814
  import { Behaviour } from "engine-components/Component";
@@ -6553,11 +6566,6 @@ declare module "engine-components/BoxCollider" {
6553
6566
  import { BoxCollider } from "engine-components/Collider";
6554
6567
  export default BoxCollider;
6555
6568
  }
6556
- declare module "engine-components/CameraUtils" {
6557
- import { Camera } from "engine-components/Camera";
6558
- import { Scene } from "three";
6559
- export function createCameraWithOrbitControl(scene: Scene): Camera;
6560
- }
6561
6569
  declare module "engine-components/SphereCollider" {
6562
6570
  import { SphereCollider } from "engine-components/Collider";
6563
6571
  export default SphereCollider;