angular-three-soba 1.13.0 → 1.14.0
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 +43 -68
- 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
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
import { Component, CUSTOM_ELEMENTS_SCHEMA, EventEmitter, inject, Input, Output, } from '@angular/core';
|
|
2
|
-
import { RxActionFactory } from '@rx-angular/state/actions';
|
|
3
|
-
import { injectNgtRef, NgtArgs, NgtRxStore, NgtStore } from 'angular-three';
|
|
4
|
-
// @ts-ignore
|
|
5
|
-
import { preloadFont, Text } from 'troika-three-text';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
export class NgtsText extends NgtRxStore {
|
|
8
|
-
constructor() {
|
|
9
|
-
super(...arguments);
|
|
10
|
-
this.textRef = injectNgtRef();
|
|
11
|
-
this.sync = new EventEmitter();
|
|
12
|
-
this.store = inject(NgtStore);
|
|
13
|
-
this.troikaText = new Text();
|
|
14
|
-
}
|
|
15
|
-
set text(text) {
|
|
16
|
-
this.set({ text });
|
|
17
|
-
}
|
|
18
|
-
set characters(characters) {
|
|
19
|
-
this.set({ characters });
|
|
20
|
-
}
|
|
21
|
-
set font(font) {
|
|
22
|
-
this.set({ font });
|
|
23
|
-
}
|
|
24
|
-
set anchorX(anchorX) {
|
|
25
|
-
this.set({ anchorX });
|
|
26
|
-
}
|
|
27
|
-
set anchorY(anchorY) {
|
|
28
|
-
this.set({ anchorY });
|
|
29
|
-
}
|
|
30
|
-
initialize() {
|
|
31
|
-
super.initialize();
|
|
32
|
-
this.set({ anchorX: 'center', anchorY: 'middle', text: '' });
|
|
33
|
-
}
|
|
34
|
-
ngOnInit() {
|
|
35
|
-
this.preloadFont();
|
|
36
|
-
this.syncText();
|
|
37
|
-
}
|
|
38
|
-
ngOnDestroy() {
|
|
39
|
-
this.troikaText.dispose();
|
|
40
|
-
super.ngOnDestroy();
|
|
41
|
-
}
|
|
42
|
-
preloadFont() {
|
|
43
|
-
const { font, characters } = this.get();
|
|
44
|
-
if (font && characters) {
|
|
45
|
-
preloadFont({ font, characters });
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
syncText() {
|
|
49
|
-
this.hold(this.select(), () => {
|
|
50
|
-
const invalidate = this.store.get('invalidate');
|
|
51
|
-
this.troikaText.sync(() => {
|
|
52
|
-
invalidate();
|
|
53
|
-
if (this.sync.observed)
|
|
54
|
-
this.sync.next(this.troikaText);
|
|
55
|
-
});
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
NgtsText.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: NgtsText, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
60
|
-
NgtsText.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.5", type: NgtsText, isStandalone: true, selector: "ngts-text[text]", inputs: { textRef: "textRef", text: "text", characters: "characters", font: "font", anchorX: "anchorX", anchorY: "anchorY" }, outputs: { sync: "sync" }, providers: [RxActionFactory], usesInheritance: true, ngImport: i0, template: `
|
|
61
|
-
<ng-container>
|
|
62
|
-
<ngt-primitive
|
|
63
|
-
ngtCompound
|
|
64
|
-
*args="[troikaText]"
|
|
65
|
-
[ref]="textRef"
|
|
66
|
-
[text]="get('text')"
|
|
67
|
-
[anchorX]="get('anchorX')"
|
|
68
|
-
[anchorY]="get('anchorY')"
|
|
69
|
-
[font]="get('font')"
|
|
70
|
-
>
|
|
71
|
-
<ng-content />
|
|
72
|
-
</ngt-primitive>
|
|
73
|
-
</ng-container>
|
|
74
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "[args]", inputs: ["args"] }] });
|
|
75
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: NgtsText, decorators: [{
|
|
76
|
-
type: Component,
|
|
77
|
-
args: [{
|
|
78
|
-
selector: 'ngts-text[text]',
|
|
79
|
-
standalone: true,
|
|
80
|
-
template: `
|
|
81
|
-
<ng-container>
|
|
82
|
-
<ngt-primitive
|
|
83
|
-
ngtCompound
|
|
84
|
-
*args="[troikaText]"
|
|
85
|
-
[ref]="textRef"
|
|
86
|
-
[text]="get('text')"
|
|
87
|
-
[anchorX]="get('anchorX')"
|
|
88
|
-
[anchorY]="get('anchorY')"
|
|
89
|
-
[font]="get('font')"
|
|
90
|
-
>
|
|
91
|
-
<ng-content />
|
|
92
|
-
</ngt-primitive>
|
|
93
|
-
</ng-container>
|
|
94
|
-
`,
|
|
95
|
-
imports: [NgtArgs],
|
|
96
|
-
providers: [RxActionFactory],
|
|
97
|
-
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
98
|
-
}]
|
|
99
|
-
}], propDecorators: { textRef: [{
|
|
100
|
-
type: Input
|
|
101
|
-
}], text: [{
|
|
102
|
-
type: Input
|
|
103
|
-
}], characters: [{
|
|
104
|
-
type: Input
|
|
105
|
-
}], font: [{
|
|
106
|
-
type: Input
|
|
107
|
-
}], anchorX: [{
|
|
108
|
-
type: Input
|
|
109
|
-
}], anchorY: [{
|
|
110
|
-
type: Input
|
|
111
|
-
}], sync: [{
|
|
112
|
-
type: Output
|
|
113
|
-
}] } });
|
|
114
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci10aHJlZS1zb2JhL2Fic3RyYWN0aW9ucy9zcmMvbGliL3RleHQvdGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULHNCQUFzQixFQUN0QixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFHTCxNQUFNLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUUsYUFBYTtBQUNiLE9BQU8sRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7O0FBd0J0RCxNQUFNLE9BQU8sUUFBUyxTQUFRLFVBQVU7SUF0QnhDOztRQXVCYSxZQUFPLEdBQUcsWUFBWSxFQUFRLENBQUM7UUFzQjlCLFNBQUksR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBT3pCLFVBQUssR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDakMsZUFBVSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7S0E0QnBDO0lBeERHLElBQWEsSUFBSSxDQUFDLElBQVk7UUFDMUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQWEsVUFBVSxDQUFDLFVBQWtCO1FBQ3RDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxJQUFhLElBQUksQ0FBQyxJQUFZO1FBQzFCLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxJQUFhLE9BQU8sQ0FBQyxPQUE2QztRQUM5RCxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBYSxPQUFPLENBQUMsT0FBa0Y7UUFDbkcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUlRLFVBQVU7UUFDZixLQUFLLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBS0QsUUFBUTtRQUNKLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVRLFdBQVc7UUFDaEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUMxQixLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVPLFdBQVc7UUFDZixNQUFNLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUN4QyxJQUFJLElBQUksSUFBSSxVQUFVLEVBQUU7WUFDcEIsV0FBVyxDQUFDLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7U0FDckM7SUFDTCxDQUFDO0lBRU8sUUFBUTtRQUNaLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRTtZQUMxQixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUNoRCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7Z0JBQ3RCLFVBQVUsRUFBRSxDQUFDO2dCQUNiLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRO29CQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUM1RCxDQUFDLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7cUdBMURRLFFBQVE7eUZBQVIsUUFBUSx1TkFITixDQUFDLGVBQWUsQ0FBQyxpREFoQmxCOzs7Ozs7Ozs7Ozs7OztLQWNULDREQUNTLE9BQU87MkZBSVIsUUFBUTtrQkF0QnBCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7S0FjVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUM7b0JBQ2xCLFNBQVMsRUFBRSxDQUFDLGVBQWUsQ0FBQztvQkFDNUIsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7aUJBQ3BDOzhCQUVZLE9BQU87c0JBQWYsS0FBSztnQkFFTyxJQUFJO3NCQUFoQixLQUFLO2dCQUlPLFVBQVU7c0JBQXRCLEtBQUs7Z0JBSU8sSUFBSTtzQkFBaEIsS0FBSztnQkFJTyxPQUFPO3NCQUFuQixLQUFLO2dCQUlPLE9BQU87c0JBQW5CLEtBQUs7Z0JBSUksSUFBSTtzQkFBYixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgaW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJ4QWN0aW9uRmFjdG9yeSB9IGZyb20gJ0ByeC1hbmd1bGFyL3N0YXRlL2FjdGlvbnMnO1xuaW1wb3J0IHsgaW5qZWN0Tmd0UmVmLCBOZ3RBcmdzLCBOZ3RSeFN0b3JlLCBOZ3RTdG9yZSB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuLy8gQHRzLWlnbm9yZVxuaW1wb3J0IHsgcHJlbG9hZEZvbnQsIFRleHQgfSBmcm9tICd0cm9pa2EtdGhyZWUtdGV4dCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmd0cy10ZXh0W3RleHRdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDxuZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmd0LXByaW1pdGl2ZVxuICAgICAgICAgICAgICAgIG5ndENvbXBvdW5kXG4gICAgICAgICAgICAgICAgKmFyZ3M9XCJbdHJvaWthVGV4dF1cIlxuICAgICAgICAgICAgICAgIFtyZWZdPVwidGV4dFJlZlwiXG4gICAgICAgICAgICAgICAgW3RleHRdPVwiZ2V0KCd0ZXh0JylcIlxuICAgICAgICAgICAgICAgIFthbmNob3JYXT1cImdldCgnYW5jaG9yWCcpXCJcbiAgICAgICAgICAgICAgICBbYW5jaG9yWV09XCJnZXQoJ2FuY2hvclknKVwiXG4gICAgICAgICAgICAgICAgW2ZvbnRdPVwiZ2V0KCdmb250JylcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxuZy1jb250ZW50IC8+XG4gICAgICAgICAgICA8L25ndC1wcmltaXRpdmU+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIGAsXG4gICAgaW1wb3J0czogW05ndEFyZ3NdLFxuICAgIHByb3ZpZGVyczogW1J4QWN0aW9uRmFjdG9yeV0sXG4gICAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RzVGV4dCBleHRlbmRzIE5ndFJ4U3RvcmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgQElucHV0KCkgdGV4dFJlZiA9IGluamVjdE5ndFJlZjxUZXh0PigpO1xuXG4gICAgQElucHV0KCkgc2V0IHRleHQodGV4dDogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgdGV4dCB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgY2hhcmFjdGVycyhjaGFyYWN0ZXJzOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBjaGFyYWN0ZXJzIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBmb250KGZvbnQ6IHN0cmluZykge1xuICAgICAgICB0aGlzLnNldCh7IGZvbnQgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGFuY2hvclgoYW5jaG9yWDogbnVtYmVyIHwgJ2xlZnQnIHwgJ2NlbnRlcicgfCAncmlnaHQnKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgYW5jaG9yWCB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgYW5jaG9yWShhbmNob3JZOiBudW1iZXIgfCAndG9wJyB8ICd0b3AtYmFzZWxpbmUnIHwgJ21pZGRsZScgfCAnYm90dG9tLWJhc2VsaW5lJyB8ICdib3R0b20nKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgYW5jaG9yWSB9KTtcbiAgICB9XG5cbiAgICBAT3V0cHV0KCkgc3luYyA9IG5ldyBFdmVudEVtaXR0ZXI8VGV4dD4oKTtcblxuICAgIG92ZXJyaWRlIGluaXRpYWxpemUoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLmluaXRpYWxpemUoKTtcbiAgICAgICAgdGhpcy5zZXQoeyBhbmNob3JYOiAnY2VudGVyJywgYW5jaG9yWTogJ21pZGRsZScsIHRleHQ6ICcnIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVhZG9ubHkgc3RvcmUgPSBpbmplY3QoTmd0U3RvcmUpO1xuICAgIHJlYWRvbmx5IHRyb2lrYVRleHQgPSBuZXcgVGV4dCgpO1xuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucHJlbG9hZEZvbnQoKTtcbiAgICAgICAgdGhpcy5zeW5jVGV4dCgpO1xuICAgIH1cblxuICAgIG92ZXJyaWRlIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnRyb2lrYVRleHQuZGlzcG9zZSgpO1xuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcHJlbG9hZEZvbnQoKSB7XG4gICAgICAgIGNvbnN0IHsgZm9udCwgY2hhcmFjdGVycyB9ID0gdGhpcy5nZXQoKTtcbiAgICAgICAgaWYgKGZvbnQgJiYgY2hhcmFjdGVycykge1xuICAgICAgICAgICAgcHJlbG9hZEZvbnQoeyBmb250LCBjaGFyYWN0ZXJzIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzeW5jVGV4dCgpIHtcbiAgICAgICAgdGhpcy5ob2xkKHRoaXMuc2VsZWN0KCksICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGludmFsaWRhdGUgPSB0aGlzLnN0b3JlLmdldCgnaW52YWxpZGF0ZScpO1xuICAgICAgICAgICAgdGhpcy50cm9pa2FUZXh0LnN5bmMoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGludmFsaWRhdGUoKTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5zeW5jLm9ic2VydmVkKSB0aGlzLnN5bmMubmV4dCh0aGlzLnRyb2lrYVRleHQpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,144 +0,0 @@
|
|
|
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
|
-
export 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
|
-
}
|
|
98
|
-
NgtsText3D.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: NgtsText3D, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
99
|
-
NgtsText3D.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.5", 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: `
|
|
100
|
-
<ngt-mesh ngtCompound>
|
|
101
|
-
<ngt-text-geometry *args="geometryArgs$ | ngtPush : null" />
|
|
102
|
-
<ng-content />
|
|
103
|
-
</ngt-mesh>
|
|
104
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "[args]", inputs: ["args"] }, { kind: "pipe", type: NgtPush, name: "ngtPush" }] });
|
|
105
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: NgtsText3D, decorators: [{
|
|
106
|
-
type: Component,
|
|
107
|
-
args: [{
|
|
108
|
-
selector: 'ngts-text-3d[font]',
|
|
109
|
-
standalone: true,
|
|
110
|
-
template: `
|
|
111
|
-
<ngt-mesh ngtCompound>
|
|
112
|
-
<ngt-text-geometry *args="geometryArgs$ | ngtPush : null" />
|
|
113
|
-
<ng-content />
|
|
114
|
-
</ngt-mesh>
|
|
115
|
-
`,
|
|
116
|
-
imports: [NgtArgs, NgtPush],
|
|
117
|
-
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
118
|
-
}]
|
|
119
|
-
}], propDecorators: { font: [{
|
|
120
|
-
type: Input
|
|
121
|
-
}], text: [{
|
|
122
|
-
type: Input
|
|
123
|
-
}], bevelEnabled: [{
|
|
124
|
-
type: Input
|
|
125
|
-
}], bevelOffset: [{
|
|
126
|
-
type: Input
|
|
127
|
-
}], bevelSize: [{
|
|
128
|
-
type: Input
|
|
129
|
-
}], bevelThickness: [{
|
|
130
|
-
type: Input
|
|
131
|
-
}], curveSegments: [{
|
|
132
|
-
type: Input
|
|
133
|
-
}], bevelSegments: [{
|
|
134
|
-
type: Input
|
|
135
|
-
}], height: [{
|
|
136
|
-
type: Input
|
|
137
|
-
}], size: [{
|
|
138
|
-
type: Input
|
|
139
|
-
}], lineHeight: [{
|
|
140
|
-
type: Input
|
|
141
|
-
}], letterSpacing: [{
|
|
142
|
-
type: Input
|
|
143
|
-
}] } });
|
|
144
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC0zZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci10aHJlZS1zb2JhL2Fic3RyYWN0aW9ucy9zcmMvbGliL3RleHQtM2QvdGV4dC0zZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLHNCQUFzQixFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RSxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDekQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUM3QixPQUFPLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUFZeEQsTUFBTSxDQUFDLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUM7QUFjL0IsTUFBTSxPQUFPLFVBQVcsU0FBUSxVQUFVO0lBWjFDOztRQTZFcUIsVUFBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUM3QyxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNmLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUTtnQkFBRSxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBc0IsQ0FBQztZQUNoRyxPQUFPLEVBQUUsQ0FBQyxJQUFnQixDQUFDLENBQUM7UUFDaEMsQ0FBQyxDQUFDLEVBQ0YsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxJQUFJLFVBQVUsRUFBRSxDQUFDLEtBQUss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ZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGV4dGVuZCwgTmd0QXJncywgTmd0UHVzaCwgTmd0UnhTdG9yZSB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgbWFwLCBvZiwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBNZXNoIH0gZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgRm9udExvYWRlciwgVGV4dEdlb21ldHJ5IH0gZnJvbSAndGhyZWUtc3RkbGliJztcblxuZGVjbGFyZSB0eXBlIEdseXBoID0geyBfY2FjaGVkT3V0bGluZTogc3RyaW5nW107IGhhOiBudW1iZXI7IG86IHN0cmluZyB9O1xuXG5kZWNsYXJlIHR5cGUgRm9udERhdGEgPSB7XG4gICAgYm91bmRpbmdCb3g6IHsgeU1heDogbnVtYmVyOyB5TWluOiBudW1iZXIgfTtcbiAgICBmYW1pbHlOYW1lOiBzdHJpbmc7XG4gICAgZ2x5cGhzOiB7IFtrOiBzdHJpbmddOiBHbHlwaCB9O1xuICAgIHJlc29sdXRpb246IG51bWJlcjtcbiAgICB1bmRlcmxpbmVUaGlja25lc3M6IG51bWJlcjtcbn07XG5cbmV4dGVuZCh7IE1lc2gsIFRleHRHZW9tZXRyeSB9KTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduZ3RzLXRleHQtM2RbZm9udF0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPG5ndC1tZXNoIG5ndENvbXBvdW5kPlxuICAgICAgICAgICAgPG5ndC10ZXh0LWdlb21ldHJ5ICphcmdzPVwiZ2VvbWV0cnlBcmdzJCB8IG5ndFB1c2ggOiBudWxsXCIgLz5cbiAgICAgICAgICAgIDxuZy1jb250ZW50IC8+XG4gICAgICAgIDwvbmd0LW1lc2g+XG4gICAgYCxcbiAgICBpbXBvcnRzOiBbTmd0QXJncywgTmd0UHVzaF0sXG4gICAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RzVGV4dDNEIGV4dGVuZHMgTmd0UnhTdG9yZSB7XG4gICAgQElucHV0KCkgc2V0IGZvbnQoZm9udDogRm9udERhdGEgfCBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBmb250IH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCB0ZXh0KHRleHQ6IHN0cmluZykge1xuICAgICAgICB0aGlzLnNldCh7IHRleHQgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGJldmVsRW5hYmxlZChiZXZlbEVuYWJsZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5zZXQoeyBiZXZlbEVuYWJsZWQgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGJldmVsT2Zmc2V0KGJldmVsT2Zmc2V0OiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBiZXZlbE9mZnNldCB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgYmV2ZWxTaXplKGJldmVsU2l6ZTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgYmV2ZWxTaXplIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBiZXZlbFRoaWNrbmVzcyhiZXZlbFRoaWNrbmVzczogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgYmV2ZWxUaGlja25lc3MgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGN1cnZlU2VnbWVudHMoY3VydmVTZWdtZW50czogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgY3VydmVTZWdtZW50cyB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgYmV2ZWxTZWdtZW50cyhiZXZlbFNlZ21lbnRzOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBiZXZlbFNlZ21lbnRzIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBoZWlnaHQoaGVpZ2h0OiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBoZWlnaHQgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IHNpemUoc2l6ZTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgc2l6ZSB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgbGluZUhlaWdodChsaW5lSGVpZ2h0OiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBsaW5lSGVpZ2h0IH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBsZXR0ZXJTcGFjaW5nKGxldHRlclNwYWNpbmc6IG51bWJlcikge1xuICAgICAgICB0aGlzLnNldCh7IGxldHRlclNwYWNpbmcgfSk7XG4gICAgfVxuXG4gICAgb3ZlcnJpZGUgaW5pdGlhbGl6ZSgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIuaW5pdGlhbGl6ZSgpO1xuICAgICAgICB0aGlzLnNldCh7XG4gICAgICAgICAgICBsZXR0ZXJTcGFjaW5nOiAwLFxuICAgICAgICAgICAgbGluZUhlaWdodDogMSxcbiAgICAgICAgICAgIHNpemU6IDEsXG4gICAgICAgICAgICBoZWlnaHQ6IDAuMixcbiAgICAgICAgICAgIGJldmVsVGhpY2tuZXNzOiAwLjEsXG4gICAgICAgICAgICBiZXZlbFNpemU6IDAuMDEsXG4gICAgICAgICAgICBiZXZlbEVuYWJsZWQ6IGZhbHNlLFxuICAgICAgICAgICAgYmV2ZWxPZmZzZXQ6IDAsXG4gICAgICAgICAgICBiZXZlbFNlZ21lbnRzOiA0LFxuICAgICAgICAgICAgY3VydmVTZWdtZW50czogOCxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZWFkb25seSBmb250JCA9IHRoaXMuc2VsZWN0KCdmb250JykucGlwZShcbiAgICAgICAgc3dpdGNoTWFwKChmb250KSA9PiB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIGZvbnQgPT09ICdzdHJpbmcnKSByZXR1cm4gZmV0Y2goZm9udCkudGhlbigocmVzKSA9PiByZXMuanNvbigpKSBhcyBQcm9taXNlPEZvbnREYXRhPjtcbiAgICAgICAgICAgIHJldHVybiBvZihmb250IGFzIEZvbnREYXRhKTtcbiAgICAgICAgfSksXG4gICAgICAgIG1hcCgoZm9udERhdGEpID0+IG5ldyBGb250TG9hZGVyKCkucGFyc2UoZm9udERhdGEpKVxuICAgICk7XG5cbiAgICByZWFkb25seSBnZW9tZXRyeUFyZ3MkID0gY29tYmluZUxhdGVzdChbXG4gICAgICAgIHRoaXMuZm9udCQsXG4gICAgICAgIHRoaXMuc2VsZWN0KCd0ZXh0JyksXG4gICAgICAgIHRoaXMuc2VsZWN0KCdzaXplJyksXG4gICAgICAgIHRoaXMuc2VsZWN0KCdoZWlnaHQnKSxcbiAgICAgICAgdGhpcy5zZWxlY3QoJ2JldmVsVGhpY2tuZXNzJyksXG4gICAgICAgIHRoaXMuc2VsZWN0KCdiZXZlbFNpemUnKSxcbiAgICAgICAgdGhpcy5zZWxlY3QoJ2JldmVsRW5hYmxlZCcpLFxuICAgICAgICB0aGlzLnNlbGVjdCgnYmV2ZWxTZWdtZW50cycpLFxuICAgICAgICB0aGlzLnNlbGVjdCgnYmV2ZWxPZmZzZXQnKSxcbiAgICAgICAgdGhpcy5zZWxlY3QoJ2N1cnZlU2VnbWVudHMnKSxcbiAgICAgICAgdGhpcy5zZWxlY3QoJ2xldHRlclNwYWNpbmcnKSxcbiAgICAgICAgdGhpcy5zZWxlY3QoJ2xpbmVIZWlnaHQnKSxcbiAgICBdKS5waXBlKFxuICAgICAgICBtYXAoXG4gICAgICAgICAgICAoW1xuICAgICAgICAgICAgICAgIGZvbnQsXG4gICAgICAgICAgICAgICAgdGV4dCxcbiAgICAgICAgICAgICAgICBzaXplLFxuICAgICAgICAgICAgICAgIGhlaWdodCxcbiAgICAgICAgICAgICAgICBiZXZlbFRoaWNrbmVzcyxcbiAgICAgICAgICAgICAgICBiZXZlbFNpemUsXG4gICAgICAgICAgICAgICAgYmV2ZWxFbmFibGVkLFxuICAgICAgICAgICAgICAgIGJldmVsU2VnbWVudHMsXG4gICAgICAgICAgICAgICAgYmV2ZWxPZmZzZXQsXG4gICAgICAgICAgICAgICAgY3VydmVTZWdtZW50cyxcbiAgICAgICAgICAgICAgICBsZXR0ZXJTcGFjaW5nLFxuICAgICAgICAgICAgICAgIGxpbmVIZWlnaHQsXG4gICAgICAgICAgICBdKSA9PiBbXG4gICAgICAgICAgICAgICAgdGV4dCxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQsXG4gICAgICAgICAgICAgICAgICAgIHNpemUsXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodCxcbiAgICAgICAgICAgICAgICAgICAgYmV2ZWxUaGlja25lc3MsXG4gICAgICAgICAgICAgICAgICAgIGJldmVsU2l6ZSxcbiAgICAgICAgICAgICAgICAgICAgYmV2ZWxTZWdtZW50cyxcbiAgICAgICAgICAgICAgICAgICAgYmV2ZWxFbmFibGVkLFxuICAgICAgICAgICAgICAgICAgICBiZXZlbE9mZnNldCxcbiAgICAgICAgICAgICAgICAgICAgY3VydmVTZWdtZW50cyxcbiAgICAgICAgICAgICAgICAgICAgbGV0dGVyU3BhY2luZyxcbiAgICAgICAgICAgICAgICAgICAgbGluZUhlaWdodCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXVxuICAgICAgICApXG4gICAgKTtcbn1cbiJdfQ==
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { Directive, inject, Input, TemplateRef } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class NgtsCameraContent {
|
|
4
|
-
constructor() {
|
|
5
|
-
this.template = inject(TemplateRef);
|
|
6
|
-
this.ngtsCameraContent = '';
|
|
7
|
-
}
|
|
8
|
-
static ngTemplateContextGuard(_, ctx) {
|
|
9
|
-
return true;
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
NgtsCameraContent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: NgtsCameraContent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
13
|
-
NgtsCameraContent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.5", type: NgtsCameraContent, isStandalone: true, selector: "ng-template[ngtsCameraContent]", inputs: { ngtsCameraContent: "ngtsCameraContent" }, ngImport: i0 });
|
|
14
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: NgtsCameraContent, decorators: [{
|
|
15
|
-
type: Directive,
|
|
16
|
-
args: [{ selector: 'ng-template[ngtsCameraContent]', standalone: true }]
|
|
17
|
-
}], propDecorators: { ngtsCameraContent: [{
|
|
18
|
-
type: Input
|
|
19
|
-
}] } });
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FtZXJhLWNvbnRlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdGhyZWUtc29iYS9jYW1lcmFzL3NyYy9saWIvY2FtZXJhL2NhbWVyYS1jb250ZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBSXRFLE1BQU0sT0FBTyxpQkFBaUI7SUFEOUI7UUFFYSxhQUFRLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQy9CLHNCQUFpQixHQUFpQixFQUFFLENBQUM7S0FRakQ7SUFORyxNQUFNLENBQUMsc0JBQXNCLENBQ3pCLENBQW9CLEVBQ3BCLEdBQVk7UUFFWixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDOzs4R0FUUSxpQkFBaUI7a0dBQWpCLGlCQUFpQjsyRkFBakIsaUJBQWlCO2tCQUQ3QixTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLGdDQUFnQyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUU7OEJBRzlELGlCQUFpQjtzQkFBekIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgaW5qZWN0LCBJbnB1dCwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcblxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnbmctdGVtcGxhdGVbbmd0c0NhbWVyYUNvbnRlbnRdJywgc3RhbmRhbG9uZTogdHJ1ZSB9KVxuZXhwb3J0IGNsYXNzIE5ndHNDYW1lcmFDb250ZW50IHtcbiAgICByZWFkb25seSB0ZW1wbGF0ZSA9IGluamVjdChUZW1wbGF0ZVJlZik7XG4gICAgQElucHV0KCkgbmd0c0NhbWVyYUNvbnRlbnQ6IGJvb2xlYW4gfCAnJyA9ICcnO1xuXG4gICAgc3RhdGljIG5nVGVtcGxhdGVDb250ZXh0R3VhcmQoXG4gICAgICAgIF86IE5ndHNDYW1lcmFDb250ZW50LFxuICAgICAgICBjdHg6IHVua25vd25cbiAgICApOiBjdHggaXMgeyBmYm86IFRIUkVFLldlYkdMUmVuZGVyVGFyZ2V0OyBncm91cD86IFRIUkVFLkdyb3VwIH0ge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,74 +0,0 @@
|
|
|
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
|
-
export 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
|
-
}
|
|
57
|
-
NgtsCamera.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: NgtsCamera, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
58
|
-
NgtsCamera.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.5", type: NgtsCamera, inputs: { makeDefault: "makeDefault", manual: "manual", frames: "frames", resolution: "resolution", envMap: "envMap", cameraRef: "cameraRef" }, usesInheritance: true, ngImport: i0 });
|
|
59
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: NgtsCamera, decorators: [{
|
|
60
|
-
type: Directive
|
|
61
|
-
}], propDecorators: { makeDefault: [{
|
|
62
|
-
type: Input
|
|
63
|
-
}], manual: [{
|
|
64
|
-
type: Input
|
|
65
|
-
}], frames: [{
|
|
66
|
-
type: Input
|
|
67
|
-
}], resolution: [{
|
|
68
|
-
type: Input
|
|
69
|
-
}], envMap: [{
|
|
70
|
-
type: Input
|
|
71
|
-
}], cameraRef: [{
|
|
72
|
-
type: Input
|
|
73
|
-
}] } });
|
|
74
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FtZXJhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXRocmVlLXNvYmEvY2FtZXJhcy9zcmMvbGliL2NhbWVyYS9jYW1lcmEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxZQUFZLEVBQWEsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBRzFDLE1BQU0sT0FBZ0IsVUFBc0MsU0FBUSxVQUFVO0lBRDlFOztRQXNCYSxjQUFTLEdBQUcsWUFBWSxFQUFXLENBQUM7UUFFMUIsVUFBSyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNuQyxXQUFNLEdBQUcsYUFBYSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBZ0N2SDtJQXZERyxJQUFhLFdBQVcsQ0FBQyxXQUFvQjtRQUN6QyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBYSxNQUFNLENBQUMsTUFBZTtRQUMvQixJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBYSxNQUFNLENBQUMsTUFBYztRQUM5QixJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBYSxVQUFVLENBQUMsVUFBa0I7UUFDdEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQWEsTUFBTSxDQUFDLE1BQXFCO1FBQ3JDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFPUSxVQUFVO1FBQ2YsS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUN2RixDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUNuQyxNQUFNLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztZQUNoQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUNsQyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTyxnQkFBZ0I7UUFDcEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxFQUFFLEVBQUU7WUFDakcsSUFBSSxXQUFXLEVBQUU7Z0JBQ2IsTUFBTSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUMvQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7Z0JBQzNCLE9BQU8sR0FBRyxFQUFFO29CQUNSLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7Z0JBQzFDLENBQUMsQ0FBQzthQUNMO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU8sc0JBQXNCO1FBQzFCLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsRUFBRSxFQUFFO1lBQ3ZGLElBQUksQ0FBQyxNQUFNLElBQUksTUFBTTtnQkFBRSxNQUFNLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUMzRCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7O3VHQXZEaUIsVUFBVTsyRkFBVixVQUFVOzJGQUFWLFVBQVU7a0JBRC9CLFNBQVM7OEJBRU8sV0FBVztzQkFBdkIsS0FBSztnQkFJTyxNQUFNO3NCQUFsQixLQUFLO2dCQUlPLE1BQU07c0JBQWxCLEtBQUs7Z0JBSU8sVUFBVTtzQkFBdEIsS0FBSztnQkFJTyxNQUFNO3NCQUFsQixLQUFLO2dCQUlHLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIGluamVjdCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaW5qZWN0Tmd0UmVmLCBOZ3RDYW1lcmEsIE5ndFJ4U3RvcmUsIE5ndFN0b3JlIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBpbmplY3ROZ3RzRkJPIH0gZnJvbSAnYW5ndWxhci10aHJlZS1zb2JhL21pc2MnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgbWFwIH0gZnJvbSAncnhqcyc7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIE5ndHNDYW1lcmE8VENhbWVyYSBleHRlbmRzIE5ndENhbWVyYT4gZXh0ZW5kcyBOZ3RSeFN0b3JlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBASW5wdXQoKSBzZXQgbWFrZURlZmF1bHQobWFrZURlZmF1bHQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5zZXQoeyBtYWtlRGVmYXVsdCB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgbWFudWFsKG1hbnVhbDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnNldCh7IG1hbnVhbCB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgZnJhbWVzKGZyYW1lczogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgZnJhbWVzIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCByZXNvbHV0aW9uKHJlc29sdXRpb246IG51bWJlcikge1xuICAgICAgICB0aGlzLnNldCh7IHJlc29sdXRpb24gfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGVudk1hcChlbnZNYXA6IFRIUkVFLlRleHR1cmUpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBlbnZNYXAgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgY2FtZXJhUmVmID0gaW5qZWN0Tmd0UmVmPFRDYW1lcmE+KCk7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgc3RvcmUgPSBpbmplY3QoTmd0U3RvcmUpO1xuICAgIHJlYWRvbmx5IGZib1JlZiA9IGluamVjdE5ndHNGQk8oKCkgPT4gdGhpcy5zZWxlY3QoJ3Jlc29sdXRpb24nKS5waXBlKG1hcCgocmVzb2x1dGlvbikgPT4gKHsgd2lkdGg6IHJlc29sdXRpb24gfSkpKSk7XG5cbiAgICBvdmVycmlkZSBpbml0aWFsaXplKCkge1xuICAgICAgICBzdXBlci5pbml0aWFsaXplKCk7XG4gICAgICAgIHRoaXMuc2V0KHsgcmVzb2x1dGlvbjogMjU2LCBmcmFtZXM6IEluZmluaXR5LCBtYWtlRGVmYXVsdDogZmFsc2UsIG1hbnVhbDogZmFsc2UgfSk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuaG9sZCh0aGlzLmNhbWVyYVJlZi4kLCAoY2FtZXJhKSA9PiB7XG4gICAgICAgICAgICBjYW1lcmEudXBkYXRlUHJvamVjdGlvbk1hdHJpeCgpO1xuICAgICAgICAgICAgdGhpcy5zZXREZWZhdWx0Q2FtZXJhKCk7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVByb2plY3Rpb25NYXRyaXgoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXREZWZhdWx0Q2FtZXJhKCkge1xuICAgICAgICB0aGlzLmVmZmVjdChjb21iaW5lTGF0ZXN0KFt0aGlzLmNhbWVyYVJlZi4kLCB0aGlzLnNlbGVjdCgnbWFrZURlZmF1bHQnKV0pLCAoW2NhbWVyYSwgbWFrZURlZmF1bHRdKSA9PiB7XG4gICAgICAgICAgICBpZiAobWFrZURlZmF1bHQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB7IGNhbWVyYTogb2xkQ2FtZXJhIH0gPSB0aGlzLnN0b3JlLmdldCgpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RvcmUuc2V0KHsgY2FtZXJhIH0pO1xuICAgICAgICAgICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RvcmUuc2V0KHsgY2FtZXJhOiBvbGRDYW1lcmEgfSk7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVQcm9qZWN0aW9uTWF0cml4KCkge1xuICAgICAgICB0aGlzLmVmZmVjdChjb21iaW5lTGF0ZXN0KFt0aGlzLmNhbWVyYVJlZi4kLCB0aGlzLnNlbGVjdCgnbWFudWFsJyldKSwgKFtjYW1lcmEsIG1hbnVhbF0pID0+IHtcbiAgICAgICAgICAgIGlmICghbWFudWFsICYmIGNhbWVyYSkgY2FtZXJhLnVwZGF0ZVByb2plY3Rpb25NYXRyaXgoKTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
|
|
@@ -1,130 +0,0 @@
|
|
|
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
|
-
export 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
|
-
}
|
|
78
|
-
NgtsCubeCamera.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: NgtsCubeCamera, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
79
|
-
NgtsCubeCamera.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.5", 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: `
|
|
80
|
-
<ngt-group ngtCompound>
|
|
81
|
-
<ngt-cube-camera [ref]="cameraRef" *args="get('cameraArgs')" />
|
|
82
|
-
<ngt-group #group>
|
|
83
|
-
<ng-container
|
|
84
|
-
*ngIf="cameraContent && cameraContent.ngtsCameraContent && get('fbo')"
|
|
85
|
-
[ngTemplateOutlet]="cameraContent.template"
|
|
86
|
-
[ngTemplateOutletContext]="{ fbo: get('fbo').texture, group }"
|
|
87
|
-
/>
|
|
88
|
-
</ngt-group>
|
|
89
|
-
</ngt-group>
|
|
90
|
-
`, 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"] }] });
|
|
91
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: NgtsCubeCamera, decorators: [{
|
|
92
|
-
type: Component,
|
|
93
|
-
args: [{
|
|
94
|
-
selector: 'ngts-cube-camera',
|
|
95
|
-
standalone: true,
|
|
96
|
-
template: `
|
|
97
|
-
<ngt-group ngtCompound>
|
|
98
|
-
<ngt-cube-camera [ref]="cameraRef" *args="get('cameraArgs')" />
|
|
99
|
-
<ngt-group #group>
|
|
100
|
-
<ng-container
|
|
101
|
-
*ngIf="cameraContent && cameraContent.ngtsCameraContent && get('fbo')"
|
|
102
|
-
[ngTemplateOutlet]="cameraContent.template"
|
|
103
|
-
[ngTemplateOutletContext]="{ fbo: get('fbo').texture, group }"
|
|
104
|
-
/>
|
|
105
|
-
</ngt-group>
|
|
106
|
-
</ngt-group>
|
|
107
|
-
`,
|
|
108
|
-
imports: [NgIf, NgTemplateOutlet, NgtArgs],
|
|
109
|
-
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
110
|
-
}]
|
|
111
|
-
}], ctorParameters: function () { return []; }, propDecorators: { groupRef: [{
|
|
112
|
-
type: ViewChild,
|
|
113
|
-
args: ['group', { static: true }]
|
|
114
|
-
}], cameraContent: [{
|
|
115
|
-
type: ContentChild,
|
|
116
|
-
args: [NgtsCameraContent]
|
|
117
|
-
}], frames: [{
|
|
118
|
-
type: Input
|
|
119
|
-
}], resolution: [{
|
|
120
|
-
type: Input
|
|
121
|
-
}], near: [{
|
|
122
|
-
type: Input
|
|
123
|
-
}], far: [{
|
|
124
|
-
type: Input
|
|
125
|
-
}], envMap: [{
|
|
126
|
-
type: Input
|
|
127
|
-
}], fog: [{
|
|
128
|
-
type: Input
|
|
129
|
-
}] } });
|
|
130
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3ViZS1jYW1lcmEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdGhyZWUtc29iYS9jYW1lcmFzL3NyYy9saWIvY3ViZS1jYW1lcmEvY3ViZS1jYW1lcmEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLHNCQUFzQixFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0SCxPQUFPLEVBQUUsTUFBTSxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RyxPQUFPLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEtBQUssS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMvQixPQUFPLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUMxQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUFFN0QsTUFBTSxDQUFDLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7QUFvQjlCLE1BQU0sT0FBTyxjQUFlLFNBQVEsVUFBVTtJQU0xQywyQ0FBMkM7SUFDM0MsSUFBYSxNQUFNLENBQUMsTUFBYztRQUM5QixJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBQ0QsaUNBQWlDO0lBQ2pDLElBQWEsVUFBVSxDQUFDLFVBQWtCO1FBQ3RDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFD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QUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUMvQyxLQUFLLENBQUMsR0FBRyxHQUFHLFdBQVcsQ0FBQztnQkFDeEIsS0FBSyxDQUFDLFVBQVUsR0FBRyxrQkFBa0IsQ0FBQztnQkFDdEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztnQkFDM0MsS0FBSyxFQUFFLENBQUM7YUFDWDtRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7MkdBakZRLGNBQWM7K0ZBQWQsY0FBYyx1T0FFVCxpQkFBaUIsd0xBakJyQjs7Ozs7Ozs7Ozs7S0FXVCw0REFDUyxJQUFJLDZGQUFFLGdCQUFnQixvSkFBRSxPQUFPOzJGQUdoQyxjQUFjO2tCQWxCMUIsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFOzs7Ozs7Ozs7OztLQVdUO29CQUNELE9BQU8sRUFBRSxDQUFDLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxPQUFPLENBQUM7b0JBQzFDLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO2lCQUNwQzswRUFFeUMsUUFBUTtzQkFBN0MsU0FBUzt1QkFBQyxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUNILGFBQWE7c0JBQTdDLFlBQVk7dUJBQUMsaUJBQWlCO2dCQUtsQixNQUFNO3NCQUFsQixLQUFLO2dCQUlPLFVBQVU7c0JBQXRCLEtBQUs7Z0JBSU8sSUFBSTtzQkFBaEIsS0FBSztnQkFJTyxHQUFHO3NCQUFmLEtBQUs7Z0JBSU8sTUFBTTtzQkFBbEIsS0FBSztnQkFJTyxHQUFHO3NCQUFmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0lmLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgQ29udGVudENoaWxkLCBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBFbGVtZW50UmVmLCBpbmplY3QsIElucHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGV4dGVuZCwgaW5qZWN0QmVmb3JlUmVuZGVyLCBpbmplY3ROZ3RSZWYsIE5ndEFyZ3MsIE5ndFJ4U3RvcmUsIE5ndFN0b3JlIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBtYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcbmltcG9ydCB7IEN1YmVDYW1lcmEsIEdyb3VwIH0gZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgTmd0c0NhbWVyYUNvbnRlbnQgfSBmcm9tICcuLi9jYW1lcmEvY2FtZXJhLWNvbnRlbnQnO1xuXG5leHRlbmQoeyBHcm91cCwgQ3ViZUNhbWVyYSB9KTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduZ3RzLWN1YmUtY2FtZXJhJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDxuZ3QtZ3JvdXAgbmd0Q29tcG91bmQ+XG4gICAgICAgICAgICA8bmd0LWN1YmUtY2FtZXJhIFtyZWZdPVwiY2FtZXJhUmVmXCIgKmFyZ3M9XCJnZXQoJ2NhbWVyYUFyZ3MnKVwiIC8+XG4gICAgICAgICAgICA8bmd0LWdyb3VwICNncm91cD5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY2FtZXJhQ29udGVudCAmJiBjYW1lcmFDb250ZW50Lm5ndHNDYW1lcmFDb250ZW50ICYmIGdldCgnZmJvJylcIlxuICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJjYW1lcmFDb250ZW50LnRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgZmJvOiBnZXQoJ2ZibycpLnRleHR1cmUsIGdyb3VwIH1cIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L25ndC1ncm91cD5cbiAgICAgICAgPC9uZ3QtZ3JvdXA+XG4gICAgYCxcbiAgICBpbXBvcnRzOiBbTmdJZiwgTmdUZW1wbGF0ZU91dGxldCwgTmd0QXJnc10sXG4gICAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RzQ3ViZUNhbWVyYSBleHRlbmRzIE5ndFJ4U3RvcmUge1xuICAgIEBWaWV3Q2hpbGQoJ2dyb3VwJywgeyBzdGF0aWM6IHRydWUgfSkgZ3JvdXBSZWYhOiBFbGVtZW50UmVmPFRIUkVFLkdyb3VwPjtcbiAgICBAQ29udGVudENoaWxkKE5ndHNDYW1lcmFDb250ZW50KSBjYW1lcmFDb250ZW50PzogTmd0c0NhbWVyYUNvbnRlbnQ7XG5cbiAgICByZWFkb25seSBjYW1lcmFSZWYgPSBpbmplY3ROZ3RSZWY8VEhSRUUuQ3ViZUNhbWVyYT4oKTtcblxuICAgIC8qKiBOdW1iZXIgb2YgZnJhbWVzIHRvIHJlbmRlciwgSW5maW5pdHkgKi9cbiAgICBASW5wdXQoKSBzZXQgZnJhbWVzKGZyYW1lczogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgZnJhbWVzIH0pO1xuICAgIH1cbiAgICAvKiogUmVzb2x1dGlvbiBvZiB0aGUgRkJPLCAyNTYgKi9cbiAgICBASW5wdXQoKSBzZXQgcmVzb2x1dGlvbihyZXNvbHV0aW9uOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZXQoeyByZXNvbHV0aW9uIH0pO1xuICAgIH1cbiAgICAvKiogQ2FtZXJhIG5lYXIsIDAuMSAqL1xuICAgIEBJbnB1dCgpIHNldCBuZWFyKG5lYXI6IG51bWJlcikge1xuICAgICAgICB0aGlzLnNldCh7IG5lYXIgfSk7XG4gICAgfVxuICAgIC8qKiBDYW1lcmEgZmFyLCAxMDAwICovXG4gICAgQElucHV0KCkgc2V0IGZhcihmYXI6IG51bWJlcikge1xuICAgICAgICB0aGlzLnNldCh7IGZhciB9KTtcbiAgICB9XG4gICAgLyoqIEN1c3RvbSBlbnZpcm9ubWVudCBtYXAgdGhhdCBpcyB0ZW1wb3JhcmlseSBzZXQgYXMgdGhlIHNjZW5lcyBiYWNrZ3JvdW5kICovXG4gICAgQElucHV0KCkgc2V0IGVudk1hcChlbnZNYXA6IFRIUkVFLlRleHR1cmUpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBlbnZNYXAgfSk7XG4gICAgfVxuICAgIC8qKiBDdXN0b20gZm9nIHRoYXQgaXMgdGVtcG9yYXJpbHkgc2V0IGFzIHRoZSBzY2VuZXMgZm9nICovXG4gICAgQElucHV0KCkgc2V0IGZvZyhmb2c6IFRIUkVFLkZvZyB8IFRIUkVFLkZvZ0V4cDIpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBmb2cgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZWFkb25seSBzdG9yZSA9IGluamVjdChOZ3RTdG9yZSk7XG5cbiAgICBvdmVycmlkZSBpbml0aWFsaXplKCk6IHZvaWQge1xuICAgICAgICBzdXBlci5pbml0aWFsaXplKCk7XG4gICAgICAgIHRoaXMuc2V0KHtcbiAgICAgICAgICAgIGZyYW1lczogSW5maW5pdHksXG4gICAgICAgICAgICByZXNvbHV0aW9uOiAyNTYsXG4gICAgICAgICAgICBuZWFyOiAwLjEsXG4gICAgICAgICAgICBmYXI6IDEwMDAsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLmNvbm5lY3QoXG4gICAgICAgICAgICAnZmJvJyxcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0KCdyZXNvbHV0aW9uJykucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKHJlc29sdXRpb24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZmJvID0gbmV3IFRIUkVFLldlYkdMQ3ViZVJlbmRlclRhcmdldChyZXNvbHV0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgZmJvLnRleHR1cmUuZW5jb2RpbmcgPSB0aGlzLnN0b3JlLmdldCgnZ2wnKS5vdXRwdXRFbmNvZGluZztcbiAgICAgICAgICAgICAgICAgICAgZmJvLnRleHR1cmUudHlwZSA9IFRIUkVFLkhhbGZGbG9hdFR5cGU7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYm87XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5jb25uZWN0KCdjYW1lcmFBcmdzJywgY29tYmluZUxhdGVzdChbdGhpcy5zZWxlY3QoJ25lYXInKSwgdGhpcy5zZWxlY3QoJ2ZhcicpLCB0aGlzLnNlbGVjdCgnZmJvJyldKSk7XG5cbiAgICAgICAgbGV0IGNvdW50ID0gMDtcbiAgICAgICAgbGV0IG9yaWdpbmFsRm9nOiBUSFJFRS5TY2VuZVsnZm9nJ107XG4gICAgICAgIGxldCBvcmlnaW5hbEJhY2tncm91bmQ6IFRIUkVFLlNjZW5lWydiYWNrZ3JvdW5kJ107XG4gICAgICAgIGluamVjdEJlZm9yZVJlbmRlcigoeyBzY2VuZSwgZ2wgfSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgeyBmcmFtZXMsIGVudk1hcCwgZm9nIH0gPSB0aGlzLmdldCgpO1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIGVudk1hcCAmJlxuICAgICAgICAgICAgICAgIHRoaXMuY2FtZXJhUmVmLm5hdGl2ZUVsZW1lbnQgJiZcbiAgICAgICAgICAgICAgICB0aGlzLmdyb3VwUmVmLm5hdGl2ZUVsZW1lbnQgJiZcbiAgICAgICAgICAgICAgICAoZnJhbWVzID09PSBJbmZpbml0eSB8fCBjb3VudCA8IGZyYW1lcylcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHRoaXMuZ3JvdXBSZWYubmF0aXZlRWxlbWVudC52aXNpYmxlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgb3JpZ2luYWxGb2cgPSBzY2VuZS5mb2c7XG4gICAgICAgICAgICAgICAgb3JpZ2luYWxCYWNrZ3JvdW5kID0gc2NlbmUuYmFja2dyb3VuZDtcbiAgICAgICAgICAgICAgICBzY2VuZS5iYWNrZ3JvdW5kID0gZW52TWFwIHx8IG9yaWdpbmFsQmFja2dyb3VuZDtcbiAgICAgICAgICAgICAgICBzY2VuZS5mb2cgPSBmb2cgfHwgb3JpZ2luYWxGb2c7XG4gICAgICAgICAgICAgICAgdGhpcy5jYW1lcmFSZWYubmF0aXZlRWxlbWVudC51cGRhdGUoZ2wsIHNjZW5lKTtcbiAgICAgICAgICAgICAgICBzY2VuZS5mb2cgPSBvcmlnaW5hbEZvZztcbiAgICAgICAgICAgICAgICBzY2VuZS5iYWNrZ3JvdW5kID0gb3JpZ2luYWxCYWNrZ3JvdW5kO1xuICAgICAgICAgICAgICAgIHRoaXMuZ3JvdXBSZWYubmF0aXZlRWxlbWVudC52aXNpYmxlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBjb3VudCsrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=
|