diff --git a/packages/soba/abstractions/src/billboard/billboard.component.ts b/packages/soba/abstractions/src/billboard/billboard.component.ts index 47c80bdc6..bdd356a4f 100644 --- a/packages/soba/abstractions/src/billboard/billboard.component.ts +++ b/packages/soba/abstractions/src/billboard/billboard.component.ts @@ -54,7 +54,7 @@ export class NgtSobaBillboard extends NgtSobaExtender { onGroupAnimate(group: THREE.Group, $event: NgtRender) { if (!this.follow) return; - this.animateReady.emit($event); + this.animateReady.emit({ entity: group, state: $event }); // save previous rotation in case we're locking an axis const prevRotation = group.rotation.clone(); diff --git a/packages/soba/abstractions/src/gizmo-helper/gizmo-helper.component.ts b/packages/soba/abstractions/src/gizmo-helper/gizmo-helper.component.ts index c43734a50..caa6e4f00 100644 --- a/packages/soba/abstractions/src/gizmo-helper/gizmo-helper.component.ts +++ b/packages/soba/abstractions/src/gizmo-helper/gizmo-helper.component.ts @@ -24,6 +24,7 @@ import { NgtSobaGizmoHelperStore } from './gizmo-helper.store'; { (pointerover)="$event.stopPropagation(); hover = true" (pointerout)="$event.stopPropagation(); hover = false" (click)="onEdgeClick($event)" + (ready)="object = $event" + (animateReady)=" + animateReady.emit({ entity: object, state: $any($event).state }) + " > @@ -168,7 +169,11 @@ export class NgtSobaGizmoViewport extends NgtSobaExtender { @Component({ selector: 'ngt-soba-gizmo-axis[color][rotation]', template: ` - + { > diff --git a/packages/soba/abstractions/src/text/text.component.ts b/packages/soba/abstractions/src/text/text.component.ts index 03d0633ed..56b7c6359 100644 --- a/packages/soba/abstractions/src/text/text.component.ts +++ b/packages/soba/abstractions/src/text/text.component.ts @@ -41,6 +41,7 @@ import { Text as TextMeshImpl } from 'troika-three-text'; [object]="$any(object)" [object3dInputsController]="objectInputsController" (ready)="onTroikaTextReady(object)" + (animateReady)="animateReady.emit({ entity: object, state: $event })" > diff --git a/packages/soba/cameras/src/orthographic-camera/orthographic-camera.component.ts b/packages/soba/cameras/src/orthographic-camera/orthographic-camera.component.ts index acfdd4de0..3a88e2df8 100644 --- a/packages/soba/cameras/src/orthographic-camera/orthographic-camera.component.ts +++ b/packages/soba/cameras/src/orthographic-camera/orthographic-camera.component.ts @@ -36,6 +36,7 @@ export interface NgtSobaOrthographicCameraState { [args]="[vm.left, vm.right, vm.top, vm.bottom, vm.near, vm.far]" [object3dInputsController]="vm.objectInputsController" (ready)="object = $event" + (animateReady)="animateReady.emit({ entity: object, state: $event })" > diff --git a/packages/soba/performances/src/detailed/detailed.component.ts b/packages/soba/performances/src/detailed/detailed.component.ts index f4cb1ee3d..f64db434b 100644 --- a/packages/soba/performances/src/detailed/detailed.component.ts +++ b/packages/soba/performances/src/detailed/detailed.component.ts @@ -109,8 +109,9 @@ export class NgtSobaDetailed this.state.connect('children', children$); } - onLodAnimateReady({ camera }: NgtRender, lod: THREE.LOD) { - lod.update(camera); + onLodAnimateReady(state: NgtRender, lod: THREE.LOD) { + lod.update(state.camera); + this.animateReady.emit({ entity: lod, state }); } onLodReady(lod: THREE.LOD) { diff --git a/packages/soba/shapes/src/lib/box/box.component.ts b/packages/soba/shapes/src/lib/box/box.component.ts index 3fbfc6adc..774493e10 100644 --- a/packages/soba/shapes/src/lib/box/box.component.ts +++ b/packages/soba/shapes/src/lib/box/box.component.ts @@ -27,6 +27,7 @@ import * as THREE from 'three'; template: ` diff --git a/packages/soba/shapes/src/lib/circle/circle.component.ts b/packages/soba/shapes/src/lib/circle/circle.component.ts index 47cef7662..892ee148f 100644 --- a/packages/soba/shapes/src/lib/circle/circle.component.ts +++ b/packages/soba/shapes/src/lib/circle/circle.component.ts @@ -27,6 +27,7 @@ import * as THREE from 'three'; template: ` diff --git a/packages/soba/shapes/src/lib/cone/cone.component.ts b/packages/soba/shapes/src/lib/cone/cone.component.ts index 790dcb5a3..37bbaaa47 100644 --- a/packages/soba/shapes/src/lib/cone/cone.component.ts +++ b/packages/soba/shapes/src/lib/cone/cone.component.ts @@ -27,6 +27,7 @@ import * as THREE from 'three'; template: ` diff --git a/packages/soba/shapes/src/lib/cylinder/cylinder.component.ts b/packages/soba/shapes/src/lib/cylinder/cylinder.component.ts index 0d1269a16..a060b306d 100644 --- a/packages/soba/shapes/src/lib/cylinder/cylinder.component.ts +++ b/packages/soba/shapes/src/lib/cylinder/cylinder.component.ts @@ -27,6 +27,7 @@ import * as THREE from 'three'; template: ` diff --git a/packages/soba/shapes/src/lib/dodecahedron/dodecahedron.component.ts b/packages/soba/shapes/src/lib/dodecahedron/dodecahedron.component.ts index 2afb1b823..d0592c8b9 100644 --- a/packages/soba/shapes/src/lib/dodecahedron/dodecahedron.component.ts +++ b/packages/soba/shapes/src/lib/dodecahedron/dodecahedron.component.ts @@ -27,6 +27,7 @@ import * as THREE from 'three'; template: ` diff --git a/packages/soba/shapes/src/lib/extrude/extrude.component.ts b/packages/soba/shapes/src/lib/extrude/extrude.component.ts index 91658513b..a6e4be704 100644 --- a/packages/soba/shapes/src/lib/extrude/extrude.component.ts +++ b/packages/soba/shapes/src/lib/extrude/extrude.component.ts @@ -27,6 +27,7 @@ import * as THREE from 'three'; template: ` diff --git a/packages/soba/shapes/src/lib/icosahedron/icosahedron.component.ts b/packages/soba/shapes/src/lib/icosahedron/icosahedron.component.ts index e116c24a6..990389dd4 100644 --- a/packages/soba/shapes/src/lib/icosahedron/icosahedron.component.ts +++ b/packages/soba/shapes/src/lib/icosahedron/icosahedron.component.ts @@ -27,6 +27,7 @@ import * as THREE from 'three'; template: ` diff --git a/packages/soba/shapes/src/lib/lathe/lathe.component.ts b/packages/soba/shapes/src/lib/lathe/lathe.component.ts index 2d782b955..fdb63bc23 100644 --- a/packages/soba/shapes/src/lib/lathe/lathe.component.ts +++ b/packages/soba/shapes/src/lib/lathe/lathe.component.ts @@ -27,6 +27,7 @@ import * as THREE from 'three'; template: ` diff --git a/packages/soba/shapes/src/lib/octahedron/octahedron.component.ts b/packages/soba/shapes/src/lib/octahedron/octahedron.component.ts index 1b60cbe9c..2f3f53fe1 100644 --- a/packages/soba/shapes/src/lib/octahedron/octahedron.component.ts +++ b/packages/soba/shapes/src/lib/octahedron/octahedron.component.ts @@ -27,6 +27,7 @@ import * as THREE from 'three'; template: ` diff --git a/packages/soba/shapes/src/lib/plane/plane.component.ts b/packages/soba/shapes/src/lib/plane/plane.component.ts index e5184da5f..0b2b63175 100644 --- a/packages/soba/shapes/src/lib/plane/plane.component.ts +++ b/packages/soba/shapes/src/lib/plane/plane.component.ts @@ -27,6 +27,7 @@ import * as THREE from 'three'; template: ` diff --git a/packages/soba/shapes/src/lib/polyhedron/polyhedron.component.ts b/packages/soba/shapes/src/lib/polyhedron/polyhedron.component.ts index 03192a930..1f1aa2487 100644 --- a/packages/soba/shapes/src/lib/polyhedron/polyhedron.component.ts +++ b/packages/soba/shapes/src/lib/polyhedron/polyhedron.component.ts @@ -27,6 +27,7 @@ import * as THREE from 'three'; template: ` diff --git a/packages/soba/shapes/src/lib/ring/ring.component.ts b/packages/soba/shapes/src/lib/ring/ring.component.ts index 0ebf39f7f..f9a8f4b0b 100644 --- a/packages/soba/shapes/src/lib/ring/ring.component.ts +++ b/packages/soba/shapes/src/lib/ring/ring.component.ts @@ -27,6 +27,7 @@ import * as THREE from 'three'; template: ` diff --git a/packages/soba/shapes/src/lib/sphere/sphere.component.ts b/packages/soba/shapes/src/lib/sphere/sphere.component.ts index 6cd09ae6f..f009442bd 100644 --- a/packages/soba/shapes/src/lib/sphere/sphere.component.ts +++ b/packages/soba/shapes/src/lib/sphere/sphere.component.ts @@ -27,6 +27,7 @@ import * as THREE from 'three'; template: ` diff --git a/packages/soba/shapes/src/lib/tetrahedron/tetrahedron.component.ts b/packages/soba/shapes/src/lib/tetrahedron/tetrahedron.component.ts index d35b9e5aa..9fec30d6c 100644 --- a/packages/soba/shapes/src/lib/tetrahedron/tetrahedron.component.ts +++ b/packages/soba/shapes/src/lib/tetrahedron/tetrahedron.component.ts @@ -27,6 +27,7 @@ import * as THREE from 'three'; template: ` diff --git a/packages/soba/shapes/src/lib/torus-knot/torus-knot.component.ts b/packages/soba/shapes/src/lib/torus-knot/torus-knot.component.ts index 355847806..cd5e1947d 100644 --- a/packages/soba/shapes/src/lib/torus-knot/torus-knot.component.ts +++ b/packages/soba/shapes/src/lib/torus-knot/torus-knot.component.ts @@ -27,6 +27,7 @@ import * as THREE from 'three'; template: ` diff --git a/packages/soba/shapes/src/lib/torus/torus.component.ts b/packages/soba/shapes/src/lib/torus/torus.component.ts index b9e97f50d..ffe32b0eb 100644 --- a/packages/soba/shapes/src/lib/torus/torus.component.ts +++ b/packages/soba/shapes/src/lib/torus/torus.component.ts @@ -27,6 +27,7 @@ import * as THREE from 'three'; template: ` diff --git a/packages/soba/shapes/src/lib/tube/tube.component.ts b/packages/soba/shapes/src/lib/tube/tube.component.ts index 831a2382a..7e580190b 100644 --- a/packages/soba/shapes/src/lib/tube/tube.component.ts +++ b/packages/soba/shapes/src/lib/tube/tube.component.ts @@ -27,6 +27,7 @@ import * as THREE from 'three'; template: ` diff --git a/packages/soba/staging/src/bounds/bounds.component.ts b/packages/soba/staging/src/bounds/bounds.component.ts index e645b9bdb..f6a470873 100644 --- a/packages/soba/staging/src/bounds/bounds.component.ts +++ b/packages/soba/staging/src/bounds/bounds.component.ts @@ -317,6 +317,7 @@ export class NgtSobaBoundsStore extends EnhancedRxState< template: ` diff --git a/packages/soba/staging/src/center/center.component.ts b/packages/soba/staging/src/center/center.component.ts index 0c2da2c59..cbd483a77 100644 --- a/packages/soba/staging/src/center/center.component.ts +++ b/packages/soba/staging/src/center/center.component.ts @@ -25,6 +25,7 @@ import * as THREE from 'three'; template: ` diff --git a/packages/soba/staging/src/stars/stars.component.ts b/packages/soba/staging/src/stars/stars.component.ts index 8afa247ac..c073c6927 100644 --- a/packages/soba/staging/src/stars/stars.component.ts +++ b/packages/soba/staging/src/stars/stars.component.ts @@ -154,9 +154,10 @@ export class NgtSobaStars extends NgtSobaExtender { }); } - onAnimate({ clock }: NgtRender) { + onAnimate(state: NgtRender) { if (this.starMaterial) { - this.starMaterial.uniforms.time.value = clock.getElapsedTime(); + this.starMaterial.uniforms.time.value = state.clock.getElapsedTime(); + this.animateReady.emit({ entity: this.object, state }); } } } diff --git a/tools/generators/three/soba-shapes/files/lib/__shapeFileName__.component.ts__tmpl__ b/tools/generators/three/soba-shapes/files/lib/__shapeFileName__.component.ts__tmpl__ index 965f671ea..84eace5c8 100644 --- a/tools/generators/three/soba-shapes/files/lib/__shapeFileName__.component.ts__tmpl__ +++ b/tools/generators/three/soba-shapes/files/lib/__shapeFileName__.component.ts__tmpl__ @@ -27,6 +27,7 @@ import * as THREE from 'three'; template: `