angular-three-rapier 4.0.0-next.8 → 4.0.0-next.81

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/index.d.ts CHANGED
@@ -1,7 +1,9 @@
1
1
  export * from './lib/colliders';
2
2
  export * from './lib/instanced-rigid-bodies';
3
+ export * from './lib/interaction-groups';
3
4
  export * from './lib/joints';
4
5
  export * from './lib/mesh-collider';
5
6
  export * from './lib/physics';
7
+ export * from './lib/physics-step-callback';
6
8
  export * from './lib/rigid-body';
7
9
  export type * from './lib/types';
@@ -5,89 +5,89 @@ export declare class NgtrCuboidCollider {
5
5
  args: import("@angular/core").InputSignal<NgtrCuboidArgs>;
6
6
  constructor();
7
7
  static ɵfac: i0.ɵɵFactoryDeclaration<NgtrCuboidCollider, never>;
8
- static ɵdir: i0.ɵɵDirectiveDeclaration<NgtrCuboidCollider, "ngt-object3D[cuboidCollider]", never, { "args": { "alias": "args"; "required": true; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.NgtrAnyCollider; inputs: { "options": "options"; "name": "name"; "scale": "scale"; "position": "position"; "quaternion": "quaternion"; "rotation": "rotation"; "userData": "userData"; }; outputs: { "collisionEnter": "collisionEnter"; "collisionExit": "collisionExit"; "intersectionEnter": "intersectionEnter"; "intersectionExit": "intersectionExit"; "contactForce": "contactForce"; }; }]>;
8
+ static ɵdir: i0.ɵɵDirectiveDeclaration<NgtrCuboidCollider, "ngt-object3D[cuboidCollider]", never, { "args": { "alias": "cuboidCollider"; "required": true; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.NgtrAnyCollider; inputs: { "options": "options"; "name": "name"; "scale": "scale"; "position": "position"; "quaternion": "quaternion"; "rotation": "rotation"; "userData": "userData"; }; outputs: { "collisionEnter": "collisionEnter"; "collisionExit": "collisionExit"; "intersectionEnter": "intersectionEnter"; "intersectionExit": "intersectionExit"; "contactForce": "contactForce"; }; }]>;
9
9
  }
10
10
  export declare class NgtrCapsuleCollider {
11
11
  args: import("@angular/core").InputSignal<NgtrCapsuleArgs>;
12
12
  constructor();
13
13
  static ɵfac: i0.ɵɵFactoryDeclaration<NgtrCapsuleCollider, never>;
14
- static ɵdir: i0.ɵɵDirectiveDeclaration<NgtrCapsuleCollider, "ngt-object3D[capsuleCollider]", never, { "args": { "alias": "args"; "required": true; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.NgtrAnyCollider; inputs: { "options": "options"; "name": "name"; "scale": "scale"; "position": "position"; "quaternion": "quaternion"; "rotation": "rotation"; "userData": "userData"; }; outputs: { "collisionEnter": "collisionEnter"; "collisionExit": "collisionExit"; "intersectionEnter": "intersectionEnter"; "intersectionExit": "intersectionExit"; "contactForce": "contactForce"; }; }]>;
14
+ static ɵdir: i0.ɵɵDirectiveDeclaration<NgtrCapsuleCollider, "ngt-object3D[capsuleCollider]", never, { "args": { "alias": "capsuleCollider"; "required": true; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.NgtrAnyCollider; inputs: { "options": "options"; "name": "name"; "scale": "scale"; "position": "position"; "quaternion": "quaternion"; "rotation": "rotation"; "userData": "userData"; }; outputs: { "collisionEnter": "collisionEnter"; "collisionExit": "collisionExit"; "intersectionEnter": "intersectionEnter"; "intersectionExit": "intersectionExit"; "contactForce": "contactForce"; }; }]>;
15
15
  }
16
16
  export declare class NgtrBallCollider {
17
17
  args: import("@angular/core").InputSignal<NgtrBallArgs>;
18
18
  constructor();
19
19
  static ɵfac: i0.ɵɵFactoryDeclaration<NgtrBallCollider, never>;
20
- static ɵdir: i0.ɵɵDirectiveDeclaration<NgtrBallCollider, "ngt-object3D[ballCollider]", never, { "args": { "alias": "args"; "required": true; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.NgtrAnyCollider; inputs: { "options": "options"; "name": "name"; "scale": "scale"; "position": "position"; "quaternion": "quaternion"; "rotation": "rotation"; "userData": "userData"; }; outputs: { "collisionEnter": "collisionEnter"; "collisionExit": "collisionExit"; "intersectionEnter": "intersectionEnter"; "intersectionExit": "intersectionExit"; "contactForce": "contactForce"; }; }]>;
20
+ static ɵdir: i0.ɵɵDirectiveDeclaration<NgtrBallCollider, "ngt-object3D[ballCollider]", never, { "args": { "alias": "ballCollider"; "required": true; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.NgtrAnyCollider; inputs: { "options": "options"; "name": "name"; "scale": "scale"; "position": "position"; "quaternion": "quaternion"; "rotation": "rotation"; "userData": "userData"; }; outputs: { "collisionEnter": "collisionEnter"; "collisionExit": "collisionExit"; "intersectionEnter": "intersectionEnter"; "intersectionExit": "intersectionExit"; "contactForce": "contactForce"; }; }]>;
21
21
  }
