Skip to content

Commit 1457ce7

Browse files
committed
fix(core): add output emitter ref utilities
1 parent 9e82df2 commit 1457ce7

File tree

5 files changed

+26
-21
lines changed

5 files changed

+26
-21
lines changed

Diff for: libs/core/src/index.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@ export * from './lib/utils/attach';
1616
export * from './lib/utils/before-render';
1717
export * from './lib/utils/is';
1818
export * from './lib/utils/make';
19-
export * from './lib/utils/non-nullish';
2019
export * from './lib/utils/object-events';
20+
export * from './lib/utils/output-ref';
2121
export * from './lib/utils/parameters';
2222
export * from './lib/utils/resolve-ref';
2323
export * from './lib/utils/signal-store';

Diff for: libs/core/src/lib/utils/non-nullish.ts

-8
This file was deleted.

Diff for: libs/core/src/lib/utils/output-ref.ts

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import { OutputEmitterRef } from '@angular/core';
2+
3+
export function getEmitter<T>(emitterRef: OutputEmitterRef<T> | undefined) {
4+
if (!emitterRef || !emitterRef['listeners'] || emitterRef['destroyed']) return undefined;
5+
return emitterRef.emit.bind(emitterRef);
6+
}
7+
8+
export function hasListener(...emitterRefs: (OutputEmitterRef<unknown> | undefined)[]) {
9+
return emitterRefs.some(
10+
(emitterRef) =>
11+
emitterRef && !emitterRef['destroyed'] && emitterRef['listeners'] && emitterRef['listeners'].length > 0,
12+
);
13+
}

Diff for: libs/rapier/src/lib/rigid-body.ts

+12-2
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,17 @@ import {
1313
untracked,
1414
} from '@angular/core';
1515
import { ActiveEvents, Collider, ColliderDesc, RigidBody, RigidBodyDesc } from '@dimforge/rapier3d-compat';
16-
import { extend, getLocalState, NgtEuler, NgtObject3D, NgtQuaternion, NgtVector3, pick } from 'angular-three';
16+
import {
17+
extend,
18+
getEmitter,
19+
getLocalState,
20+
hasListener,
21+
NgtEuler,
22+
NgtObject3D,
23+
NgtQuaternion,
24+
NgtVector3,
25+
pick,
26+
} from 'angular-three';
1727
import { mergeInputs } from 'ngxtension/inject-inputs';
1828
import { Matrix4, Object3D, Vector3 } from 'three';
1929
import { NgtrPhysics } from './physics';
@@ -31,7 +41,7 @@ import {
3141
NgtrRigidBodyState,
3242
NgtrRigidBodyType,
3343
} from './types';
34-
import { createColliderOptions, getEmitter, hasListener } from './utils';
44+
import { createColliderOptions } from './utils';
3545

3646
const colliderDefaultOptions: NgtrColliderOptions = {
3747
contactSkin: 0,

Diff for: libs/rapier/src/lib/utils.ts

-10
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import { OutputEmitterRef } from '@angular/core';
21
import { Quaternion as RapierQuaternion, Vector3 as RapierVector3 } from '@dimforge/rapier3d-compat';
32
import { NgtEuler, NgtQuaternion, NgtVector3 } from 'angular-three';
43
import { BufferGeometry, Euler, Mesh, Object3D, Vector3 } from 'three';
@@ -81,15 +80,6 @@ export function quaternionToRapierQuaternion(v: NgtQuaternion) {
8180
return new RapierQuaternion(v.x, v.y, v.z, v.w);
8281
}
8382

84-
export function getEmitter<T>(emitterRef: OutputEmitterRef<T> | undefined) {
85-
if (!emitterRef || !emitterRef['listeners']) return undefined;
86-
return emitterRef.emit.bind(emitterRef);
87-
}
88-
89-
export function hasListener(...emitterRefs: (OutputEmitterRef<unknown> | undefined)[]) {
90-
return emitterRefs.some((emitterRef) => emitterRef && emitterRef['listeners'] && emitterRef['listeners'].length > 0);
91-
}
92-
9383
function isChildOfMeshCollider(child: Mesh) {
9484
let flag = false;
9585
child.traverseAncestors((a) => {

0 commit comments

Comments
 (0)