angular-three-soba 1.13.0 → 1.14.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.
- package/abstractions/lib/billboard/billboard.d.ts +1 -1
- package/abstractions/lib/catmull-rom-line/catmull-rom-line.d.ts +1 -1
- package/abstractions/lib/cubic-bezier-line/cubic-bezier-line.d.ts +1 -1
- package/abstractions/lib/edges/edges.d.ts +2 -2
- package/abstractions/lib/gizmo-helper/gizmo-helper.d.ts +1 -1
- package/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube-edge.d.ts +1 -1
- package/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube-face.d.ts +2 -2
- package/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube-inputs.d.ts +1 -1
- package/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube.d.ts +1 -1
- package/abstractions/lib/gizmo-helper/gizmo-viewport/gizmo-viewport-axis.d.ts +2 -2
- package/abstractions/lib/gizmo-helper/gizmo-viewport/gizmo-viewport.d.ts +1 -1
- package/abstractions/lib/line/line-input.d.ts +1 -1
- package/abstractions/lib/line/line.d.ts +1 -1
- package/abstractions/lib/quadratic-bezier-line/quadratic-bezier-line.d.ts +1 -1
- package/abstractions/lib/text/text.d.ts +1 -1
- package/abstractions/lib/text-3d/text-3d.d.ts +1 -1
- package/cameras/lib/camera/camera-content.d.ts +1 -1
- package/cameras/lib/camera/camera.d.ts +1 -1
- package/cameras/lib/cube-camera/cube-camera.d.ts +1 -1
- package/cameras/lib/orthographic-camera/orthographic-camera.d.ts +1 -1
- package/controls/lib/orbit-controls/orbit-controls.d.ts +1 -1
- package/esm2022/abstractions/lib/billboard/billboard.mjs +74 -0
- package/esm2022/abstractions/lib/catmull-rom-line/catmull-rom-line.mjs +120 -0
- package/esm2022/abstractions/lib/cubic-bezier-line/cubic-bezier-line.mjs +99 -0
- package/esm2022/abstractions/lib/edges/edges.mjs +96 -0
- package/esm2022/abstractions/lib/gizmo-helper/gizmo-helper.mjs +213 -0
- package/esm2022/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube-edge.mjs +92 -0
- package/esm2022/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube-face.mjs +184 -0
- package/esm2022/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube-inputs.mjs +46 -0
- package/{esm2020 → esm2022}/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube.mjs +8 -7
- package/esm2022/abstractions/lib/gizmo-helper/gizmo-viewport/gizmo-viewport-axis.mjs +195 -0
- package/{esm2020 → esm2022}/abstractions/lib/gizmo-helper/gizmo-viewport/gizmo-viewport.mjs +8 -7
- package/esm2022/abstractions/lib/line/line-input.mjs +76 -0
- package/esm2022/abstractions/lib/line/line.mjs +133 -0
- package/esm2022/abstractions/lib/quadratic-bezier-line/quadratic-bezier-line.mjs +128 -0
- package/esm2022/abstractions/lib/text/text.mjs +115 -0
- package/esm2022/abstractions/lib/text-3d/text-3d.mjs +145 -0
- package/esm2022/cameras/lib/camera/camera-content.mjs +21 -0
- package/esm2022/cameras/lib/camera/camera.mjs +75 -0
- package/esm2022/cameras/lib/cube-camera/cube-camera.mjs +131 -0
- package/esm2022/cameras/lib/orthographic-camera/orthographic-camera.mjs +93 -0
- package/{esm2020 → esm2022}/cameras/lib/perspective-camera/perspective-camera.mjs +8 -7
- package/esm2022/controls/lib/orbit-controls/orbit-controls.mjs +147 -0
- package/{esm2020 → esm2022}/loaders/lib/cube-texture-loader/cube-texture-loader.mjs +3 -3
- package/esm2022/loaders/lib/loader/loader.mjs +134 -0
- package/esm2022/materials/lib/mesh-distort-material/mesh-distort-material.mjs +75 -0
- package/esm2022/materials/lib/mesh-reflector-material/mesh-reflector-material.mjs +328 -0
- package/esm2022/materials/lib/mesh-refraction-material/mesh-refraction-material.mjs +158 -0
- package/esm2022/materials/lib/mesh-transmission-material/mesh-transmission-material.mjs +238 -0
- package/esm2022/materials/lib/mesh-wobble-material/mesh-wobble-material.mjs +68 -0
- package/esm2022/misc/lib/bake-shadows/bake-shadows.mjs +26 -0
- package/esm2022/performance/lib/adaptive/adaptive-dpr.mjs +47 -0
- package/esm2022/performance/lib/adaptive/adaptive-events.mjs +37 -0
- package/esm2022/performance/lib/detailed/detailed.mjs +54 -0
- package/esm2022/performance/lib/stats/stats.mjs +80 -0
- package/esm2022/shaders/lib/blur-pass/blur-pass.mjs +61 -0
- package/esm2022/staging/lib/accumulative-shadows/accumulative-shadows.mjs +249 -0
- package/esm2022/staging/lib/accumulative-shadows/randomized-lights.mjs +201 -0
- package/{esm2020 → esm2022}/staging/lib/bounds/bounds.mjs +8 -7
- package/esm2022/staging/lib/camera-shake/camera-shake.mjs +122 -0
- package/esm2022/staging/lib/caustics/caustics.mjs +364 -0
- package/esm2022/staging/lib/center/center.mjs +143 -0
- package/esm2022/staging/lib/cloud/cloud.mjs +160 -0
- package/esm2022/staging/lib/contact-shadows/contact-shadows.mjs +228 -0
- package/esm2022/staging/lib/environment/environment-cube.mjs +41 -0
- package/esm2022/staging/lib/environment/environment-ground.mjs +67 -0
- package/esm2022/staging/lib/environment/environment-inputs.mjs +87 -0
- package/esm2022/staging/lib/environment/environment-map.mjs +39 -0
- package/esm2022/staging/lib/environment/environment-portal.mjs +111 -0
- package/{esm2020 → esm2022}/staging/lib/environment/environment.mjs +13 -11
- package/esm2022/staging/lib/float/float.mjs +77 -0
- package/esm2022/staging/lib/sky/sky.mjs +109 -0
- package/esm2022/staging/lib/sparkles/sparkles.mjs +210 -0
- package/esm2022/staging/lib/spot-light/shadow-mesh-input.mjs +51 -0
- package/esm2022/staging/lib/spot-light/spot-light-input.mjs +62 -0
- package/esm2022/staging/lib/spot-light/spot-light-shadow-no-shader.mjs +74 -0
- package/esm2022/staging/lib/spot-light/spot-light-shadow-shader.mjs +126 -0
- package/{esm2020 → esm2022}/staging/lib/spot-light/spot-light-shadow.mjs +8 -7
- package/esm2022/staging/lib/spot-light/spot-light.mjs +117 -0
- package/esm2022/staging/lib/spot-light/volumetric-mesh.mjs +86 -0
- package/{esm2020 → esm2022}/staging/lib/stage/stage.mjs +13 -11
- package/esm2022/staging/lib/stars/stars.mjs +140 -0
- package/{fesm2020 → fesm2022}/angular-three-soba-abstractions.mjs +89 -89
- package/{fesm2015 → fesm2022}/angular-three-soba-abstractions.mjs.map +1 -1
- package/{fesm2015 → fesm2022}/angular-three-soba-cameras.mjs +21 -21
- package/{fesm2015 → fesm2022}/angular-three-soba-cameras.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/angular-three-soba-controls.mjs +5 -5
- package/fesm2022/angular-three-soba-controls.mjs.map +1 -0
- package/{fesm2020 → fesm2022}/angular-three-soba-loaders.mjs +7 -7
- package/{fesm2020 → fesm2022}/angular-three-soba-loaders.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/angular-three-soba-materials.mjs +25 -25
- package/{fesm2020 → fesm2022}/angular-three-soba-materials.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/angular-three-soba-misc.mjs +3 -3
- package/{fesm2020 → fesm2022}/angular-three-soba-misc.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/angular-three-soba-performance.mjs +14 -14
- package/{fesm2020 → fesm2022}/angular-three-soba-performance.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/angular-three-soba-shaders.mjs +2 -2
- package/fesm2022/angular-three-soba-shaders.mjs.map +1 -0
- package/{fesm2020 → fesm2022}/angular-three-soba-staging.mjs +139 -139
- package/{fesm2020 → fesm2022}/angular-three-soba-staging.mjs.map +1 -1
- package/loaders/lib/loader/loader.d.ts +1 -1
- package/materials/lib/mesh-distort-material/mesh-distort-material.d.ts +1 -1
- package/materials/lib/mesh-reflector-material/mesh-reflector-material.d.ts +1 -1
- package/materials/lib/mesh-refraction-material/mesh-refraction-material.d.ts +1 -1
- package/materials/lib/mesh-transmission-material/mesh-transmission-material.d.ts +1 -1
- package/materials/lib/mesh-wobble-material/mesh-wobble-material.d.ts +1 -1
- package/package.json +45 -70
- package/performance/lib/adaptive/adaptive-dpr.d.ts +1 -1
- package/performance/lib/detailed/detailed.d.ts +1 -1
- package/performance/lib/stats/stats.d.ts +1 -1
- package/plugin/package.json +1 -1
- package/plugin/src/generators/init/compat.js +1 -1
- package/plugin/src/generators/init/compat.js.map +1 -1
- package/plugin/src/generators/init/init.d.ts +1 -1
- package/plugin/src/generators/init/init.js +1 -1
- package/plugin/src/generators/init/init.js.map +1 -1
- package/staging/lib/accumulative-shadows/accumulative-shadows.d.ts +2 -2
- package/staging/lib/accumulative-shadows/randomized-lights.d.ts +1 -1
- package/staging/lib/bounds/bounds.d.ts +1 -1
- package/staging/lib/camera-shake/camera-shake.d.ts +1 -1
- package/staging/lib/caustics/caustics.d.ts +2 -2
- package/staging/lib/center/center.d.ts +1 -1
- package/staging/lib/cloud/cloud.d.ts +1 -1
- package/staging/lib/contact-shadows/contact-shadows.d.ts +1 -1
- package/staging/lib/environment/environment-inputs.d.ts +1 -1
- package/staging/lib/float/float.d.ts +1 -1
- package/staging/lib/sky/sky.d.ts +1 -1
- package/staging/lib/sparkles/sparkles.d.ts +2 -2
- package/staging/lib/spot-light/shadow-mesh-input.d.ts +1 -1
- package/staging/lib/spot-light/spot-light-input.d.ts +1 -1
- package/staging/lib/spot-light/spot-light-shadow-no-shader.d.ts +1 -1
- package/staging/lib/spot-light/spot-light-shadow-shader.d.ts +1 -1
- package/staging/lib/spot-light/spot-light.d.ts +1 -1
- package/staging/lib/spot-light/volumetric-mesh.d.ts +1 -1
- package/staging/lib/stage/stage.d.ts +2 -2
- package/staging/lib/stars/stars.d.ts +2 -2
- package/esm2020/abstractions/lib/billboard/billboard.mjs +0 -73
- package/esm2020/abstractions/lib/catmull-rom-line/catmull-rom-line.mjs +0 -119
- package/esm2020/abstractions/lib/cubic-bezier-line/cubic-bezier-line.mjs +0 -98
- package/esm2020/abstractions/lib/edges/edges.mjs +0 -95
- package/esm2020/abstractions/lib/gizmo-helper/gizmo-helper.mjs +0 -211
- package/esm2020/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube-edge.mjs +0 -91
- package/esm2020/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube-face.mjs +0 -182
- package/esm2020/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube-inputs.mjs +0 -45
- package/esm2020/abstractions/lib/gizmo-helper/gizmo-viewport/gizmo-viewport-axis.mjs +0 -193
- package/esm2020/abstractions/lib/line/line-input.mjs +0 -75
- package/esm2020/abstractions/lib/line/line.mjs +0 -132
- package/esm2020/abstractions/lib/quadratic-bezier-line/quadratic-bezier-line.mjs +0 -127
- package/esm2020/abstractions/lib/text/text.mjs +0 -114
- package/esm2020/abstractions/lib/text-3d/text-3d.mjs +0 -144
- package/esm2020/cameras/lib/camera/camera-content.mjs +0 -20
- package/esm2020/cameras/lib/camera/camera.mjs +0 -74
- package/esm2020/cameras/lib/cube-camera/cube-camera.mjs +0 -130
- package/esm2020/cameras/lib/orthographic-camera/orthographic-camera.mjs +0 -92
- package/esm2020/controls/lib/orbit-controls/orbit-controls.mjs +0 -146
- package/esm2020/loaders/lib/loader/loader.mjs +0 -133
- package/esm2020/materials/lib/mesh-distort-material/mesh-distort-material.mjs +0 -74
- package/esm2020/materials/lib/mesh-reflector-material/mesh-reflector-material.mjs +0 -327
- package/esm2020/materials/lib/mesh-refraction-material/mesh-refraction-material.mjs +0 -157
- package/esm2020/materials/lib/mesh-transmission-material/mesh-transmission-material.mjs +0 -237
- package/esm2020/materials/lib/mesh-wobble-material/mesh-wobble-material.mjs +0 -67
- package/esm2020/misc/lib/bake-shadows/bake-shadows.mjs +0 -25
- package/esm2020/performance/lib/adaptive/adaptive-dpr.mjs +0 -46
- package/esm2020/performance/lib/adaptive/adaptive-events.mjs +0 -36
- package/esm2020/performance/lib/detailed/detailed.mjs +0 -53
- package/esm2020/performance/lib/stats/stats.mjs +0 -79
- package/esm2020/shaders/lib/blur-pass/blur-pass.mjs +0 -61
- package/esm2020/staging/lib/accumulative-shadows/accumulative-shadows.mjs +0 -247
- package/esm2020/staging/lib/accumulative-shadows/randomized-lights.mjs +0 -199
- package/esm2020/staging/lib/camera-shake/camera-shake.mjs +0 -121
- package/esm2020/staging/lib/caustics/caustics.mjs +0 -363
- package/esm2020/staging/lib/center/center.mjs +0 -142
- package/esm2020/staging/lib/cloud/cloud.mjs +0 -159
- package/esm2020/staging/lib/contact-shadows/contact-shadows.mjs +0 -227
- package/esm2020/staging/lib/environment/environment-cube.mjs +0 -40
- package/esm2020/staging/lib/environment/environment-ground.mjs +0 -66
- package/esm2020/staging/lib/environment/environment-inputs.mjs +0 -86
- package/esm2020/staging/lib/environment/environment-map.mjs +0 -38
- package/esm2020/staging/lib/environment/environment-portal.mjs +0 -110
- package/esm2020/staging/lib/float/float.mjs +0 -76
- package/esm2020/staging/lib/sky/sky.mjs +0 -108
- package/esm2020/staging/lib/sparkles/sparkles.mjs +0 -209
- package/esm2020/staging/lib/spot-light/shadow-mesh-input.mjs +0 -50
- package/esm2020/staging/lib/spot-light/spot-light-input.mjs +0 -61
- package/esm2020/staging/lib/spot-light/spot-light-shadow-no-shader.mjs +0 -73
- package/esm2020/staging/lib/spot-light/spot-light-shadow-shader.mjs +0 -125
- package/esm2020/staging/lib/spot-light/spot-light.mjs +0 -116
- package/esm2020/staging/lib/spot-light/volumetric-mesh.mjs +0 -85
- package/esm2020/staging/lib/stars/stars.mjs +0 -139
- package/fesm2015/angular-three-soba-abstractions.mjs +0 -2048
- package/fesm2015/angular-three-soba-controls.mjs +0 -153
- package/fesm2015/angular-three-soba-controls.mjs.map +0 -1
- package/fesm2015/angular-three-soba-loaders.mjs +0 -229
- package/fesm2015/angular-three-soba-loaders.mjs.map +0 -1
- package/fesm2015/angular-three-soba-materials.mjs +0 -851
- package/fesm2015/angular-three-soba-materials.mjs.map +0 -1
- package/fesm2015/angular-three-soba-misc.mjs +0 -148
- package/fesm2015/angular-three-soba-misc.mjs.map +0 -1
- package/fesm2015/angular-three-soba-performance.mjs +0 -210
- package/fesm2015/angular-three-soba-performance.mjs.map +0 -1
- package/fesm2015/angular-three-soba-shaders.mjs +0 -1239
- package/fesm2015/angular-three-soba-shaders.mjs.map +0 -1
- package/fesm2015/angular-three-soba-staging.mjs +0 -3772
- package/fesm2015/angular-three-soba-staging.mjs.map +0 -1
- package/fesm2020/angular-three-soba-abstractions.mjs.map +0 -1
- package/fesm2020/angular-three-soba-cameras.mjs +0 -347
- package/fesm2020/angular-three-soba-cameras.mjs.map +0 -1
- package/fesm2020/angular-three-soba-controls.mjs.map +0 -1
- package/fesm2020/angular-three-soba-shaders.mjs.map +0 -1
- package/fesm2020/angular-three-soba.mjs +0 -6
- package/fesm2020/angular-three-soba.mjs.map +0 -1
- /package/{esm2020 → esm2022}/abstractions/angular-three-soba-abstractions.mjs +0 -0
- /package/{esm2020 → esm2022}/abstractions/index.mjs +0 -0
- /package/{esm2020 → esm2022}/abstractions/lib/gizmo-helper/gizmo-viewcube/constants.mjs +0 -0
- /package/{esm2020 → esm2022}/angular-three-soba.mjs +0 -0
- /package/{esm2020 → esm2022}/cameras/angular-three-soba-cameras.mjs +0 -0
- /package/{esm2020 → esm2022}/cameras/index.mjs +0 -0
- /package/{esm2020 → esm2022}/controls/angular-three-soba-controls.mjs +0 -0
- /package/{esm2020 → esm2022}/controls/index.mjs +0 -0
- /package/{esm2020 → esm2022}/index.mjs +0 -0
- /package/{esm2020 → esm2022}/loaders/angular-three-soba-loaders.mjs +0 -0
- /package/{esm2020 → esm2022}/loaders/index.mjs +0 -0
- /package/{esm2020 → esm2022}/loaders/lib/gltf-loader/gltf-loader.mjs +0 -0
- /package/{esm2020 → esm2022}/loaders/lib/progress/progress.mjs +0 -0
- /package/{esm2020 → esm2022}/loaders/lib/texture-loader/texture-loader.mjs +0 -0
- /package/{esm2020 → esm2022}/materials/angular-three-soba-materials.mjs +0 -0
- /package/{esm2020 → esm2022}/materials/index.mjs +0 -0
- /package/{esm2020 → esm2022}/misc/angular-three-soba-misc.mjs +0 -0
- /package/{esm2020 → esm2022}/misc/index.mjs +0 -0
- /package/{esm2020 → esm2022}/misc/lib/animations/animations.mjs +0 -0
- /package/{esm2020 → esm2022}/misc/lib/depth-buffer/depth-buffer.mjs +0 -0
- /package/{esm2020 → esm2022}/misc/lib/fbo/fbo.mjs +0 -0
- /package/{esm2020 → esm2022}/performance/angular-three-soba-performance.mjs +0 -0
- /package/{esm2020 → esm2022}/performance/index.mjs +0 -0
- /package/{esm2020 → esm2022}/shaders/angular-three-soba-shaders.mjs +0 -0
- /package/{esm2020 → esm2022}/shaders/index.mjs +0 -0
- /package/{esm2020 → esm2022}/shaders/lib/caustics-material/caustics-material.mjs +0 -0
- /package/{esm2020 → esm2022}/shaders/lib/caustics-projection-material/caustics-projection-material.mjs +0 -0
- /package/{esm2020 → esm2022}/shaders/lib/convolution-material/convolution-material.mjs +0 -0
- /package/{esm2020 → esm2022}/shaders/lib/discard-material/discard-material.mjs +0 -0
- /package/{esm2020 → esm2022}/shaders/lib/mesh-distort-material/mesh-distort-material.mjs +0 -0
- /package/{esm2020 → esm2022}/shaders/lib/mesh-reflector-material/mesh-reflector-material.mjs +0 -0
- /package/{esm2020 → esm2022}/shaders/lib/mesh-refraction-material/mesh-refraction-material.mjs +0 -0
- /package/{esm2020 → esm2022}/shaders/lib/mesh-transmission-material/mesh-transmission-material.mjs +0 -0
- /package/{esm2020 → esm2022}/shaders/lib/mesh-wobble-material/mesh-wobble-material.mjs +0 -0
- /package/{esm2020 → esm2022}/shaders/lib/shader-material/shader-material.mjs +0 -0
- /package/{esm2020 → esm2022}/shaders/lib/soft-shadow-material/soft-shadow-material.mjs +0 -0
- /package/{esm2020 → esm2022}/shaders/lib/spot-light-material/spot-light-material.mjs +0 -0
- /package/{esm2020 → esm2022}/shaders/lib/star-field-material/star-field-material.mjs +0 -0
- /package/{esm2020 → esm2022}/staging/angular-three-soba-staging.mjs +0 -0
- /package/{esm2020 → esm2022}/staging/index.mjs +0 -0
- /package/{esm2020 → esm2022}/staging/lib/accumulative-shadows/progressive-light-map.mjs +0 -0
- /package/{esm2020 → esm2022}/staging/lib/environment/assets.mjs +0 -0
- /package/{esm2020 → esm2022}/staging/lib/environment/utils.mjs +0 -0
- /package/{esm2020 → esm2022}/staging/lib/spot-light/common.mjs +0 -0
- /package/{fesm2015 → fesm2022}/angular-three-soba.mjs +0 -0
- /package/{fesm2015 → fesm2022}/angular-three-soba.mjs.map +0 -0
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
import { Component, CUSTOM_ELEMENTS_SCHEMA, Input } from '@angular/core';
|
|
2
|
+
import { extend, NgtArgs, NgtPush, NgtRxStore } from 'angular-three';
|
|
3
|
+
import { combineLatest, map, of, switchMap } from 'rxjs';
|
|
4
|
+
import { Mesh } from 'three';
|
|
5
|
+
import { FontLoader, TextGeometry } from 'three-stdlib';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
extend({ Mesh, TextGeometry });
|
|
8
|
+
class NgtsText3D extends NgtRxStore {
|
|
9
|
+
constructor() {
|
|
10
|
+
super(...arguments);
|
|
11
|
+
this.font$ = this.select('font').pipe(switchMap((font) => {
|
|
12
|
+
if (typeof font === 'string')
|
|
13
|
+
return fetch(font).then((res) => res.json());
|
|
14
|
+
return of(font);
|
|
15
|
+
}), map((fontData) => new FontLoader().parse(fontData)));
|
|
16
|
+
this.geometryArgs$ = combineLatest([
|
|
17
|
+
this.font$,
|
|
18
|
+
this.select('text'),
|
|
19
|
+
this.select('size'),
|
|
20
|
+
this.select('height'),
|
|
21
|
+
this.select('bevelThickness'),
|
|
22
|
+
this.select('bevelSize'),
|
|
23
|
+
this.select('bevelEnabled'),
|
|
24
|
+
this.select('bevelSegments'),
|
|
25
|
+
this.select('bevelOffset'),
|
|
26
|
+
this.select('curveSegments'),
|
|
27
|
+
this.select('letterSpacing'),
|
|
28
|
+
this.select('lineHeight'),
|
|
29
|
+
]).pipe(map(([font, text, size, height, bevelThickness, bevelSize, bevelEnabled, bevelSegments, bevelOffset, curveSegments, letterSpacing, lineHeight,]) => [
|
|
30
|
+
text,
|
|
31
|
+
{
|
|
32
|
+
font,
|
|
33
|
+
size,
|
|
34
|
+
height,
|
|
35
|
+
bevelThickness,
|
|
36
|
+
bevelSize,
|
|
37
|
+
bevelSegments,
|
|
38
|
+
bevelEnabled,
|
|
39
|
+
bevelOffset,
|
|
40
|
+
curveSegments,
|
|
41
|
+
letterSpacing,
|
|
42
|
+
lineHeight,
|
|
43
|
+
},
|
|
44
|
+
]));
|
|
45
|
+
}
|
|
46
|
+
set font(font) {
|
|
47
|
+
this.set({ font });
|
|
48
|
+
}
|
|
49
|
+
set text(text) {
|
|
50
|
+
this.set({ text });
|
|
51
|
+
}
|
|
52
|
+
set bevelEnabled(bevelEnabled) {
|
|
53
|
+
this.set({ bevelEnabled });
|
|
54
|
+
}
|
|
55
|
+
set bevelOffset(bevelOffset) {
|
|
56
|
+
this.set({ bevelOffset });
|
|
57
|
+
}
|
|
58
|
+
set bevelSize(bevelSize) {
|
|
59
|
+
this.set({ bevelSize });
|
|
60
|
+
}
|
|
61
|
+
set bevelThickness(bevelThickness) {
|
|
62
|
+
this.set({ bevelThickness });
|
|
63
|
+
}
|
|
64
|
+
set curveSegments(curveSegments) {
|
|
65
|
+
this.set({ curveSegments });
|
|
66
|
+
}
|
|
67
|
+
set bevelSegments(bevelSegments) {
|
|
68
|
+
this.set({ bevelSegments });
|
|
69
|
+
}
|
|
70
|
+
set height(height) {
|
|
71
|
+
this.set({ height });
|
|
72
|
+
}
|
|
73
|
+
set size(size) {
|
|
74
|
+
this.set({ size });
|
|
75
|
+
}
|
|
76
|
+
set lineHeight(lineHeight) {
|
|
77
|
+
this.set({ lineHeight });
|
|
78
|
+
}
|
|
79
|
+
set letterSpacing(letterSpacing) {
|
|
80
|
+
this.set({ letterSpacing });
|
|
81
|
+
}
|
|
82
|
+
initialize() {
|
|
83
|
+
super.initialize();
|
|
84
|
+
this.set({
|
|
85
|
+
letterSpacing: 0,
|
|
86
|
+
lineHeight: 1,
|
|
87
|
+
size: 1,
|
|
88
|
+
height: 0.2,
|
|
89
|
+
bevelThickness: 0.1,
|
|
90
|
+
bevelSize: 0.01,
|
|
91
|
+
bevelEnabled: false,
|
|
92
|
+
bevelOffset: 0,
|
|
93
|
+
bevelSegments: 4,
|
|
94
|
+
curveSegments: 8,
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgtsText3D, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
98
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: NgtsText3D, isStandalone: true, selector: "ngts-text-3d[font]", inputs: { font: "font", text: "text", bevelEnabled: "bevelEnabled", bevelOffset: "bevelOffset", bevelSize: "bevelSize", bevelThickness: "bevelThickness", curveSegments: "curveSegments", bevelSegments: "bevelSegments", height: "height", size: "size", lineHeight: "lineHeight", letterSpacing: "letterSpacing" }, usesInheritance: true, ngImport: i0, template: `
|
|
99
|
+
<ngt-mesh ngtCompound>
|
|
100
|
+
<ngt-text-geometry *args="geometryArgs$ | ngtPush : null" />
|
|
101
|
+
<ng-content />
|
|
102
|
+
</ngt-mesh>
|
|
103
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "[args]", inputs: ["args"] }, { kind: "pipe", type: NgtPush, name: "ngtPush" }] }); }
|
|
104
|
+
}
|
|
105
|
+
export { NgtsText3D };
|
|
106
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgtsText3D, decorators: [{
|
|
107
|
+
type: Component,
|
|
108
|
+
args: [{
|
|
109
|
+
selector: 'ngts-text-3d[font]',
|
|
110
|
+
standalone: true,
|
|
111
|
+
template: `
|
|
112
|
+
<ngt-mesh ngtCompound>
|
|
113
|
+
<ngt-text-geometry *args="geometryArgs$ | ngtPush : null" />
|
|
114
|
+
<ng-content />
|
|
115
|
+
</ngt-mesh>
|
|
116
|
+
`,
|
|
117
|
+
imports: [NgtArgs, NgtPush],
|
|
118
|
+
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
119
|
+
}]
|
|
120
|
+
}], propDecorators: { font: [{
|
|
121
|
+
type: Input
|
|
122
|
+
}], text: [{
|
|
123
|
+
type: Input
|
|
124
|
+
}], bevelEnabled: [{
|
|
125
|
+
type: Input
|
|
126
|
+
}], bevelOffset: [{
|
|
127
|
+
type: Input
|
|
128
|
+
}], bevelSize: [{
|
|
129
|
+
type: Input
|
|
130
|
+
}], bevelThickness: [{
|
|
131
|
+
type: Input
|
|
132
|
+
}], curveSegments: [{
|
|
133
|
+
type: Input
|
|
134
|
+
}], bevelSegments: [{
|
|
135
|
+
type: Input
|
|
136
|
+
}], height: [{
|
|
137
|
+
type: Input
|
|
138
|
+
}], size: [{
|
|
139
|
+
type: Input
|
|
140
|
+
}], lineHeight: [{
|
|
141
|
+
type: Input
|
|
142
|
+
}], letterSpacing: [{
|
|
143
|
+
type: Input
|
|
144
|
+
}] } });
|
|
145
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC0zZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci10aHJlZS1zb2JhL2Fic3RyYWN0aW9ucy9zcmMvbGliL3RleHQtM2QvdGV4dC0zZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLHNCQUFzQixFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RSxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDekQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUM3QixPQUFPLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUFZeEQsTUFBTSxDQUFDLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUM7QUFFL0IsTUFZYSxVQUFXLFNBQVEsVUFBVTtJQVoxQzs7UUE2RXFCLFVBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FDN0MsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDZixJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVE7Z0JBQUUsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQXNCLENBQUM7WUFDaEcsT0FBTyxFQUFFLENBQUMsSUFBZ0IsQ0FBQyxDQUFDO1FBQ2hDLENBQUMsQ0FBQyxFQUNGLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsSUFBSSxVQUFVLEVBQUUsQ0FBQyxLQUFLLENBQUMs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c291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZXh0ZW5kLCBOZ3RBcmdzLCBOZ3RQdXNoLCBOZ3RSeFN0b3JlIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBtYXAsIG9mLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE1lc2ggfSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgeyBGb250TG9hZGVyLCBUZXh0R2VvbWV0cnkgfSBmcm9tICd0aHJlZS1zdGRsaWInO1xuXG5kZWNsYXJlIHR5cGUgR2x5cGggPSB7IF9jYWNoZWRPdXRsaW5lOiBzdHJpbmdbXTsgaGE6IG51bWJlcjsgbzogc3RyaW5nIH07XG5cbmRlY2xhcmUgdHlwZSBGb250RGF0YSA9IHtcbiAgICBib3VuZGluZ0JveDogeyB5TWF4OiBudW1iZXI7IHlNaW46IG51bWJlciB9O1xuICAgIGZhbWlseU5hbWU6IHN0cmluZztcbiAgICBnbHlwaHM6IHsgW2s6IHN0cmluZ106IEdseXBoIH07XG4gICAgcmVzb2x1dGlvbjogbnVtYmVyO1xuICAgIHVuZGVybGluZVRoaWNrbmVzczogbnVtYmVyO1xufTtcblxuZXh0ZW5kKHsgTWVzaCwgVGV4dEdlb21ldHJ5IH0pO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25ndHMtdGV4dC0zZFtmb250XScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8bmd0LW1lc2ggbmd0Q29tcG91bmQ+XG4gICAgICAgICAgICA8bmd0LXRleHQtZ2VvbWV0cnkgKmFyZ3M9XCJnZW9tZXRyeUFyZ3MkIHwgbmd0UHVzaCA6IG51bGxcIiAvPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQgLz5cbiAgICAgICAgPC9uZ3QtbWVzaD5cbiAgICBgLFxuICAgIGltcG9ydHM6IFtOZ3RBcmdzLCBOZ3RQdXNoXSxcbiAgICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHNUZXh0M0QgZXh0ZW5kcyBOZ3RSeFN0b3JlIHtcbiAgICBASW5wdXQoKSBzZXQgZm9udChmb250OiBGb250RGF0YSB8IHN0cmluZykge1xuICAgICAgICB0aGlzLnNldCh7IGZvbnQgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IHRleHQodGV4dDogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgdGV4dCB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgYmV2ZWxFbmFibGVkKGJldmVsRW5hYmxlZDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnNldCh7IGJldmVsRW5hYmxlZCB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgYmV2ZWxPZmZzZXQoYmV2ZWxPZmZzZXQ6IG51bWJlcikge1xuICAgICAgICB0aGlzLnNldCh7IGJldmVsT2Zmc2V0IH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBiZXZlbFNpemUoYmV2ZWxTaXplOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBiZXZlbFNpemUgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGJldmVsVGhpY2tuZXNzKGJldmVsVGhpY2tuZXNzOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBiZXZlbFRoaWNrbmVzcyB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgY3VydmVTZWdtZW50cyhjdXJ2ZVNlZ21lbnRzOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBjdXJ2ZVNlZ21lbnRzIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBiZXZlbFNlZ21lbnRzKGJldmVsU2VnbWVudHM6IG51bWJlcikge1xuICAgICAgICB0aGlzLnNldCh7IGJldmVsU2VnbWVudHMgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGhlaWdodChoZWlnaHQ6IG51bWJlcikge1xuICAgICAgICB0aGlzLnNldCh7IGhlaWdodCB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgc2l6ZShzaXplOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBzaXplIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBsaW5lSGVpZ2h0KGxpbmVIZWlnaHQ6IG51bWJlcikge1xuICAgICAgICB0aGlzLnNldCh7IGxpbmVIZWlnaHQgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGxldHRlclNwYWNpbmcobGV0dGVyU3BhY2luZzogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgbGV0dGVyU3BhY2luZyB9KTtcbiAgICB9XG5cbiAgICBvdmVycmlkZSBpbml0aWFsaXplKCk6IHZvaWQge1xuICAgICAgICBzdXBlci5pbml0aWFsaXplKCk7XG4gICAgICAgIHRoaXMuc2V0KHtcbiAgICAgICAgICAgIGxldHRlclNwYWNpbmc6IDAsXG4gICAgICAgICAgICBsaW5lSGVpZ2h0OiAxLFxuICAgICAgICAgICAgc2l6ZTogMSxcbiAgICAgICAgICAgIGhlaWdodDogMC4yLFxuICAgICAgICAgICAgYmV2ZWxUaGlja25lc3M6IDAuMSxcbiAgICAgICAgICAgIGJldmVsU2l6ZTogMC4wMSxcbiAgICAgICAgICAgIGJldmVsRW5hYmxlZDogZmFsc2UsXG4gICAgICAgICAgICBiZXZlbE9mZnNldDogMCxcbiAgICAgICAgICAgIGJldmVsU2VnbWVudHM6IDQsXG4gICAgICAgICAgICBjdXJ2ZVNlZ21lbnRzOiA4LFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGZvbnQkID0gdGhpcy5zZWxlY3QoJ2ZvbnQnKS5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoKGZvbnQpID0+IHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgZm9udCA9PT0gJ3N0cmluZycpIHJldHVybiBmZXRjaChmb250KS50aGVuKChyZXMpID0+IHJlcy5qc29uKCkpIGFzIFByb21pc2U8Rm9udERhdGE+O1xuICAgICAgICAgICAgcmV0dXJuIG9mKGZvbnQgYXMgRm9udERhdGEpO1xuICAgICAgICB9KSxcbiAgICAgICAgbWFwKChmb250RGF0YSkgPT4gbmV3IEZvbnRMb2FkZXIoKS5wYXJzZShmb250RGF0YSkpXG4gICAgKTtcblxuICAgIHJlYWRvbmx5IGdlb21ldHJ5QXJncyQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgdGhpcy5mb250JCxcbiAgICAgICAgdGhpcy5zZWxlY3QoJ3RleHQnKSxcbiAgICAgICAgdGhpcy5zZWxlY3QoJ3NpemUnKSxcbiAgICAgICAgdGhpcy5zZWxlY3QoJ2hlaWdodCcpLFxuICAgICAgICB0aGlzLnNlbGVjdCgnYmV2ZWxUaGlja25lc3MnKSxcbiAgICAgICAgdGhpcy5zZWxlY3QoJ2JldmVsU2l6ZScpLFxuICAgICAgICB0aGlzLnNlbGVjdCgnYmV2ZWxFbmFibGVkJyksXG4gICAgICAgIHRoaXMuc2VsZWN0KCdiZXZlbFNlZ21lbnRzJyksXG4gICAgICAgIHRoaXMuc2VsZWN0KCdiZXZlbE9mZnNldCcpLFxuICAgICAgICB0aGlzLnNlbGVjdCgnY3VydmVTZWdtZW50cycpLFxuICAgICAgICB0aGlzLnNlbGVjdCgnbGV0dGVyU3BhY2luZycpLFxuICAgICAgICB0aGlzLnNlbGVjdCgnbGluZUhlaWdodCcpLFxuICAgIF0pLnBpcGUoXG4gICAgICAgIG1hcChcbiAgICAgICAgICAgIChbXG4gICAgICAgICAgICAgICAgZm9udCxcbiAgICAgICAgICAgICAgICB0ZXh0LFxuICAgICAgICAgICAgICAgIHNpemUsXG4gICAgICAgICAgICAgICAgaGVpZ2h0LFxuICAgICAgICAgICAgICAgIGJldmVsVGhpY2tuZXNzLFxuICAgICAgICAgICAgICAgIGJldmVsU2l6ZSxcbiAgICAgICAgICAgICAgICBiZXZlbEVuYWJsZWQsXG4gICAgICAgICAgICAgICAgYmV2ZWxTZWdtZW50cyxcbiAgICAgICAgICAgICAgICBiZXZlbE9mZnNldCxcbiAgICAgICAgICAgICAgICBjdXJ2ZVNlZ21lbnRzLFxuICAgICAgICAgICAgICAgIGxldHRlclNwYWNpbmcsXG4gICAgICAgICAgICAgICAgbGluZUhlaWdodCxcbiAgICAgICAgICAgIF0pID0+IFtcbiAgICAgICAgICAgICAgICB0ZXh0LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZm9udCxcbiAgICAgICAgICAgICAgICAgICAgc2l6ZSxcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0LFxuICAgICAgICAgICAgICAgICAgICBiZXZlbFRoaWNrbmVzcyxcbiAgICAgICAgICAgICAgICAgICAgYmV2ZWxTaXplLFxuICAgICAgICAgICAgICAgICAgICBiZXZlbFNlZ21lbnRzLFxuICAgICAgICAgICAgICAgICAgICBiZXZlbEVuYWJsZWQsXG4gICAgICAgICAgICAgICAgICAgIGJldmVsT2Zmc2V0LFxuICAgICAgICAgICAgICAgICAgICBjdXJ2ZVNlZ21lbnRzLFxuICAgICAgICAgICAgICAgICAgICBsZXR0ZXJTcGFjaW5nLFxuICAgICAgICAgICAgICAgICAgICBsaW5lSGVpZ2h0LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdXG4gICAgICAgIClcbiAgICApO1xufVxuIl19
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Directive, inject, Input, TemplateRef } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
class NgtsCameraContent {
|
|
4
|
+
constructor() {
|
|
5
|
+
this.template = inject(TemplateRef);
|
|
6
|
+
this.ngtsCameraContent = '';
|
|
7
|
+
}
|
|
8
|
+
static ngTemplateContextGuard(_, ctx) {
|
|
9
|
+
return true;
|
|
10
|
+
}
|
|
11
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgtsCameraContent, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
12
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0", type: NgtsCameraContent, isStandalone: true, selector: "ng-template[ngtsCameraContent]", inputs: { ngtsCameraContent: "ngtsCameraContent" }, ngImport: i0 }); }
|
|
13
|
+
}
|
|
14
|
+
export { NgtsCameraContent };
|
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgtsCameraContent, decorators: [{
|
|
16
|
+
type: Directive,
|
|
17
|
+
args: [{ selector: 'ng-template[ngtsCameraContent]', standalone: true }]
|
|
18
|
+
}], propDecorators: { ngtsCameraContent: [{
|
|
19
|
+
type: Input
|
|
20
|
+
}] } });
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FtZXJhLWNvbnRlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdGhyZWUtc29iYS9jYW1lcmFzL3NyYy9saWIvY2FtZXJhL2NhbWVyYS1jb250ZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBR3RFLE1BQ2EsaUJBQWlCO0lBRDlCO1FBRWEsYUFBUSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMvQixzQkFBaUIsR0FBaUIsRUFBRSxDQUFDO0tBUWpEO0lBTkcsTUFBTSxDQUFDLHNCQUFzQixDQUN6QixDQUFvQixFQUNwQixHQUFZO1FBRVosT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQzs4R0FUUSxpQkFBaUI7a0dBQWpCLGlCQUFpQjs7U0FBakIsaUJBQWlCOzJGQUFqQixpQkFBaUI7a0JBRDdCLFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUsZ0NBQWdDLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRTs4QkFHOUQsaUJBQWlCO3NCQUF6QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBpbmplY3QsIElucHV0LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0ICogYXMgVEhSRUUgZnJvbSAndGhyZWUnO1xuXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICduZy10ZW1wbGF0ZVtuZ3RzQ2FtZXJhQ29udGVudF0nLCBzdGFuZGFsb25lOiB0cnVlIH0pXG5leHBvcnQgY2xhc3MgTmd0c0NhbWVyYUNvbnRlbnQge1xuICAgIHJlYWRvbmx5IHRlbXBsYXRlID0gaW5qZWN0KFRlbXBsYXRlUmVmKTtcbiAgICBASW5wdXQoKSBuZ3RzQ2FtZXJhQ29udGVudDogYm9vbGVhbiB8ICcnID0gJyc7XG5cbiAgICBzdGF0aWMgbmdUZW1wbGF0ZUNvbnRleHRHdWFyZChcbiAgICAgICAgXzogTmd0c0NhbWVyYUNvbnRlbnQsXG4gICAgICAgIGN0eDogdW5rbm93blxuICAgICk6IGN0eCBpcyB7IGZibzogVEhSRUUuV2ViR0xSZW5kZXJUYXJnZXQ7IGdyb3VwPzogVEhSRUUuR3JvdXAgfSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { Directive, inject, Input } from '@angular/core';
|
|
2
|
+
import { injectNgtRef, NgtRxStore, NgtStore } from 'angular-three';
|
|
3
|
+
import { injectNgtsFBO } from 'angular-three-soba/misc';
|
|
4
|
+
import { combineLatest, map } from 'rxjs';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
class NgtsCamera extends NgtRxStore {
|
|
7
|
+
constructor() {
|
|
8
|
+
super(...arguments);
|
|
9
|
+
this.cameraRef = injectNgtRef();
|
|
10
|
+
this.store = inject(NgtStore);
|
|
11
|
+
this.fboRef = injectNgtsFBO(() => this.select('resolution').pipe(map((resolution) => ({ width: resolution }))));
|
|
12
|
+
}
|
|
13
|
+
set makeDefault(makeDefault) {
|
|
14
|
+
this.set({ makeDefault });
|
|
15
|
+
}
|
|
16
|
+
set manual(manual) {
|
|
17
|
+
this.set({ manual });
|
|
18
|
+
}
|
|
19
|
+
set frames(frames) {
|
|
20
|
+
this.set({ frames });
|
|
21
|
+
}
|
|
22
|
+
set resolution(resolution) {
|
|
23
|
+
this.set({ resolution });
|
|
24
|
+
}
|
|
25
|
+
set envMap(envMap) {
|
|
26
|
+
this.set({ envMap });
|
|
27
|
+
}
|
|
28
|
+
initialize() {
|
|
29
|
+
super.initialize();
|
|
30
|
+
this.set({ resolution: 256, frames: Infinity, makeDefault: false, manual: false });
|
|
31
|
+
}
|
|
32
|
+
ngOnInit() {
|
|
33
|
+
this.hold(this.cameraRef.$, (camera) => {
|
|
34
|
+
camera.updateProjectionMatrix();
|
|
35
|
+
this.setDefaultCamera();
|
|
36
|
+
this.updateProjectionMatrix();
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
setDefaultCamera() {
|
|
40
|
+
this.effect(combineLatest([this.cameraRef.$, this.select('makeDefault')]), ([camera, makeDefault]) => {
|
|
41
|
+
if (makeDefault) {
|
|
42
|
+
const { camera: oldCamera } = this.store.get();
|
|
43
|
+
this.store.set({ camera });
|
|
44
|
+
return () => {
|
|
45
|
+
this.store.set({ camera: oldCamera });
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
updateProjectionMatrix() {
|
|
51
|
+
this.effect(combineLatest([this.cameraRef.$, this.select('manual')]), ([camera, manual]) => {
|
|
52
|
+
if (!manual && camera)
|
|
53
|
+
camera.updateProjectionMatrix();
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgtsCamera, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
|
57
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0", type: NgtsCamera, inputs: { makeDefault: "makeDefault", manual: "manual", frames: "frames", resolution: "resolution", envMap: "envMap", cameraRef: "cameraRef" }, usesInheritance: true, ngImport: i0 }); }
|
|
58
|
+
}
|
|
59
|
+
export { NgtsCamera };
|
|
60
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgtsCamera, decorators: [{
|
|
61
|
+
type: Directive
|
|
62
|
+
}], propDecorators: { makeDefault: [{
|
|
63
|
+
type: Input
|
|
64
|
+
}], manual: [{
|
|
65
|
+
type: Input
|
|
66
|
+
}], frames: [{
|
|
67
|
+
type: Input
|
|
68
|
+
}], resolution: [{
|
|
69
|
+
type: Input
|
|
70
|
+
}], envMap: [{
|
|
71
|
+
type: Input
|
|
72
|
+
}], cameraRef: [{
|
|
73
|
+
type: Input
|
|
74
|
+
}] } });
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FtZXJhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXRocmVlLXNvYmEvY2FtZXJhcy9zcmMvbGliL2NhbWVyYS9jYW1lcmEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxZQUFZLEVBQWEsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBRTFDLE1BQ3NCLFVBQXNDLFNBQVEsVUFBVTtJQUQ5RTs7UUFzQmEsY0FBUyxHQUFHLFlBQVksRUFBVyxDQUFDO1FBRTFCLFVBQUssR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbkMsV0FBTSxHQUFHLGFBQWEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQWdDdkg7SUF2REcsSUFBYSxXQUFXLENBQUMsV0FBb0I7UUFDekMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQWEsTUFBTSxDQUFDLE1BQWU7UUFDL0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVELElBQWEsTUFBTSxDQUFDLE1BQWM7UUFDOUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVELElBQWEsVUFBVSxDQUFDLFVBQWtCO1FBQ3RDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxJQUFhLE1BQU0sQ0FBQyxNQUFxQjtRQUNyQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBT1EsVUFBVTtRQUNmLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDdkYsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDbkMsTUFBTSxDQUFDLHNCQUFzQixFQUFFLENBQUM7WUFDaEMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFDbEMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU8sZ0JBQWdCO1FBQ3BCLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsRUFBRSxFQUFFO1lBQ2pHLElBQUksV0FBVyxFQUFFO2dCQUNiLE1BQU0sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQztnQkFDL0MsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO2dCQUMzQixPQUFPLEdBQUcsRUFBRTtvQkFDUixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO2dCQUMxQyxDQUFDLENBQUM7YUFDTDtRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLHNCQUFzQjtRQUMxQixJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLEVBQUUsRUFBRTtZQUN2RixJQUFJLENBQUMsTUFBTSxJQUFJLE1BQU07Z0JBQUUsTUFBTSxDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFDM0QsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOzhHQXZEaUIsVUFBVTtrR0FBVixVQUFVOztTQUFWLFVBQVU7MkZBQVYsVUFBVTtrQkFEL0IsU0FBUzs4QkFFTyxXQUFXO3NCQUF2QixLQUFLO2dCQUlPLE1BQU07c0JBQWxCLEtBQUs7Z0JBSU8sTUFBTTtzQkFBbEIsS0FBSztnQkFJTyxVQUFVO3NCQUF0QixLQUFLO2dCQUlPLE1BQU07c0JBQWxCLEtBQUs7Z0JBSUcsU0FBUztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgaW5qZWN0LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpbmplY3ROZ3RSZWYsIE5ndENhbWVyYSwgTmd0UnhTdG9yZSwgTmd0U3RvcmUgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IGluamVjdE5ndHNGQk8gfSBmcm9tICdhbmd1bGFyLXRocmVlLXNvYmEvbWlzYyc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBtYXAgfSBmcm9tICdyeGpzJztcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTmd0c0NhbWVyYTxUQ2FtZXJhIGV4dGVuZHMgTmd0Q2FtZXJhPiBleHRlbmRzIE5ndFJ4U3RvcmUgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBJbnB1dCgpIHNldCBtYWtlRGVmYXVsdChtYWtlRGVmYXVsdDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnNldCh7IG1ha2VEZWZhdWx0IH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBtYW51YWwobWFudWFsOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgbWFudWFsIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBmcmFtZXMoZnJhbWVzOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBmcmFtZXMgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IHJlc29sdXRpb24ocmVzb2x1dGlvbjogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgcmVzb2x1dGlvbiB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgZW52TWFwKGVudk1hcDogVEhSRUUuVGV4dHVyZSkge1xuICAgICAgICB0aGlzLnNldCh7IGVudk1hcCB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBjYW1lcmFSZWYgPSBpbmplY3ROZ3RSZWY8VENhbWVyYT4oKTtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBzdG9yZSA9IGluamVjdChOZ3RTdG9yZSk7XG4gICAgcmVhZG9ubHkgZmJvUmVmID0gaW5qZWN0Tmd0c0ZCTygoKSA9PiB0aGlzLnNlbGVjdCgncmVzb2x1dGlvbicpLnBpcGUobWFwKChyZXNvbHV0aW9uKSA9PiAoeyB3aWR0aDogcmVzb2x1dGlvbiB9KSkpKTtcblxuICAgIG92ZXJyaWRlIGluaXRpYWxpemUoKSB7XG4gICAgICAgIHN1cGVyLmluaXRpYWxpemUoKTtcbiAgICAgICAgdGhpcy5zZXQoeyByZXNvbHV0aW9uOiAyNTYsIGZyYW1lczogSW5maW5pdHksIG1ha2VEZWZhdWx0OiBmYWxzZSwgbWFudWFsOiBmYWxzZSB9KTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5ob2xkKHRoaXMuY2FtZXJhUmVmLiQsIChjYW1lcmEpID0+IHtcbiAgICAgICAgICAgIGNhbWVyYS51cGRhdGVQcm9qZWN0aW9uTWF0cml4KCk7XG4gICAgICAgICAgICB0aGlzLnNldERlZmF1bHRDYW1lcmEoKTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlUHJvamVjdGlvbk1hdHJpeCgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldERlZmF1bHRDYW1lcmEoKSB7XG4gICAgICAgIHRoaXMuZWZmZWN0KGNvbWJpbmVMYXRlc3QoW3RoaXMuY2FtZXJhUmVmLiQsIHRoaXMuc2VsZWN0KCdtYWtlRGVmYXVsdCcpXSksIChbY2FtZXJhLCBtYWtlRGVmYXVsdF0pID0+IHtcbiAgICAgICAgICAgIGlmIChtYWtlRGVmYXVsdCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgY2FtZXJhOiBvbGRDYW1lcmEgfSA9IHRoaXMuc3RvcmUuZ2V0KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdG9yZS5zZXQoeyBjYW1lcmEgfSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdG9yZS5zZXQoeyBjYW1lcmE6IG9sZENhbWVyYSB9KTtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVByb2plY3Rpb25NYXRyaXgoKSB7XG4gICAgICAgIHRoaXMuZWZmZWN0KGNvbWJpbmVMYXRlc3QoW3RoaXMuY2FtZXJhUmVmLiQsIHRoaXMuc2VsZWN0KCdtYW51YWwnKV0pLCAoW2NhbWVyYSwgbWFudWFsXSkgPT4ge1xuICAgICAgICAgICAgaWYgKCFtYW51YWwgJiYgY2FtZXJhKSBjYW1lcmEudXBkYXRlUHJvamVjdGlvbk1hdHJpeCgpO1xuICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import { NgIf, NgTemplateOutlet } from '@angular/common';
|
|
2
|
+
import { Component, ContentChild, CUSTOM_ELEMENTS_SCHEMA, ElementRef, inject, Input, ViewChild } from '@angular/core';
|
|
3
|
+
import { extend, injectBeforeRender, injectNgtRef, NgtArgs, NgtRxStore, NgtStore } from 'angular-three';
|
|
4
|
+
import { combineLatest, map } from 'rxjs';
|
|
5
|
+
import * as THREE from 'three';
|
|
6
|
+
import { CubeCamera, Group } from 'three';
|
|
7
|
+
import { NgtsCameraContent } from '../camera/camera-content';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
extend({ Group, CubeCamera });
|
|
10
|
+
class NgtsCubeCamera extends NgtRxStore {
|
|
11
|
+
/** Number of frames to render, Infinity */
|
|
12
|
+
set frames(frames) {
|
|
13
|
+
this.set({ frames });
|
|
14
|
+
}
|
|
15
|
+
/** Resolution of the FBO, 256 */
|
|
16
|
+
set resolution(resolution) {
|
|
17
|
+
this.set({ resolution });
|
|
18
|
+
}
|
|
19
|
+
/** Camera near, 0.1 */
|
|
20
|
+
set near(near) {
|
|
21
|
+
this.set({ near });
|
|
22
|
+
}
|
|
23
|
+
/** Camera far, 1000 */
|
|
24
|
+
set far(far) {
|
|
25
|
+
this.set({ far });
|
|
26
|
+
}
|
|
27
|
+
/** Custom environment map that is temporarily set as the scenes background */
|
|
28
|
+
set envMap(envMap) {
|
|
29
|
+
this.set({ envMap });
|
|
30
|
+
}
|
|
31
|
+
/** Custom fog that is temporarily set as the scenes fog */
|
|
32
|
+
set fog(fog) {
|
|
33
|
+
this.set({ fog });
|
|
34
|
+
}
|
|
35
|
+
initialize() {
|
|
36
|
+
super.initialize();
|
|
37
|
+
this.set({
|
|
38
|
+
frames: Infinity,
|
|
39
|
+
resolution: 256,
|
|
40
|
+
near: 0.1,
|
|
41
|
+
far: 1000,
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
constructor() {
|
|
45
|
+
super();
|
|
46
|
+
this.cameraRef = injectNgtRef();
|
|
47
|
+
this.store = inject(NgtStore);
|
|
48
|
+
this.connect('fbo', this.select('resolution').pipe(map((resolution) => {
|
|
49
|
+
const fbo = new THREE.WebGLCubeRenderTarget(resolution);
|
|
50
|
+
fbo.texture.encoding = this.store.get('gl').outputEncoding;
|
|
51
|
+
fbo.texture.type = THREE.HalfFloatType;
|
|
52
|
+
return fbo;
|
|
53
|
+
})));
|
|
54
|
+
this.connect('cameraArgs', combineLatest([this.select('near'), this.select('far'), this.select('fbo')]));
|
|
55
|
+
let count = 0;
|
|
56
|
+
let originalFog;
|
|
57
|
+
let originalBackground;
|
|
58
|
+
injectBeforeRender(({ scene, gl }) => {
|
|
59
|
+
const { frames, envMap, fog } = this.get();
|
|
60
|
+
if (envMap &&
|
|
61
|
+
this.cameraRef.nativeElement &&
|
|
62
|
+
this.groupRef.nativeElement &&
|
|
63
|
+
(frames === Infinity || count < frames)) {
|
|
64
|
+
this.groupRef.nativeElement.visible = false;
|
|
65
|
+
originalFog = scene.fog;
|
|
66
|
+
originalBackground = scene.background;
|
|
67
|
+
scene.background = envMap || originalBackground;
|
|
68
|
+
scene.fog = fog || originalFog;
|
|
69
|
+
this.cameraRef.nativeElement.update(gl, scene);
|
|
70
|
+
scene.fog = originalFog;
|
|
71
|
+
scene.background = originalBackground;
|
|
72
|
+
this.groupRef.nativeElement.visible = true;
|
|
73
|
+
count++;
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgtsCubeCamera, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
78
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: NgtsCubeCamera, isStandalone: true, selector: "ngts-cube-camera", inputs: { frames: "frames", resolution: "resolution", near: "near", far: "far", envMap: "envMap", fog: "fog" }, queries: [{ propertyName: "cameraContent", first: true, predicate: NgtsCameraContent, descendants: true }], viewQueries: [{ propertyName: "groupRef", first: true, predicate: ["group"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: `
|
|
79
|
+
<ngt-group ngtCompound>
|
|
80
|
+
<ngt-cube-camera [ref]="cameraRef" *args="get('cameraArgs')" />
|
|
81
|
+
<ngt-group #group>
|
|
82
|
+
<ng-container
|
|
83
|
+
*ngIf="cameraContent && cameraContent.ngtsCameraContent && get('fbo')"
|
|
84
|
+
[ngTemplateOutlet]="cameraContent.template"
|
|
85
|
+
[ngTemplateOutletContext]="{ fbo: get('fbo').texture, group }"
|
|
86
|
+
/>
|
|
87
|
+
</ngt-group>
|
|
88
|
+
</ngt-group>
|
|
89
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgtArgs, selector: "[args]", inputs: ["args"] }] }); }
|
|
90
|
+
}
|
|
91
|
+
export { NgtsCubeCamera };
|
|
92
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgtsCubeCamera, decorators: [{
|
|
93
|
+
type: Component,
|
|
94
|
+
args: [{
|
|
95
|
+
selector: 'ngts-cube-camera',
|
|
96
|
+
standalone: true,
|
|
97
|
+
template: `
|
|
98
|
+
<ngt-group ngtCompound>
|
|
99
|
+
<ngt-cube-camera [ref]="cameraRef" *args="get('cameraArgs')" />
|
|
100
|
+
<ngt-group #group>
|
|
101
|
+
<ng-container
|
|
102
|
+
*ngIf="cameraContent && cameraContent.ngtsCameraContent && get('fbo')"
|
|
103
|
+
[ngTemplateOutlet]="cameraContent.template"
|
|
104
|
+
[ngTemplateOutletContext]="{ fbo: get('fbo').texture, group }"
|
|
105
|
+
/>
|
|
106
|
+
</ngt-group>
|
|
107
|
+
</ngt-group>
|
|
108
|
+
`,
|
|
109
|
+
imports: [NgIf, NgTemplateOutlet, NgtArgs],
|
|
110
|
+
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
111
|
+
}]
|
|
112
|
+
}], ctorParameters: function () { return []; }, propDecorators: { groupRef: [{
|
|
113
|
+
type: ViewChild,
|
|
114
|
+
args: ['group', { static: true }]
|
|
115
|
+
}], cameraContent: [{
|
|
116
|
+
type: ContentChild,
|
|
117
|
+
args: [NgtsCameraContent]
|
|
118
|
+
}], frames: [{
|
|
119
|
+
type: Input
|
|
120
|
+
}], resolution: [{
|
|
121
|
+
type: Input
|
|
122
|
+
}], near: [{
|
|
123
|
+
type: Input
|
|
124
|
+
}], far: [{
|
|
125
|
+
type: Input
|
|
126
|
+
}], envMap: [{
|
|
127
|
+
type: Input
|
|
128
|
+
}], fog: [{
|
|
129
|
+
type: Input
|
|
130
|
+
}] } });
|
|
131
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3ViZS1jYW1lcmEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdGhyZWUtc29iYS9jYW1lcmFzL3NyYy9saWIvY3ViZS1jYW1lcmEvY3ViZS1jYW1lcmEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLHNCQUFzQixFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0SCxPQUFPLEVBQUUsTUFBTSxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RyxPQUFPLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEtBQUssS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMvQixPQUFPLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUMxQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUFFN0QsTUFBTSxDQUFDLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7QUFFOUIsTUFrQmEsY0FBZSxTQUFRLFVBQVU7SUFNMUMsMkNBQTJDO0lBQzNDLElBQWEsTUFBTSxDQUFDLE1BQWM7UUFDOUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUNELGlDQUFpQztJQUNqQyxJQUFhLFVBQVUsQ0FBQyxVQUFrQjtRQUN0QyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBQ0QsdUJBQXVCO0lBQ3ZCLElBQWEsSUFBSSxDQUFDLElBQVk7UUFDMUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUNELHVCQUF1QjtJQUN2QixJQUFhLEdBQUcsQ0FBQyxHQUFXO1FBQ3hCLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ3RCLENBQUM7SUFDRCw4RUFBOEU7SUFDOUUsSUFBYSxNQUFNLENBQUMsTUFBcUI7UUFDckMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUNELDJEQUEyRDtJQUMzRCxJQUFhLEdBQUcsQ0FBQyxHQUE4QjtRQUMzQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUN0QixDQUFDO0lBSVEsVUFBVTtRQUNmLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsR0FBRyxDQUFDO1lBQ0wsTUFBTSxFQUFFLFFBQVE7WUFDaEIsVUFBVSxFQUFFLEdBQUc7WUFDZixJQUFJLEVBQUUsR0FBRztZQUNULEdBQUcsRUFBRSxJQUFJO1NBQ1osQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVEO1FBQ0ksS0FBSyxFQUFFLENBQUM7UUF4Q0gsY0FBUyxHQUFHLFlBQVksRUFBb0IsQ0FBQztRQTJCckMsVUFBSyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQWN0QyxJQUFJLENBQUMsT0FBTyxDQUNSLEtBQUssRUFDTCxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FDMUIsR0FBRyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUU7WUFDZixNQUFNLEdBQUcsR0FBRyxJQUFJLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUN4RCxHQUFHLENBQUMsT0FBTyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxjQUFjLENBQUM7WUFDM0QsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQztZQUN2QyxPQUFPLEdBQUcsQ0FBQztRQUNmLENBQUMsQ0FBQyxDQUNMLENBQ0osQ0FBQztRQUNGLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRXpHLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQztRQUNkLElBQUksV0FBK0IsQ0FBQztRQUNwQyxJQUFJLGtCQUE2QyxDQUFDO1FBQ2xELGtCQUFrQixDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRTtZQUNqQyxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDM0MsSUFDSSxNQUFNO2dCQUNOLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYTtnQkFDNUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhO2dCQUMzQixDQUFDLE1BQU0sS0FBSyxRQUFRLElBQUksS0FBSyxHQUFHLE1BQU0sQ0FBQyxFQUN6QztnQkFDRSxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO2dCQUM1QyxXQUFXLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQztnQkFDeEIsa0JBQWtCLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQztnQkFDdEMsS0FBSyxDQUFDLFVBQVUsR0FBRyxNQUFNLElBQUksa0JBQWtCLENBQUM7Z0JBQ2hELEtBQUssQ0FBQyxHQUFHLEdBQUcsR0FBRyxJQUFJLFdBQVcsQ0FBQztnQkFDL0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFDL0MsS0FBSyxDQUFDLEdBQUcsR0FBRyxXQUFXLENBQUM7Z0JBQ3hCLEtBQUssQ0FBQyxVQUFVLEdBQUcsa0JBQWtCLENBQUM7Z0JBQ3RDLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7Z0JBQzNDLEtBQUssRUFBRSxDQUFDO2FBQ1g7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7OEdBakZRLGNBQWM7a0dBQWQsY0FBYyx1T0FFVCxpQkFBaUIsd0xBakJyQjs7Ozs7Ozs7Ozs7S0FXVCw0REFDUyxJQUFJLDZGQUFFLGdCQUFnQixvSkFBRSxPQUFPOztTQUdoQyxjQUFjOzJGQUFkLGNBQWM7a0JBbEIxQixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUU7Ozs7Ozs7Ozs7O0tBV1Q7b0JBQ0QsT0FBTyxFQUFFLENBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE9BQU8sQ0FBQztvQkFDMUMsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7aUJBQ3BDOzBFQUV5QyxRQUFRO3NCQUE3QyxTQUFTO3VCQUFDLE9BQU8sRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ0gsYUFBYTtzQkFBN0MsWUFBWTt1QkFBQyxpQkFBaUI7Z0JBS2xCLE1BQU07c0JBQWxCLEtBQUs7Z0JBSU8sVUFBVTtzQkFBdEIsS0FBSztnQkFJTyxJQUFJO3NCQUFoQixLQUFLO2dCQUlPLEdBQUc7c0JBQWYsS0FBSztnQkFJTyxNQUFNO3NCQUFsQixLQUFLO2dCQUlPLEdBQUc7c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nSWYsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsIENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIEVsZW1lbnRSZWYsIGluamVjdCwgSW5wdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZXh0ZW5kLCBpbmplY3RCZWZvcmVSZW5kZXIsIGluamVjdE5ndFJlZiwgTmd0QXJncywgTmd0UnhTdG9yZSwgTmd0U3RvcmUgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIG1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0ICogYXMgVEhSRUUgZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgQ3ViZUNhbWVyYSwgR3JvdXAgfSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgeyBOZ3RzQ2FtZXJhQ29udGVudCB9IGZyb20gJy4uL2NhbWVyYS9jYW1lcmEtY29udGVudCc7XG5cbmV4dGVuZCh7IEdyb3VwLCBDdWJlQ2FtZXJhIH0pO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25ndHMtY3ViZS1jYW1lcmEnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPG5ndC1ncm91cCBuZ3RDb21wb3VuZD5cbiAgICAgICAgICAgIDxuZ3QtY3ViZS1jYW1lcmEgW3JlZl09XCJjYW1lcmFSZWZcIiAqYXJncz1cImdldCgnY2FtZXJhQXJncycpXCIgLz5cbiAgICAgICAgICAgIDxuZ3QtZ3JvdXAgI2dyb3VwPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjYW1lcmFDb250ZW50ICYmIGNhbWVyYUNvbnRlbnQubmd0c0NhbWVyYUNvbnRlbnQgJiYgZ2V0KCdmYm8nKVwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNhbWVyYUNvbnRlbnQudGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBmYm86IGdldCgnZmJvJykudGV4dHVyZSwgZ3JvdXAgfVwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvbmd0LWdyb3VwPlxuICAgICAgICA8L25ndC1ncm91cD5cbiAgICBgLFxuICAgIGltcG9ydHM6IFtOZ0lmLCBOZ1RlbXBsYXRlT3V0bGV0LCBOZ3RBcmdzXSxcbiAgICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHNDdWJlQ2FtZXJhIGV4dGVuZHMgTmd0UnhTdG9yZSB7XG4gICAgQFZpZXdDaGlsZCgnZ3JvdXAnLCB7IHN0YXRpYzogdHJ1ZSB9KSBncm91cFJlZiE6IEVsZW1lbnRSZWY8VEhSRUUuR3JvdXA+O1xuICAgIEBDb250ZW50Q2hpbGQoTmd0c0NhbWVyYUNvbnRlbnQpIGNhbWVyYUNvbnRlbnQ/OiBOZ3RzQ2FtZXJhQ29udGVudDtcblxuICAgIHJlYWRvbmx5IGNhbWVyYVJlZiA9IGluamVjdE5ndFJlZjxUSFJFRS5DdWJlQ2FtZXJhPigpO1xuXG4gICAgLyoqIE51bWJlciBvZiBmcmFtZXMgdG8gcmVuZGVyLCBJbmZpbml0eSAqL1xuICAgIEBJbnB1dCgpIHNldCBmcmFtZXMoZnJhbWVzOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBmcmFtZXMgfSk7XG4gICAgfVxuICAgIC8qKiBSZXNvbHV0aW9uIG9mIHRoZSBGQk8sIDI1NiAqL1xuICAgIEBJbnB1dCgpIHNldCByZXNvbHV0aW9uKHJlc29sdXRpb246IG51bWJlcikge1xuICAgICAgICB0aGlzLnNldCh7IHJlc29sdXRpb24gfSk7XG4gICAgfVxuICAgIC8qKiBDYW1lcmEgbmVhciwgMC4xICovXG4gICAgQElucHV0KCkgc2V0IG5lYXIobmVhcjogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgbmVhciB9KTtcbiAgICB9XG4gICAgLyoqIENhbWVyYSBmYXIsIDEwMDAgKi9cbiAgICBASW5wdXQoKSBzZXQgZmFyKGZhcjogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgZmFyIH0pO1xuICAgIH1cbiAgICAvKiogQ3VzdG9tIGVudmlyb25tZW50IG1hcCB0aGF0IGlzIHRlbXBvcmFyaWx5IHNldCBhcyB0aGUgc2NlbmVzIGJhY2tncm91bmQgKi9cbiAgICBASW5wdXQoKSBzZXQgZW52TWFwKGVudk1hcDogVEhSRUUuVGV4dHVyZSkge1xuICAgICAgICB0aGlzLnNldCh7IGVudk1hcCB9KTtcbiAgICB9XG4gICAgLyoqIEN1c3RvbSBmb2cgdGhhdCBpcyB0ZW1wb3JhcmlseSBzZXQgYXMgdGhlIHNjZW5lcyBmb2cgKi9cbiAgICBASW5wdXQoKSBzZXQgZm9nKGZvZzogVEhSRUUuRm9nIHwgVEhSRUUuRm9nRXhwMikge1xuICAgICAgICB0aGlzLnNldCh7IGZvZyB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IHN0b3JlID0gaW5qZWN0KE5ndFN0b3JlKTtcblxuICAgIG92ZXJyaWRlIGluaXRpYWxpemUoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLmluaXRpYWxpemUoKTtcbiAgICAgICAgdGhpcy5zZXQoe1xuICAgICAgICAgICAgZnJhbWVzOiBJbmZpbml0eSxcbiAgICAgICAgICAgIHJlc29sdXRpb246IDI1NixcbiAgICAgICAgICAgIG5lYXI6IDAuMSxcbiAgICAgICAgICAgIGZhcjogMTAwMCxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuY29ubmVjdChcbiAgICAgICAgICAgICdmYm8nLFxuICAgICAgICAgICAgdGhpcy5zZWxlY3QoJ3Jlc29sdXRpb24nKS5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCgocmVzb2x1dGlvbikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBmYm8gPSBuZXcgVEhSRUUuV2ViR0xDdWJlUmVuZGVyVGFyZ2V0KHJlc29sdXRpb24pO1xuICAgICAgICAgICAgICAgICAgICBmYm8udGV4dHVyZS5lbmNvZGluZyA9IHRoaXMuc3RvcmUuZ2V0KCdnbCcpLm91dHB1dEVuY29kaW5nO1xuICAgICAgICAgICAgICAgICAgICBmYm8udGV4dHVyZS50eXBlID0gVEhSRUUuSGFsZkZsb2F0VHlwZTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZibztcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgICAgICB0aGlzLmNvbm5lY3QoJ2NhbWVyYUFyZ3MnLCBjb21iaW5lTGF0ZXN0KFt0aGlzLnNlbGVjdCgnbmVhcicpLCB0aGlzLnNlbGVjdCgnZmFyJyksIHRoaXMuc2VsZWN0KCdmYm8nKV0pKTtcblxuICAgICAgICBsZXQgY291bnQgPSAwO1xuICAgICAgICBsZXQgb3JpZ2luYWxGb2c6IFRIUkVFLlNjZW5lWydmb2cnXTtcbiAgICAgICAgbGV0IG9yaWdpbmFsQmFja2dyb3VuZDogVEhSRUUuU2NlbmVbJ2JhY2tncm91bmQnXTtcbiAgICAgICAgaW5qZWN0QmVmb3JlUmVuZGVyKCh7IHNjZW5lLCBnbCB9KSA9PiB7XG4gICAgICAgICAgICBjb25zdCB7IGZyYW1lcywgZW52TWFwLCBmb2cgfSA9IHRoaXMuZ2V0KCk7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgZW52TWFwICYmXG4gICAgICAgICAgICAgICAgdGhpcy5jYW1lcmFSZWYubmF0aXZlRWxlbWVudCAmJlxuICAgICAgICAgICAgICAgIHRoaXMuZ3JvdXBSZWYubmF0aXZlRWxlbWVudCAmJlxuICAgICAgICAgICAgICAgIChmcmFtZXMgPT09IEluZmluaXR5IHx8IGNvdW50IDwgZnJhbWVzKVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5ncm91cFJlZi5uYXRpdmVFbGVtZW50LnZpc2libGUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBvcmlnaW5hbEZvZyA9IHNjZW5lLmZvZztcbiAgICAgICAgICAgICAgICBvcmlnaW5hbEJhY2tncm91bmQgPSBzY2VuZS5iYWNrZ3JvdW5kO1xuICAgICAgICAgICAgICAgIHNjZW5lLmJhY2tncm91bmQgPSBlbnZNYXAgfHwgb3JpZ2luYWxCYWNrZ3JvdW5kO1xuICAgICAgICAgICAgICAgIHNjZW5lLmZvZyA9IGZvZyB8fCBvcmlnaW5hbEZvZztcbiAgICAgICAgICAgICAgICB0aGlzLmNhbWVyYVJlZi5uYXRpdmVFbGVtZW50LnVwZGF0ZShnbCwgc2NlbmUpO1xuICAgICAgICAgICAgICAgIHNjZW5lLmZvZyA9IG9yaWdpbmFsRm9nO1xuICAgICAgICAgICAgICAgIHNjZW5lLmJhY2tncm91bmQgPSBvcmlnaW5hbEJhY2tncm91bmQ7XG4gICAgICAgICAgICAgICAgdGhpcy5ncm91cFJlZi5uYXRpdmVFbGVtZW50LnZpc2libGUgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGNvdW50Kys7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { NgIf, NgTemplateOutlet } from '@angular/common';
|
|
2
|
+
import { Component, ContentChild, CUSTOM_ELEMENTS_SCHEMA, Input } from '@angular/core';
|
|
3
|
+
import { extend, NgtPush } from 'angular-three';
|
|
4
|
+
import { combineLatest, map } from 'rxjs';
|
|
5
|
+
import { Group, OrthographicCamera } from 'three';
|
|
6
|
+
import { NgtsCamera } from '../camera/camera';
|
|
7
|
+
import { NgtsCameraContent } from '../camera/camera-content';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
extend({ OrthographicCamera, Group });
|
|
10
|
+
class NgtsOrthographicCamera extends NgtsCamera {
|
|
11
|
+
constructor() {
|
|
12
|
+
super(...arguments);
|
|
13
|
+
this.left$ = combineLatest([this.select('left'), this.store.select('size')]).pipe(map(([left, size]) => left || size.width / -2));
|
|
14
|
+
this.right$ = combineLatest([this.select('right'), this.store.select('size')]).pipe(map(([right, size]) => right || size.width / 2));
|
|
15
|
+
this.top$ = combineLatest([this.select('top'), this.store.select('size')]).pipe(map(([top, size]) => top || size.height / 2));
|
|
16
|
+
this.bottom$ = combineLatest([this.select('bottom'), this.store.select('size')]).pipe(map(([bottom, size]) => bottom || size.height / -2));
|
|
17
|
+
}
|
|
18
|
+
set left(left) {
|
|
19
|
+
this.set({ left });
|
|
20
|
+
}
|
|
21
|
+
set right(right) {
|
|
22
|
+
this.set({ right });
|
|
23
|
+
}
|
|
24
|
+
set top(top) {
|
|
25
|
+
this.set({ top });
|
|
26
|
+
}
|
|
27
|
+
set bottom(bottom) {
|
|
28
|
+
this.set({ bottom });
|
|
29
|
+
}
|
|
30
|
+
initialize() {
|
|
31
|
+
super.initialize();
|
|
32
|
+
this.set({ left: 0, right: 0, top: 0, bottom: 0 });
|
|
33
|
+
}
|
|
34
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgtsOrthographicCamera, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
35
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: NgtsOrthographicCamera, isStandalone: true, selector: "ngts-orthographic-camera", inputs: { left: "left", right: "right", top: "top", bottom: "bottom" }, queries: [{ propertyName: "cameraContent", first: true, predicate: NgtsCameraContent, descendants: true }], usesInheritance: true, ngImport: i0, template: `
|
|
36
|
+
<ngt-orthographic-camera
|
|
37
|
+
ngtCompound
|
|
38
|
+
[ref]="cameraRef"
|
|
39
|
+
[left]="left$ | ngtPush"
|
|
40
|
+
[right]="right$ | ngtPush"
|
|
41
|
+
[top]="top$ | ngtPush"
|
|
42
|
+
[bottom]="bottom$ | ngtPush"
|
|
43
|
+
>
|
|
44
|
+
<ng-container
|
|
45
|
+
*ngIf="cameraContent && !cameraContent.ngtsCameraContent"
|
|
46
|
+
[ngTemplateOutlet]="cameraContent.template"
|
|
47
|
+
/>
|
|
48
|
+
</ngt-orthographic-camera>
|
|
49
|
+
<ngt-group #group *ngIf="cameraContent && cameraContent.ngtsCameraContent">
|
|
50
|
+
<ng-container *ngTemplateOutlet="cameraContent.template; context: { fbo: fboRef.nativeElement, group }" />
|
|
51
|
+
</ngt-group>
|
|
52
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: NgtPush, name: "ngtPush" }] }); }
|
|
53
|
+
}
|
|
54
|
+
export { NgtsOrthographicCamera };
|
|
55
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgtsOrthographicCamera, decorators: [{
|
|
56
|
+
type: Component,
|
|
57
|
+
args: [{
|
|
58
|
+
selector: 'ngts-orthographic-camera',
|
|
59
|
+
standalone: true,
|
|
60
|
+
template: `
|
|
61
|
+
<ngt-orthographic-camera
|
|
62
|
+
ngtCompound
|
|
63
|
+
[ref]="cameraRef"
|
|
64
|
+
[left]="left$ | ngtPush"
|
|
65
|
+
[right]="right$ | ngtPush"
|
|
66
|
+
[top]="top$ | ngtPush"
|
|
67
|
+
[bottom]="bottom$ | ngtPush"
|
|
68
|
+
>
|
|
69
|
+
<ng-container
|
|
70
|
+
*ngIf="cameraContent && !cameraContent.ngtsCameraContent"
|
|
71
|
+
[ngTemplateOutlet]="cameraContent.template"
|
|
72
|
+
/>
|
|
73
|
+
</ngt-orthographic-camera>
|
|
74
|
+
<ngt-group #group *ngIf="cameraContent && cameraContent.ngtsCameraContent">
|
|
75
|
+
<ng-container *ngTemplateOutlet="cameraContent.template; context: { fbo: fboRef.nativeElement, group }" />
|
|
76
|
+
</ngt-group>
|
|
77
|
+
`,
|
|
78
|
+
imports: [NgIf, NgTemplateOutlet, NgtPush],
|
|
79
|
+
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
80
|
+
}]
|
|
81
|
+
}], propDecorators: { cameraContent: [{
|
|
82
|
+
type: ContentChild,
|
|
83
|
+
args: [NgtsCameraContent]
|
|
84
|
+
}], left: [{
|
|
85
|
+
type: Input
|
|
86
|
+
}], right: [{
|
|
87
|
+
type: Input
|
|
88
|
+
}], top: [{
|
|
89
|
+
type: Input
|
|
90
|
+
}], bottom: [{
|
|
91
|
+
type: Input
|
|
92
|
+
}] } });
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3J0aG9ncmFwaGljLWNhbWVyYS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci10aHJlZS1zb2JhL2NhbWVyYXMvc3JjL2xpYi9vcnRob2dyYXBoaWMtY2FtZXJhL29ydGhvZ3JhcGhpYy1jYW1lcmEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLHNCQUFzQixFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RixPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRCxPQUFPLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEVBQUUsS0FBSyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUFFN0QsTUFBTSxDQUFDLEVBQUUsa0JBQWtCLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztBQUV0QyxNQXdCYSxzQkFBdUIsU0FBUSxVQUFvQztJQXhCaEY7O1FBZ0RhLFVBQUssR0FBRyxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQ2pGLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUNqRCxDQUFDO1FBRU8sV0FBTSxHQUFHLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDbkYsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUNsRCxDQUFDO1FBRU8sU0FBSSxHQUFHLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDL0UsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUMvQyxDQUFDO1FBRU8sWUFBTyxHQUFHLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDckYsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQ3RELENBQUM7S0FDTDtJQXBDRyxJQUFhLElBQUksQ0FBQyxJQUFZO1FBQzFCLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxJQUFhLEtBQUssQ0FBQyxLQUFhO1FBQzVCLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFhLEdBQUcsQ0FBQyxHQUFXO1FBQ3hCLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxJQUFhLE1BQU0sQ0FBQyxNQUFjO1FBQzlCLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFUSxVQUFVO1FBQ2YsS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN2RCxDQUFDOzhHQXRCUSxzQkFBc0I7a0dBQXRCLHNCQUFzQix1TUFDakIsaUJBQWlCLHVFQXRCckI7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBaUJULDREQUNTLElBQUksNkZBQUUsZ0JBQWdCLCtJQUFFLE9BQU87O1NBR2hDLHNCQUFzQjsyRkFBdEIsc0JBQXNCO2tCQXhCbEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsMEJBQTBCO29CQUNwQyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7OztLQWlCVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsT0FBTyxDQUFDO29CQUMxQyxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztpQkFDcEM7OEJBRW9DLGFBQWE7c0JBQTdDLFlBQVk7dUJBQUMsaUJBQWlCO2dCQUVsQixJQUFJO3NCQUFoQixLQUFLO2dCQUlPLEtBQUs7c0JBQWpCLEtBQUs7Z0JBSU8sR0FBRztzQkFBZixLQUFLO2dCQUlPLE1BQU07c0JBQWxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0lmLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgQ29udGVudENoaWxkLCBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZXh0ZW5kLCBOZ3RQdXNoIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBtYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEdyb3VwLCBPcnRob2dyYXBoaWNDYW1lcmEgfSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgeyBOZ3RzQ2FtZXJhIH0gZnJvbSAnLi4vY2FtZXJhL2NhbWVyYSc7XG5pbXBvcnQgeyBOZ3RzQ2FtZXJhQ29udGVudCB9IGZyb20gJy4uL2NhbWVyYS9jYW1lcmEtY29udGVudCc7XG5cbmV4dGVuZCh7IE9ydGhvZ3JhcGhpY0NhbWVyYSwgR3JvdXAgfSk7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmd0cy1vcnRob2dyYXBoaWMtY2FtZXJhJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDxuZ3Qtb3J0aG9ncmFwaGljLWNhbWVyYVxuICAgICAgICAgICAgbmd0Q29tcG91bmRcbiAgICAgICAgICAgIFtyZWZdPVwiY2FtZXJhUmVmXCJcbiAgICAgICAgICAgIFtsZWZ0XT1cImxlZnQkIHwgbmd0UHVzaFwiXG4gICAgICAgICAgICBbcmlnaHRdPVwicmlnaHQkIHwgbmd0UHVzaFwiXG4gICAgICAgICAgICBbdG9wXT1cInRvcCQgfCBuZ3RQdXNoXCJcbiAgICAgICAgICAgIFtib3R0b21dPVwiYm90dG9tJCB8IG5ndFB1c2hcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJjYW1lcmFDb250ZW50ICYmICFjYW1lcmFDb250ZW50Lm5ndHNDYW1lcmFDb250ZW50XCJcbiAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJjYW1lcmFDb250ZW50LnRlbXBsYXRlXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgIDwvbmd0LW9ydGhvZ3JhcGhpYy1jYW1lcmE+XG4gICAgICAgIDxuZ3QtZ3JvdXAgI2dyb3VwICpuZ0lmPVwiY2FtZXJhQ29udGVudCAmJiBjYW1lcmFDb250ZW50Lm5ndHNDYW1lcmFDb250ZW50XCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY2FtZXJhQ29udGVudC50ZW1wbGF0ZTsgY29udGV4dDogeyBmYm86IGZib1JlZi5uYXRpdmVFbGVtZW50LCBncm91cCB9XCIgLz5cbiAgICAgICAgPC9uZ3QtZ3JvdXA+XG4gICAgYCxcbiAgICBpbXBvcnRzOiBbTmdJZiwgTmdUZW1wbGF0ZU91dGxldCwgTmd0UHVzaF0sXG4gICAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RzT3J0aG9ncmFwaGljQ2FtZXJhIGV4dGVuZHMgTmd0c0NhbWVyYTxUSFJFRS5PcnRob2dyYXBoaWNDYW1lcmE+IHtcbiAgICBAQ29udGVudENoaWxkKE5ndHNDYW1lcmFDb250ZW50KSBjYW1lcmFDb250ZW50PzogTmd0c0NhbWVyYUNvbnRlbnQ7XG5cbiAgICBASW5wdXQoKSBzZXQgbGVmdChsZWZ0OiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBsZWZ0IH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCByaWdodChyaWdodDogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgcmlnaHQgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IHRvcCh0b3A6IG51bWJlcikge1xuICAgICAgICB0aGlzLnNldCh7IHRvcCB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgYm90dG9tKGJvdHRvbTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgYm90dG9tIH0pO1xuICAgIH1cblxuICAgIG92ZXJyaWRlIGluaXRpYWxpemUoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLmluaXRpYWxpemUoKTtcbiAgICAgICAgdGhpcy5zZXQoeyBsZWZ0OiAwLCByaWdodDogMCwgdG9wOiAwLCBib3R0b206IDAgfSk7XG4gICAgfVxuXG4gICAgcmVhZG9ubHkgbGVmdCQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLnNlbGVjdCgnbGVmdCcpLCB0aGlzLnN0b3JlLnNlbGVjdCgnc2l6ZScpXSkucGlwZShcbiAgICAgICAgbWFwKChbbGVmdCwgc2l6ZV0pID0+IGxlZnQgfHwgc2l6ZS53aWR0aCAvIC0yKVxuICAgICk7XG5cbiAgICByZWFkb25seSByaWdodCQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLnNlbGVjdCgncmlnaHQnKSwgdGhpcy5zdG9yZS5zZWxlY3QoJ3NpemUnKV0pLnBpcGUoXG4gICAgICAgIG1hcCgoW3JpZ2h0LCBzaXplXSkgPT4gcmlnaHQgfHwgc2l6ZS53aWR0aCAvIDIpXG4gICAgKTtcblxuICAgIHJlYWRvbmx5IHRvcCQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLnNlbGVjdCgndG9wJyksIHRoaXMuc3RvcmUuc2VsZWN0KCdzaXplJyldKS5waXBlKFxuICAgICAgICBtYXAoKFt0b3AsIHNpemVdKSA9PiB0b3AgfHwgc2l6ZS5oZWlnaHQgLyAyKVxuICAgICk7XG5cbiAgICByZWFkb25seSBib3R0b20kID0gY29tYmluZUxhdGVzdChbdGhpcy5zZWxlY3QoJ2JvdHRvbScpLCB0aGlzLnN0b3JlLnNlbGVjdCgnc2l6ZScpXSkucGlwZShcbiAgICAgICAgbWFwKChbYm90dG9tLCBzaXplXSkgPT4gYm90dG9tIHx8IHNpemUuaGVpZ2h0IC8gLTIpXG4gICAgKTtcbn1cbiJdfQ==
|
|
@@ -6,10 +6,9 @@ import { NgtsCamera } from '../camera/camera';
|
|
|
6
6
|
import { NgtsCameraContent } from '../camera/camera-content';
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
8
|
extend({ PerspectiveCamera, Group });
|
|
9
|
-
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
NgtsPerspectiveCamera.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.5", type: NgtsPerspectiveCamera, isStandalone: true, selector: "ngts-perspective-camera", queries: [{ propertyName: "cameraContent", first: true, predicate: NgtsCameraContent, descendants: true }], usesInheritance: true, ngImport: i0, template: `
|
|
9
|
+
class NgtsPerspectiveCamera extends NgtsCamera {
|
|
10
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgtsPerspectiveCamera, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
11
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: NgtsPerspectiveCamera, isStandalone: true, selector: "ngts-perspective-camera", queries: [{ propertyName: "cameraContent", first: true, predicate: NgtsCameraContent, descendants: true }], usesInheritance: true, ngImport: i0, template: `
|
|
13
12
|
<ngt-perspective-camera [ref]="cameraRef" ngtCompound>
|
|
14
13
|
<ng-container
|
|
15
14
|
*ngIf="cameraContent && !cameraContent.ngtsCameraContent"
|
|
@@ -19,8 +18,10 @@ NgtsPerspectiveCamera.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0",
|
|
|
19
18
|
<ngt-group #group *ngIf="cameraContent && cameraContent.ngtsCameraContent">
|
|
20
19
|
<ng-container *ngTemplateOutlet="cameraContent.template; context: { fbo: fboRef.nativeElement, group }" />
|
|
21
20
|
</ngt-group>
|
|
22
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
|
|
23
|
-
|
|
21
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
|
|
22
|
+
}
|
|
23
|
+
export { NgtsPerspectiveCamera };
|
|
24
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgtsPerspectiveCamera, decorators: [{
|
|
24
25
|
type: Component,
|
|
25
26
|
args: [{
|
|
26
27
|
selector: 'ngts-perspective-camera',
|
|
@@ -43,4 +44,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImpor
|
|
|
43
44
|
type: ContentChild,
|
|
44
45
|
args: [NgtsCameraContent]
|
|
45
46
|
}] } });
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyc3BlY3RpdmUtY2FtZXJhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXRocmVlLXNvYmEvY2FtZXJhcy9zcmMvbGliL3BlcnNwZWN0aXZlLWNhbWVyYS9wZXJzcGVjdGl2ZS1jYW1lcmEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUNqRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBRTdELE1BQU0sQ0FBQyxFQUFFLGlCQUFpQixFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7QUFFckMsTUFpQmEscUJBQXNCLFNBQVEsVUFBNkI7OEdBQTNELHFCQUFxQjtrR0FBckIscUJBQXFCLDhIQUNoQixpQkFBaUIsdUVBZnJCOzs7Ozs7Ozs7O0tBVVQsNERBQ1MsSUFBSSw2RkFBRSxnQkFBZ0I7O1NBR3ZCLHFCQUFxQjsyRkFBckIscUJBQXFCO2tCQWpCakMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUseUJBQXlCO29CQUNuQyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFOzs7Ozs7Ozs7O0tBVVQ7b0JBQ0QsT0FBTyxFQUFFLENBQUMsSUFBSSxFQUFFLGdCQUFnQixDQUFDO29CQUNqQyxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztpQkFDcEM7OEJBRW9DLGFBQWE7c0JBQTdDLFlBQVk7dUJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdJZiwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIENvbnRlbnRDaGlsZCwgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZXh0ZW5kIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBHcm91cCwgUGVyc3BlY3RpdmVDYW1lcmEgfSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgeyBOZ3RzQ2FtZXJhIH0gZnJvbSAnLi4vY2FtZXJhL2NhbWVyYSc7XG5pbXBvcnQgeyBOZ3RzQ2FtZXJhQ29udGVudCB9IGZyb20gJy4uL2NhbWVyYS9jYW1lcmEtY29udGVudCc7XG5cbmV4dGVuZCh7IFBlcnNwZWN0aXZlQ2FtZXJhLCBHcm91cCB9KTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduZ3RzLXBlcnNwZWN0aXZlLWNhbWVyYScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8bmd0LXBlcnNwZWN0aXZlLWNhbWVyYSBbcmVmXT1cImNhbWVyYVJlZlwiIG5ndENvbXBvdW5kPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICpuZ0lmPVwiY2FtZXJhQ29udGVudCAmJiAhY2FtZXJhQ29udGVudC5uZ3RzQ2FtZXJhQ29udGVudFwiXG4gICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiY2FtZXJhQ29udGVudC50ZW1wbGF0ZVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICA8L25ndC1wZXJzcGVjdGl2ZS1jYW1lcmE+XG4gICAgICAgIDxuZ3QtZ3JvdXAgI2dyb3VwICpuZ0lmPVwiY2FtZXJhQ29udGVudCAmJiBjYW1lcmFDb250ZW50Lm5ndHNDYW1lcmFDb250ZW50XCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY2FtZXJhQ29udGVudC50ZW1wbGF0ZTsgY29udGV4dDogeyBmYm86IGZib1JlZi5uYXRpdmVFbGVtZW50LCBncm91cCB9XCIgLz5cbiAgICAgICAgPC9uZ3QtZ3JvdXA+XG4gICAgYCxcbiAgICBpbXBvcnRzOiBbTmdJZiwgTmdUZW1wbGF0ZU91dGxldF0sXG4gICAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RzUGVyc3BlY3RpdmVDYW1lcmEgZXh0ZW5kcyBOZ3RzQ2FtZXJhPFBlcnNwZWN0aXZlQ2FtZXJhPiB7XG4gICAgQENvbnRlbnRDaGlsZChOZ3RzQ2FtZXJhQ29udGVudCkgY2FtZXJhQ29udGVudD86IE5ndHNDYW1lcmFDb250ZW50O1xufVxuIl19
|