22
22
  export declare class NgtrConvexHullCollider {
23
23
  args: import("@angular/core").InputSignal<NgtrConvexHullArgs>;
24
24
  constructor();
25
25
  static ɵfac: i0.ɵɵFactoryDeclaration<NgtrConvexHullCollider, never>;
26
- static ɵdir: i0.ɵɵDirectiveDeclaration<NgtrConvexHullCollider, "ngt-object3D[convexHullCollider]", never, { "args": { "alias": "args"; "required": true; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.NgtrAnyCollider; inputs: { "options": "options"; "name": "name"; "scale": "scale"; "position": "position"; "quaternion": "quaternion"; "rotation": "rotation"; "userData": "userData"; }; outputs: { "collisionEnter": "collisionEnter"; "collisionExit": "collisionExit"; "intersectionEnter": "intersectionEnter"; "intersectionExit": "intersectionExit"; "contactForce": "contactForce"; }; }]>;
26
+ static ɵdir: i0.ɵɵDirectiveDeclaration<NgtrConvexHullCollider, "ngt-object3D[convexHullCollider]", never, { "args": { "alias": "convexHullCollider"; "required": true; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.NgtrAnyCollider; inputs: { "options": "options"; "name": "name"; "scale": "scale"; "position": "position"; "quaternion": "quaternion"; "rotation": "rotation"; "userData": "userData"; }; outputs: { "collisionEnter": "collisionEnter"; "collisionExit": "collisionExit"; "intersectionEnter": "intersectionEnter"; "intersectionExit": "intersectionExit"; "contactForce": "contactForce"; }; }]>;
27
27
  }
28
28
  export declare class NgtrHeightfieldCollider {
29
29
  args: import("@angular/core").InputSignal<NgtrHeightfieldArgs>;
30
30
  constructor();
31
31
  static ɵfac: i0.ɵɵFactoryDeclaration<NgtrHeightfieldCollider, never>;
32
- static ɵdir: i0.ɵɵDirectiveDeclaration<NgtrHeightfieldCollider, "ngt-object3D[heightfieldCollider]", never, { "args": { "alias": "args"; "required": true; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.NgtrAnyCollider; inputs: { "options": "options"; "name": "name"; "scale": "scale"; "position": "position"; "quaternion": "quaternion"; "rotation": "rotation"; "userData": "userData"; }; outputs: { "collisionEnter": "collisionEnter"; "collisionExit": "collisionExit"; "intersectionEnter": "intersectionEnter"; "intersectionExit": "intersectionExit"; "contactForce": "contactForce"; }; }]>;
32
+ static ɵdir: i0.ɵɵDirectiveDeclaration<NgtrHeightfieldCollider, "ngt-object3D[heightfieldCollider]", never, { "args": { "alias": "heightfieldCollider"; "required": true; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.NgtrAnyCollider; inputs: { "options": "options"; "name": "name"; "scale": "scale"; "position": "position"; "quaternion": "quaternion"; "rotation": "rotation"; "userData": "userData"; }; outputs: { "collisionEnter": "collisionEnter"; "collisionExit": "collisionExit"; "intersectionEnter": "intersectionEnter"; "intersectionExit": "intersectionExit"; "contactForce": "contactForce"; }; }]>;
33
33
  }
34
34
  export declare class NgtrTrimeshCollider {
35
35
  args: import("@angular/core").InputSignal<NgtrTrimeshArgs>;
36
36
  constructor();
37
37
  static ɵfac: i0.ɵɵFactoryDeclaration<NgtrTrimeshCollider, never>;
38
- static ɵdir: i0.ɵɵDirectiveDeclaration<NgtrTrimeshCollider, "ngt-object3D[trimeshCollider]", never, { "args": { "alias": "args"; "required": true; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.NgtrAnyCollider; inputs: { "options": "options"; "name": "name"; "scale": "scale"; "position": "position"; "quaternion": "quaternion"; "rotation": "rotation"; "userData": "userData"; }; outputs: { "collisionEnter": "collisionEnter"; "collisionExit": "collisionExit"; "intersectionEnter": "intersectionEnter"; "intersectionExit": "intersectionExit"; "contactForce": "contactForce"; }; }]>;
38
+ static ɵdir: i0.ɵɵDirectiveDeclaration<NgtrTrimeshCollider, "ngt-object3D[trimeshCollider]", never, { "args": { "alias": "trimeshCollider"; "required": true; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.NgtrAnyCollider; inputs: { "options": "options"; "name": "name"; "scale": "scale"; "position": "position"; "quaternion": "quaternion"; "rotation": "rotation"; "userData": "userData"; }; outputs: { "collisionEnter": "collisionEnter"; "collisionExit": "collisionExit"; "intersectionEnter": "intersectionEnter"; "intersectionExit": "intersectionExit"; "contactForce": "contactForce"; }; }]>;
39
39
  }
40
40
  export declare class NgtrPolylineCollider {
41
41
  args: import("@angular/core").InputSignal<NgtrPolylineArgs>;
42
42
  constructor();
43
43
  static ɵfac: i0.ɵɵFactoryDeclaration<NgtrPolylineCollider, never>;
44
- static ɵdir: i0.ɵɵDirectiveDeclaration<NgtrPolylineCollider, "ngt-object3D[polylineCollider]", never, { "args": { "alias": "args"; "required": true; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.NgtrAnyCollider; inputs: { "options": "options"; "name": "name"; "scale": "scale"; "position": "position"; "quaternion": "quaternion"; "rotation": "rotation"; "userData": "userData"; }; outputs: { "collisionEnter": "collisionEnter"; "collisionExit": "collisionExit"; "intersectionEnter": "intersectionEnter"; "intersectionExit": "intersectionExit"; "contactForce": "contactForce"; }; }]>;
44
+ static ɵdir: i0.ɵɵDirectiveDeclaration<NgtrPolylineCollider, "ngt-object3D[polylineCollider]", never, { "args": { "alias": "polylineCollider"; "required": true; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.NgtrAnyCollider; inputs: { "options": "options"; "name": "name"; "scale": "scale"; "position": "position"; "quaternion": "quaternion"; "rotation": "rotation"; "userData": "userData"; }; outputs: { "collisionEnter": "collisionEnter"; "collisionExit": "collisionExit"; "intersectionEnter": "intersectionEnter"; "intersectionExit": "intersectionExit"; "contactForce": "contactForce"; }; }]>;
45
45
  }
