Skip to content

Commit 3c9e6ce

Browse files
committed
docs(soba): adjusting stories; some ain't working
1 parent 586fff5 commit 3c9e6ce

File tree

63 files changed

+574
-546
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

63 files changed

+574
-546
lines changed

apps/docs/src/components/scenes/hud/scene-graph.ts

Lines changed: 1 addition & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import {
44
Component,
55
ElementRef,
66
computed,
7-
effect,
87
inject,
98
input,
109
signal,
@@ -83,7 +82,7 @@ export class FaceMaterial {
8382
[position]="position()"
8483
[scale]="scale()"
8584
(click)="clicked.set(!clicked())"
86-
(pointermove)="onPointerMove($event)"
85+
(pointermove)="$event.stopPropagation(); hovered.set($any($event).face.materialIndex)"
8786
(pointerout)="hovered.set(-1)"
8887
>
8988
<ngt-box-geometry />
@@ -106,22 +105,6 @@ export class Box {
106105
protected scale = computed(() => (this.clicked() ? 1.5 : 1));
107106

108107
protected faces = ['front', 'back', 'top', 'bottom', 'left', 'right'];
109-
110-
constructor() {
111-
effect(() => {
112-
console.log('this.mesh()', this.mesh());
113-
});
114-
115-
injectBeforeRender(({ delta }) => {
116-
this.mesh().nativeElement.rotation.x += delta;
117-
});
118-
}
119-
120-
onPointerMove(event: any) {
121-
console.log('event', event.face.materialIndex);
122-
event.stopPropagation();
123-
this.hovered.set(event.face.materialIndex);
124-
}
125108
}
126109

127110
@Component({

apps/docs/src/content/docs/index.mdx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ hero:
2020
---
2121

2222
import FloatingCodeBlock from '../../components/ui/floating-code-block.astro';
23-
import HudScene from '../../components/scenes/hud/hud';
23+
import SimpleScene from '../../components/scenes/simple-scene/simple-scene';
2424

2525
<section class="min-h-screen w-full flex justify-center items-center">
2626
<div class="h-full w-full grid grid-cols-8 gap-4">
@@ -34,7 +34,7 @@ import HudScene from '../../components/scenes/hud/hud';
3434
APIs like <strong>Signal</strong>, and more
3535
</p>
3636
<div class="h-[200px] w-full">
37-
<HudScene client:only />
37+
<SimpleScene client:only />
3838
</div>
3939
</div>
4040
<FloatingCodeBlock

libs/core/ng-package-docs.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"$schema": "../../node_modules/ng-packagr/ng-package.schema.json",
3-
"dest": "../../apps/docs/node_modules/angular-three",
3+
"dest": "../../node_modules/angular-three",
44
"lib": {
55
"entryFile": "src/index.ts"
66
},

libs/core/project.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
},
2525
"build-docs": {
2626
"executor": "@nx/angular:package",
27-
"outputs": ["{workspaceRoot}/apps/docs/node_modules/angular-three"],
27+
"outputs": ["{workspaceRoot}/node_modules/angular-three"],
2828
"options": {
2929
"project": "libs/core/ng-package-docs.json",
3030
"tsConfig": "libs/core/tsconfig.lib.prod.json"

libs/core/src/lib/renderer/renderer.ts

Lines changed: 25 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,6 @@ export class NgtRendererFactory2 implements RendererFactory2 {
4848
private catalogue = injectCatalogue();
4949
private document = inject(DOCUMENT);
5050
private rendererMap = new Map<string, Renderer2>();
51-
// private portals = new Set<Renderer2>();
5251

5352
/**
5453
* NOTE: We use `useFactory` to instantiate `NgtRendererFactory2`
@@ -387,6 +386,10 @@ export class NgtRenderer2 implements Renderer2 {
387386
}
388387

389388
if (pRS[NgtRendererClassId.type] === 'platform' && cRS[NgtRendererClassId.type] === 'platform') {
389+
if (pRS[NgtRendererClassId.parent] && !cRS[NgtRendererClassId.parent]) {
390+
return this.appendChild(pRS[NgtRendererClassId.parent], newChild);
391+
}
392+
390393
return delegatedFn();
391394
}
392395

@@ -424,7 +427,9 @@ export class NgtRenderer2 implements Renderer2 {
424427
}
425428

426429
if (pRS[NgtRendererClassId.type] === 'portal' && cRS[NgtRendererClassId.type] === 'three') {
427-
console.log('portal child three', { parent, newChild });
430+
if (!cRS[NgtRendererClassId.parent] && pRS[NgtRendererClassId.portalContainer]) {
431+
return this.appendChild(pRS[NgtRendererClassId.portalContainer], newChild);
432+
}
428433
return;
429434
}
430435

@@ -561,6 +566,14 @@ export class NgtRenderer2 implements Renderer2 {
561566

562567
const cRS = oldChild.__ngt_renderer__;
563568

569+
if (!cRS) {
570+
try {
571+
return this.delegateRenderer.removeChild(parent, oldChild, isHostElement);
572+
} catch {
573+
return;
574+
}
575+
}
576+
564577
// disassociate things from oldChild
565578
cRS[NgtRendererClassId.parent] = null;
566579

@@ -672,7 +685,7 @@ export class NgtRenderer2 implements Renderer2 {
672685
return rootScene;
673686
}
674687

675-
const rendererParentNode = node.__ngt_renderer__[NgtRendererClassId.parent];
688+
const rendererParentNode = node.__ngt_renderer__?.[NgtRendererClassId.parent];
676689
// returns the renderer parent node if it exists, otherwise returns the delegateRenderer parentNode
677690
return rendererParentNode ?? this.delegateRenderer.parentNode(node);
678691
}
@@ -718,6 +731,9 @@ export class NgtRenderer2 implements Renderer2 {
718731
}
719732

720733
setProperty(el: NgtRendererNode, name: string, value: any): void {
734+
// NOTE: untrack all signal updates because this is during setProperty which is a reactive context
735+
// attaching potentially updates signals which is not allowed
736+
721737
const rS = el.__ngt_renderer__;
722738

723739
if (!rS || rS[NgtRendererClassId.destroyed]) {
@@ -737,7 +753,9 @@ export class NgtRenderer2 implements Renderer2 {
737753
applyProps(el, value);
738754

739755
if ('geometry' in value && value['geometry'].isBufferGeometry) {
740-
instanceState?.updateGeometryStamp();
756+
untracked(() => {
757+
instanceState?.updateGeometryStamp();
758+
});
741759
}
742760

743761
return;
@@ -767,8 +785,6 @@ export class NgtRenderer2 implements Renderer2 {
767785
? value.split('.')
768786
: [value];
769787
if (parent) {
770-
// untrack this attach because this is during setProperty which is a reactive context
771-
// attaching potentially updates signals which is not allowed
772788
untracked(() => attachThreeNodes(parent, el as unknown as NgtInstanceNode));
773789
}
774790

@@ -783,7 +799,9 @@ export class NgtRenderer2 implements Renderer2 {
783799
applyProps(el, { [name]: value });
784800

785801
if (instanceState && name === 'geometry' && value.isBufferGeometry) {
786-
instanceState.updateGeometryStamp();
802+
untracked(() => {
803+
instanceState.updateGeometryStamp();
804+
});
787805
}
788806

789807
return;

libs/core/src/lib/routed-scene.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,9 @@ export class NgtRouterOutlet extends RouterOutlet {
2626
@Component({
2727
selector: 'ngt-routed-scene',
2828
template: `
29-
<ngt-router-outlet />
29+
<router-outlet />
3030
`,
31-
imports: [NgtRouterOutlet],
31+
imports: [RouterOutlet],
3232
})
3333
export class NgtRoutedScene {
3434
constructor(router: Router, cdr: ChangeDetectorRef) {

libs/soba/gizmos/src/lib/transform-controls.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ export class NgtsTransformControls {
108108

109109
private store = injectStore();
110110

111-
protected controls = computed(() => {
111+
controls = computed(() => {
112112
let camera = this.camera();
113113
if (!camera) {
114114
camera = this.store.camera();

libs/soba/materials/src/lib/mesh-portal-material.ts

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -242,10 +242,6 @@ export class NgtsMeshPortalMaterial {
242242
protected content = contentChild.required(TemplateRef);
243243

244244
private store = injectStore();
245-
// private size = this.store.select('size');
246-
// private viewport = this.store.select('viewport');
247-
// private gl = this.store.select('gl');
248-
// private setEvents = this.store.select('setEvents');
249245
protected rootScene = this.store.scene;
250246

251247
protected materialResolution = computed(() => [
@@ -259,10 +255,12 @@ export class NgtsMeshPortalMaterial {
259255

260256
protected renderTextureFrames = computed(() => (this.visible() ? Infinity : 0));
261257

262-
protected renderTextureCompute = ([event, state]: Parameters<NgtComputeFunction>) => {
258+
protected renderTextureCompute = (...args: Parameters<NgtComputeFunction>) => {
263259
const [parent, material] = [this.parent(), this.materialRef().nativeElement];
264260
if (!parent) return false;
265261

262+
const [event, state] = args;
263+
266264
state.snapshot.pointer.set(
267265
(event.offsetX / state.snapshot.size.width) * 2 - 1,
268266
-(event.offsetY / state.snapshot.size.height) * 2 + 1,

libs/soba/ng-package-docs.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"$schema": "../../node_modules/ng-packagr/ng-package.schema.json",
3-
"dest": "../../apps/docs/node_modules/angular-three-soba",
3+
"dest": "../../node_modules/angular-three-soba",
44
"lib": {
55
"entryFile": "src/index.ts"
66
},

libs/soba/package.json

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -23,19 +23,7 @@
2323
],
2424
"license": "MIT",
2525
"exports": {
26-
"./assets/*": "./assets/*",
27-
"./shaders": {
28-
"default": "./shaders/src/index.ts"
29-
},
30-
"./misc": {
31-
"default": "./misc/src/index.ts"
32-
},
33-
"./vanilla-exports": {
34-
"default": "./vanilla-exports/src/index.ts"
35-
},
36-
"./loaders": {
37-
"default": "./loaders/src/index.ts"
38-
}
26+
"./assets/*": "./assets/*"
3927
},
4028
"peerDependencies": {
4129
"@angular/common": ">=19.0.0 <20.0.0",

libs/soba/project.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
},
2525
"build-docs": {
2626
"executor": "@nx/angular:package",
27-
"outputs": ["{workspaceRoot}/apps/docs/node_modules/angular-three-soba"],
27+
"outputs": ["{workspaceRoot}/node_modules/angular-three-soba"],
2828
"options": {
2929
"project": "libs/soba/ng-package-docs.json",
3030
"tsConfig": "libs/soba/tsconfig.lib.prod.json"

libs/soba/src/abstractions/billboard.stories.ts

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { Meta } from '@storybook/angular';
33
import { NgtArgs } from 'angular-three';
44
import { NgtsBillboard, NgtsText } from 'angular-three-soba/abstractions';
55
import { NgtsOrbitControls } from 'angular-three-soba/controls';
6-
import { makeDecorators, makeStoryObject } from '../setup-canvas';
6+
import { storyDecorators, storyObject } from '../setup-canvas';
77

88
@Component({
99
template: `
@@ -118,15 +118,17 @@ class DefaultBillboardStory {
118118

119119
export default {
120120
title: 'Abstractions/Billboard',
121-
decorators: makeDecorators(),
121+
decorators: storyDecorators(),
122122
} as Meta;
123123

124-
export const Default = makeStoryObject(DefaultBillboardStory, {
125-
canvasOptions: { camera: { position: [0, 0, 10] }, controls: false },
124+
export const Default = storyObject(DefaultBillboardStory, {
125+
camera: { position: [0, 0, 10] },
126+
controls: false,
126127
argsOptions: { follow: true, lockX: false, lockY: false, lockZ: false },
127128
});
128129

129-
export const Text = makeStoryObject(TextBillboardStory, {
130-
canvasOptions: { camera: { position: [0, 0, 10] }, controls: false },
130+
export const Text = storyObject(TextBillboardStory, {
131+
camera: { position: [0, 0, 10] },
132+
controls: false,
131133
argsOptions: { follow: true, lockX: false, lockY: false, lockZ: false },
132134
});

libs/soba/src/abstractions/gradient-texture.stories.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { NgtsGradientTexture } from 'angular-three-soba/abstractions';
55
import { NgtsMeshWobbleMaterial } from 'angular-three-soba/materials';
66
import { NgtsFloat } from 'angular-three-soba/staging';
77
import { DoubleSide } from 'three';
8-
import { makeDecorators, makeStoryFunction } from '../setup-canvas';
8+
import { storyDecorators, storyFunction } from '../setup-canvas';
99

1010
@Component({
1111
template: `
@@ -32,7 +32,7 @@ class DefaultGradientTextureStory {
3232

3333
export default {
3434
title: 'Abstractions/GradientTexture',
35-
decorators: makeDecorators(),
35+
decorators: storyDecorators(),
3636
} as Meta;
3737

38-
export const Default = makeStoryFunction(DefaultGradientTextureStory);
38+
export const Default = storyFunction(DefaultGradientTextureStory);

libs/soba/src/abstractions/grid.stories.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import { injectGLTF } from 'angular-three-soba/loaders';
1515
import { NgtsAccumulativeShadows, NgtsCenter, NgtsEnvironment, NgtsRandomizedLights } from 'angular-three-soba/staging';
1616
import { Mesh } from 'three';
1717
import { GLTF } from 'three-stdlib';
18-
import { makeDecorators, makeStoryFunction } from '../setup-canvas';
18+
import { storyDecorators, storyFunction } from '../setup-canvas';
1919

2020
type SuzanneGLTF = GLTF & {
2121
nodes: { Suzanne: Mesh };
@@ -128,10 +128,10 @@ class DefaultGridStory {
128128

129129
export default {
130130
title: 'Abstractions/Grid',
131-
decorators: makeDecorators(),
131+
decorators: storyDecorators(),
132132
} as Meta;
133133

134-
export const Default = makeStoryFunction(DefaultGridStory, {
134+
export const Default = storyFunction(DefaultGridStory, {
135135
camera: { position: [10, 12, 12], fov: 25 },
136136
lights: false,
137137
controls: false,

libs/soba/src/abstractions/helper.stories.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { NgtsPerspectiveCamera } from 'angular-three-soba/cameras';
55
import { BoxHelper, CameraHelper } from 'three';
66
import { VertexNormalsHelper } from 'three-stdlib';
77
import { NgtsHelper } from '../../abstractions/src/lib/helper';
8-
import { makeDecorators, makeStoryFunction } from '../setup-canvas';
8+
import { storyDecorators, storyFunction } from '../setup-canvas';
99

1010
@Component({
1111
template: `
@@ -59,8 +59,8 @@ class DefaultHelperStory {
5959

6060
export default {
6161
title: 'Abstractions/Helper',
62-
decorators: makeDecorators(),
62+
decorators: storyDecorators(),
6363
} as Meta;
6464

65-
export const Default = makeStoryFunction(DefaultHelperStory);
66-
export const Camera = makeStoryFunction(CameraHelperStory);
65+
export const Default = storyFunction(DefaultHelperStory);
66+
export const Camera = storyFunction(CameraHelperStory);

0 commit comments

Comments
 (0)