angular-three-cannon 1.6.0 → 2.0.0-beta.2
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/README.md +4 -12
- package/debug/{lib/debug.d.ts → debug.d.ts} +9 -9
- package/debug/index.d.ts +1 -1
- package/esm2022/angular-three-cannon.mjs +1 -1
- package/esm2022/debug/angular-three-cannon-debug.mjs +1 -1
- package/esm2022/debug/debug.mjs +99 -0
- package/esm2022/debug/index.mjs +2 -2
- package/esm2022/index.mjs +2 -4
- package/esm2022/physics.mjs +297 -0
- package/esm2022/services/angular-three-cannon-services.mjs +1 -1
- package/esm2022/services/body.mjs +289 -0
- package/esm2022/services/constraint.mjs +59 -0
- package/esm2022/services/contact-material.mjs +20 -0
- package/esm2022/services/index.mjs +7 -7
- package/esm2022/services/ray.mjs +30 -0
- package/esm2022/services/raycast-vehicle.mjs +72 -0
- package/esm2022/services/spring.mjs +34 -0
- package/fesm2022/angular-three-cannon-debug.mjs +31 -50
- package/fesm2022/angular-three-cannon-debug.mjs.map +1 -1
- package/fesm2022/angular-three-cannon-services.mjs +422 -417
- package/fesm2022/angular-three-cannon-services.mjs.map +1 -1
- package/fesm2022/angular-three-cannon.mjs +169 -197
- package/fesm2022/angular-three-cannon.mjs.map +1 -1
- package/index.d.ts +1 -3
- package/package.json +6 -7
- package/physics.d.ts +97 -0
- package/plugin/package.json +1 -1
- package/plugin/src/generators/init/compat.js.map +1 -1
- package/plugin/src/generators/init/init.d.ts +1 -1
- package/plugin/src/generators/init/init.js +15 -19
- package/plugin/src/generators/init/init.js.map +1 -1
- package/plugin/src/index.js.map +1 -1
- package/services/{lib/body.d.ts → body.d.ts} +19 -39
- package/services/constraint.d.ts +31 -0
- package/services/contact-material.d.ts +9 -0
- package/services/index.d.ts +6 -6
- package/services/ray.d.ts +12 -0
- package/services/{lib/raycast-vehicle.d.ts → raycast-vehicle.d.ts} +8 -3
- package/services/{lib/spring.d.ts → spring.d.ts} +8 -3
- package/esm2022/debug/lib/debug.mjs +0 -118
- package/esm2022/lib/physics.mjs +0 -262
- package/esm2022/lib/store.mjs +0 -22
- package/esm2022/lib/utils.mjs +0 -48
- package/esm2022/services/lib/body.mjs +0 -271
- package/esm2022/services/lib/constraint.mjs +0 -69
- package/esm2022/services/lib/contact-material.mjs +0 -18
- package/esm2022/services/lib/ray.mjs +0 -32
- package/esm2022/services/lib/raycast-vehicle.mjs +0 -76
- package/esm2022/services/lib/spring.mjs +0 -37
- package/esm2022/services/lib/utils.mjs +0 -5
- package/lib/physics.d.ts +0 -43
- package/lib/store.d.ts +0 -34
- package/lib/utils.d.ts +0 -16
- package/services/lib/constraint.d.ts +0 -25
- package/services/lib/contact-material.d.ts +0 -3
- package/services/lib/ray.d.ts +0 -4
- package/services/lib/utils.d.ts +0 -2
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { inject } from '@angular/core';
|
|
2
|
-
import { injectNgtDestroy, makeId, tapEffect } from 'angular-three';
|
|
3
|
-
import { NgtcStore } from 'angular-three-cannon';
|
|
4
|
-
import { combineLatest, takeUntil } from 'rxjs';
|
|
5
|
-
import { filterEmpty } from './utils';
|
|
6
|
-
export function injectSpring(bodyA, bodyB, optsFn) {
|
|
7
|
-
const store = inject(NgtcStore, { skipSelf: true });
|
|
8
|
-
const uuid = makeId();
|
|
9
|
-
const { destroy$ } = injectNgtDestroy();
|
|
10
|
-
combineLatest([store.select('worker'), bodyA.$.pipe(filterEmpty()), bodyB.$.pipe(filterEmpty())])
|
|
11
|
-
.pipe(tapEffect(([worker, bodyA, bodyB]) => {
|
|
12
|
-
const opts = optsFn();
|
|
13
|
-
worker.addSpring({ props: [bodyA.uuid, bodyB.uuid, opts], uuid });
|
|
14
|
-
return () => worker.removeSpring({ uuid });
|
|
15
|
-
}), takeUntil(destroy$))
|
|
16
|
-
.subscribe();
|
|
17
|
-
const api = {
|
|
18
|
-
setDamping: (value) => {
|
|
19
|
-
const worker = store.get('worker');
|
|
20
|
-
worker.setSpringDamping({ uuid, props: value });
|
|
21
|
-
},
|
|
22
|
-
setRestLength: (value) => {
|
|
23
|
-
const worker = store.get('worker');
|
|
24
|
-
worker.setSpringRestLength({ uuid, props: value });
|
|
25
|
-
},
|
|
26
|
-
setStiffness: (value) => {
|
|
27
|
-
const worker = store.get('worker');
|
|
28
|
-
worker.setSpringStiffness({ uuid, props: value });
|
|
29
|
-
},
|
|
30
|
-
remove: () => {
|
|
31
|
-
const worker = store.get('worker');
|
|
32
|
-
worker.removeSpring({ uuid });
|
|
33
|
-
},
|
|
34
|
-
};
|
|
35
|
-
return { bodyA, bodyB, api };
|
|
36
|
-
}
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ByaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXRocmVlLWNhbm5vbi9zZXJ2aWNlcy9zcmMvbGliL3NwcmluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXZDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQWtCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDakQsT0FBTyxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDaEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQWtCdEMsTUFBTSxVQUFVLFlBQVksQ0FJeEIsS0FBK0IsRUFDL0IsS0FBK0IsRUFDL0IsTUFBeUI7SUFFekIsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLFNBQVMsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3BELE1BQU0sSUFBSSxHQUFHLE1BQU0sRUFBRSxDQUFDO0lBQ3RCLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxnQkFBZ0IsRUFBRSxDQUFDO0lBRXhDLGFBQWEsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDNUYsSUFBSSxDQUNELFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFO1FBQ2pDLE1BQU0sSUFBSSxHQUFHLE1BQU0sRUFBRSxDQUFDO1FBQ3RCLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNsRSxPQUFPLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQy9DLENBQUMsQ0FBQyxFQUNGLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FDdEI7U0FDQSxTQUFTLEVBQUUsQ0FBQztJQUVqQixNQUFNLEdBQUcsR0FBRztRQUNSLFVBQVUsRUFBRSxDQUFDLEtBQWEsRUFBRSxFQUFFO1lBQzFCLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDbkMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ3BELENBQUM7UUFDRCxhQUFhLEVBQUUsQ0FBQyxLQUFhLEVBQUUsRUFBRTtZQUM3QixNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ25DLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUN2RCxDQUFDO1FBQ0QsWUFBWSxFQUFFLENBQUMsS0FBYSxFQUFFLEVBQUU7WUFDNUIsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNuQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDdEQsQ0FBQztRQUNELE1BQU0sRUFBRSxHQUFHLEVBQUU7WUFDVCxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ25DLE1BQU0sQ0FBQyxZQUFZLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ2xDLENBQUM7S0FDYSxDQUFDO0lBRW5CLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxDQUFDO0FBQ2pDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNwcmluZ09wdG5zIH0gZnJvbSAnQHBtbmRycy9jYW5ub24td29ya2VyLWFwaSc7XG5pbXBvcnQgeyBpbmplY3ROZ3REZXN0cm95LCBtYWtlSWQsIE5ndEluamVjdGVkUmVmLCB0YXBFZmZlY3QgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IE5ndGNTdG9yZSB9IGZyb20gJ2FuZ3VsYXItdGhyZWUtY2Fubm9uJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyRW1wdHkgfSBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IGludGVyZmFjZSBOZ3RjU3ByaW5nQXBpIHtcbiAgICBzZXREYW1waW5nOiAodmFsdWU6IG51bWJlcikgPT4gdm9pZDtcbiAgICBzZXRSZXN0TGVuZ3RoOiAodmFsdWU6IG51bWJlcikgPT4gdm9pZDtcbiAgICBzZXRTdGlmZm5lc3M6ICh2YWx1ZTogbnVtYmVyKSA9PiB2b2lkO1xuICAgIHJlbW92ZTogKCkgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOZ3RjU3ByaW5nUmV0dXJuPFxuICAgIFRPYmplY3RBIGV4dGVuZHMgVEhSRUUuT2JqZWN0M0QgPSBUSFJFRS5PYmplY3QzRCxcbiAgICBUT2JqZWN0QiBleHRlbmRzIFRIUkVFLk9iamVjdDNEID0gVEhSRUUuT2JqZWN0M0Rcbj4ge1xuICAgIGJvZHlBOiBOZ3RJbmplY3RlZFJlZjxUT2JqZWN0QT47XG4gICAgYm9keUI6IE5ndEluamVjdGVkUmVmPFRPYmplY3RCPjtcbiAgICBhcGk6IE5ndGNTcHJpbmdBcGk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RTcHJpbmc8XG4gICAgVE9iamVjdEEgZXh0ZW5kcyBUSFJFRS5PYmplY3QzRCA9IFRIUkVFLk9iamVjdDNELFxuICAgIFRPYmplY3RCIGV4dGVuZHMgVEhSRUUuT2JqZWN0M0QgPSBUSFJFRS5PYmplY3QzRFxuPihcbiAgICBib2R5QTogTmd0SW5qZWN0ZWRSZWY8VE9iamVjdEE+LFxuICAgIGJvZHlCOiBOZ3RJbmplY3RlZFJlZjxUT2JqZWN0Qj4sXG4gICAgb3B0c0ZuOiAoKSA9PiBTcHJpbmdPcHRuc1xuKTogTmd0Y1NwcmluZ1JldHVybjxUT2JqZWN0QSwgVE9iamVjdEI+IHtcbiAgICBjb25zdCBzdG9yZSA9IGluamVjdChOZ3RjU3RvcmUsIHsgc2tpcFNlbGY6IHRydWUgfSk7XG4gICAgY29uc3QgdXVpZCA9IG1ha2VJZCgpO1xuICAgIGNvbnN0IHsgZGVzdHJveSQgfSA9IGluamVjdE5ndERlc3Ryb3koKTtcblxuICAgIGNvbWJpbmVMYXRlc3QoW3N0b3JlLnNlbGVjdCgnd29ya2VyJyksIGJvZHlBLiQucGlwZShmaWx0ZXJFbXB0eSgpKSwgYm9keUIuJC5waXBlKGZpbHRlckVtcHR5KCkpXSlcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICB0YXBFZmZlY3QoKFt3b3JrZXIsIGJvZHlBLCBib2R5Ql0pID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBvcHRzID0gb3B0c0ZuKCk7XG4gICAgICAgICAgICAgICAgd29ya2VyLmFkZFNwcmluZyh7IHByb3BzOiBbYm9keUEudXVpZCwgYm9keUIudXVpZCwgb3B0c10sIHV1aWQgfSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuICgpID0+IHdvcmtlci5yZW1vdmVTcHJpbmcoeyB1dWlkIH0pO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICB0YWtlVW50aWwoZGVzdHJveSQpXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgpO1xuXG4gICAgY29uc3QgYXBpID0ge1xuICAgICAgICBzZXREYW1waW5nOiAodmFsdWU6IG51bWJlcikgPT4ge1xuICAgICAgICAgICAgY29uc3Qgd29ya2VyID0gc3RvcmUuZ2V0KCd3b3JrZXInKTtcbiAgICAgICAgICAgIHdvcmtlci5zZXRTcHJpbmdEYW1waW5nKHsgdXVpZCwgcHJvcHM6IHZhbHVlIH0pO1xuICAgICAgICB9LFxuICAgICAgICBzZXRSZXN0TGVuZ3RoOiAodmFsdWU6IG51bWJlcikgPT4ge1xuICAgICAgICAgICAgY29uc3Qgd29ya2VyID0gc3RvcmUuZ2V0KCd3b3JrZXInKTtcbiAgICAgICAgICAgIHdvcmtlci5zZXRTcHJpbmdSZXN0TGVuZ3RoKHsgdXVpZCwgcHJvcHM6IHZhbHVlIH0pO1xuICAgICAgICB9LFxuICAgICAgICBzZXRTdGlmZm5lc3M6ICh2YWx1ZTogbnVtYmVyKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB3b3JrZXIgPSBzdG9yZS5nZXQoJ3dvcmtlcicpO1xuICAgICAgICAgICAgd29ya2VyLnNldFNwcmluZ1N0aWZmbmVzcyh7IHV1aWQsIHByb3BzOiB2YWx1ZSB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgcmVtb3ZlOiAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB3b3JrZXIgPSBzdG9yZS5nZXQoJ3dvcmtlcicpO1xuICAgICAgICAgICAgd29ya2VyLnJlbW92ZVNwcmluZyh7IHV1aWQgfSk7XG4gICAgICAgIH0sXG4gICAgfSBhcyBOZ3RjU3ByaW5nQXBpO1xuXG4gICAgcmV0dXJuIHsgYm9keUEsIGJvZHlCLCBhcGkgfTtcbn1cbiJdfQ==
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import { filter } from 'rxjs';
|
|
2
|
-
export function filterEmpty() {
|
|
3
|
-
return filter((obj) => obj != null);
|
|
4
|
-
}
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdGhyZWUtY2Fubm9uL3NlcnZpY2VzL3NyYy9saWIvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBNEIsTUFBTSxNQUFNLENBQUM7QUFFeEQsTUFBTSxVQUFVLFdBQVc7SUFDdkIsT0FBTyxNQUFNLENBQUksQ0FBQyxHQUFHLEVBQVksRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsQ0FBQztBQUNyRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZmlsdGVyLCBNb25vVHlwZU9wZXJhdG9yRnVuY3Rpb24gfSBmcm9tICdyeGpzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGZpbHRlckVtcHR5PFQ+KCk6IE1vbm9UeXBlT3BlcmF0b3JGdW5jdGlvbjxUPiB7XG4gICAgcmV0dXJuIGZpbHRlcjxUPigob2JqKTogb2JqIGlzIFQgPT4gb2JqICE9IG51bGwpO1xufVxuIl19
|
package/lib/physics.d.ts
DELETED
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { OnDestroy, OnInit } from '@angular/core';
|
|
2
|
-
import { CannonWorkerProps } from '@pmndrs/cannon-worker-api';
|
|
3
|
-
import { NgtRxStore } from 'angular-three';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export interface NgtcPhysicsInputs extends CannonWorkerProps {
|
|
6
|
-
isPaused?: boolean;
|
|
7
|
-
maxSubSteps?: number;
|
|
8
|
-
shouldInvalidate?: boolean;
|
|
9
|
-
stepSize?: number;
|
|
10
|
-
}
|
|
11
|
-
export declare class NgtcPhysics extends NgtRxStore<NgtcPhysicsInputs> implements OnInit, OnDestroy {
|
|
12
|
-
private readonly ngtStore;
|
|
13
|
-
private readonly physicsStore;
|
|
14
|
-
initialize(): void;
|
|
15
|
-
set allowSleep(allowSleep: NgtcPhysicsInputs['allowSleep']);
|
|
16
|
-
set axisIndex(axisIndex: NgtcPhysicsInputs['axisIndex']);
|
|
17
|
-
set broadphase(broadphase: NgtcPhysicsInputs['broadphase']);
|
|
18
|
-
set defaultContactMaterial(defaultContactMaterial: NgtcPhysicsInputs['defaultContactMaterial']);
|
|
19
|
-
set frictionGravity(frictionGravity: NgtcPhysicsInputs['frictionGravity']);
|
|
20
|
-
set gravity(gravity: NgtcPhysicsInputs['gravity']);
|
|
21
|
-
set iterations(iterations: NgtcPhysicsInputs['iterations']);
|
|
22
|
-
set quatNormalizeFast(quatNormalizeFast: NgtcPhysicsInputs['quatNormalizeFast']);
|
|
23
|
-
set quatNormalizeSkip(quatNormalizeSkip: NgtcPhysicsInputs['quatNormalizeSkip']);
|
|
24
|
-
set solver(solver: NgtcPhysicsInputs['solver']);
|
|
25
|
-
set tolerance(tolerance: NgtcPhysicsInputs['tolerance']);
|
|
26
|
-
set size(size: NgtcPhysicsInputs['size']);
|
|
27
|
-
set isPaused(isPaused: NgtcPhysicsInputs['isPaused']);
|
|
28
|
-
set maxSubSteps(maxSubSteps: NgtcPhysicsInputs['maxSubSteps']);
|
|
29
|
-
set shouldInvalidate(shouldInvalidate: NgtcPhysicsInputs['shouldInvalidate']);
|
|
30
|
-
set stepSize(stepSize: NgtcPhysicsInputs['stepSize']);
|
|
31
|
-
constructor();
|
|
32
|
-
ngOnInit(): void;
|
|
33
|
-
ngOnDestroy(): void;
|
|
34
|
-
private connectWorker;
|
|
35
|
-
private updateWorkerProp;
|
|
36
|
-
private collideHandler;
|
|
37
|
-
private collideBeginHandler;
|
|
38
|
-
private collideEndHandler;
|
|
39
|
-
private frameHandler;
|
|
40
|
-
private rayHitHandler;
|
|
41
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<NgtcPhysics, never>;
|
|
42
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<NgtcPhysics, "ngtc-physics", never, { "allowSleep": { "alias": "allowSleep"; "required": false; }; "axisIndex": { "alias": "axisIndex"; "required": false; }; "broadphase": { "alias": "broadphase"; "required": false; }; "defaultContactMaterial": { "alias": "defaultContactMaterial"; "required": false; }; "frictionGravity": { "alias": "frictionGravity"; "required": false; }; "gravity": { "alias": "gravity"; "required": false; }; "iterations": { "alias": "iterations"; "required": false; }; "quatNormalizeFast": { "alias": "quatNormalizeFast"; "required": false; }; "quatNormalizeSkip": { "alias": "quatNormalizeSkip"; "required": false; }; "solver": { "alias": "solver"; "required": false; }; "tolerance": { "alias": "tolerance"; "required": false; }; "size": { "alias": "size"; "required": false; }; "isPaused": { "alias": "isPaused"; "required": false; }; "maxSubSteps": { "alias": "maxSubSteps"; "required": false; }; "shouldInvalidate": { "alias": "shouldInvalidate"; "required": false; }; "stepSize": { "alias": "stepSize"; "required": false; }; }, {}, never, ["*"], true, never>;
|
|
43
|
-
}
|
package/lib/store.d.ts
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { OnDestroy } from '@angular/core';
|
|
2
|
-
import { CannonWorkerAPI, CannonWorkerProps, CollideBeginEvent, CollideEndEvent, CollideEvent, RayhitEvent, Refs, Subscriptions } from '@pmndrs/cannon-worker-api';
|
|
3
|
-
import { NgtRxStore } from 'angular-three';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export type NgtcEvent = CollideBeginEvent | CollideEndEvent | CollideEvent | RayhitEvent;
|
|
6
|
-
export type NgtcCallbackByType<T extends {
|
|
7
|
-
type: string;
|
|
8
|
-
}> = {
|
|
9
|
-
[K in T['type']]?: T extends {
|
|
10
|
-
type: K;
|
|
11
|
-
} ? (e: T) => void : never;
|
|
12
|
-
};
|
|
13
|
-
export type NgtcEvents = {
|
|
14
|
-
[uuid: string]: Partial<NgtcCallbackByType<NgtcEvent>>;
|
|
15
|
-
};
|
|
16
|
-
export type NgtcScaleOverrides = {
|
|
17
|
-
[uuid: string]: THREE.Vector3;
|
|
18
|
-
};
|
|
19
|
-
export interface NgtcState {
|
|
20
|
-
bodies: {
|
|
21
|
-
[uuid: string]: number;
|
|
22
|
-
};
|
|
23
|
-
events: NgtcEvents;
|
|
24
|
-
refs: Refs;
|
|
25
|
-
scaleOverrides: NgtcScaleOverrides;
|
|
26
|
-
subscriptions: Subscriptions;
|
|
27
|
-
worker: CannonWorkerAPI;
|
|
28
|
-
init: (inputs: CannonWorkerProps) => void;
|
|
29
|
-
}
|
|
30
|
-
export declare class NgtcStore extends NgtRxStore<NgtcState> implements OnDestroy {
|
|
31
|
-
initialize(): void;
|
|
32
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<NgtcStore, never>;
|
|
33
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<NgtcStore>;
|
|
34
|
-
}
|
package/lib/utils.d.ts
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import type { BodyProps, CannonWorkerAPI, PropValue, Quad, SubscriptionName, Subscriptions, SubscriptionTarget, Triplet } from '@pmndrs/cannon-worker-api';
|
|
2
|
-
import { NgtInjectedRef } from 'angular-three';
|
|
3
|
-
import * as THREE from 'three';
|
|
4
|
-
import type { NgtcEvents } from './store';
|
|
5
|
-
export declare class NgtcUtils {
|
|
6
|
-
static incrementingId: number;
|
|
7
|
-
static e: THREE.Euler;
|
|
8
|
-
static q: THREE.Quaternion;
|
|
9
|
-
static getUUID<TObject extends THREE.Object3D = THREE.Object3D>(ref: NgtInjectedRef<TObject>, index?: number): string | null;
|
|
10
|
-
static subscribe<T extends SubscriptionName, TObject extends THREE.Object3D = THREE.Object3D>(ref: NgtInjectedRef<TObject>, worker: CannonWorkerAPI, subscriptions: Subscriptions, type: T, index?: number, target?: SubscriptionTarget): (callback: (value: PropValue<T>) => void) => () => void;
|
|
11
|
-
static prepare(object: THREE.Object3D, { position, rotation, userData }: BodyProps): void;
|
|
12
|
-
static setupCollision(events: NgtcEvents, { onCollide, onCollideBegin, onCollideEnd }: Partial<BodyProps>, uuid: string): void;
|
|
13
|
-
static capitalize<T extends string>(str: T): Capitalize<T>;
|
|
14
|
-
static quaternionToRotation(callback: (v: Triplet) => void): (v: Quad) => void;
|
|
15
|
-
static makeTriplet(v: THREE.Vector3 | Triplet): Triplet;
|
|
16
|
-
}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { ConeTwistConstraintOpts, ConstraintOptns, ConstraintTypes, DistanceConstraintOpts, HingeConstraintOpts, LockConstraintOpts, PointToPointConstraintOpts } from '@pmndrs/cannon-worker-api';
|
|
2
|
-
import { NgtInjectedRef } from 'angular-three';
|
|
3
|
-
export interface NgtcConstraintApi {
|
|
4
|
-
disable: () => void;
|
|
5
|
-
enable: () => void;
|
|
6
|
-
remove: () => void;
|
|
7
|
-
}
|
|
8
|
-
export interface NgtcHingeConstraintApi extends NgtcConstraintApi {
|
|
9
|
-
disableMotor: () => void;
|
|
10
|
-
enableMotor: () => void;
|
|
11
|
-
setMotorMaxForce: (value: number) => void;
|
|
12
|
-
setMotorSpeed: (value: number) => void;
|
|
13
|
-
}
|
|
14
|
-
export type NgtcConstraintORHingeApi<T extends 'Hinge' | ConstraintTypes> = T extends ConstraintTypes ? NgtcConstraintApi : NgtcHingeConstraintApi;
|
|
15
|
-
export interface NgtcConstraintReturn<T extends 'Hinge' | ConstraintTypes, TObjectA extends THREE.Object3D = THREE.Object3D, TObjectB extends THREE.Object3D = THREE.Object3D> {
|
|
16
|
-
bodyA: NgtInjectedRef<TObjectA>;
|
|
17
|
-
bodyB: NgtInjectedRef<TObjectB>;
|
|
18
|
-
api: NgtcConstraintORHingeApi<T>;
|
|
19
|
-
}
|
|
20
|
-
export type NgtcOptsFunction<TConstraintType extends 'Hinge' | ConstraintTypes, TOptions extends HingeConstraintOpts | ConstraintOptns = TConstraintType extends 'Hinge' ? HingeConstraintOpts : ConstraintOptns> = () => TOptions;
|
|
21
|
-
export declare function injectPointToPointConstraint<TObjectA extends THREE.Object3D = THREE.Object3D, TObjectB extends THREE.Object3D = THREE.Object3D>(bodyA: NgtInjectedRef<TObjectA> | TObjectA, bodyB: NgtInjectedRef<TObjectB> | TObjectB, optsFn?: NgtcOptsFunction<'PointToPoint', PointToPointConstraintOpts>): NgtcConstraintReturn<"PointToPoint", TObjectA, TObjectB>;
|
|
22
|
-
export declare function injectConeTwistConstraint<TObjectA extends THREE.Object3D = THREE.Object3D, TObjectB extends THREE.Object3D = THREE.Object3D>(bodyA: NgtInjectedRef<TObjectA> | TObjectA, bodyB: NgtInjectedRef<TObjectB> | TObjectB, optsFn?: NgtcOptsFunction<'ConeTwist', ConeTwistConstraintOpts>): NgtcConstraintReturn<"ConeTwist", TObjectA, TObjectB>;
|
|
23
|
-
export declare function injectDistanceConstraint<TObjectA extends THREE.Object3D = THREE.Object3D, TObjectB extends THREE.Object3D = THREE.Object3D>(bodyA: NgtInjectedRef<TObjectA> | TObjectA, bodyB: NgtInjectedRef<TObjectB> | TObjectB, optsFn?: NgtcOptsFunction<'Distance', DistanceConstraintOpts>): NgtcConstraintReturn<"Distance", TObjectA, TObjectB>;
|
|
24
|
-
export declare function injectHingeConstraint<TObjectA extends THREE.Object3D = THREE.Object3D, TObjectB extends THREE.Object3D = THREE.Object3D>(bodyA: NgtInjectedRef<TObjectA> | TObjectA, bodyB: NgtInjectedRef<TObjectB> | TObjectB, optsFn?: NgtcOptsFunction<'Hinge', HingeConstraintOpts>): NgtcConstraintReturn<"Hinge", TObjectA, TObjectB>;
|
|
25
|
-
export declare function injectLockConstraint<TObjectA extends THREE.Object3D = THREE.Object3D, TObjectB extends THREE.Object3D = THREE.Object3D>(bodyA: NgtInjectedRef<TObjectA> | TObjectA, bodyB: NgtInjectedRef<TObjectB> | TObjectB, optsFn?: NgtcOptsFunction<'Lock', LockConstraintOpts>): NgtcConstraintReturn<"Lock", TObjectA, TObjectB>;
|
package/services/lib/ray.d.ts
DELETED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import { RayhitEvent, RayOptions } from '@pmndrs/cannon-worker-api';
|
|
2
|
-
export declare function injectRaycastClosest(optionsFn: () => RayOptions, callback: (e: RayhitEvent) => void): void;
|
|
3
|
-
export declare function injectRaycastAny(optionsFn: () => RayOptions, callback: (e: RayhitEvent) => void): void;
|
|
4
|
-
export declare function injectRaycastAll(optionsFn: () => RayOptions, callback: (e: RayhitEvent) => void): void;
|
package/services/lib/utils.d.ts
DELETED