46
46
  export declare class NgtrRoundCuboidCollider {
47
47
  args: import("@angular/core").InputSignal<NgtrRoundCuboidArgs>;
48
48
  constructor();
49
49
  static ɵfac: i0.ɵɵFactoryDeclaration<NgtrRoundCuboidCollider, never>;
50
- static ɵdir: i0.ɵɵDirectiveDeclaration<NgtrRoundCuboidCollider, "ngt-object3D[roundCuboidCollider]", never, { "args": { "alias": "args"; "required": true; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.NgtrAnyCollider; inputs: { "options": "options"; "name": "name"; "scale": "scale"; "position": "position"; "quaternion": "quaternion"; "rotation": "rotation"; "userData": "userData"; }; outputs: { "collisionEnter": "collisionEnter"; "collisionExit": "collisionExit"; "intersectionEnter": "intersectionEnter"; "intersectionExit": "intersectionExit"; "contactForce": "contactForce"; }; }]>;
50
+ static ɵdir: i0.ɵɵDirectiveDeclaration<NgtrRoundCuboidCollider, "ngt-object3D[roundCuboidCollider]", never, { "args": { "alias": "roundCuboidCollider"; "required": true; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.NgtrAnyCollider; inputs: { "options": "options"; "name": "name"; "scale": "scale"; "position": "position"; "quaternion": "quaternion"; "rotation": "rotation"; "userData": "userData"; }; outputs: { "collisionEnter": "collisionEnter"; "collisionExit": "collisionExit"; "intersectionEnter": "intersectionEnter"; "intersectionExit": "intersectionExit"; "contactForce": "contactForce"; }; }]>;
51
51
  }
52
52
  export declare class NgtrCylinderCollider {
53
53
  args: import("@angular/core").InputSignal<NgtrCylinderArgs>;
54
54
  constructor();
55
55
  static ɵfac: i0.ɵɵFactoryDeclaration<NgtrCylinderCollider, never>;
56
- static ɵdir: i0.ɵɵDirectiveDeclaration<NgtrCylinderCollider, "ngt-object3D[cylinderCollider]", never, { "args": { "alias": "args"; "required": true; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.NgtrAnyCollider; inputs: { "options": "options"; "name": "name"; "scale": "scale"; "position": "position"; "quaternion": "quaternion"; "rotation": "rotation"; "userData": "userData"; }; outputs: { "collisionEnter": "collisionEnter"; "collisionExit": "collisionExit"; "intersectionEnter": "intersectionEnter"; "intersectionExit": "intersectionExit"; "contactForce": "contactForce"; }; }]>;
56
+ static ɵdir: i0.ɵɵDirectiveDeclaration<NgtrCylinderCollider, "ngt-object3D[cylinderCollider]", never, { "args": { "alias": "cylinderCollider"; "required": true; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.NgtrAnyCollider; inputs: { "options": "options"; "name": "name"; "scale": "scale"; "position": "position"; "quaternion": "quaternion"; "rotation": "rotation"; "userData": "userData"; }; outputs: { "collisionEnter": "collisionEnter"; "collisionExit": "collisionExit"; "intersectionEnter": "intersectionEnter"; "intersectionExit": "intersectionExit"; "contactForce": "contactForce"; }; }]>;
57
57
  }
58
58
  export declare class NgtrRoundCylinderCollider {
59
59
  args: import("@angular/core").InputSignal<NgtrRoundCylinderArgs>;
60
60
  constructor();
61
61
  static ɵfac: i0.ɵɵFactoryDeclaration<NgtrRoundCylinderCollider, never>;
62
- static ɵdir: i0.ɵɵDirectiveDeclaration<NgtrRoundCylinderCollider, "ngt-object3D[roundCylinderCollider]", never, { "args": { "alias": "args"; "required": true; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.NgtrAnyCollider; inputs: { "options": "options"; "name": "name"; "scale": "scale"; "position": "position"; "quaternion": "quaternion"; "rotation": "rotation"; "userData": "userData"; }; outputs: { "collisionEnter": "collisionEnter"; "collisionExit": "collisionExit"; "intersectionEnter": "intersectionEnter"; "intersectionExit": "intersectionExit"; "contactForce": "contactForce"; }; }]>;
62
+ static ɵdir: i0.ɵɵDirectiveDeclaration<NgtrRoundCylinderCollider, "ngt-object3D[roundCylinderCollider]", never, { "args": { "alias": "roundCylinderCollider"; "required": true; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.NgtrAnyCollider; inputs: { "options": "options"; "name": "name"; "scale": "scale"; "position": "position"; "quaternion": "quaternion"; "rotation": "rotation"; "userData": "userData"; }; outputs: { "collisionEnter": "collisionEnter"; "collisionExit": "collisionExit"; "intersectionEnter": "intersectionEnter"; "intersectionExit": "intersectionExit"; "contactForce": "contactForce"; }; }]>;
63
63
  }
