angular-three-rapier 2.2.0 → 2.3.0
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/esm2022/lib/colliders.mjs +45 -45
- package/esm2022/lib/debug.mjs +3 -3
- package/esm2022/lib/frame-stepper.mjs +28 -31
- package/esm2022/lib/instanced-rigid-bodies.mjs +6 -6
- package/esm2022/lib/mesh-collider.mjs +3 -3
- package/esm2022/lib/physics.mjs +53 -26
- package/esm2022/lib/rigid-body.mjs +26 -9
- package/fesm2022/angular-three-rapier.mjs +160 -119
- package/fesm2022/angular-three-rapier.mjs.map +1 -1
- package/lib/physics.d.ts +13 -2
- package/package.json +1 -1
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { input, viewChild, Component, CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy,
|
|
2
|
+
import { input, viewChild, Component, CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, effect, Directive, contentChild, TemplateRef, inject, DestroyRef, signal, computed, untracked, model, output, ElementRef, viewChildren } from '@angular/core';
|
|
3
3
|
import { Vector3 as Vector3$1, Quaternion as Quaternion$1, EventQueue, ColliderDesc, ActiveEvents, RigidBodyDesc } from '@dimforge/rapier3d-compat';
|
|
4
|
-
import { extend, injectBeforeRender, pick, vector3,
|
|
4
|
+
import { extend, injectBeforeRender, injectStore, pick, vector3, getLocalState, getEmitter, hasListener, resolveRef } from 'angular-three';
|
|
5
5
|
import { mergeInputs } from 'ngxtension/inject-inputs';
|
|
6
6
|
import { Group, LineSegments, LineBasicMaterial, BufferAttribute, Quaternion, Euler, Vector3, Object3D, Matrix4, MathUtils, DynamicDrawUsage } from 'three';
|
|
7
|
-
import {
|
|
7
|
+
import { NgTemplateOutlet } from '@angular/common';
|
|
8
8
|
import { mergeVertices } from 'three-stdlib';
|
|
9
9
|
import { assertInjector } from 'ngxtension/assert-injector';
|
|
10
10
|
|
|
@@ -22,8 +22,8 @@ class NgtrDebug {
|
|
|
22
22
|
lineSegments.geometry.setAttribute('color', new BufferAttribute(buffers.colors, 4));
|
|
23
23
|
});
|
|
24
24
|
}
|
|
25
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
26
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.
|
|
25
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtrDebug, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
26
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.4", type: NgtrDebug, isStandalone: true, selector: "ngtr-debug", inputs: { world: { classPropertyName: "world", publicName: "world", isSignal: true, isRequired: true, transformFunction: null } }, viewQueries: [{ propertyName: "lineSegmentsRef", first: true, predicate: ["lineSegments"], descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
27
27
|
<ngt-group>
|
|
28
28
|
<ngt-line-segments #lineSegments [frustumCulled]="false">
|
|
29
29
|
<ngt-line-basic-material color="white" [vertexColors]="true" />
|
|
@@ -32,7 +32,7 @@ class NgtrDebug {
|
|
|
32
32
|
</ngt-group>
|
|
33
33
|
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
34
34
|
}
|
|
35
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
35
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtrDebug, decorators: [{
|
|
36
36
|
type: Component,
|
|
37
37
|
args: [{
|
|
38
38
|
selector: 'ngtr-debug',
|
|
@@ -56,38 +56,36 @@ class NgtrFrameStepper {
|
|
|
56
56
|
stepFn = input.required();
|
|
57
57
|
type = input.required();
|
|
58
58
|
constructor() {
|
|
59
|
-
const
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
return injectBeforeRender(({ delta }) => {
|
|
68
|
-
stepFn(delta);
|
|
69
|
-
}, { priority: updatePriority, injector });
|
|
70
|
-
}
|
|
71
|
-
let lastFrame = 0;
|
|
72
|
-
let raf = 0;
|
|
73
|
-
const loop = () => {
|
|
74
|
-
const now = performance.now();
|
|
75
|
-
const delta = now - lastFrame;
|
|
76
|
-
raf = requestAnimationFrame(loop);
|
|
59
|
+
const store = injectStore();
|
|
60
|
+
effect((onCleanup) => {
|
|
61
|
+
const ready = this.ready();
|
|
62
|
+
if (!ready)
|
|
63
|
+
return;
|
|
64
|
+
const [type, updatePriority, stepFn] = [this.type(), this.updatePriority(), this.stepFn()];
|
|
65
|
+
if (type === 'follow') {
|
|
66
|
+
const cleanup = store.snapshot.internal.subscribe(({ delta }) => {
|
|
77
67
|
stepFn(delta);
|
|
78
|
-
|
|
79
|
-
|
|
68
|
+
}, updatePriority, store);
|
|
69
|
+
onCleanup(() => cleanup());
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
let lastFrame = 0;
|
|
73
|
+
let raf = 0;
|
|
74
|
+
const loop = () => {
|
|
75
|
+
const now = performance.now();
|
|
76
|
+
const delta = now - lastFrame;
|
|
80
77
|
raf = requestAnimationFrame(loop);
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
78
|
+
stepFn(delta);
|
|
79
|
+
lastFrame = now;
|
|
80
|
+
};
|
|
81
|
+
raf = requestAnimationFrame(loop);
|
|
82
|
+
onCleanup(() => cancelAnimationFrame(raf));
|
|
85
83
|
});
|
|
86
84
|
}
|
|
87
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
88
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.
|
|
85
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtrFrameStepper, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
86
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.4", type: NgtrFrameStepper, isStandalone: true, selector: "ngtr-frame-stepper", inputs: { ready: { classPropertyName: "ready", publicName: "ready", isSignal: true, isRequired: false, transformFunction: null }, updatePriority: { classPropertyName: "updatePriority", publicName: "updatePriority", isSignal: true, isRequired: false, transformFunction: null }, stepFn: { classPropertyName: "stepFn", publicName: "stepFn", isSignal: true, isRequired: true, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0 });
|
|
89
87
|
}
|
|
90
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
88
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtrFrameStepper, decorators: [{
|
|
91
89
|
type: Directive,
|
|
92
90
|
args: [{ standalone: true, selector: 'ngtr-frame-stepper' }]
|
|
93
91
|
}], ctorParameters: () => [] });
|
|
@@ -266,8 +264,21 @@ const defaultOptions$1 = {
|
|
|
266
264
|
timeStep: 1 / 60,
|
|
267
265
|
debug: false,
|
|
268
266
|
};
|
|
267
|
+
class NgtrPhysicsFallback {
|
|
268
|
+
static ngTemplateContextGuard(_, ctx) {
|
|
269
|
+
return true;
|
|
270
|
+
}
|
|
271
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtrPhysicsFallback, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
272
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.4", type: NgtrPhysicsFallback, isStandalone: true, selector: "ng-template[rapierFallback]", ngImport: i0 });
|
|
273
|
+
}
|
|
274
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtrPhysicsFallback, decorators: [{
|
|
275
|
+
type: Directive,
|
|
276
|
+
args: [{ selector: 'ng-template[rapierFallback]', standalone: true }]
|
|
277
|
+
}] });
|
|
269
278
|
class NgtrPhysics {
|
|
270
279
|
options = input(defaultOptions$1, { transform: mergeInputs(defaultOptions$1) });
|
|
280
|
+
content = contentChild.required(TemplateRef);
|
|
281
|
+
fallbackContent = contentChild(NgtrPhysicsFallback);
|
|
271
282
|
updatePriority = pick(this.options, 'updatePriority');
|
|
272
283
|
updateLoop = pick(this.options, 'updateLoop');
|
|
273
284
|
numSolverIterations = pick(this.options, 'numSolverIterations');
|
|
@@ -288,6 +299,7 @@ class NgtrPhysics {
|
|
|
288
299
|
store = injectStore();
|
|
289
300
|
destroyRef = inject(DestroyRef);
|
|
290
301
|
rapierConstruct = signal(null);
|
|
302
|
+
rapierError = signal(null);
|
|
291
303
|
rapier = this.rapierConstruct.asReadonly();
|
|
292
304
|
ready = computed(() => !!this.rapier());
|
|
293
305
|
worldSingleton = computed(() => {
|
|
@@ -315,7 +327,7 @@ class NgtrPhysics {
|
|
|
315
327
|
.then(this.rapierConstruct.set.bind(this.rapierConstruct))
|
|
316
328
|
.catch((err) => {
|
|
317
329
|
console.error(`[NGT] Failed to load rapier3d-compat`, err);
|
|
318
|
-
|
|
330
|
+
this.rapierError.set(err?.message ?? err.toString());
|
|
319
331
|
});
|
|
320
332
|
effect(() => {
|
|
321
333
|
this.updateWorldEffect();
|
|
@@ -564,39 +576,51 @@ class NgtrPhysics {
|
|
|
564
576
|
},
|
|
565
577
|
};
|
|
566
578
|
}
|
|
567
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
568
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.
|
|
569
|
-
@if (
|
|
570
|
-
|
|
579
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtrPhysics, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
580
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.4", type: NgtrPhysics, isStandalone: true, selector: "ngtr-physics", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "content", first: true, predicate: TemplateRef, descendants: true, isSignal: true }, { propertyName: "fallbackContent", first: true, predicate: NgtrPhysicsFallback, descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
581
|
+
@if (rapierConstruct()) {
|
|
582
|
+
@if (debug()) {
|
|
583
|
+
<ngtr-debug [world]="worldSingleton()?.proxy" />
|
|
584
|
+
}
|
|
585
|
+
|
|
586
|
+
<ngtr-frame-stepper
|
|
587
|
+
[ready]="ready()"
|
|
588
|
+
[stepFn]="step.bind(this)"
|
|
589
|
+
[type]="updateLoop()"
|
|
590
|
+
[updatePriority]="updatePriority()"
|
|
591
|
+
/>
|
|
592
|
+
|
|
593
|
+
<ng-container [ngTemplateOutlet]="content()" />
|
|
594
|
+
} @else if (rapierError() && !!fallbackContent()) {
|
|
595
|
+
<ng-container [ngTemplateOutlet]="$any(fallbackContent())" [ngTemplateOutletContext]="{ error: rapierError() }" />
|
|
571
596
|
}
|
|
572
|
-
|
|
573
|
-
[ready]="ready()"
|
|
574
|
-
[stepFn]="step.bind(this)"
|
|
575
|
-
[type]="updateLoop()"
|
|
576
|
-
[updatePriority]="updatePriority()"
|
|
577
|
-
/>
|
|
578
|
-
<ng-content />
|
|
579
|
-
`, isInline: true, dependencies: [{ kind: "component", type: NgtrDebug, selector: "ngtr-debug", inputs: ["world"] }, { kind: "directive", type: NgtrFrameStepper, selector: "ngtr-frame-stepper", inputs: ["ready", "updatePriority", "stepFn", "type"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
597
|
+
`, isInline: true, dependencies: [{ kind: "component", type: NgtrDebug, selector: "ngtr-debug", inputs: ["world"] }, { kind: "directive", type: NgtrFrameStepper, selector: "ngtr-frame-stepper", inputs: ["ready", "updatePriority", "stepFn", "type"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
580
598
|
}
|
|
581
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
599
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtrPhysics, decorators: [{
|
|
582
600
|
type: Component,
|
|
583
601
|
args: [{
|
|
584
602
|
selector: 'ngtr-physics',
|
|
585
603
|
standalone: true,
|
|
586
604
|
template: `
|
|
587
|
-
@if (
|
|
588
|
-
|
|
605
|
+
@if (rapierConstruct()) {
|
|
606
|
+
@if (debug()) {
|
|
607
|
+
<ngtr-debug [world]="worldSingleton()?.proxy" />
|
|
608
|
+
}
|
|
609
|
+
|
|
610
|
+
<ngtr-frame-stepper
|
|
611
|
+
[ready]="ready()"
|
|
612
|
+
[stepFn]="step.bind(this)"
|
|
613
|
+
[type]="updateLoop()"
|
|
614
|
+
[updatePriority]="updatePriority()"
|
|
615
|
+
/>
|
|
616
|
+
|
|
617
|
+
<ng-container [ngTemplateOutlet]="content()" />
|
|
618
|
+
} @else if (rapierError() && !!fallbackContent()) {
|
|
619
|
+
<ng-container [ngTemplateOutlet]="$any(fallbackContent())" [ngTemplateOutletContext]="{ error: rapierError() }" />
|
|
589
620
|
}
|
|
590
|
-
<ngtr-frame-stepper
|
|
591
|
-
[ready]="ready()"
|
|
592
|
-
[stepFn]="step.bind(this)"
|
|
593
|
-
[type]="updateLoop()"
|
|
594
|
-
[updatePriority]="updatePriority()"
|
|
595
|
-
/>
|
|
596
|
-
<ng-content />
|
|
597
621
|
`,
|
|
598
622
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
599
|
-
imports: [NgtrDebug, NgtrFrameStepper],
|
|
623
|
+
imports: [NgtrDebug, NgtrFrameStepper, NgTemplateOutlet],
|
|
600
624
|
}]
|
|
601
625
|
}], ctorParameters: () => [] });
|
|
602
626
|
|
|
@@ -699,6 +723,12 @@ class NgtrAnyCollider {
|
|
|
699
723
|
const worldSingleton = this.physics.worldSingleton();
|
|
700
724
|
if (!worldSingleton)
|
|
701
725
|
return;
|
|
726
|
+
const localState = getLocalState(this.objectRef.nativeElement);
|
|
727
|
+
if (!localState)
|
|
728
|
+
return;
|
|
729
|
+
const parent = localState.parent();
|
|
730
|
+
if (!parent || !parent.isObject3D)
|
|
731
|
+
return;
|
|
702
732
|
const state = this.createColliderState(collider, this.objectRef.nativeElement, this.rigidBody?.objectRef.nativeElement);
|
|
703
733
|
this.physics.colliderStates.set(collider.handle, state);
|
|
704
734
|
return () => {
|
|
@@ -843,10 +873,10 @@ class NgtrAnyCollider {
|
|
|
843
873
|
}
|
|
844
874
|
return scaledVerts;
|
|
845
875
|
}
|
|
846
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
847
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.
|
|
876
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtrAnyCollider, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
877
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.4", type: NgtrAnyCollider, isStandalone: true, selector: "ngt-object3D[ngtrCollider]", inputs: { position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null }, rotation: { classPropertyName: "rotation", publicName: "rotation", isSignal: true, isRequired: false, transformFunction: null }, scale: { classPropertyName: "scale", publicName: "scale", isSignal: true, isRequired: false, transformFunction: null }, quaternion: { classPropertyName: "quaternion", publicName: "quaternion", isSignal: true, isRequired: false, transformFunction: null }, userData: { classPropertyName: "userData", publicName: "userData", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, shape: { classPropertyName: "shape", publicName: "ngtrCollider", isSignal: true, isRequired: false, transformFunction: null }, args: { classPropertyName: "args", publicName: "args", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { shape: "ngtrColliderChange", args: "argsChange", collisionEnter: "collisionEnter", collisionExit: "collisionExit", intersectionEnter: "intersectionEnter", intersectionExit: "intersectionExit", contactForce: "contactForce" }, host: { properties: { "position": "position()", "rotation": "rotation()", "scale": "scale()", "quaternion": "quaternion()", "userData": "userData()", "name": "name()" } }, ngImport: i0 });
|
|
848
878
|
}
|
|
849
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
879
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtrAnyCollider, decorators: [{
|
|
850
880
|
type: Directive,
|
|
851
881
|
args: [{
|
|
852
882
|
selector: 'ngt-object3D[ngtrCollider]',
|
|
@@ -934,14 +964,19 @@ class NgtrRigidBody {
|
|
|
934
964
|
if (colliders === false)
|
|
935
965
|
return [];
|
|
936
966
|
const physicsColliders = this.physics.colliders();
|
|
937
|
-
// if physics colliders is false explicitly, disable auto colliders for this object entirely.
|
|
938
|
-
if (physicsColliders === false)
|
|
967
|
+
// if physics colliders is false explicitly AND colliders is not set, disable auto colliders for this object entirely.
|
|
968
|
+
if (physicsColliders === false && colliders === undefined)
|
|
939
969
|
return [];
|
|
940
970
|
const options = this.options();
|
|
941
971
|
// if colliders on object is not set, use physics colliders
|
|
942
972
|
if (!options.colliders)
|
|
943
973
|
options.colliders = physicsColliders;
|
|
944
974
|
const objectLocalState = getLocalState(this.objectRef.nativeElement);
|
|
975
|
+
if (!objectLocalState)
|
|
976
|
+
return [];
|
|
977
|
+
const parent = objectLocalState.parent();
|
|
978
|
+
if (!parent || !parent.isObject3D)
|
|
979
|
+
return [];
|
|
945
980
|
// track object's children
|
|
946
981
|
objectLocalState?.nonObjects();
|
|
947
982
|
return createColliderOptions(this.objectRef.nativeElement, options, true);
|
|
@@ -968,6 +1003,12 @@ class NgtrRigidBody {
|
|
|
968
1003
|
if (!body)
|
|
969
1004
|
return;
|
|
970
1005
|
const transformState = untracked(this.transformState);
|
|
1006
|
+
const localState = getLocalState(this.objectRef.nativeElement);
|
|
1007
|
+
if (!localState)
|
|
1008
|
+
return;
|
|
1009
|
+
const parent = localState.parent();
|
|
1010
|
+
if (!parent || !parent.isObject3D)
|
|
1011
|
+
return;
|
|
971
1012
|
const state = this.createRigidBodyState(body, this.objectRef.nativeElement);
|
|
972
1013
|
this.physics.rigidBodyStates.set(body.handle, transformState ? transformState(state) : state);
|
|
973
1014
|
return () => {
|
|
@@ -1078,8 +1119,8 @@ class NgtrRigidBody {
|
|
|
1078
1119
|
meshType,
|
|
1079
1120
|
};
|
|
1080
1121
|
}
|
|
1081
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
1082
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.
|
|
1122
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtrRigidBody, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1123
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.4", type: NgtrRigidBody, isStandalone: true, selector: "ngt-object3D[ngtrRigidBody]", inputs: { type: { classPropertyName: "type", publicName: "ngtrRigidBody", isSignal: true, isRequired: false, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null }, rotation: { classPropertyName: "rotation", publicName: "rotation", isSignal: true, isRequired: false, transformFunction: null }, scale: { classPropertyName: "scale", publicName: "scale", isSignal: true, isRequired: false, transformFunction: null }, quaternion: { classPropertyName: "quaternion", publicName: "quaternion", isSignal: true, isRequired: false, transformFunction: null }, userData: { classPropertyName: "userData", publicName: "userData", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { wake: "wake", sleep: "sleep", collisionEnter: "collisionEnter", collisionExit: "collisionExit", intersectionEnter: "intersectionEnter", intersectionExit: "intersectionExit", contactForce: "contactForce" }, host: { properties: { "position": "position()", "rotation": "rotation()", "scale": "scale()", "quaternion": "quaternion()", "userData": "userData()" } }, exportAs: ["rigidBody"], ngImport: i0, template: `
|
|
1083
1124
|
<ng-content />
|
|
1084
1125
|
@for (childColliderOption of childColliderOptions(); track $index) {
|
|
1085
1126
|
<ngt-object3D
|
|
@@ -1094,7 +1135,7 @@ class NgtrRigidBody {
|
|
|
1094
1135
|
}
|
|
1095
1136
|
`, isInline: true, dependencies: [{ kind: "directive", type: NgtrAnyCollider, selector: "ngt-object3D[ngtrCollider]", inputs: ["position", "rotation", "scale", "quaternion", "userData", "name", "options", "ngtrCollider", "args"], outputs: ["ngtrColliderChange", "argsChange", "collisionEnter", "collisionExit", "intersectionEnter", "intersectionExit", "contactForce"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1096
1137
|
}
|
|
1097
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
1138
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtrRigidBody, decorators: [{
|
|
1098
1139
|
type: Component,
|
|
1099
1140
|
args: [{
|
|
1100
1141
|
selector: 'ngt-object3D[ngtrRigidBody]',
|
|
@@ -1144,10 +1185,10 @@ class NgtrCuboidCollider {
|
|
|
1144
1185
|
});
|
|
1145
1186
|
});
|
|
1146
1187
|
}
|
|
1147
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
1148
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.
|
|
1188
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtrCuboidCollider, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
1189
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.4", type: NgtrCuboidCollider, isStandalone: true, selector: "ngt-object3D[ngtrCuboidCollider]", inputs: { args: { classPropertyName: "args", publicName: "args", isSignal: true, isRequired: true, transformFunction: null } }, hostDirectives: [{ directive: 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"] }], ngImport: i0 });
|
|
1149
1190
|
}
|
|
1150
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
1191
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtrCuboidCollider, decorators: [{
|
|
1151
1192
|
type: Directive,
|
|
1152
1193
|
args: [{
|
|
1153
1194
|
selector: 'ngt-object3D[ngtrCuboidCollider]',
|
|
@@ -1167,10 +1208,10 @@ class NgtrCapsuleCollider {
|
|
|
1167
1208
|
});
|
|
1168
1209
|
});
|
|
1169
1210
|
}
|
|
1170
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
1171
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.
|
|
1211
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtrCapsuleCollider, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
1212
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.4", type: NgtrCapsuleCollider, isStandalone: true, selector: "ngt-object3D[ngtrCapsuleCollider]", inputs: { args: { classPropertyName: "args", publicName: "args", isSignal: true, isRequired: true, transformFunction: null } }, hostDirectives: [{ directive: 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"] }], ngImport: i0 });
|
|
1172
1213
|
}
|
|
1173
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
1214
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtrCapsuleCollider, decorators: [{
|
|
1174
1215
|
type: Directive,
|
|
1175
1216
|
args: [{
|
|
1176
1217
|
selector: 'ngt-object3D[ngtrCapsuleCollider]',
|
|
@@ -1190,10 +1231,10 @@ class NgtrBallCollider {
|
|
|
1190
1231
|
});
|
|
1191
1232
|
});
|
|
1192
1233
|
}
|
|
1193
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
1194
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.
|
|
1234
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtrBallCollider, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
1235
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.4", type: NgtrBallCollider, isStandalone: true, selector: "ngt-object3D[ngtrBallCollider]", inputs: { args: { classPropertyName: "args", publicName: "args", isSignal: true, isRequired: true, transformFunction: null } }, hostDirectives: [{ directive: 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"] }], ngImport: i0 });
|
|
1195
1236
|
}
|
|
1196
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
1237
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtrBallCollider, decorators: [{
|
|
1197
1238
|
type: Directive,
|
|
1198
1239
|
args: [{
|
|
1199
1240
|
selector: 'ngt-object3D[ngtrBallCollider]',
|
|
@@ -1213,10 +1254,10 @@ class NgtrConvexHullCollider {
|
|
|
1213
1254
|
});
|
|
1214
1255
|
});
|
|
1215
1256
|
}
|
|
1216
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
1217
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.
|
|
1257
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtrConvexHullCollider, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
1258
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.4", type: NgtrConvexHullCollider, isStandalone: true, selector: "ngt-object3D[ngtrConvexHullCollider]", inputs: { args: { classPropertyName: "args", publicName: "args", isSignal: true, isRequired: true, transformFunction: null } }, hostDirectives: [{ directive: 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"] }], ngImport: i0 });
|
|
1218
1259
|
}
|
|
1219
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
1260
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtrConvexHullCollider, decorators: [{
|
|
1220
1261
|
type: Directive,
|
|
1221
1262
|
args: [{
|
|
1222
1263
|
selector: 'ngt-object3D[ngtrConvexHullCollider]',
|
|
@@ -1236,10 +1277,10 @@ class NgtrHeightfieldCollider {
|
|
|
1236
1277
|
});
|
|
1237
1278
|
});
|
|
1238
1279
|
}
|
|
1239
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
1240
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.
|
|
1280
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtrHeightfieldCollider, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
1281
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.4", type: NgtrHeightfieldCollider, isStandalone: true, selector: "ngt-object3D[ngtrHeightfieldCollider]", inputs: { args: { classPropertyName: "args", publicName: "args", isSignal: true, isRequired: true, transformFunction: null } }, hostDirectives: [{ directive: 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"] }], ngImport: i0 });
|
|
1241
1282
|
}
|
|
1242
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
1283
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtrHeightfieldCollider, decorators: [{
|
|
1243
1284
|
type: Directive,
|
|
1244
1285
|
args: [{
|
|
1245
1286
|
selector: 'ngt-object3D[ngtrHeightfieldCollider]',
|
|
@@ -1259,10 +1300,10 @@ class NgtrTrimeshCollider {
|
|
|
1259
1300
|
});
|
|
1260
1301
|
});
|
|
1261
1302
|
}
|
|
1262
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
1263
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.
|
|
1303
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtrTrimeshCollider, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
1304
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.4", type: NgtrTrimeshCollider, isStandalone: true, selector: "ngt-object3D[ngtrTrimeshCollider]", inputs: { args: { classPropertyName: "args", publicName: "args", isSignal: true, isRequired: true, transformFunction: null } }, hostDirectives: [{ directive: 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"] }], ngImport: i0 });
|
|
1264
1305
|
}
|
|
1265
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
1306
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtrTrimeshCollider, decorators: [{
|
|
1266
1307
|
type: Directive,
|
|
1267
1308
|
args: [{
|
|
1268
1309
|
selector: 'ngt-object3D[ngtrTrimeshCollider]',
|
|
@@ -1282,10 +1323,10 @@ class NgtrPolylineCollider {
|
|
|
1282
1323
|
});
|
|
1283
1324
|
});
|
|
1284
1325
|
}
|
|
1285
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
1286
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.
|
|
1326
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtrPolylineCollider, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
1327
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.4", type: NgtrPolylineCollider, isStandalone: true, selector: "ngt-object3D[ngtrPolylineCollider]", inputs: { args: { classPropertyName: "args", publicName: "args", isSignal: true, isRequired: true, transformFunction: null } }, hostDirectives: [{ directive: 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"] }], ngImport: i0 });
|
|
1287
1328
|
}
|
|
1288
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
1329
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtrPolylineCollider, decorators: [{
|
|
1289
1330
|
type: Directive,
|
|
1290
1331
|
args: [{
|
|
1291
1332
|
selector: 'ngt-object3D[ngtrPolylineCollider]',
|
|
@@ -1305,10 +1346,10 @@ class NgtrRoundCuboidCollider {
|
|
|
1305
1346
|
});
|
|
1306
1347
|
});
|
|
1307
1348
|
}
|
|
1308
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
1309
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.
|
|
1349
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtrRoundCuboidCollider, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
1350
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.4", type: NgtrRoundCuboidCollider, isStandalone: true, selector: "ngt-object3D[ngtrRoundCuboidCollider]", inputs: { args: { classPropertyName: "args", publicName: "args", isSignal: true, isRequired: true, transformFunction: null } }, hostDirectives: [{ directive: 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"] }], ngImport: i0 });
|
|
1310
1351
|
}
|
|
1311
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
1352
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtrRoundCuboidCollider, decorators: [{
|
|
1312
1353
|
type: Directive,
|
|
1313
1354
|
args: [{
|
|
1314
1355
|
selector: 'ngt-object3D[ngtrRoundCuboidCollider]',
|
|
@@ -1328,10 +1369,10 @@ class NgtrCylinderCollider {
|
|
|
1328
1369
|
});
|
|
1329
1370
|
});
|
|
1330
1371
|
}
|
|
1331
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
1332
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.
|
|
1372
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtrCylinderCollider, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
1373
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.4", type: NgtrCylinderCollider, isStandalone: true, selector: "ngt-object3D[ngtrCylinderCollider]", inputs: { args: { classPropertyName: "args", publicName: "args", isSignal: true, isRequired: true, transformFunction: null } }, hostDirectives: [{ directive: 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"] }], ngImport: i0 });
|
|
1333
1374
|
}
|
|
1334
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
1375
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtrCylinderCollider, decorators: [{
|
|
1335
1376
|
type: Directive,
|
|
1336
1377
|
args: [{
|
|
1337
1378
|
selector: 'ngt-object3D[ngtrCylinderCollider]',
|
|
@@ -1351,10 +1392,10 @@ class NgtrRoundCylinderCollider {
|
|
|
1351
1392
|
});
|
|
1352
1393
|
});
|
|
1353
1394
|
}
|
|
1354
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
1355
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.
|
|
1395
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtrRoundCylinderCollider, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
1396
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.4", type: NgtrRoundCylinderCollider, isStandalone: true, selector: "ngt-object3D[ngtrRoundCylinderCollider]", inputs: { args: { classPropertyName: "args", publicName: "args", isSignal: true, isRequired: true, transformFunction: null } }, hostDirectives: [{ directive: 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"] }], ngImport: i0 });
|
|
1356
1397
|
}
|
|
1357
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
1398
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtrRoundCylinderCollider, decorators: [{
|
|
1358
1399
|
type: Directive,
|
|
1359
1400
|
args: [{
|
|
1360
1401
|
selector: 'ngt-object3D[ngtrRoundCylinderCollider]',
|
|
@@ -1374,10 +1415,10 @@ class NgtrConeCollider {
|
|
|
1374
1415
|
});
|
|
1375
1416
|
});
|
|
1376
1417
|
}
|
|
1377
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
1378
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.
|
|
1418
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtrConeCollider, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
1419
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.4", type: NgtrConeCollider, isStandalone: true, selector: "ngt-object3D[ngtrConeCollider]", inputs: { args: { classPropertyName: "args", publicName: "args", isSignal: true, isRequired: true, transformFunction: null } }, hostDirectives: [{ directive: 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"] }], ngImport: i0 });
|
|
1379
1420
|
}
|
|
1380
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
1421
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtrConeCollider, decorators: [{
|
|
1381
1422
|
type: Directive,
|
|
1382
1423
|
args: [{
|
|
1383
1424
|
selector: 'ngt-object3D[ngtrConeCollider]',
|
|
@@ -1397,10 +1438,10 @@ class NgtrRoundConeCollider {
|
|
|
1397
1438
|
});
|
|
1398
1439
|
});
|
|
1399
1440
|
}
|
|
1400
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
1401
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.
|
|
1441
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtrRoundConeCollider, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
1442
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.4", type: NgtrRoundConeCollider, isStandalone: true, selector: "ngt-object3D[ngtrRoundConeCollider]", inputs: { args: { classPropertyName: "args", publicName: "args", isSignal: true, isRequired: true, transformFunction: null } }, hostDirectives: [{ directive: 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"] }], ngImport: i0 });
|
|
1402
1443
|
}
|
|
1403
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
1444
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtrRoundConeCollider, decorators: [{
|
|
1404
1445
|
type: Directive,
|
|
1405
1446
|
args: [{
|
|
1406
1447
|
selector: 'ngt-object3D[ngtrRoundConeCollider]',
|
|
@@ -1420,10 +1461,10 @@ class NgtrConvexMeshCollider {
|
|
|
1420
1461
|
});
|
|
1421
1462
|
});
|
|
1422
1463
|
}
|
|
1423
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
1424
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.
|
|
1464
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtrConvexMeshCollider, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
1465
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.4", type: NgtrConvexMeshCollider, isStandalone: true, selector: "ngt-object3D[ngtrConvexMeshCollider]", inputs: { args: { classPropertyName: "args", publicName: "args", isSignal: true, isRequired: true, transformFunction: null } }, hostDirectives: [{ directive: 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"] }], ngImport: i0 });
|
|
1425
1466
|
}
|
|
1426
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
1467
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtrConvexMeshCollider, decorators: [{
|
|
1427
1468
|
type: Directive,
|
|
1428
1469
|
args: [{
|
|
1429
1470
|
selector: 'ngt-object3D[ngtrConvexMeshCollider]',
|
|
@@ -1443,10 +1484,10 @@ class NgtrRoundConvexHullCollider {
|
|
|
1443
1484
|
});
|
|
1444
1485
|
});
|
|
1445
1486
|
}
|
|
1446
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
1447
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.
|
|
1487
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtrRoundConvexHullCollider, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
1488
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.4", type: NgtrRoundConvexHullCollider, isStandalone: true, selector: "ngt-object3D[ngtrRoundConvexHullCollider]", inputs: { args: { classPropertyName: "args", publicName: "args", isSignal: true, isRequired: true, transformFunction: null } }, hostDirectives: [{ directive: 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"] }], ngImport: i0 });
|
|
1448
1489
|
}
|
|
1449
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
1490
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtrRoundConvexHullCollider, decorators: [{
|
|
1450
1491
|
type: Directive,
|
|
1451
1492
|
args: [{
|
|
1452
1493
|
selector: 'ngt-object3D[ngtrRoundConvexHullCollider]',
|
|
@@ -1466,10 +1507,10 @@ class NgtrRoundConvexMeshCollider {
|
|
|
1466
1507
|
});
|
|
1467
1508
|
});
|
|
1468
1509
|
}
|
|
1469
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
1470
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.
|
|
1510
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtrRoundConvexMeshCollider, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
1511
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.4", type: NgtrRoundConvexMeshCollider, isStandalone: true, selector: "ngt-object3D[ngtrRoundConvexMeshCollider]", inputs: { args: { classPropertyName: "args", publicName: "args", isSignal: true, isRequired: true, transformFunction: null } }, hostDirectives: [{ directive: 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"] }], ngImport: i0 });
|
|
1471
1512
|
}
|
|
1472
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
1513
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtrRoundConvexMeshCollider, decorators: [{
|
|
1473
1514
|
type: Directive,
|
|
1474
1515
|
args: [{
|
|
1475
1516
|
selector: 'ngt-object3D[ngtrRoundConvexMeshCollider]',
|
|
@@ -1546,8 +1587,8 @@ class NgtrInstancedRigidBodies {
|
|
|
1546
1587
|
if (colliders === false)
|
|
1547
1588
|
return [];
|
|
1548
1589
|
const physicsColliders = this.physics.colliders();
|
|
1549
|
-
// if physics colliders is false explicitly, disable auto colliders for this object entirely.
|
|
1550
|
-
if (physicsColliders === false)
|
|
1590
|
+
// if physics colliders is false explicitly AND colliders is not set, disable auto colliders for this object entirely.
|
|
1591
|
+
if (physicsColliders === false && colliders === undefined)
|
|
1551
1592
|
return [];
|
|
1552
1593
|
const options = this.options();
|
|
1553
1594
|
// if colliders on object is not set, use physics colliders
|
|
@@ -1570,8 +1611,8 @@ class NgtrInstancedRigidBodies {
|
|
|
1570
1611
|
return;
|
|
1571
1612
|
instancedMesh.instanceMatrix.setUsage(DynamicDrawUsage);
|
|
1572
1613
|
}
|
|
1573
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
1574
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.
|
|
1614
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtrInstancedRigidBodies, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1615
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.4", type: NgtrInstancedRigidBodies, isStandalone: true, selector: "ngt-object3D[ngtrInstancedRigidBodies]", inputs: { position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null }, rotation: { classPropertyName: "rotation", publicName: "rotation", isSignal: true, isRequired: false, transformFunction: null }, scale: { classPropertyName: "scale", publicName: "scale", isSignal: true, isRequired: false, transformFunction: null }, quaternion: { classPropertyName: "quaternion", publicName: "quaternion", isSignal: true, isRequired: false, transformFunction: null }, userData: { classPropertyName: "userData", publicName: "userData", isSignal: true, isRequired: false, transformFunction: null }, instances: { classPropertyName: "instances", publicName: "ngtrInstancedRigidBodies", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "position": "position()", "rotation": "rotation()", "scale": "scale()", "quaternion": "quaternion()", "userData": "userData()" } }, viewQueries: [{ propertyName: "instanceWrapperRef", first: true, predicate: ["instanceWrapper"], descendants: true, isSignal: true }, { propertyName: "rigidBodyRefs", predicate: NgtrRigidBody, descendants: true, isSignal: true }], exportAs: ["instancedRigidBodies"], ngImport: i0, template: `
|
|
1575
1616
|
<ngt-object3D #instanceWrapper>
|
|
1576
1617
|
<ng-content />
|
|
1577
1618
|
</ngt-object3D>
|
|
@@ -1604,7 +1645,7 @@ class NgtrInstancedRigidBodies {
|
|
|
1604
1645
|
}
|
|
1605
1646
|
`, isInline: true, dependencies: [{ kind: "component", type: NgtrRigidBody, selector: "ngt-object3D[ngtrRigidBody]", inputs: ["ngtrRigidBody", "position", "rotation", "scale", "quaternion", "userData", "options"], outputs: ["wake", "sleep", "collisionEnter", "collisionExit", "intersectionEnter", "intersectionExit", "contactForce"], exportAs: ["rigidBody"] }, { kind: "directive", type: NgtrAnyCollider, selector: "ngt-object3D[ngtrCollider]", inputs: ["position", "rotation", "scale", "quaternion", "userData", "name", "options", "ngtrCollider", "args"], outputs: ["ngtrColliderChange", "argsChange", "collisionEnter", "collisionExit", "intersectionEnter", "intersectionExit", "contactForce"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1606
1647
|
}
|
|
1607
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
1648
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtrInstancedRigidBodies, decorators: [{
|
|
1608
1649
|
type: Component,
|
|
1609
1650
|
args: [{
|
|
1610
1651
|
selector: 'ngt-object3D[ngtrInstancedRigidBodies]',
|
|
@@ -1782,8 +1823,8 @@ class NgtrMeshCollider {
|
|
|
1782
1823
|
}
|
|
1783
1824
|
this.objectRef.nativeElement.userData['ngtrRapierType'] = 'MeshCollider';
|
|
1784
1825
|
}
|
|
1785
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
1786
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.
|
|
1826
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtrMeshCollider, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1827
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.4", type: NgtrMeshCollider, isStandalone: true, selector: "ngt-object3D[ngtrMeshCollider]", inputs: { colliders: { classPropertyName: "colliders", publicName: "ngtrMeshCollider", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: `
|
|
1787
1828
|
<ng-content />
|
|
1788
1829
|
@for (childColliderOption of childColliderOptions(); track $index) {
|
|
1789
1830
|
<ngt-object3D
|
|
@@ -1798,7 +1839,7 @@ class NgtrMeshCollider {
|
|
|
1798
1839
|
}
|
|
1799
1840
|
`, isInline: true, dependencies: [{ kind: "directive", type: NgtrAnyCollider, selector: "ngt-object3D[ngtrCollider]", inputs: ["position", "rotation", "scale", "quaternion", "userData", "name", "options", "ngtrCollider", "args"], outputs: ["ngtrColliderChange", "argsChange", "collisionEnter", "collisionExit", "intersectionEnter", "intersectionExit", "contactForce"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1800
1841
|
}
|
|
1801
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
1842
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtrMeshCollider, decorators: [{
|
|
1802
1843
|
type: Component,
|
|
1803
1844
|
args: [{
|
|
1804
1845
|
selector: 'ngt-object3D[ngtrMeshCollider]',
|
|
@@ -1827,5 +1868,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
1827
1868
|
* Generated bundle index. Do not edit.
|
|
1828
1869
|
*/
|
|
1829
1870
|
|
|
1830
|
-
export { NgtrAnyCollider, NgtrBallCollider, NgtrCapsuleCollider, NgtrConeCollider, NgtrConvexHullCollider, NgtrConvexMeshCollider, NgtrCuboidCollider, NgtrCylinderCollider, NgtrHeightfieldCollider, NgtrInstancedRigidBodies, NgtrMeshCollider, NgtrPhysics, NgtrPolylineCollider, NgtrRigidBody, NgtrRoundConeCollider, NgtrRoundConvexHullCollider, NgtrRoundConvexMeshCollider, NgtrRoundCuboidCollider, NgtrRoundCylinderCollider, NgtrTrimeshCollider, injectFixedJoint, injectPrismaticJoint, injectRevoluteJoint, injectRopeJoint, injectSphericalJoint, injectSpringJoint, rigidBodyDefaultOptions };
|
|
1871
|
+
export { NgtrAnyCollider, NgtrBallCollider, NgtrCapsuleCollider, NgtrConeCollider, NgtrConvexHullCollider, NgtrConvexMeshCollider, NgtrCuboidCollider, NgtrCylinderCollider, NgtrHeightfieldCollider, NgtrInstancedRigidBodies, NgtrMeshCollider, NgtrPhysics, NgtrPhysicsFallback, NgtrPolylineCollider, NgtrRigidBody, NgtrRoundConeCollider, NgtrRoundConvexHullCollider, NgtrRoundConvexMeshCollider, NgtrRoundCuboidCollider, NgtrRoundCylinderCollider, NgtrTrimeshCollider, injectFixedJoint, injectPrismaticJoint, injectRevoluteJoint, injectRopeJoint, injectSphericalJoint, injectSpringJoint, rigidBodyDefaultOptions };
|
|
1831
1872
|
//# sourceMappingURL=angular-three-rapier.mjs.map
|