|
5 | 5 | Input,
|
6 | 6 | computed,
|
7 | 7 | effect,
|
8 |
| - inject, |
9 | 8 | runInInjectionContext,
|
10 | 9 | signal,
|
11 | 10 | untracked,
|
@@ -66,24 +65,18 @@ export function injectNgtsSurfaceSampler(
|
66 | 65 | ) {
|
67 | 66 | injector = assertInjector(injectNgtsSurfaceSampler, injector);
|
68 | 67 | return runInInjectionContext(injector, () => {
|
69 |
| - const state = computed(() => { |
70 |
| - const _state = surfaceSamplerState(); |
71 |
| - if (!_state) return null; |
72 |
| - return { ...defaultState, ..._state }; |
73 |
| - }); |
| 68 | + const state = computed(() => ({ ...defaultState, ...(surfaceSamplerState() || {}) })); |
74 | 69 | const _buffer = signal(
|
75 | 70 | (() => {
|
76 |
| - const arr = Array.from({ length: state()?.count || defaultState.count }, () => [ |
| 71 | + const arr = Array.from({ length: state().count }, () => [ |
77 | 72 | 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1,
|
78 | 73 | ]).flat();
|
79 | 74 | return new THREE.InstancedBufferAttribute(Float32Array.from(arr), 16);
|
80 | 75 | })(),
|
81 | 76 | );
|
82 | 77 |
|
83 | 78 | effect(() => {
|
84 |
| - const _state = state(); |
85 |
| - if (!_state) return; |
86 |
| - const { mesh, count, transform, instancedMesh, weight } = _state; |
| 79 | + const { mesh, count, transform, instancedMesh, weight } = state(); |
87 | 80 | const meshObj = is.ref(mesh) ? mesh.nativeElement : mesh;
|
88 | 81 | if (!meshObj) return;
|
89 | 82 | const instancedMeshObj = is.ref(instancedMesh) ? instancedMesh.nativeElement : instancedMesh;
|
@@ -198,9 +191,6 @@ export class NgtsSampler {
|
198 | 191 | });
|
199 | 192 |
|
200 | 193 | constructor() {
|
201 |
| - const injector = inject(Injector); |
202 |
| - effect(() => { |
203 |
| - injectNgtsSurfaceSampler(this.surfaceSamplerState, { injector }); |
204 |
| - }); |
| 194 | + injectNgtsSurfaceSampler(this.surfaceSamplerState); |
205 | 195 | }
|
206 | 196 | }
|
0 commit comments