64
64
  export declare class NgtrConeCollider {
65
65
  args: import("@angular/core").InputSignal<NgtrConeArgs>;
66
66
  constructor();
67
67
  static ɵfac: i0.ɵɵFactoryDeclaration<NgtrConeCollider, never>;
68
- static ɵdir: i0.ɵɵDirectiveDeclaration<NgtrConeCollider, "ngt-object3D[coneCollider]", never, { "args": { "alias": "args"; "required": true; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.NgtrAnyCollider; inputs: { "options": "options"; "name": "name"; "scale": "scale"; "position": "position"; "quaternion": "quaternion"; "rotation": "rotation"; "userData": "userData"; }; outputs: { "collisionEnter": "collisionEnter"; "collisionExit": "collisionExit"; "intersectionEnter": "intersectionEnter"; "intersectionExit": "intersectionExit"; "contactForce": "contactForce"; }; }]>;
68
+ static ɵdir: i0.ɵɵDirectiveDeclaration<NgtrConeCollider, "ngt-object3D[coneCollider]", never, { "args": { "alias": "coneCollider"; "required": true; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.NgtrAnyCollider; inputs: { "options": "options"; "name": "name"; "scale": "scale"; "position": "position"; "quaternion": "quaternion"; "rotation": "rotation"; "userData": "userData"; }; outputs: { "collisionEnter": "collisionEnter"; "collisionExit": "collisionExit"; "intersectionEnter": "intersectionEnter"; "intersectionExit": "intersectionExit"; "contactForce": "contactForce"; }; }]>;
69
69
  }
70
70
  export declare class NgtrRoundConeCollider {
71
71
  args: import("@angular/core").InputSignal<NgtrRoundConeArgs>;
72
72
  constructor();
73
73
  static ɵfac: i0.ɵɵFactoryDeclaration<NgtrRoundConeCollider, never>;
74
- static ɵdir: i0.ɵɵDirectiveDeclaration<NgtrRoundConeCollider, "ngt-object3D[roundConeCollider]", never, { "args": { "alias": "args"; "required": true; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.NgtrAnyCollider; inputs: { "options": "options"; "name": "name"; "scale": "scale"; "position": "position"; "quaternion": "quaternion"; "rotation": "rotation"; "userData": "userData"; }; outputs: { "collisionEnter": "collisionEnter"; "collisionExit": "collisionExit"; "intersectionEnter": "intersectionEnter"; "intersectionExit": "intersectionExit"; "contactForce": "contactForce"; }; }]>;
74
+ static ɵdir: i0.ɵɵDirectiveDeclaration<NgtrRoundConeCollider, "ngt-object3D[roundConeCollider]", never, { "args": { "alias": "roundConeCollider"; "required": true; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.NgtrAnyCollider; inputs: { "options": "options"; "name": "name"; "scale": "scale"; "position": "position"; "quaternion": "quaternion"; "rotation": "rotation"; "userData": "userData"; }; outputs: { "collisionEnter": "collisionEnter"; "collisionExit": "collisionExit"; "intersectionEnter": "intersectionEnter"; "intersectionExit": "intersectionExit"; "contactForce": "contactForce"; }; }]>;
75
75
  }
76
76
  export declare class NgtrConvexMeshCollider {
77
77
  args: import("@angular/core").InputSignal<NgtrConvexMeshArgs>;
78
78
  constructor();
79
79
  static ɵfac: i0.ɵɵFactoryDeclaration<NgtrConvexMeshCollider, never>;
80
- static ɵdir: i0.ɵɵDirectiveDeclaration<NgtrConvexMeshCollider, "ngt-object3D[convexMeshCollider]", never, { "args": { "alias": "args"; "required": true; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.NgtrAnyCollider; inputs: { "options": "options"; "name": "name"; "scale": "scale"; "position": "position"; "quaternion": "quaternion"; "rotation": "rotation"; "userData": "userData"; }; outputs: { "collisionEnter": "collisionEnter"; "collisionExit": "collisionExit"; "intersectionEnter": "intersectionEnter"; "intersectionExit": "intersectionExit"; "contactForce": "contactForce"; }; }]>;
80
+ static ɵdir: i0.ɵɵDirectiveDeclaration<NgtrConvexMeshCollider, "ngt-object3D[convexMeshCollider]", never, { "args": { "alias": "convexMeshCollider"; "required": true; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.NgtrAnyCollider; inputs: { "options": "options"; "name": "name"; "scale": "scale"; "position": "position"; "quaternion": "quaternion"; "rotation": "rotation"; "userData": "userData"; }; outputs: { "collisionEnter": "collisionEnter"; "collisionExit": "collisionExit"; "intersectionEnter": "intersectionEnter"; "intersectionExit": "intersectionExit"; "contactForce": "contactForce"; }; }]>;
81
81
  }
82
82
  export declare class NgtrRoundConvexHullCollider {
83
83
  args: import("@angular/core").InputSignal<NgtrRoundConvexHullArgs>;
84
84
  constructor();
85
85
  static ɵfac: i0.ɵɵFactoryDeclaration<NgtrRoundConvexHullCollider, never>;
86
- static ɵdir: i0.ɵɵDirectiveDeclaration<NgtrRoundConvexHullCollider, "ngt-object3D[roundConvexHullCollider]", never, { "args": { "alias": "args"; "required": true; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.NgtrAnyCollider; inputs: { "options": "options"; "name": "name"; "scale": "scale"; "position": "position"; "quaternion": "quaternion"; "rotation": "rotation"; "userData": "userData"; }; outputs: { "collisionEnter": "collisionEnter"; "collisionExit": "collisionExit"; "intersectionEnter": "intersectionEnter"; "intersectionExit": "intersectionExit"; "contactForce": "contactForce"; }; }]>;
86
+ static ɵdir: i0.ɵɵDirectiveDeclaration<NgtrRoundConvexHullCollider, "ngt-object3D[roundConvexHullCollider]", never, { "args": { "alias": "roundConvexHullCollider"; "required": true; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.NgtrAnyCollider; inputs: { "options": "options"; "name": "name"; "scale": "scale"; "position": "position"; "quaternion": "quaternion"; "rotation": "rotation"; "userData": "userData"; }; outputs: { "collisionEnter": "collisionEnter"; "collisionExit": "collisionExit"; "intersectionEnter": "intersectionEnter"; "intersectionExit": "intersectionExit"; "contactForce": "contactForce"; }; }]>;
87
87
  }
