angular-three-soba 1.2.0 → 1.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/cameras/README.md +3 -0
  2. package/cameras/index.d.ts +3 -0
  3. package/cameras/lib/camera/camera-content.d.ts +13 -0
  4. package/cameras/lib/camera/camera.d.ts +19 -0
  5. package/cameras/lib/orthographic-camera/orthographic-camera.d.ts +17 -0
  6. package/cameras/lib/perspective-camera/perspective-camera.d.ts +9 -0
  7. package/esm2020/cameras/angular-three-soba-cameras.mjs +5 -0
  8. package/esm2020/cameras/index.mjs +4 -0
  9. package/esm2020/cameras/lib/camera/camera-content.mjs +20 -0
  10. package/esm2020/cameras/lib/camera/camera.mjs +74 -0
  11. package/esm2020/cameras/lib/orthographic-camera/orthographic-camera.mjs +92 -0
  12. package/esm2020/cameras/lib/perspective-camera/perspective-camera.mjs +46 -0
  13. package/esm2020/misc/index.mjs +2 -1
  14. package/esm2020/misc/lib/fbo/fbo.mjs +38 -0
  15. package/esm2020/performance/lib/stats/stats.mjs +4 -2
  16. package/esm2020/staging/lib/accumulative-shadows/accumulative-shadows.mjs +14 -12
  17. package/esm2020/staging/lib/accumulative-shadows/randomized-lights.mjs +6 -3
  18. package/fesm2015/angular-three-soba-cameras.mjs +224 -0
  19. package/fesm2015/angular-three-soba-cameras.mjs.map +1 -0
  20. package/fesm2015/angular-three-soba-misc.mjs +34 -2
  21. package/fesm2015/angular-three-soba-misc.mjs.map +1 -1
  22. package/fesm2015/angular-three-soba-performance.mjs +3 -1
  23. package/fesm2015/angular-three-soba-performance.mjs.map +1 -1
  24. package/fesm2015/angular-three-soba-staging.mjs +17 -12
  25. package/fesm2015/angular-three-soba-staging.mjs.map +1 -1
  26. package/fesm2020/angular-three-soba-cameras.mjs +224 -0
  27. package/fesm2020/angular-three-soba-cameras.mjs.map +1 -0
  28. package/fesm2020/angular-three-soba-misc.mjs +38 -2
  29. package/fesm2020/angular-three-soba-misc.mjs.map +1 -1
  30. package/fesm2020/angular-three-soba-performance.mjs +3 -1
  31. package/fesm2020/angular-three-soba-performance.mjs.map +1 -1
  32. package/fesm2020/angular-three-soba-staging.mjs +17 -12
  33. package/fesm2020/angular-three-soba-staging.mjs.map +1 -1
  34. package/misc/index.d.ts +1 -0
  35. package/misc/lib/fbo/fbo.d.ts +13 -0
  36. package/package.json +11 -1
  37. package/plugin/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"angular-three-soba-performance.mjs","sources":["../../../../libs/angular-three-soba/performance/src/lib/adaptive/adaptive-dpr.ts","../../../../libs/angular-three-soba/performance/src/lib/adaptive/adaptive-events.ts","../../../../libs/angular-three-soba/performance/src/lib/detailed/detailed.ts","../../../../libs/angular-three-soba/performance/src/lib/stats/stats.ts","../../../../libs/angular-three-soba/performance/src/angular-three-soba-performance.ts"],"sourcesContent":["import { Directive, inject, Input, OnInit } from '@angular/core';\nimport { RxActionFactory } from '@rx-angular/state/actions';\nimport { NgtRxStore, NgtStore } from 'angular-three';\n\n@Directive({\n selector: 'ngts-adaptive-dpr',\n standalone: true,\n providers: [RxActionFactory],\n})\nexport class NgtsAdaptiveDpr extends NgtRxStore implements OnInit {\n private readonly store = inject(NgtStore);\n private readonly actions = inject(RxActionFactory<{ restorePixel: void }>).create();\n\n @Input() pixelated = false;\n\n ngOnInit(): void {\n this.effect(this.actions.restorePixel$, () => {\n const domElement = this.store.get('gl', 'domElement');\n return () => {\n const active = this.store.get('internal', 'active');\n const setDpr = this.store.get('setDpr');\n const initialDpr = this.store.get('viewport', 'initialDpr');\n if (active) setDpr(initialDpr);\n if (this.pixelated && domElement) domElement.style.imageRendering = 'auto';\n };\n });\n\n this.actions.restorePixel();\n\n this.hold(this.store.select('performance', 'current'), (performanceCurrent) => {\n const { gl, viewport, setDpr } = this.store.get();\n setDpr(performanceCurrent * viewport.initialDpr);\n if (this.pixelated && gl.domElement)\n gl.domElement.style.imageRendering = performanceCurrent === 1 ? 'auto' : 'pixelated';\n });\n }\n}\n","import { Directive, inject, OnInit } from '@angular/core';\nimport { RxActionFactory } from '@rx-angular/state/actions';\nimport { NgtRxStore, NgtStore } from 'angular-three';\n\n@Directive({\n selector: 'ngts-adaptive-events',\n standalone: true,\n providers: [RxActionFactory],\n})\nexport class NgtsAdaptiveEvents extends NgtRxStore implements OnInit {\n private readonly store = inject(NgtStore);\n private readonly actions = inject(RxActionFactory<{ setEvents: void }>).create();\n\n ngOnInit(): void {\n this.effect(this.actions.setEvents$, () => {\n const enabled = this.store.get('events', 'enabled');\n return () => {\n const setEvents = this.store.get('setEvents');\n setEvents({ enabled });\n };\n });\n this.actions.setEvents();\n\n this.hold(this.store.select('performance', 'current'), (current) => {\n const setEvents = this.store.get('setEvents');\n setEvents({ enabled: current === 1 });\n });\n }\n}\n","import { Component, CUSTOM_ELEMENTS_SCHEMA, Input, OnInit } from '@angular/core';\nimport { extend, injectNgtRef, NgtRxStore } from 'angular-three';\nimport { combineLatest } from 'rxjs';\nimport { LOD } from 'three';\n\nextend({ LOD });\n\n@Component({\n selector: 'ngts-detailed[distances]',\n standalone: true,\n template: `\n <ngt-lOD [ref]=\"lodRef\" ngtCompound (beforeRender)=\"$any($event).object.update($any($event).state.camera)\">\n <ng-content />\n </ngt-lOD>\n `,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtsDetailed extends NgtRxStore implements OnInit {\n @Input() lodRef = injectNgtRef<LOD>();\n\n @Input() set distances(distances: number[]) {\n this.set({ distances });\n }\n\n ngOnInit() {\n this.updateLodChildren();\n }\n\n private updateLodChildren() {\n this.hold(combineLatest([this.lodRef.children$(), this.select('distances')]), ([children, distances]) => {\n this.lodRef.nativeElement.levels.length = 0;\n children.forEach((child, index) => {\n this.lodRef.nativeElement.addLevel(child, distances[index]);\n });\n });\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { Directive, inject, Input, OnInit } from '@angular/core';\nimport { addAfterEffect, addEffect, NgtInjectedRef, NgtRxStore, startWithUndefined } from 'angular-three';\nimport { combineLatest } from 'rxjs';\nimport * as Stats from 'stats.js';\n\n@Directive({\n selector: 'ngts-stats',\n standalone: true,\n})\nexport class NgtsStats extends NgtRxStore implements OnInit {\n private readonly document = inject(DOCUMENT);\n private readonly stats = new Stats();\n\n @Input() set showPanel(showPanel: number) {\n this.set({ showPanel: showPanel === undefined ? this.get('showPanel') : showPanel });\n }\n\n @Input() set parent(parent: NgtInjectedRef<HTMLElement>) {\n this.set({ parent });\n }\n\n @Input() set classes(classes: string) {\n this.set({ classes });\n }\n\n override initialize(): void {\n super.initialize();\n this.set({ showPanel: 0 });\n }\n\n ngOnInit() {\n this.effect(\n combineLatest([\n this.select('showPanel'),\n this.select('parent').pipe(startWithUndefined()),\n this.select('classes').pipe(startWithUndefined()),\n ]),\n ([showPanel, parent, classes]) => {\n const node = parent && parent.nativeElement ? parent.nativeElement : this.document.body;\n this.stats.showPanel(showPanel);\n node.appendChild(this.stats.dom);\n if (classes) {\n this.stats.dom.classList.add(...classes.split(' ').filter((cls: string) => cls));\n }\n const begin = addEffect(() => this.stats.begin());\n const end = addAfterEffect(() => this.stats.end());\n return () => {\n node.removeChild(this.stats.dom);\n begin();\n end();\n };\n }\n );\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"angular-three-soba-performance.mjs","sources":["../../../../libs/angular-three-soba/performance/src/lib/adaptive/adaptive-dpr.ts","../../../../libs/angular-three-soba/performance/src/lib/adaptive/adaptive-events.ts","../../../../libs/angular-three-soba/performance/src/lib/detailed/detailed.ts","../../../../libs/angular-three-soba/performance/src/lib/stats/stats.ts","../../../../libs/angular-three-soba/performance/src/angular-three-soba-performance.ts"],"sourcesContent":["import { Directive, inject, Input, OnInit } from '@angular/core';\nimport { RxActionFactory } from '@rx-angular/state/actions';\nimport { NgtRxStore, NgtStore } from 'angular-three';\n\n@Directive({\n selector: 'ngts-adaptive-dpr',\n standalone: true,\n providers: [RxActionFactory],\n})\nexport class NgtsAdaptiveDpr extends NgtRxStore implements OnInit {\n private readonly store = inject(NgtStore);\n private readonly actions = inject(RxActionFactory<{ restorePixel: void }>).create();\n\n @Input() pixelated = false;\n\n ngOnInit(): void {\n this.effect(this.actions.restorePixel$, () => {\n const domElement = this.store.get('gl', 'domElement');\n return () => {\n const active = this.store.get('internal', 'active');\n const setDpr = this.store.get('setDpr');\n const initialDpr = this.store.get('viewport', 'initialDpr');\n if (active) setDpr(initialDpr);\n if (this.pixelated && domElement) domElement.style.imageRendering = 'auto';\n };\n });\n\n this.actions.restorePixel();\n\n this.hold(this.store.select('performance', 'current'), (performanceCurrent) => {\n const { gl, viewport, setDpr } = this.store.get();\n setDpr(performanceCurrent * viewport.initialDpr);\n if (this.pixelated && gl.domElement)\n gl.domElement.style.imageRendering = performanceCurrent === 1 ? 'auto' : 'pixelated';\n });\n }\n}\n","import { Directive, inject, OnInit } from '@angular/core';\nimport { RxActionFactory } from '@rx-angular/state/actions';\nimport { NgtRxStore, NgtStore } from 'angular-three';\n\n@Directive({\n selector: 'ngts-adaptive-events',\n standalone: true,\n providers: [RxActionFactory],\n})\nexport class NgtsAdaptiveEvents extends NgtRxStore implements OnInit {\n private readonly store = inject(NgtStore);\n private readonly actions = inject(RxActionFactory<{ setEvents: void }>).create();\n\n ngOnInit(): void {\n this.effect(this.actions.setEvents$, () => {\n const enabled = this.store.get('events', 'enabled');\n return () => {\n const setEvents = this.store.get('setEvents');\n setEvents({ enabled });\n };\n });\n this.actions.setEvents();\n\n this.hold(this.store.select('performance', 'current'), (current) => {\n const setEvents = this.store.get('setEvents');\n setEvents({ enabled: current === 1 });\n });\n }\n}\n","import { Component, CUSTOM_ELEMENTS_SCHEMA, Input, OnInit } from '@angular/core';\nimport { extend, injectNgtRef, NgtRxStore } from 'angular-three';\nimport { combineLatest } from 'rxjs';\nimport { LOD } from 'three';\n\nextend({ LOD });\n\n@Component({\n selector: 'ngts-detailed[distances]',\n standalone: true,\n template: `\n <ngt-lOD [ref]=\"lodRef\" ngtCompound (beforeRender)=\"$any($event).object.update($any($event).state.camera)\">\n <ng-content />\n </ngt-lOD>\n `,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtsDetailed extends NgtRxStore implements OnInit {\n @Input() lodRef = injectNgtRef<LOD>();\n\n @Input() set distances(distances: number[]) {\n this.set({ distances });\n }\n\n ngOnInit() {\n this.updateLodChildren();\n }\n\n private updateLodChildren() {\n this.hold(combineLatest([this.lodRef.children$(), this.select('distances')]), ([children, distances]) => {\n this.lodRef.nativeElement.levels.length = 0;\n children.forEach((child, index) => {\n this.lodRef.nativeElement.addLevel(child, distances[index]);\n });\n });\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { Directive, inject, Input, OnInit } from '@angular/core';\nimport { addAfterEffect, addEffect, NgtAnyRecord, NgtInjectedRef, NgtRxStore, startWithUndefined } from 'angular-three';\nimport { combineLatest } from 'rxjs';\nimport * as Stats from 'stats.js';\n\n@Directive({\n selector: 'ngts-stats',\n standalone: true,\n})\nexport class NgtsStats extends NgtRxStore implements OnInit {\n private readonly document = inject(DOCUMENT);\n private readonly stats = (Stats as NgtAnyRecord)['default']\n ? new (Stats as NgtAnyRecord)['default']()\n : new Stats();\n\n @Input() set showPanel(showPanel: number) {\n this.set({ showPanel: showPanel === undefined ? this.get('showPanel') : showPanel });\n }\n\n @Input() set parent(parent: NgtInjectedRef<HTMLElement>) {\n this.set({ parent });\n }\n\n @Input() set classes(classes: string) {\n this.set({ classes });\n }\n\n override initialize(): void {\n super.initialize();\n this.set({ showPanel: 0 });\n }\n\n ngOnInit() {\n this.effect(\n combineLatest([\n this.select('showPanel'),\n this.select('parent').pipe(startWithUndefined()),\n this.select('classes').pipe(startWithUndefined()),\n ]),\n ([showPanel, parent, classes]) => {\n const node = parent && parent.nativeElement ? parent.nativeElement : this.document.body;\n this.stats.showPanel(showPanel);\n node.appendChild(this.stats.dom);\n if (classes) {\n this.stats.dom.classList.add(...classes.split(' ').filter((cls: string) => cls));\n }\n const begin = addEffect(() => this.stats.begin());\n const end = addAfterEffect(() => this.stats.end());\n return () => {\n node.removeChild(this.stats.dom);\n begin();\n end();\n };\n }\n );\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { InjectionToken, inject, Directive, Component, CUSTOM_ELEMENTS_SCHEMA, Input, EventEmitter, Output, TemplateRef, ContentChild, ChangeDetectorRef } from '@angular/core';
3
- import { extend, NgtStore, getLocalState, injectBeforeRender, NgtRxStore, injectNgtRef, is, NgtPush, NgtArgs, injectNgtDestroy, injectNgtLoader, startWithUndefined, prepare, NgtPortal, NgtPortalContent } from 'angular-three';
3
+ import { extend, NgtStore, getLocalState, NgtRxStore, injectNgtRef, NgtArgs, NgtRepeat, is, injectBeforeRender, NgtPush, injectNgtDestroy, injectNgtLoader, startWithUndefined, prepare, NgtPortal, NgtPortalContent } from 'angular-three';
4
4
  import { shaderMaterial } from 'angular-three-soba/shaders';
5
- import { combineLatest, switchMap, isObservable, of, debounceTime, map, takeUntil, startWith, withLatestFrom } from 'rxjs';
5
+ import { Subject, combineLatest, switchMap, isObservable, of, debounceTime, map, takeUntil, startWith, withLatestFrom } from 'rxjs';
6
6
  import * as THREE from 'three';
7
7
  import { Group, Mesh, PlaneGeometry, DirectionalLight, OrthographicCamera, Vector2, Box3, Vector3, Sphere, MeshBasicMaterial, CubeTextureLoader, CubeReflectionMapping, EquirectangularReflectionMapping, sRGBEncoding, LinearEncoding, CubeCamera, HalfFloatType, Points, BufferGeometry, BufferAttribute, Vector4, Color, MathUtils, AmbientLight, SpotLight, PointLight, Spherical, AdditiveBlending } from 'three';
8
8
  import { NgIf, NgTemplateOutlet } from '@angular/common';
@@ -126,7 +126,7 @@ const SoftShadowMaterial = shaderMaterial({
126
126
  `
127
127
  varying vec2 vUv;
128
128
  void main() {
129
- gl_Position = projectionMatrix * viewMatrix * modeLMatrix * vec4(position, 1.);
129
+ gl_Position = projectionMatrix * viewMatrix * modelMatrix * vec4(position, 1.);
130
130
  vUv = uv;
131
131
  }
132
132
  `,
@@ -139,7 +139,7 @@ uniform float blend;
139
139
  uniform float opacity;
140
140
  uniform float alphaTest;
141
141
  void main() {
142
- vec4 sampleDiffuseColor = texture2D(map, vUv):
142
+ vec4 sampledDiffuseColor = texture2D(map, vUv);
143
143
  gl_FragColor = vec4(color * sampledDiffuseColor.r * blend, max(0.0, (1.0 - (sampledDiffuseColor.r + sampledDiffuseColor.g + sampledDiffuseColor.b) / alphaTest)) * opacity);
144
144
  #include <tonemapping_fragment>
145
145
  #include <encodings_fragment>
@@ -199,6 +199,7 @@ function accumulativeShadowsApiFactory(accumulativeShadows) {
199
199
  : accumulativeShadows.get('frames')),
200
200
  },
201
201
  });
202
+ const subject = new Subject();
202
203
  accumulativeShadows.hold(accumulativeShadows.meshRef.$, (mesh) => {
203
204
  accumulativeShadows.pLM.configure(mesh);
204
205
  accumulativeShadows.hold(combineLatest([accumulativeShadows.select(), getLocalState(store.get('scene')).objects]), () => {
@@ -208,13 +209,14 @@ function accumulativeShadowsApiFactory(accumulativeShadows) {
208
209
  if (!api.temporal && api.frames !== Infinity)
209
210
  api.update(api.blend);
210
211
  });
211
- });
212
- injectBeforeRender(() => {
213
- const limit = accumulativeShadows.get('limit');
214
- if (api.getMesh() && (api.temporal || api.frames === Infinity) && api.count < api.frames && api.count < limit) {
215
- api.update();
216
- api.count++;
217
- }
212
+ accumulativeShadows.effect(subject, () => store.get('internal').subscribe(() => {
213
+ const limit = accumulativeShadows.get('limit');
214
+ if ((api.temporal || api.frames === Infinity) && api.count < api.frames && api.count < limit) {
215
+ api.update();
216
+ api.count++;
217
+ }
218
+ }));
219
+ subject.next();
218
220
  });
219
221
  return api;
220
222
  }
@@ -519,8 +521,9 @@ NgtsRandomizedLights.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", v
519
521
  <ngt-vector2 *args="[get('mapSize'), get('mapSize')]" attach="shadow.mapSize" />
520
522
  <ngt-orthographic-camera *args="get('cameraArgs')" attach="shadow.camera" />
521
523
  </ngt-directional-light>
524
+ <ngts-randomized-lights-consumer />
522
525
  </ngt-group>
523
- `, isInline: true });
526
+ `, isInline: true, dependencies: [{ kind: "directive", type: RandomizedLightsConsumer, selector: "ngts-randomized-lights-consumer" }, { kind: "directive", type: NgtArgs, selector: "[args]", inputs: ["args"] }, { kind: "directive", type: NgtRepeat, selector: "[ngFor][ngForRepeat]", inputs: ["ngForRepeat"] }] });
524
527
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgtsRandomizedLights, decorators: [{
525
528
  type: Component,
526
529
  args: [{
@@ -537,8 +540,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImpor
537
540
  <ngt-vector2 *args="[get('mapSize'), get('mapSize')]" attach="shadow.mapSize" />
538
541
  <ngt-orthographic-camera *args="get('cameraArgs')" attach="shadow.camera" />
539
542
  </ngt-directional-light>
543
+ <ngts-randomized-lights-consumer />
540
544
  </ngt-group>
541
545
  `,
546
+ imports: [RandomizedLightsConsumer, NgtArgs, NgtRepeat],
542
547
  providers: [
543
548
  { provide: NGTS_RANDOMIZED_LIGHTS_API, useFactory: randomizedLightsApiFactory, deps: [NgtsRandomizedLights] },
544
549
  ],