Skip to content

Commit 834538c

Browse files
committed
chore: format
1 parent 5ed6f7f commit 834538c

10 files changed

Lines changed: 224 additions & 213 deletions

File tree

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

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,8 +69,9 @@ export type NgtRendererState =
6969
| CommentRendererState
7070
| TextRendererState;
7171

72-
export interface NgtRendererNode<TType extends keyof NgtRendererStateMap = keyof NgtRendererStateMap>
73-
extends NgtAnyRecord {
72+
export interface NgtRendererNode<
73+
TType extends keyof NgtRendererStateMap = keyof NgtRendererStateMap,
74+
> extends NgtAnyRecord {
7475
[NGT_RENDERER_NODE_FLAG]: NgtRendererStateMap[TType];
7576
[NGT_DOM_PARENT_FLAG]?: HTMLElement;
7677
}

libs/postprocessing/src/lib/effects/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,9 @@ export * from './ramp';
2222
export * from './scanline';
2323
export * from './selective-bloom';
2424
export * from './sepia';
25-
export * from './ssao';
2625
export * from './shock-wave';
2726
export * from './smaa';
27+
export * from './ssao';
2828
export * from './texture';
2929
export * from './tilt-shift';
3030
export * from './tilt-shift-2';

libs/soba/misc/src/lib/html/html-content.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -125,8 +125,8 @@ export interface NgtsHTMLContentOptions {
125125
parent?: HTMLElement | ElementRef<HTMLElement>;
126126
/**
127127
* Computes z-index with a logarithmic scale, which prevents
128-
* near objects from all having the same z-index when
129-
* camera.far is very large.
128+
* near objects from all having the same z-index when
129+
* camera.far is very large.
130130
*/
131131
logarithmicDepth?: boolean;
132132
}

libs/soba/misc/src/lib/html/utils.ts

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -122,15 +122,20 @@ export function objectScale(el: THREE.Object3D, camera: THREE.Camera) {
122122
* @param logarithmicDepth - Computes the z-index logarithmicly to enable a wider camera range
123123
* @returns Calculated z-index, or `undefined` for unsupported camera types
124124
*/
125-
export function objectZIndex(el: THREE.Object3D, camera: THREE.Camera, zIndexRange: Array<number>, logarithmicDepth = false) {
125+
export function objectZIndex(
126+
el: THREE.Object3D,
127+
camera: THREE.Camera,
128+
zIndexRange: Array<number>,
129+
logarithmicDepth = false,
130+
) {
126131
if (
127132
is.three<THREE.PerspectiveCamera>(camera, 'isPerspectiveCamera') ||
128133
is.three<THREE.OrthographicCamera>(camera, 'isOrthographicCamera')
129134
) {
130135
const objectPos = v1.setFromMatrixPosition(el.matrixWorld);
131136
const cameraPos = v2.setFromMatrixPosition(camera.matrixWorld);
132137
const dist = objectPos.distanceTo(cameraPos);
133-
if (logarithmicDepth) {
138+
if (logarithmicDepth) {
134139
const safeNear = Math.max(camera.near, 1e-6);
135140
const safeDist = Math.max(dist, 1e-6);
136141
const depth = Math.log(safeDist / safeNear) / Math.log(camera.far / safeNear);

libs/soba/performances/README.md

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -107,37 +107,37 @@ Usage:
107107

108108
```html
109109
<ngt-group lod [maxDistance]="10000">
110-
<ngt-mesh *lodLevel />
111-
<ngt-mesh *lodLevel="{distance: 100, hysteresis: 0.1}" />
112-
<ngt-mesh *lodLevel="{distance: 1000}" />
110+
<ngt-mesh *lodLevel />
111+
<ngt-mesh *lodLevel="{distance: 100, hysteresis: 0.1}" />
112+
<ngt-mesh *lodLevel="{distance: 1000}" />
113113
</ngt-group>
114114
```
115115

116116
The `[lod]` directive (`NgtsLODImpl`) supports the following optional input:
117117

118-
| Property | Description | Default Value |
119-
| ------------- | ------------------------------------------------------------------------------ | ------------- |
120-
| `maxDistance` | Distance beyond which nothing is displayed (equivalent to a last empty level) | `undefined` |
118+
| Property | Description | Default Value |
119+
| ------------- | ----------------------------------------------------------------------------- | ------------- |
120+
| `maxDistance` | Distance beyond which nothing is displayed (equivalent to a last empty level) | `undefined` |
121121

122122
The `[lodLevel]` directive (`NgtsLODLevel`) supports the following object inputs:
123123

124-
| Property | Description | Default Value |
125-
| ------------ | ----------------------------------------------------- | ------------- |
126-
| `distance` | Distance threshold above which to display the object | `0` |
127-
| `hysteresis` | Prevents rapid switching near distance thresholds | `0` |
124+
| Property | Description | Default Value |
125+
| ------------ | ---------------------------------------------------- | ------------- |
126+
| `distance` | Distance threshold above which to display the object | `0` |
127+
| `hysteresis` | Prevents rapid switching near distance thresholds | `0` |
128128

129129
This directive may also be used with the following shorthand syntax:
130130

131131
```html
132132
<ngt-group lod>
133-
<ng-template lodLevel>
134-
<ngt-mesh />
135-
<ngt-mesh />
136-
</ng-template>
137-
<ng-template [lodLevel]="{distance: 100}">
138-
<ngt-mesh />
139-
<ngt-mesh />
140-
</ng-template>
133+
<ng-template lodLevel>
134+
<ngt-mesh />
135+
<ngt-mesh />
136+
</ng-template>
137+
<ng-template [lodLevel]="{distance: 100}">
138+
<ngt-mesh />
139+
<ngt-mesh />
140+
</ng-template>
141141
</ngt-group>
142142
```
143143

libs/soba/performances/src/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ export * from './lib/adaptive-dpr';
22
export * from './lib/adaptive-events';
33
export * from './lib/bvh';
44
export * from './lib/detailed';
5-
export * from './lib/lod';
65
export * from './lib/instances/instances';
6+
export * from './lib/lod';
77
export * from './lib/points/points';
88
export * from './lib/segments/segments';
Lines changed: 64 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
1-
import { Component, contentChildren, Directive, ElementRef, inject, input, signal, TemplateRef } from "@angular/core";
2-
import { NgTemplateOutlet } from "@angular/common";
3-
import { beforeRender, injectStore } from "angular-three";
1+
import { NgTemplateOutlet } from '@angular/common';
2+
import { Component, contentChildren, Directive, ElementRef, inject, input, signal, TemplateRef } from '@angular/core';
3+
import { beforeRender, injectStore } from 'angular-three';
44
import { mergeInputs } from 'ngxtension/inject-inputs';
5-
import { Object3D, Vector3 } from "three";
5+
import { Object3D, Vector3 } from 'three';
66

77
export type NgtsLODLevelOptions = {
8-
distance: number;
9-
hysteresis: number;
10-
}
8+
distance: number;
9+
hysteresis: number;
10+
};
1111

1212
const defaultLodLevelOptions: NgtsLODLevelOptions = {
13-
distance: 0,
14-
hysteresis: 0,
13+
distance: 0,
14+
hysteresis: 0,
1515
};
1616

1717
const _v1 = new Vector3();
@@ -22,11 +22,11 @@ const _v2 = new Vector3();
2222
* an NgtsLOD component.
2323
*/
2424
@Directive({
25-
selector: 'ng-template[lodLevel]'
25+
selector: 'ng-template[lodLevel]',
2626
})
2727
export class NgtsLODLevel {
28-
lodLevel = input(defaultLodLevelOptions, { transform: mergeInputs(defaultLodLevelOptions) });
29-
template = inject(TemplateRef);
28+
lodLevel = input(defaultLodLevelOptions, { transform: mergeInputs(defaultLodLevelOptions) });
29+
template = inject(TemplateRef);
3030
}
3131

3232
/**
@@ -50,67 +50,63 @@ export class NgtsLODLevel {
5050
* ```
5151
*/
5252
@Component({
53-
selector: '[lod]',
54-
template: `
55-
<ng-container [ngTemplateOutlet]="level()?.template" />
56-
`,
57-
imports: [NgTemplateOutlet],
53+
selector: '[lod]',
54+
template: `
55+
<ng-container [ngTemplateOutlet]="level()?.template" />
56+
`,
57+
imports: [NgTemplateOutlet],
5858
})
5959
export class NgtsLODImpl {
60-
maxDistance = input<number>();
60+
maxDistance = input<number>();
6161

62-
private store = injectStore();
62+
private store = injectStore();
6363
private container = inject(ElementRef);
6464

65-
readonly levels = contentChildren(NgtsLODLevel);
66-
readonly level = signal<NgtsLODLevel|undefined>(undefined);
67-
68-
constructor() {
69-
beforeRender(() => {
70-
71-
const levels = this.levels();
72-
const currentLevel = this.level();
73-
const maxDistance = this.maxDistance();
74-
75-
let level: NgtsLODLevel|undefined = levels[0];
76-
77-
if(level && (levels.length > 1 || maxDistance)) {
78-
79-
const container = this.container.nativeElement as Object3D;
80-
const {matrixWorld, zoom} = this.store.snapshot.camera;
81-
82-
_v1.setFromMatrixPosition( matrixWorld );
83-
_v2.setFromMatrixPosition( container.matrixWorld );
84-
85-
const distance = _v1.distanceTo( _v2 ) / zoom;
86-
87-
if(maxDistance && distance > maxDistance) {
88-
level = undefined;
89-
}
90-
else {
91-
for (let i = 1, l = levels.length; i < l; i ++ ) {
92-
const _level = levels[i];
93-
let {distance: levelDistance, hysteresis} = _level.lodLevel();
94-
95-
if (hysteresis && currentLevel === _level) {
96-
levelDistance -= levelDistance * hysteresis;
97-
}
98-
99-
if (distance >= levelDistance) {
100-
level = _level;
101-
}
102-
else {
103-
break;
104-
}
105-
}
106-
}
107-
}
108-
109-
if(level !== currentLevel) {
110-
this.level.set(level);
111-
}
112-
});
113-
}
65+
readonly levels = contentChildren(NgtsLODLevel);
66+
readonly level = signal<NgtsLODLevel | undefined>(undefined);
67+
68+
constructor() {
69+
beforeRender(() => {
70+
const levels = this.levels();
71+
const currentLevel = this.level();
72+
const maxDistance = this.maxDistance();
73+
74+
let level: NgtsLODLevel | undefined = levels[0];
75+
76+
if (level && (levels.length > 1 || maxDistance)) {
77+
const container = this.container.nativeElement as Object3D;
78+
const { matrixWorld, zoom } = this.store.snapshot.camera;
79+
80+
_v1.setFromMatrixPosition(matrixWorld);
81+
_v2.setFromMatrixPosition(container.matrixWorld);
82+
83+
const distance = _v1.distanceTo(_v2) / zoom;
84+
85+
if (maxDistance && distance > maxDistance) {
86+
level = undefined;
87+
} else {
88+
for (let i = 1, l = levels.length; i < l; i++) {
89+
const _level = levels[i];
90+
let { distance: levelDistance, hysteresis } = _level.lodLevel();
91+
92+
if (hysteresis && currentLevel === _level) {
93+
levelDistance -= levelDistance * hysteresis;
94+
}
95+
96+
if (distance >= levelDistance) {
97+
level = _level;
98+
} else {
99+
break;
100+
}
101+
}
102+
}
103+
}
104+
105+
if (level !== currentLevel) {
106+
this.level.set(level);
107+
}
108+
});
109+
}
114110
}
115111

116112
export const NgtsLOD = [NgtsLODImpl, NgtsLODLevel] as const;

libs/soba/src/misc/html.stories.ts

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,10 @@ class HtmlTransformScene {
8888
<ngt-mesh-basic-material color="hotpink" wireframe />
8989
9090
<ngts-html [options]="{ position: [2.5, 0, 0] }">
91-
<div [htmlContent]="{ center: true }" style="color: white; background: rgba(0,0,0,0.5); padding: 4px 8px; white-space: nowrap;">
91+
<div
92+
[htmlContent]="{ center: true }"
93+
style="color: white; background: rgba(0,0,0,0.5); padding: 4px 8px; white-space: nowrap;"
94+
>
9295
High Detail
9396
</div>
9497
</ngts-html>
@@ -99,7 +102,10 @@ class HtmlTransformScene {
99102
<ngt-mesh-basic-material color="orange" wireframe />
100103
101104
<ngts-html [options]="{ position: [2.5, 0, 0] }">
102-
<div [htmlContent]="{ center: true }" style="color: white; background: rgba(0,0,0,0.5); padding: 4px 8px; white-space: nowrap;">
105+
<div
106+
[htmlContent]="{ center: true }"
107+
style="color: white; background: rgba(0,0,0,0.5); padding: 4px 8px; white-space: nowrap;"
108+
>
103109
Medium Detail
104110
</div>
105111
</ngts-html>
@@ -110,7 +116,10 @@ class HtmlTransformScene {
110116
<ngt-mesh-basic-material color="skyblue" wireframe />
111117
112118
<ngts-html [options]="{ position: [2.5, 0, 0] }">
113-
<div [htmlContent]="{ center: true }" style="color: white; background: rgba(0,0,0,0.5); padding: 4px 8px; white-space: nowrap;">
119+
<div
120+
[htmlContent]="{ center: true }"
121+
style="color: white; background: rgba(0,0,0,0.5); padding: 4px 8px; white-space: nowrap;"
122+
>
114123
Low Detail
115124
</div>
116125
</ngts-html>

libs/soba/src/performances/lod.stories.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,12 @@ import { storyDecorators, storyFunction } from '../setup-canvas';
1313
<ngt-mesh-basic-material color="hotpink" wireframe />
1414
</ngt-mesh>
1515
16-
<ngt-mesh *lodLevel="{distance: 50}" (click)="toggleColor()">
16+
<ngt-mesh *lodLevel="{ distance: 50 }" (click)="toggleColor()">
1717
<ngt-icosahedron-geometry *args="[10, 2]" />
1818
<ngt-mesh-basic-material [color]="color()" wireframe />
1919
</ngt-mesh>
2020
21-
<ngt-mesh *lodLevel="{distance: 150, hysteresis:0.1}">
21+
<ngt-mesh *lodLevel="{ distance: 150, hysteresis: 0.1 }">
2222
<ngt-icosahedron-geometry *args="[10, 1]" />
2323
<ngt-mesh-basic-material color="lightblue" wireframe />
2424
</ngt-mesh>
@@ -32,10 +32,10 @@ import { storyDecorators, storyFunction } from '../setup-canvas';
3232
})
3333
class DefaultLODStory {
3434
protected color = signal('#ff0000');
35-
36-
toggleColor() {
37-
this.color.update(c => c === '#ff0000'? '#00ff00' : '#ff0000' );
38-
}
35+
36+
toggleColor() {
37+
this.color.update((c) => (c === '#ff0000' ? '#00ff00' : '#ff0000'));
38+
}
3939
}
4040

4141
export default {

0 commit comments

Comments
 (0)