88
88
  export declare class NgtrRoundConvexMeshCollider {
89
89
  args: import("@angular/core").InputSignal<NgtrRoundConvexMeshArgs>;
90
90
  constructor();
91
91
  static ɵfac: i0.ɵɵFactoryDeclaration<NgtrRoundConvexMeshCollider, never>;
92
- static ɵdir: i0.ɵɵDirectiveDeclaration<NgtrRoundConvexMeshCollider, "ngt-object3D[roundConvexMeshCollider]", never, { "args": { "alias": "args"; "required": true; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.NgtrAnyCollider; inputs: { "options": "options"; "name": "name"; "scale": "scale"; "position": "position"; "quaternion": "quaternion"; "rotation": "rotation"; "userData": "userData"; }; outputs: { "collisionEnter": "collisionEnter"; "collisionExit": "collisionExit"; "intersectionEnter": "intersectionEnter"; "intersectionExit": "intersectionExit"; "contactForce": "contactForce"; }; }]>;
92
+ static ɵdir: i0.ɵɵDirectiveDeclaration<NgtrRoundConvexMeshCollider, "ngt-object3D[roundConvexMeshCollider]", never, { "args": { "alias": "roundConvexMeshCollider"; "required": true; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.NgtrAnyCollider; inputs: { "options": "options"; "name": "name"; "scale": "scale"; "position": "position"; "quaternion": "quaternion"; "rotation": "rotation"; "userData": "userData"; }; outputs: { "collisionEnter": "collisionEnter"; "collisionExit": "collisionExit"; "intersectionEnter": "intersectionEnter"; "intersectionExit": "intersectionExit"; "contactForce": "contactForce"; }; }]>;
93
93
  }
package/lib/debug.d.ts CHANGED
@@ -1,9 +1,8 @@
1
- import { World } from '@dimforge/rapier3d-compat';
2
1
  import * as i0 from "@angular/core";
