angular-three-rapier 4.0.0-next.8 → 4.0.0-next.80
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/addons/README.md +3 -0
- package/addons/index.d.ts +1 -0
- package/addons/lib/attractor-debug.d.ts +4 -0
- package/addons/lib/attractor.d.ts +51 -0
- package/fesm2022/angular-three-rapier-addons.mjs +154 -0
- package/fesm2022/angular-three-rapier-addons.mjs.map +1 -0
- package/fesm2022/angular-three-rapier.mjs +293 -126
- package/fesm2022/angular-three-rapier.mjs.map +1 -1
- package/index.d.ts +2 -0
- package/lib/colliders.d.ts +15 -15
- package/lib/debug.d.ts +2 -3
- package/lib/instanced-rigid-bodies.d.ts +6 -4
- package/lib/interaction-groups.d.ts +44 -0
- package/lib/joints.d.ts +6 -6
- package/lib/mesh-collider.d.ts +1 -1
- package/lib/physics-step-callback.d.ts +4 -0
- package/lib/physics.d.ts +3 -3
- package/lib/rigid-body.d.ts +7 -6
- package/package.json +6 -2
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';
|
package/lib/colliders.d.ts
CHANGED
|
@@ -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": "
|
|
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": "
|
|
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": "
|
|
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": "
|
|
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": "
|
|
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": "
|
|
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": "
|
|
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": "
|
|
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": "
|
|
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": "
|
|
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": "
|
|
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": "
|
|
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": "
|
|
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": "
|
|
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": "
|
|
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
|
-
|
|
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, {
|
|
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]
|
|
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]
|
|
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":
|
|
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>;
|
package/lib/mesh-collider.d.ts
CHANGED
|
@@ -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": "
|
|
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
|
-
|
|
48
|
-
|
|
47
|
+
beforeStepCallbacks: NgtrWorldStepCallbackSet;
|
|
48
|
+
afterStepCallbacks: NgtrWorldStepCallbackSet;
|
|
49
49
|
private eventQueue;
|
|
50
50
|
private steppingState;
|
|
51
51
|
constructor();
|
package/lib/rigid-body.d.ts
CHANGED
|
@@ -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]
|
|
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]
|
|
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<
|
|
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]
|
|
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]
|
|
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":
|
|
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.
|
|
3
|
+
"version": "4.0.0-next.80",
|
|
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.
|
|
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
|
}
|