3
2
  export declare class NgtrDebug {
4
- world: import("@angular/core").InputSignal<World | undefined>;
3
+ private physics;
5
4
  private lineSegmentsRef;
6
5
  constructor();
7
6
  static ɵfac: i0.ɵɵFactoryDeclaration<NgtrDebug, never>;
8
- static ɵcmp: i0.ɵɵComponentDeclaration<NgtrDebug, "ngtr-debug", never, { "world": { "alias": "world"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
7
+ static ɵcmp: i0.ɵɵComponentDeclaration<NgtrDebug, "ngtr-debug", never, {}, {}, never, never, true, never>;
9
8
  }
@@ -15,9 +15,9 @@ export interface NgtrInstancedRigidBodyOptions {
15
15
  options?: NgtrRigidBodyOptions;
16
16
  }
17
17
  export declare class NgtrInstancedRigidBodies {
18
- position: import("@angular/core").InputSignal<number | THREE.Vector3 | [x: number, y: number, z: number] | undefined>;
18
+ position: import("@angular/core").InputSignal<number | THREE.Vector3 | [x: number, y: number, z: number]>;
19
19
  rotation: import("@angular/core").InputSignal<number | THREE.Euler | [x: number, y: number, z: number, order?: THREE.EulerOrder | undefined] | undefined>;
20
- scale: import("@angular/core").InputSignal<number | THREE.Vector3 | [x: number, y: number, z: number] | undefined>;
20
+ scale: import("@angular/core").InputSignal<number | THREE.Vector3 | [x: number, y: number, z: number]>;
21
21
  quaternion: import("@angular/core").InputSignal<THREE.Quaternion | [x: number, y: number, z: number, w: number] | undefined>;
22
22
  userData: import("@angular/core").InputSignal<Record<string, any> | Readonly<Record<string, any> | undefined>>;
23
23
  instances: import("@angular/core").InputSignalWithTransform<NgtrInstancedRigidBodyOptions[], "" | NgtrInstancedRigidBodyOptions[]>;
@@ -29,7 +29,9 @@ export declare class NgtrInstancedRigidBodies {
29
29
  objectRef: ElementRef<THREE.Object3D<THREE.Object3DEventMap>>;
30
30
  private colliders;
31
31
  private instancedMesh;
32
- protected instancesOptions: import("@angular/core").Signal<(Omit<NgtrInstancedRigidBodyOptions, "options"> & {
32
+ protected instancesOptions: import("@angular/core").Signal<(Omit<NgtrInstancedRigidBodyOptions, "position" | "scale" | "options"> & {
33
+ position: NgtVector3;
34
+ scale: NgtVector3;
33
35
  options: Partial<NgtrRigidBodyOptions>;
34
36
  })[]>;
35
37
  protected childColliderOptions: import("@angular/core").Signal<{
@@ -42,5 +44,5 @@ export declare class NgtrInstancedRigidBodies {
42
44
  }[]>;
43
45
  constructor();
44
46
  static ɵfac: i0.ɵɵFactoryDeclaration<NgtrInstancedRigidBodies, never>;
45
- static ɵcmp: i0.ɵɵComponentDeclaration<NgtrInstancedRigidBodies, "ngt-object3D[instancedRigidBodies]", ["instancedRigidBodies"], { "position": { "alias": "position"; "required": false; "isSignal": true; }; "rotation": { "alias": "rotation"; "required": false; "isSignal": true; }; "scale": { "alias": "scale"; "required": false; "isSignal": true; }; "quaternion": { "alias": "quaternion"; "required": false; "isSignal": true; }; "userData": { "alias": "userData"; "required": false; "isSignal": true; }; "instances": { "alias": "instancedRigidBodies"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; }, {}, never, ["*", "[data-colliders]"], true, never>;
47
+ static ɵcmp: i0.ɵɵComponentDeclaration<NgtrInstancedRigidBodies, "ngt-object3D[instancedRigidBodies]", ["instancedRigidBodies"], { "position": { "alias": "position"; "required": false; "isSignal": true; }; "rotation": { "alias": "rotation"; "required": false; "isSignal": true; }; "scale": { "alias": "scale"; "required": false; "isSignal": true; }; "quaternion": { "alias": "quaternion"; "required": false; "isSignal": true; }; "userData": { "alias": "userData"; "required": false; "isSignal": true; }; "instances": { "alias": "instancedRigidBodies"; "required": true; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; }, {}, never, ["*", "[data-colliders]"], true, never>;
46
48
  }
@@ -0,0 +1,44 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ import { InteractionGroups } from '@dimforge/rapier3d-compat';
3
+ import * as i0 from "@angular/core";
4
+ /**
5
+ * Calculates an InteractionGroup bitmask for use in the `collisionGroups` or `solverGroups`
6
+ * properties of RigidBody or Collider components. The first argument represents a list of
7
+ * groups the entity is in (expressed as numbers from 0 to 15). The second argument is a list
8
+ * of groups that will be filtered against. When it is omitted, all groups are filtered against.
9
+ *
10
+ * @example
11
+ * A RigidBody that is member of group 0 and will collide with everything from groups 0 and 1:
12
+ *
13
+ * ```tsx
14
+ * <RigidBody collisionGroups={interactionGroups([0], [0, 1])} />
15
+ * ```
16
+ *
17
+ * A RigidBody that is member of groups 0 and 1 and will collide with everything else:
18
+ *
19
+ * ```tsx
20
+ * <RigidBody collisionGroups={interactionGroups([0, 1])} />
21
+ * ```
22
+ *
23
+ * A RigidBody that is member of groups 0 and 1 and will not collide with anything:
24
+ *
25
+ * ```tsx
26
+ * <RigidBody collisionGroups={interactionGroups([0, 1], [])} />
27
+ * ```
28
+ *
29
+ * Please note that Rapier needs interaction filters to evaluate to true between _both_ colliding
30
+ * entities for collision events to trigger.
31
+ *
32
+ * @param memberships Groups the collider is a member of. (Values can range from 0 to 15.)
33
+ * @param filters Groups the interaction group should filter against. (Values can range from 0 to 15.)
34
+ * @returns An InteractionGroup bitmask.
35
+ */
36
+ export declare function interactionGroups(memberships: number | number[], filters?: number | number[]): InteractionGroups;
37
+ export declare const COLLISION_GROUPS_HANDLER: InjectionToken<() => undefined | ((interactionGroups: InteractionGroups) => void)>;
38
+ export declare class NgtrInteractionGroups {
39
+ inputs: import("@angular/core").InputSignal<[number | number[], (number | number[] | undefined)?]>;
40
+ interactionGroups: import("@angular/core").Signal<number>;
41
+ constructor();
42
+ static ɵfac: i0.ɵɵFactoryDeclaration<NgtrInteractionGroups, never>;
43
+ static ɵdir: i0.ɵɵDirectiveDeclaration<NgtrInteractionGroups, "ngt-object3D[interactionGroups]", never, { "inputs": { "alias": "interactionGroups"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
44
+ }
package/lib/joints.d.ts CHANGED
@@ -10,7 +10,7 @@ import type { NgtrFixedJointParams, NgtrPrismaticJointParams, NgtrRevoluteJointP
10
10
  */
11
11
  export declare const injectFixedJoint: (bodyA: RigidBody | ElementRef<RigidBody> | (() => ElementRef<RigidBody> | RigidBody | undefined | null), bodyB: RigidBody | ElementRef<RigidBody> | (() => ElementRef<RigidBody> | RigidBody | undefined | null), { injector, data }: {
12
12
  injector?: Injector;
13
- data: NgtrFixedJointParams;
13
+ data: NgtrFixedJointParams | (() => NgtrFixedJointParams);
14
14
  }) => import("@angular/core").Signal<FixedImpulseJoint | null>;
15
15
  /**
16
16
  * The spherical joint ensures that two points on the local-spaces of two rigid-bodies always coincide (it prevents any relative
@@ -22,7 +22,7 @@ export declare const injectFixedJoint: (bodyA: RigidBody | ElementRef<RigidBody>
22
22
  */
23
23
  export declare const injectSphericalJoint: (bodyA: RigidBody | ElementRef<RigidBody> | (() => ElementRef<RigidBody> | RigidBody | undefined | null), bodyB: RigidBody | ElementRef<RigidBody> | (() => ElementRef<RigidBody> | RigidBody | undefined | null), { injector, data }: {
24
24
  injector?: Injector;
25
- data: NgtrSphericalJointParams;
25
+ data: NgtrSphericalJointParams | (() => NgtrSphericalJointParams);
26
26
  }) => import("@angular/core").Signal<SphericalImpulseJoint | null>;
27
27
  /**
28
28
  * The revolute joint prevents any relative movement between two rigid-bodies, except for relative
@@ -33,7 +33,7 @@ export declare const injectSphericalJoint: (bodyA: RigidBody | ElementRef<RigidB
33
33
  */
34
34
  export declare const injectRevoluteJoint: (bodyA: RigidBody | ElementRef<RigidBody> | (() => ElementRef<RigidBody> | RigidBody | undefined | null), bodyB: RigidBody | ElementRef<RigidBody> | (() => ElementRef<RigidBody> | RigidBody | undefined | null), { injector, data }: {
35
35
  injector?: Injector;
36
- data: NgtrRevoluteJointParams;
36
+ data: NgtrRevoluteJointParams | (() => NgtrRevoluteJointParams);
37
37
  }) => import("@angular/core").Signal<RevoluteImpulseJoint | null>;
38
38
  /**
39
39
  * The prismatic joint prevents any relative movement between two rigid-bodies, except for relative translations along one axis.
@@ -44,7 +44,7 @@ export declare const injectRevoluteJoint: (bodyA: RigidBody | ElementRef<RigidBo
44
44
  */
45
45
  export declare const injectPrismaticJoint: (bodyA: RigidBody | ElementRef<RigidBody> | (() => ElementRef<RigidBody> | RigidBody | undefined | null), bodyB: RigidBody | ElementRef<RigidBody> | (() => ElementRef<RigidBody> | RigidBody | undefined | null), { injector, data }: {
46
46
  injector?: Injector;
47
- data: NgtrPrismaticJointParams;
47
+ data: NgtrPrismaticJointParams | (() => NgtrPrismaticJointParams);
48
48
  }) => import("@angular/core").Signal<PrismaticImpulseJoint | null>;
49
49
  /**
50
50
  * The rope joint limits the max distance between two bodies.
@@ -52,7 +52,7 @@ export declare const injectPrismaticJoint: (bodyA: RigidBody | ElementRef<RigidB
52
52
  */
53
53
  export declare const injectRopeJoint: (bodyA: RigidBody | ElementRef<RigidBody> | (() => ElementRef<RigidBody> | RigidBody | undefined | null), bodyB: RigidBody | ElementRef<RigidBody> | (() => ElementRef<RigidBody> | RigidBody | undefined | null), { injector, data }: {
54
54
  injector?: Injector;
55
- data: NgtrRopeJointParams;
55
+ data: NgtrRopeJointParams | (() => NgtrRopeJointParams);
56
56
  }) => import("@angular/core").Signal<RopeImpulseJoint | null>;
57
57
  /**
58
58
  * The spring joint applies a force proportional to the distance between two objects.
@@ -60,5 +60,5 @@ export declare const injectRopeJoint: (bodyA: RigidBody | ElementRef<RigidBody>
60
60
  */
61
61
  export declare const injectSpringJoint: (bodyA: RigidBody | ElementRef<RigidBody> | (() => ElementRef<RigidBody> | RigidBody | undefined | null), bodyB: RigidBody | ElementRef<RigidBody> | (() => ElementRef<RigidBody> | RigidBody | undefined | null), { injector, data }: {
62
62
  injector?: Injector;
63
- data: NgtrSpringJointParams;
63
+ data: NgtrSpringJointParams | (() => NgtrSpringJointParams);
64
64
  }) => import("@angular/core").Signal<SpringImpulseJoint | null>;
@@ -16,5 +16,5 @@ export declare class NgtrMeshCollider {
16
16
  }[]>;
17
17
  constructor();
18
18
  static ɵfac: i0.ɵɵFactoryDeclaration<NgtrMeshCollider, never>;
19
- static ɵcmp: i0.ɵɵComponentDeclaration<NgtrMeshCollider, "ngt-object3D[meshCollider]", never, { "colliders": { "alias": "ngtrMeshCollider"; "required": true; "isSignal": true; }; }, {}, never, ["*"], true, never>;
19
+ static ɵcmp: i0.ɵɵComponentDeclaration<NgtrMeshCollider, "ngt-object3D[meshCollider]", never, { "colliders": { "alias": "meshCollider"; "required": true; "isSignal": true; }; }, {}, never, ["*"], true, never>;
20
20
  }
@@ -0,0 +1,4 @@
1
+ import { Injector } from '@angular/core';
2
+ import type { NgtrWorldStepCallback } from './types';
3
+ export declare function injectBeforePhysicsStep(callback: NgtrWorldStepCallback, injector?: Injector): void;
4
+ export declare function injectAfterPhysicsStep(callback: NgtrWorldStepCallback, injector?: Injector): void;
package/lib/physics.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { TemplateRef } from '@angular/core';
2
2
  import RAPIER from '@dimforge/rapier3d-compat';
3
- import { NgtrColliderStateMap, NgtrEventMap, NgtrPhysicsOptions, NgtrRigidBodyStateMap } from './types';
3
+ import { NgtrColliderStateMap, NgtrEventMap, NgtrPhysicsOptions, NgtrRigidBodyStateMap, NgtrWorldStepCallbackSet } from './types';
4
4
  import * as i0 from "@angular/core";
5
5
  export declare class NgtrPhysicsFallback {
6
6
  static ngTemplateContextGuard(_: NgtrPhysicsFallback, ctx: unknown): ctx is {
@@ -44,8 +44,8 @@ export declare class NgtrPhysics {
44
44
  colliderStates: NgtrColliderStateMap;
45
45
  rigidBodyEvents: NgtrEventMap;
46
46
  colliderEvents: NgtrEventMap;
47
- private beforeStepCallbacks;
48
- private afterStepCallbacks;
47
+ beforeStepCallbacks: NgtrWorldStepCallbackSet;
48
+ afterStepCallbacks: NgtrWorldStepCallbackSet;
49
49
  private eventQueue;
50
50
  private steppingState;
51
51
  constructor();
@@ -5,12 +5,12 @@ import * as THREE from 'three';
5
5
  import type { NgtrColliderOptions, NgtrColliderShape, NgtrCollisionEnterPayload, NgtrCollisionExitPayload, NgtrContactForcePayload, NgtrIntersectionEnterPayload, NgtrIntersectionExitPayload, NgtrRigidBodyOptions, NgtrRigidBodyType } from './types';
6
6
  import * as i0 from "@angular/core";
7
7
  export declare class NgtrAnyCollider {
8
- position: import("@angular/core").InputSignal<number | THREE.Vector3 | [x: number, y: number, z: number] | undefined>;
8
+ position: import("@angular/core").InputSignal<number | THREE.Vector3 | [x: number, y: number, z: number]>;
9
9
  rotation: import("@angular/core").InputSignal<number | THREE.Euler | [x: number, y: number, z: number, order?: THREE.EulerOrder | undefined] | undefined>;
10
- scale: import("@angular/core").InputSignal<number | THREE.Vector3 | [x: number, y: number, z: number] | undefined>;
10
+ scale: import("@angular/core").InputSignal<number | THREE.Vector3 | [x: number, y: number, z: number]>;
11
11
  quaternion: import("@angular/core").InputSignal<THREE.Quaternion | [x: number, y: number, z: number, w: number] | undefined>;
12
12
  userData: import("@angular/core").InputSignal<Record<string, any> | Readonly<Record<string, any> | undefined>>;
13
- name: import("@angular/core").InputSignal<Readonly<string | undefined>>;
13
+ name: import("@angular/core").InputSignal<string | undefined>;
14
14
  options: import("@angular/core").InputSignalWithTransform<NgtrColliderOptions, "" | Partial<NgtrRigidBodyOptions>>;
15
15
  private object3DParameters;
16
16
  shape: import("@angular/core").ModelSignal<NgtrColliderShape | undefined>;
@@ -53,12 +53,13 @@ export declare class NgtrAnyCollider {
53
53
  export declare const rigidBodyDefaultOptions: NgtrRigidBodyOptions;
54
54
  export declare class NgtrRigidBody {
55
55
  type: import("@angular/core").InputSignalWithTransform<NgtrRigidBodyType, "" | NgtrRigidBodyType | undefined>;
56
- position: import("@angular/core").InputSignal<number | THREE.Vector3 | [x: number, y: number, z: number] | undefined>;
56
+ position: import("@angular/core").InputSignal<number | THREE.Vector3 | [x: number, y: number, z: number]>;
57
57
  rotation: import("@angular/core").InputSignal<number | THREE.Euler | [x: number, y: number, z: number, order?: THREE.EulerOrder | undefined] | undefined>;
58
- scale: import("@angular/core").InputSignal<number | THREE.Vector3 | [x: number, y: number, z: number] | undefined>;
58
+ scale: import("@angular/core").InputSignal<number | THREE.Vector3 | [x: number, y: number, z: number]>;
59
59
  quaternion: import("@angular/core").InputSignal<THREE.Quaternion | [x: number, y: number, z: number, w: number] | undefined>;
60
60
  userData: import("@angular/core").InputSignal<Record<string, any> | Readonly<Record<string, any> | undefined>>;
61
61
  options: import("@angular/core").InputSignalWithTransform<NgtrRigidBodyOptions, "" | Partial<NgtrRigidBodyOptions>>;
62
+ anyColliders: import("@angular/core").Signal<readonly NgtrAnyCollider[]>;
62
63
  private object3DParameters;
63
64
  wake: import("@angular/core").OutputEmitterRef<void>;
64
65
  sleep: import("@angular/core").OutputEmitterRef<void>;
@@ -102,5 +103,5 @@ export declare class NgtrRigidBody {
102
103
  private updateRigidBodyEffect;
103
104
  private createRigidBodyState;
104
105
  static ɵfac: i0.ɵɵFactoryDeclaration<NgtrRigidBody, never>;
105
- static ɵcmp: i0.ɵɵComponentDeclaration<NgtrRigidBody, "ngt-object3D[rigidBody]", ["rigidBody"], { "type": { "alias": "rigidBody"; "required": false; "isSignal": true; }; "position": { "alias": "position"; "required": false; "isSignal": true; }; "rotation": { "alias": "rotation"; "required": false; "isSignal": true; }; "scale": { "alias": "scale"; "required": false; "isSignal": true; }; "quaternion": { "alias": "quaternion"; "required": false; "isSignal": true; }; "userData": { "alias": "userData"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; }, { "wake": "wake"; "sleep": "sleep"; "collisionEnter": "collisionEnter"; "collisionExit": "collisionExit"; "intersectionEnter": "intersectionEnter"; "intersectionExit": "intersectionExit"; "contactForce": "contactForce"; }, never, ["*"], true, never>;
106
+ static ɵcmp: i0.ɵɵComponentDeclaration<NgtrRigidBody, "ngt-object3D[rigidBody]", ["rigidBody"], { "type": { "alias": "rigidBody"; "required": true; "isSignal": true; }; "position": { "alias": "position"; "required": false; "isSignal": true; }; "rotation": { "alias": "rotation"; "required": false; "isSignal": true; }; "scale": { "alias": "scale"; "required": false; "isSignal": true; }; "quaternion": { "alias": "quaternion"; "required": false; "isSignal": true; }; "userData": { "alias": "userData"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; }, { "wake": "wake"; "sleep": "sleep"; "collisionEnter": "collisionEnter"; "collisionExit": "collisionExit"; "intersectionEnter": "intersectionEnter"; "intersectionExit": "intersectionExit"; "contactForce": "contactForce"; }, never, ["*"], true, never>;
106
107
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "angular-three-rapier",
3
- "version": "4.0.0-next.8",
3
+ "version": "4.0.0-next.81",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -26,7 +26,7 @@
26
26
  "@angular/common": ">=19.0.0 <20.0.0",
27
27
  "@angular/core": ">=19.0.0 <20.0.0",
28
28
  "@dimforge/rapier3d-compat": "~0.14.0",
29
- "three": ">=0.148.0 <0.174.0",
29
+ "three": ">=0.156.0 <0.175.0",
30
30
  "three-stdlib": "^2.0.0"
31
31
  },
32
32
  "dependencies": {
@@ -45,6 +45,10 @@
45
45
  ".": {
46
46
  "types": "./index.d.ts",
47
47
  "default": "./fesm2022/angular-three-rapier.mjs"
48
+ },
49
+ "./addons": {
50
+ "types": "./addons/index.d.ts",
51
+ "default": "./fesm2022/angular-three-rapier-addons.mjs"
48
52
  }
49
53
  }
50
54
  }