angular-three-soba 2.0.0-beta.2 → 2.0.0-beta.21
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/billboard/billboard.d.ts +11 -7
- package/abstractions/detailed/detailed.d.ts +26 -0
- package/abstractions/edges/edges.d.ts +24 -12
- package/abstractions/grid/grid.d.ts +50 -0
- package/abstractions/index.d.ts +2 -7
- package/abstractions/text/text.d.ts +10 -5
- package/abstractions/text-3d/text-3d.d.ts +51 -41
- package/cameras/camera/camera-content.d.ts +1 -1
- package/cameras/camera/camera.d.ts +16 -13
- package/cameras/cube-camera/cube-camera.d.ts +50 -23
- package/cameras/index.d.ts +0 -1
- package/cameras/orthographic-camera/orthographic-camera.d.ts +29 -18
- package/cameras/perspective-camera/perspective-camera.d.ts +10 -1
- package/controls/orbit-controls/orbit-controls.d.ts +31 -12
- package/esm2022/abstractions/billboard/billboard.mjs +36 -33
- package/esm2022/abstractions/detailed/detailed.mjs +64 -0
- package/esm2022/abstractions/edges/edges.mjs +58 -63
- package/esm2022/abstractions/grid/grid.mjs +180 -0
- package/esm2022/abstractions/index.mjs +3 -8
- package/esm2022/abstractions/text/text.mjs +123 -124
- package/esm2022/abstractions/text-3d/text-3d.mjs +120 -115
- package/esm2022/cameras/camera/camera-content.mjs +6 -6
- package/esm2022/cameras/camera/camera.mjs +48 -42
- package/esm2022/cameras/cube-camera/cube-camera.mjs +129 -99
- package/esm2022/cameras/index.mjs +1 -2
- package/esm2022/cameras/orthographic-camera/orthographic-camera.mjs +78 -75
- package/esm2022/cameras/perspective-camera/perspective-camera.mjs +25 -26
- package/esm2022/controls/orbit-controls/orbit-controls.mjs +105 -85
- package/esm2022/gizmos/angular-three-soba-gizmos.mjs +5 -0
- package/esm2022/gizmos/gizmo-helper/gizmo-helper.mjs +197 -0
- package/esm2022/gizmos/gizmo-helper/gizmo-viewcube/constants.mjs +31 -0
- package/esm2022/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube-edge.mjs +93 -0
- package/esm2022/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube-face.mjs +150 -0
- package/esm2022/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube-input.mjs +66 -0
- package/esm2022/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube.mjs +71 -0
- package/esm2022/gizmos/gizmo-helper/gizmo-viewport/gizmo-viewport-axis.mjs +195 -0
- package/esm2022/gizmos/gizmo-helper/gizmo-viewport/gizmo-viewport.mjs +272 -0
- package/esm2022/gizmos/index.mjs +4 -0
- package/esm2022/loaders/gltf-loader/gltf-loader.mjs +3 -6
- package/esm2022/loaders/loader/loader.mjs +92 -87
- package/esm2022/loaders/progress/progress.mjs +29 -29
- package/esm2022/loaders/texture-loader/texture-loader.mjs +4 -4
- package/esm2022/materials/index.mjs +2 -1
- package/esm2022/materials/mesh-distort-material/mesh-distort-material.mjs +60 -51
- package/esm2022/materials/mesh-reflector-material/mesh-reflector-material.mjs +239 -255
- package/esm2022/materials/mesh-refraction-material/mesh-refraction-material.mjs +102 -99
- package/esm2022/materials/mesh-transmission-material/mesh-transmission-material.mjs +167 -146
- package/esm2022/materials/mesh-wobble-material/mesh-wobble-material.mjs +44 -42
- package/esm2022/materials/point-material/point-material.mjs +50 -0
- package/esm2022/misc/animations/animations.mjs +36 -32
- package/esm2022/misc/bake-shadows/bake-shadows.mjs +13 -13
- package/esm2022/misc/caustics/caustics.mjs +387 -0
- package/esm2022/misc/decal/decal.mjs +187 -0
- package/esm2022/misc/depth-buffer/depth-buffer.mjs +33 -35
- package/esm2022/misc/example/example.mjs +160 -0
- package/esm2022/misc/fbo/fbo.mjs +35 -35
- package/esm2022/misc/html/html-wrapper.mjs +478 -0
- package/esm2022/misc/html/html.mjs +304 -0
- package/esm2022/misc/index.mjs +10 -1
- package/esm2022/misc/sampler/sampler.mjs +142 -0
- package/esm2022/misc/shadow/shadow.mjs +111 -0
- package/esm2022/misc/stats-gl/stats-gl.mjs +61 -0
- package/esm2022/misc/trail/trail.mjs +209 -0
- package/esm2022/misc/trail-texture/inject-trail-texture.mjs +17 -0
- package/esm2022/misc/trail-texture/trail-texture.mjs +106 -0
- package/esm2022/modifiers/angular-three-soba-modifiers.mjs +5 -0
- package/esm2022/modifiers/curve-modifier/curve-modifier.mjs +64 -0
- package/esm2022/modifiers/index.mjs +2 -0
- package/esm2022/performances/adaptive-dpr/adaptive-dpr.mjs +44 -0
- package/esm2022/performances/adaptive-events/adaptive-events.mjs +27 -0
- package/esm2022/performances/angular-three-soba-performances.mjs +5 -0
- package/esm2022/performances/index.mjs +8 -0
- package/esm2022/performances/instances/instances.mjs +220 -0
- package/esm2022/performances/instances/position-mesh.mjs +52 -0
- package/esm2022/performances/points/points-input.mjs +64 -0
- package/esm2022/performances/points/points.mjs +326 -0
- package/esm2022/performances/points/position-point.mjs +54 -0
- package/esm2022/performances/segments/segment-object.mjs +9 -0
- package/esm2022/performances/segments/segments.mjs +182 -0
- package/esm2022/shaders/blur-pass/blur-pass.mjs +2 -2
- package/esm2022/shaders/caustics/caustics-material.mjs +130 -0
- package/esm2022/shaders/caustics/caustics-projection-material.mjs +31 -0
- package/esm2022/shaders/convolution-material/convolution-material.mjs +1 -1
- package/esm2022/shaders/discard-material/discard-material.mjs +1 -1
- package/esm2022/shaders/grid-material/grid-material.mjs +77 -0
- package/esm2022/shaders/index.mjs +6 -3
- package/esm2022/shaders/mesh-distort-material/mesh-distort-material.mjs +42 -41
- package/esm2022/shaders/mesh-reflector-material/mesh-reflector-material.mjs +2 -2
- package/esm2022/shaders/mesh-refraction-material/mesh-refraction-material.mjs +2 -2
- package/esm2022/shaders/mesh-transmission-material/mesh-transmission-material.mjs +4 -4
- package/esm2022/shaders/mesh-wobble-material/mesh-wobble-material.mjs +1 -1
- package/esm2022/shaders/shader-material/shader-material.mjs +1 -1
- package/esm2022/shaders/soft-shadow-material/soft-shadow-material.mjs +17 -25
- package/esm2022/shaders/sparkles-material/sparkles-material.mjs +32 -46
- package/esm2022/shaders/spot-light-material/spot-light-material.mjs +7 -7
- package/esm2022/shaders/star-field-material/star-field-material.mjs +3 -2
- package/esm2022/shaders/wireframe-material/wireframe-material.mjs +247 -0
- package/esm2022/staging/accumulative-shadows/accumulative-shadows.mjs +160 -176
- package/esm2022/staging/accumulative-shadows/progressive-light-map.mjs +1 -1
- package/esm2022/staging/accumulative-shadows/randomized-lights.mjs +126 -128
- package/esm2022/staging/backdrop/backdrop.mjs +77 -0
- package/esm2022/staging/bb-anchor/bb-anchor.mjs +69 -0
- package/esm2022/staging/bounds/bounds.mjs +144 -143
- package/esm2022/staging/camera-shake/camera-shake.mjs +86 -80
- package/esm2022/staging/center/center.mjs +129 -112
- package/esm2022/staging/cloud/cloud.mjs +118 -124
- package/esm2022/staging/contact-shadows/contact-shadows.mjs +131 -134
- package/esm2022/staging/environment/assets.mjs +12 -12
- package/esm2022/staging/environment/environment-cube.mjs +28 -30
- package/esm2022/staging/environment/environment-ground.mjs +17 -19
- package/esm2022/staging/environment/environment-input.mjs +98 -85
- package/esm2022/staging/environment/environment-map.mjs +33 -33
- package/esm2022/staging/environment/environment-portal.mjs +75 -97
- package/esm2022/staging/environment/environment.mjs +34 -51
- package/esm2022/staging/environment/utils.mjs +37 -15
- package/esm2022/staging/float/float.mjs +70 -58
- package/esm2022/staging/index.mjs +7 -3
- package/esm2022/staging/matcap-texture/matcap-texture.mjs +64 -0
- package/esm2022/staging/normal-texture/normal-texture.mjs +53 -0
- package/esm2022/staging/sky/sky.mjs +85 -80
- package/esm2022/staging/sparkles/sparkles.mjs +108 -105
- package/esm2022/staging/spot-light/shadow-mesh-input.mjs +63 -0
- package/esm2022/staging/spot-light/shadow-mesh.mjs +266 -0
- package/esm2022/staging/spot-light/spot-light-input.mjs +67 -58
- package/esm2022/staging/spot-light/spot-light.mjs +51 -64
- package/esm2022/staging/spot-light/volumetric-mesh.mjs +67 -70
- package/esm2022/staging/stage/stage.mjs +305 -290
- package/esm2022/staging/stars/stars.mjs +101 -102
- package/esm2022/staging/wireframe/wireframe-input.mjs +191 -0
- package/esm2022/staging/wireframe/wireframe.mjs +228 -0
- package/esm2022/utils/angular-three-soba-utils.mjs +5 -0
- package/esm2022/utils/content/content.mjs +15 -0
- package/esm2022/utils/index.mjs +2 -0
- package/fesm2022/angular-three-soba-abstractions.mjs +514 -1947
- package/fesm2022/angular-three-soba-abstractions.mjs.map +1 -1
- package/fesm2022/angular-three-soba-cameras.mjs +302 -259
- package/fesm2022/angular-three-soba-cameras.mjs.map +1 -1
- package/fesm2022/angular-three-soba-controls.mjs +104 -83
- package/fesm2022/angular-three-soba-controls.mjs.map +1 -1
- package/fesm2022/angular-three-soba-gizmos.mjs +1043 -0
- package/fesm2022/angular-three-soba-gizmos.mjs.map +1 -0
- package/fesm2022/angular-three-soba-loaders.mjs +121 -117
- package/fesm2022/angular-three-soba-loaders.mjs.map +1 -1
- package/fesm2022/angular-three-soba-materials.mjs +662 -592
- package/fesm2022/angular-three-soba-materials.mjs.map +1 -1
- package/fesm2022/angular-three-soba-misc.mjs +2214 -105
- package/fesm2022/angular-three-soba-misc.mjs.map +1 -1
- package/fesm2022/angular-three-soba-modifiers.mjs +71 -0
- package/fesm2022/angular-three-soba-modifiers.mjs.map +1 -0
- package/fesm2022/angular-three-soba-performances.mjs +956 -0
- package/fesm2022/angular-three-soba-performances.mjs.map +1 -0
- package/fesm2022/angular-three-soba-shaders.mjs +549 -252
- package/fesm2022/angular-three-soba-shaders.mjs.map +1 -1
- package/fesm2022/angular-three-soba-staging.mjs +2899 -2563
- package/fesm2022/angular-three-soba-staging.mjs.map +1 -1
- package/fesm2022/angular-three-soba-utils.mjs +22 -0
- package/fesm2022/angular-three-soba-utils.mjs.map +1 -0
- package/gizmos/README.md +3 -0
- package/gizmos/gizmo-helper/gizmo-helper.d.ts +69 -0
- package/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube-edge.d.ts +22 -0
- package/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube-face.d.ts +29 -0
- package/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube-input.d.ts +33 -0
- package/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube.d.ts +10 -0
- package/gizmos/gizmo-helper/gizmo-viewport/gizmo-viewport-axis.d.ts +40 -0
- package/gizmos/gizmo-helper/gizmo-viewport/gizmo-viewport.d.ts +30 -0
- package/gizmos/index.d.ts +3 -0
- package/loaders/gltf-loader/gltf-loader.d.ts +4 -3
- package/loaders/loader/loader.d.ts +19 -17
- package/loaders/progress/progress.d.ts +1 -1
- package/loaders/texture-loader/texture-loader.d.ts +2 -2
- package/materials/index.d.ts +1 -0
- package/materials/mesh-distort-material/mesh-distort-material.d.ts +25 -15
- package/materials/mesh-reflector-material/mesh-reflector-material.d.ts +74 -56
- package/materials/mesh-refraction-material/mesh-refraction-material.d.ts +33 -21
- package/materials/mesh-transmission-material/mesh-transmission-material.d.ts +55 -39
- package/materials/mesh-wobble-material/mesh-wobble-material.d.ts +19 -10
- package/materials/point-material/point-material.d.ts +24 -0
- package/metadata.json +1 -0
- package/misc/animations/animations.d.ts +6 -4
- package/misc/caustics/caustics.d.ts +87 -0
- package/misc/decal/decal.d.ts +49 -0
- package/misc/depth-buffer/depth-buffer.d.ts +2 -2
- package/misc/example/example.d.ts +81 -0
- package/misc/fbo/fbo.d.ts +2 -2
- package/misc/html/html-wrapper.d.ts +559 -0
- package/misc/html/html.d.ts +214 -0
- package/misc/index.d.ts +9 -0
- package/misc/sampler/sampler.d.ts +67 -0
- package/misc/shadow/shadow.d.ts +37 -0
- package/misc/stats-gl/stats-gl.d.ts +24 -0
- package/misc/trail/trail.d.ts +57 -0
- package/misc/trail-texture/inject-trail-texture.d.ts +9 -0
- package/misc/trail-texture/trail-texture.d.ts +50 -0
- package/modifiers/README.md +3 -0
- package/modifiers/curve-modifier/curve-modifier.d.ts +23 -0
- package/modifiers/index.d.ts +1 -0
- package/package.json +31 -16
- package/performances/README.md +3 -0
- package/performances/adaptive-dpr/adaptive-dpr.d.ts +14 -0
- package/{performance/adaptive → performances/adaptive-events}/adaptive-events.d.ts +3 -0
- package/performances/index.d.ts +7 -0
- package/performances/instances/instances.d.ts +79 -0
- package/{performance → performances}/instances/position-mesh.d.ts +1 -1
- package/performances/points/points-input.d.ts +32 -0
- package/performances/points/points.d.ts +92 -0
- package/performances/points/position-point.d.ts +11 -0
- package/performances/segments/segment-object.d.ts +7 -0
- package/performances/segments/segments.d.ts +124 -0
- package/shaders/grid-material/grid-material.d.ts +37 -0
- package/shaders/index.d.ts +5 -2
- package/shaders/mesh-distort-material/mesh-distort-material.d.ts +147 -2
- package/shaders/mesh-transmission-material/mesh-transmission-material.d.ts +1 -1
- package/shaders/shader-material/shader-material.d.ts +2 -2
- package/shaders/soft-shadow-material/soft-shadow-material.d.ts +10 -1
- package/shaders/sparkles-material/sparkles-material.d.ts +15 -1
- package/shaders/spot-light-material/spot-light-material.d.ts +11 -2
- package/shaders/star-field-material/star-field-material.d.ts +11 -1
- package/shaders/wireframe-material/wireframe-material.d.ts +58 -0
- package/staging/accumulative-shadows/accumulative-shadows.d.ts +89 -39
- package/staging/accumulative-shadows/randomized-lights.d.ts +40 -27
- package/staging/backdrop/backdrop.d.ts +30 -0
- package/staging/bb-anchor/bb-anchor.d.ts +27 -0
- package/staging/bounds/bounds.d.ts +100 -24
- package/staging/camera-shake/camera-shake.d.ts +30 -19
- package/staging/center/center.d.ts +43 -35
- package/staging/cloud/cloud.d.ts +26 -23
- package/staging/contact-shadows/contact-shadows.d.ts +41 -28
- package/staging/environment/assets.d.ts +9 -9
- package/staging/environment/environment-cube.d.ts +9 -5
- package/staging/environment/environment-ground.d.ts +7 -7
- package/staging/environment/environment-input.d.ts +37 -37
- package/staging/environment/environment-map.d.ts +10 -5
- package/staging/environment/environment-portal.d.ts +10 -5
- package/staging/environment/environment.d.ts +0 -4
- package/staging/environment/utils.d.ts +2 -2
- package/staging/float/float.d.ts +14 -10
- package/staging/index.d.ts +6 -2
- package/staging/matcap-texture/matcap-texture.d.ts +13 -0
- package/staging/normal-texture/normal-texture.d.ts +16 -0
- package/staging/sky/sky.d.ts +28 -21
- package/staging/sparkles/sparkles.d.ts +36 -22
- package/staging/spot-light/shadow-mesh-input.d.ts +29 -0
- package/staging/spot-light/shadow-mesh.d.ts +37 -0
- package/staging/spot-light/spot-light-input.d.ts +25 -25
- package/staging/spot-light/spot-light.d.ts +31 -15
- package/staging/spot-light/volumetric-mesh.d.ts +15 -9
- package/staging/stage/stage.d.ts +89 -65
- package/staging/stars/stars.d.ts +28 -17
- package/staging/wireframe/wireframe-input.d.ts +65 -0
- package/staging/wireframe/wireframe.d.ts +28 -0
- package/utils/README.md +3 -0
- package/utils/content/content.d.ts +8 -0
- package/utils/index.d.ts +1 -0
- package/web-types.json +1 -0
- package/abstractions/catmull-rom-line/catmull-rom-line.d.ts +0 -25
- package/abstractions/cubic-bezier-line/cubic-bezier-line.d.ts +0 -25
- package/abstractions/gizmo-helper/gizmo-helper.d.ts +0 -34
- package/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-edge.d.ts +0 -22
- package/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-face.d.ts +0 -30
- package/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-inputs.d.ts +0 -32
- package/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube.d.ts +0 -14
- package/abstractions/gizmo-helper/gizmo-viewport/gizmo-viewport-axis.d.ts +0 -47
- package/abstractions/gizmo-helper/gizmo-viewport/gizmo-viewport.d.ts +0 -40
- package/abstractions/line/line-input.d.ts +0 -42
- package/abstractions/line/line.d.ts +0 -35
- package/abstractions/quadratic-bezier-line/quadratic-bezier-line.d.ts +0 -23
- package/esm2022/abstractions/catmull-rom-line/catmull-rom-line.mjs +0 -131
- package/esm2022/abstractions/cubic-bezier-line/cubic-bezier-line.mjs +0 -113
- package/esm2022/abstractions/gizmo-helper/gizmo-helper.mjs +0 -210
- package/esm2022/abstractions/gizmo-helper/gizmo-viewcube/constants.mjs +0 -31
- package/esm2022/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-edge.mjs +0 -95
- package/esm2022/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-face.mjs +0 -155
- package/esm2022/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-inputs.mjs +0 -62
- package/esm2022/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube.mjs +0 -80
- package/esm2022/abstractions/gizmo-helper/gizmo-viewport/gizmo-viewport-axis.mjs +0 -206
- package/esm2022/abstractions/gizmo-helper/gizmo-viewport/gizmo-viewport.mjs +0 -273
- package/esm2022/abstractions/line/line-input.mjs +0 -113
- package/esm2022/abstractions/line/line.mjs +0 -165
- package/esm2022/abstractions/quadratic-bezier-line/quadratic-bezier-line.mjs +0 -128
- package/esm2022/performance/adaptive/adaptive-dpr.mjs +0 -46
- package/esm2022/performance/adaptive/adaptive-events.mjs +0 -31
- package/esm2022/performance/angular-three-soba-performance.mjs +0 -5
- package/esm2022/performance/detailed/detailed.mjs +0 -61
- package/esm2022/performance/index.mjs +0 -7
- package/esm2022/performance/instances/instance.mjs +0 -48
- package/esm2022/performance/instances/instances.mjs +0 -189
- package/esm2022/performance/instances/position-mesh.mjs +0 -52
- package/esm2022/performance/stats/stats.mjs +0 -79
- package/esm2022/shaders/caustics-material/caustics-material.mjs +0 -128
- package/esm2022/shaders/caustics-material/caustics-projection-material.mjs +0 -33
- package/esm2022/staging/caustics/caustisc.mjs +0 -384
- package/esm2022/staging/spot-light/spot-light-shadow-mesh-input.mjs +0 -57
- package/esm2022/staging/spot-light/spot-light-shadow-mesh.mjs +0 -256
- package/fesm2022/angular-three-soba-performance.mjs +0 -487
- package/fesm2022/angular-three-soba-performance.mjs.map +0 -1
- package/performance/README.md +0 -3
- package/performance/adaptive/adaptive-dpr.d.ts +0 -8
- package/performance/detailed/detailed.d.ts +0 -20
- package/performance/index.d.ts +0 -6
- package/performance/instances/instance.d.ts +0 -9
- package/performance/instances/instances.d.ts +0 -35
- package/performance/stats/stats.d.ts +0 -18
- package/plugin/generators.json +0 -19
- package/plugin/libs/plugin/README.md +0 -11
- package/plugin/package.json +0 -9
- package/plugin/src/generators/init/compat.d.ts +0 -2
- package/plugin/src/generators/init/compat.js +0 -6
- package/plugin/src/generators/init/compat.js.map +0 -1
- package/plugin/src/generators/init/init.d.ts +0 -4
- package/plugin/src/generators/init/init.js +0 -22
- package/plugin/src/generators/init/init.js.map +0 -1
- package/plugin/src/generators/init/schema.json +0 -6
- package/plugin/src/index.d.ts +0 -1
- package/plugin/src/index.js +0 -6
- package/plugin/src/index.js.map +0 -1
- package/staging/caustics/caustisc.d.ts +0 -70
- package/staging/spot-light/spot-light-shadow-mesh-input.d.ts +0 -29
- package/staging/spot-light/spot-light-shadow-mesh.d.ts +0 -38
- /package/{abstractions → gizmos}/gizmo-helper/gizmo-viewcube/constants.d.ts +0 -0
- /package/shaders/{caustics-material → caustics}/caustics-material.d.ts +0 -0
- /package/shaders/{caustics-material → caustics}/caustics-projection-material.d.ts +0 -0
|
@@ -1,42 +1,14 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { CUSTOM_ELEMENTS_SCHEMA, Component, Input, computed } from '@angular/core';
|
|
2
|
+
import { NgtArgs, extend, injectNgtRef, signalStore } from 'angular-three';
|
|
3
3
|
import { StarFieldMaterial } from 'angular-three-soba/shaders';
|
|
4
4
|
import * as THREE from 'three';
|
|
5
5
|
import { BufferAttribute, BufferGeometry, Points } from 'three';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
7
|
extend({ Points, BufferGeometry, BufferAttribute });
|
|
8
|
-
const genStar = (r) =>
|
|
9
|
-
|
|
10
|
-
};
|
|
11
|
-
class NgtsStars extends NgtSignalStore {
|
|
12
|
-
set radius(radius) {
|
|
13
|
-
this.set({ radius });
|
|
14
|
-
}
|
|
15
|
-
set depth(depth) {
|
|
16
|
-
this.set({ depth });
|
|
17
|
-
}
|
|
18
|
-
set count(count) {
|
|
19
|
-
this.set({ count });
|
|
20
|
-
}
|
|
21
|
-
set factor(factor) {
|
|
22
|
-
this.set({ factor });
|
|
23
|
-
}
|
|
24
|
-
set saturation(saturation) {
|
|
25
|
-
this.set({ saturation });
|
|
26
|
-
}
|
|
27
|
-
set starsFade(fade) {
|
|
28
|
-
this.set({ fade });
|
|
29
|
-
}
|
|
30
|
-
set speed(speed) {
|
|
31
|
-
this.set({ speed });
|
|
32
|
-
}
|
|
33
|
-
#count;
|
|
34
|
-
#depth;
|
|
35
|
-
#factor;
|
|
36
|
-
#radius;
|
|
37
|
-
#saturation;
|
|
8
|
+
const genStar = (r) => new THREE.Vector3().setFromSpherical(new THREE.Spherical(r, Math.acos(1 - Math.random() * 2), Math.random() * 2 * Math.PI));
|
|
9
|
+
export class NgtsStars {
|
|
38
10
|
constructor() {
|
|
39
|
-
|
|
11
|
+
this.inputs = signalStore({
|
|
40
12
|
radius: 100,
|
|
41
13
|
depth: 50,
|
|
42
14
|
count: 5000,
|
|
@@ -48,23 +20,23 @@ class NgtsStars extends NgtSignalStore {
|
|
|
48
20
|
this.AdditiveBlending = THREE.AdditiveBlending;
|
|
49
21
|
this.material = new StarFieldMaterial();
|
|
50
22
|
this.starsRef = injectNgtRef();
|
|
51
|
-
this
|
|
52
|
-
this
|
|
53
|
-
this
|
|
54
|
-
this
|
|
55
|
-
this
|
|
56
|
-
this.fade = this.select('fade');
|
|
57
|
-
this.
|
|
23
|
+
this.count = this.inputs.select('count');
|
|
24
|
+
this.depth = this.inputs.select('depth');
|
|
25
|
+
this.factor = this.inputs.select('factor');
|
|
26
|
+
this.radius = this.inputs.select('radius');
|
|
27
|
+
this.saturation = this.inputs.select('saturation');
|
|
28
|
+
this.fade = this.inputs.select('fade');
|
|
29
|
+
this.attributes = computed(() => {
|
|
58
30
|
const positions = [];
|
|
59
31
|
const colors = [];
|
|
60
|
-
const sizes = Array.from({ length: this
|
|
32
|
+
const sizes = Array.from({ length: this.count() }, () => (0.5 + 0.5 * Math.random()) * this.factor());
|
|
61
33
|
const color = new THREE.Color();
|
|
62
|
-
let r = this
|
|
63
|
-
const increment = this
|
|
64
|
-
for (let i = 0; i < this
|
|
34
|
+
let r = this.radius() + this.depth();
|
|
35
|
+
const increment = this.depth() / this.count();
|
|
36
|
+
for (let i = 0; i < this.count(); i++) {
|
|
65
37
|
r -= increment * Math.random();
|
|
66
38
|
positions.push(...genStar(r).toArray());
|
|
67
|
-
color.setHSL(i / this
|
|
39
|
+
color.setHSL(i / this.count(), this.saturation(), 0.9);
|
|
68
40
|
colors.push(color.r, color.g, color.b);
|
|
69
41
|
}
|
|
70
42
|
return {
|
|
@@ -73,76 +45,103 @@ class NgtsStars extends NgtSignalStore {
|
|
|
73
45
|
sizes: new Float32Array(sizes),
|
|
74
46
|
};
|
|
75
47
|
});
|
|
76
|
-
injectBeforeRender(this.#onBeforeRender.bind(this));
|
|
77
48
|
}
|
|
78
|
-
|
|
79
|
-
this.
|
|
49
|
+
set _radius(radius) {
|
|
50
|
+
this.inputs.set({ radius });
|
|
51
|
+
}
|
|
52
|
+
set _depth(depth) {
|
|
53
|
+
this.inputs.set({ depth });
|
|
54
|
+
}
|
|
55
|
+
set _count(count) {
|
|
56
|
+
this.inputs.set({ count });
|
|
57
|
+
}
|
|
58
|
+
set _factor(factor) {
|
|
59
|
+
this.inputs.set({ factor });
|
|
60
|
+
}
|
|
61
|
+
set _saturation(saturation) {
|
|
62
|
+
this.inputs.set({ saturation });
|
|
63
|
+
}
|
|
64
|
+
set starsFade(fade) {
|
|
65
|
+
this.inputs.set({ fade });
|
|
66
|
+
}
|
|
67
|
+
set _speed(speed) {
|
|
68
|
+
this.inputs.set({ speed });
|
|
69
|
+
}
|
|
70
|
+
onBeforeRender({ object, state }) {
|
|
71
|
+
object.uniforms['time'].value = state.clock.getElapsedTime() * this.inputs.get('speed');
|
|
80
72
|
}
|
|
81
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.
|
|
82
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
73
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: NgtsStars, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
74
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: NgtsStars, isStandalone: true, selector: "ngts-stars", inputs: { starsRef: "starsRef", _radius: ["radius", "_radius"], _depth: ["depth", "_depth"], _count: ["count", "_count"], _factor: ["factor", "_factor"], _saturation: ["saturation", "_saturation"], starsFade: ["fade", "starsFade"], _speed: ["speed", "_speed"] }, ngImport: i0, template: `
|
|
75
|
+
<ngt-points [ref]="starsRef">
|
|
76
|
+
<ngt-buffer-geometry>
|
|
77
|
+
<ngt-buffer-attribute attach="attributes.position" *args="[attributes().positions, 3]" />
|
|
78
|
+
<ngt-buffer-attribute attach="attributes.color" *args="[attributes().colors, 3]" />
|
|
79
|
+
<ngt-buffer-attribute attach="attributes.size" *args="[attributes().sizes, 1]" />
|
|
80
|
+
</ngt-buffer-geometry>
|
|
81
|
+
<ngt-primitive
|
|
82
|
+
*args="[material]"
|
|
83
|
+
attach="material"
|
|
84
|
+
[blending]="AdditiveBlending"
|
|
85
|
+
[depthWrite]="false"
|
|
86
|
+
[transparent]="true"
|
|
87
|
+
[vertexColors]="true"
|
|
88
|
+
(beforeRender)="onBeforeRender($event)"
|
|
89
|
+
>
|
|
90
|
+
<ngt-value attach="uniforms.fade.value" [rawValue]="fade()" />
|
|
91
|
+
</ngt-primitive>
|
|
92
|
+
</ngt-points>
|
|
93
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }] }); }
|
|
101
94
|
}
|
|
102
|
-
|
|
103
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgtsStars, decorators: [{
|
|
95
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: NgtsStars, decorators: [{
|
|
104
96
|
type: Component,
|
|
105
97
|
args: [{
|
|
106
98
|
selector: 'ngts-stars',
|
|
107
99
|
standalone: true,
|
|
108
100
|
template: `
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
101
|
+
<ngt-points [ref]="starsRef">
|
|
102
|
+
<ngt-buffer-geometry>
|
|
103
|
+
<ngt-buffer-attribute attach="attributes.position" *args="[attributes().positions, 3]" />
|
|
104
|
+
<ngt-buffer-attribute attach="attributes.color" *args="[attributes().colors, 3]" />
|
|
105
|
+
<ngt-buffer-attribute attach="attributes.size" *args="[attributes().sizes, 1]" />
|
|
106
|
+
</ngt-buffer-geometry>
|
|
107
|
+
<ngt-primitive
|
|
108
|
+
*args="[material]"
|
|
109
|
+
attach="material"
|
|
110
|
+
[blending]="AdditiveBlending"
|
|
111
|
+
[depthWrite]="false"
|
|
112
|
+
[transparent]="true"
|
|
113
|
+
[vertexColors]="true"
|
|
114
|
+
(beforeRender)="onBeforeRender($event)"
|
|
115
|
+
>
|
|
116
|
+
<ngt-value attach="uniforms.fade.value" [rawValue]="fade()" />
|
|
117
|
+
</ngt-primitive>
|
|
118
|
+
</ngt-points>
|
|
119
|
+
`,
|
|
127
120
|
imports: [NgtArgs],
|
|
128
121
|
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
129
122
|
}]
|
|
130
|
-
}],
|
|
131
|
-
type: Input
|
|
132
|
-
}], radius: [{
|
|
133
|
-
type: Input
|
|
134
|
-
}], depth: [{
|
|
135
|
-
type: Input
|
|
136
|
-
}], count: [{
|
|
137
|
-
type: Input
|
|
138
|
-
}], factor: [{
|
|
139
|
-
type: Input
|
|
140
|
-
}], saturation: [{
|
|
123
|
+
}], propDecorators: { starsRef: [{
|
|
141
124
|
type: Input
|
|
125
|
+
}], _radius: [{
|
|
126
|
+
type: Input,
|
|
127
|
+
args: [{ alias: 'radius' }]
|
|
128
|
+
}], _depth: [{
|
|
129
|
+
type: Input,
|
|
130
|
+
args: [{ alias: 'depth' }]
|
|
131
|
+
}], _count: [{
|
|
132
|
+
type: Input,
|
|
133
|
+
args: [{ alias: 'count' }]
|
|
134
|
+
}], _factor: [{
|
|
135
|
+
type: Input,
|
|
136
|
+
args: [{ alias: 'factor' }]
|
|
137
|
+
}], _saturation: [{
|
|
138
|
+
type: Input,
|
|
139
|
+
args: [{ alias: 'saturation' }]
|
|
142
140
|
}], starsFade: [{
|
|
143
141
|
type: Input,
|
|
144
142
|
args: ['fade']
|
|
145
|
-
}],
|
|
146
|
-
type: Input
|
|
143
|
+
}], _speed: [{
|
|
144
|
+
type: Input,
|
|
145
|
+
args: [{ alias: 'speed' }]
|
|
147
146
|
}] } });
|
|
148
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvc3RhZ2luZy9zcmMvc3RhcnMvc3RhcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsc0JBQXNCLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25GLE9BQU8sRUFBRSxNQUFNLEVBQUUsa0JBQWtCLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQXVCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZILE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQy9ELE9BQU8sS0FBSyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQy9CLE9BQU8sRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLE9BQU8sQ0FBQzs7QUFFaEUsTUFBTSxDQUFDLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDO0FBRXBELE1BQU0sT0FBTyxHQUFHLENBQUMsQ0FBUyxFQUFFLEVBQUU7SUFDMUIsT0FBTyxJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FDdkMsSUFBSSxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQ3hGLENBQUM7QUFDTixDQUFDLENBQUM7QUFZRixNQXlCYSxTQUFVLFNBQVEsY0FBOEI7SUFNekQsSUFBYSxNQUFNLENBQUMsTUFBYztRQUM5QixJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQs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RSxDQUFDLE9BQU8sQ0FBQztvQkFDbEIsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7aUJBQ3BDOzBFQUtZLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRU8sTUFBTTtzQkFBbEIsS0FBSztnQkFJTyxLQUFLO3NCQUFqQixLQUFLO2dCQUlPLEtBQUs7c0JBQWpCLEtBQUs7Z0JBSU8sTUFBTTtzQkFBbEIsS0FBSztnQkFJTyxVQUFVO3NCQUF0QixLQUFLO2dCQUlhLFNBQVM7c0JBQTNCLEtBQUs7dUJBQUMsTUFBTTtnQkFJQSxLQUFLO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGV4dGVuZCwgaW5qZWN0QmVmb3JlUmVuZGVyLCBpbmplY3ROZ3RSZWYsIE5ndEFyZ3MsIE5ndFNpZ25hbFN0b3JlLCB0eXBlIE5ndFJlbmRlclN0YXRlIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBTdGFyRmllbGRNYXRlcmlhbCB9IGZyb20gJ2FuZ3VsYXItdGhyZWUtc29iYS9zaGFkZXJzJztcbmltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcbmltcG9ydCB7IEJ1ZmZlckF0dHJpYnV0ZSwgQnVmZmVyR2VvbWV0cnksIFBvaW50cyB9IGZyb20gJ3RocmVlJztcblxuZXh0ZW5kKHsgUG9pbnRzLCBCdWZmZXJHZW9tZXRyeSwgQnVmZmVyQXR0cmlidXRlIH0pO1xuXG5jb25zdCBnZW5TdGFyID0gKHI6IG51bWJlcikgPT4ge1xuICAgIHJldHVybiBuZXcgVEhSRUUuVmVjdG9yMygpLnNldEZyb21TcGhlcmljYWwoXG4gICAgICAgIG5ldyBUSFJFRS5TcGhlcmljYWwociwgTWF0aC5hY29zKDEgLSBNYXRoLnJhbmRvbSgpICogMiksIE1hdGgucmFuZG9tKCkgKiAyICogTWF0aC5QSSlcbiAgICApO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBOZ3RzU3RhcnNTdGF0ZSB7XG4gICAgcmFkaXVzOiBudW1iZXI7XG4gICAgZGVwdGg6IG51bWJlcjtcbiAgICBjb3VudDogbnVtYmVyO1xuICAgIGZhY3RvcjogbnVtYmVyO1xuICAgIHNhdHVyYXRpb246IG51bWJlcjtcbiAgICBmYWRlOiBib29sZWFuO1xuICAgIHNwZWVkOiBudW1iZXI7XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmd0cy1zdGFycycsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8bmd0LXBvaW50cyBbcmVmXT1cInN0YXJzUmVmXCI+XG4gICAgICAgICAgICA8bmd0LWJ1ZmZlci1nZW9tZXRyeT5cbiAgICAgICAgICAgICAgICA8bmd0LWJ1ZmZlci1hdHRyaWJ1dGUgYXR0YWNoPVwiYXR0cmlidXRlcy5wb3NpdGlvblwiICphcmdzPVwiW2J1ZmZlckF0dHJpYnV0ZXMoKS5wb3NpdGlvbnMsIDNdXCIgLz5cbiAgICAgICAgICAgICAgICA8bmd0LWJ1ZmZlci1hdHRyaWJ1dGUgYXR0YWNoPVwiYXR0cmlidXRlcy5jb2xvclwiICphcmdzPVwiW2J1ZmZlckF0dHJpYnV0ZXMoKS5jb2xvcnMsIDNdXCIgLz5cbiAgICAgICAgICAgICAgICA8bmd0LWJ1ZmZlci1hdHRyaWJ1dGUgYXR0YWNoPVwiYXR0cmlidXRlcy5zaXplXCIgKmFyZ3M9XCJbYnVmZmVyQXR0cmlidXRlcygpLnNpemVzLCAxXVwiIC8+XG4gICAgICAgICAgICA8L25ndC1idWZmZXItZ2VvbWV0cnk+XG4gICAgICAgICAgICA8bmd0LXByaW1pdGl2ZVxuICAgICAgICAgICAgICAgICphcmdzPVwiW21hdGVyaWFsXVwiXG4gICAgICAgICAgICAgICAgYXR0YWNoPVwibWF0ZXJpYWxcIlxuICAgICAgICAgICAgICAgIFtibGVuZGluZ109XCJBZGRpdGl2ZUJsZW5kaW5nXCJcbiAgICAgICAgICAgICAgICBbZGVwdGhXcml0ZV09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgW3RyYW5zcGFyZW50XT1cInRydWVcIlxuICAgICAgICAgICAgICAgIFt2ZXJ0ZXhDb2xvcnNdPVwidHJ1ZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG5ndC12YWx1ZSBhdHRhY2g9XCJ1bmlmb3Jtcy5mYWRlLnZhbHVlXCIgW3Jhd1ZhbHVlXT1cImZhZGUoKVwiIC8+XG4gICAgICAgICAgICA8L25ndC1wcmltaXRpdmU+XG4gICAgICAgIDwvbmd0LXBvaW50cz5cbiAgICBgLFxuICAgIGltcG9ydHM6IFtOZ3RBcmdzXSxcbiAgICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHNTdGFycyBleHRlbmRzIE5ndFNpZ25hbFN0b3JlPE5ndHNTdGFyc1N0YXRlPiB7XG4gICAgcmVhZG9ubHkgQWRkaXRpdmVCbGVuZGluZyA9IFRIUkVFLkFkZGl0aXZlQmxlbmRpbmc7XG4gICAgcmVhZG9ubHkgbWF0ZXJpYWwgPSBuZXcgU3RhckZpZWxkTWF0ZXJpYWwoKTtcblxuICAgIEBJbnB1dCgpIHN0YXJzUmVmID0gaW5qZWN0Tmd0UmVmPFBvaW50cz4oKTtcblxuICAgIEBJbnB1dCgpIHNldCByYWRpdXMocmFkaXVzOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZXQoeyByYWRpdXMgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGRlcHRoKGRlcHRoOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBkZXB0aCB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgY291bnQoY291bnQ6IG51bWJlcikge1xuICAgICAgICB0aGlzLnNldCh7IGNvdW50IH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBmYWN0b3IoZmFjdG9yOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBmYWN0b3IgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IHNhdHVyYXRpb24oc2F0dXJhdGlvbjogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgc2F0dXJhdGlvbiB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoJ2ZhZGUnKSBzZXQgc3RhcnNGYWRlKGZhZGU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5zZXQoeyBmYWRlIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBzcGVlZChzcGVlZDogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgc3BlZWQgfSk7XG4gICAgfVxuXG4gICAgcmVhZG9ubHkgI2NvdW50ID0gdGhpcy5zZWxlY3QoJ2NvdW50Jyk7XG4gICAgcmVhZG9ubHkgI2RlcHRoID0gdGhpcy5zZWxlY3QoJ2RlcHRoJyk7XG4gICAgcmVhZG9ubHkgI2ZhY3RvciA9IHRoaXMuc2VsZWN0KCdmYWN0b3InKTtcbiAgICByZWFkb25seSAjcmFkaXVzID0gdGhpcy5zZWxlY3QoJ3JhZGl1cycpO1xuICAgIHJlYWRvbmx5ICNzYXR1cmF0aW9uID0gdGhpcy5zZWxlY3QoJ3NhdHVyYXRpb24nKTtcblxuICAgIHJlYWRvbmx5IGZhZGUgPSB0aGlzLnNlbGVjdCgnZmFkZScpO1xuICAgIHJlYWRvbmx5IGJ1ZmZlckF0dHJpYnV0ZXMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHBvc2l0aW9uczogbnVtYmVyW10gPSBbXTtcbiAgICAgICAgY29uc3QgY29sb3JzOiBudW1iZXJbXSA9IFtdO1xuICAgICAgICBjb25zdCBzaXplcyA9IEFycmF5LmZyb20oeyBsZW5ndGg6IHRoaXMuI2NvdW50KCkgfSwgKCkgPT4gKDAuNSArIDAuNSAqIE1hdGgucmFuZG9tKCkpICogdGhpcy4jZmFjdG9yKCkpO1xuICAgICAgICBjb25zdCBjb2xvciA9IG5ldyBUSFJFRS5Db2xvcigpO1xuICAgICAgICBsZXQgciA9IHRoaXMuI3JhZGl1cygpICsgdGhpcy4jZGVwdGgoKTtcbiAgICAgICAgY29uc3QgaW5jcmVtZW50ID0gdGhpcy4jZGVwdGgoKSAvIHRoaXMuI2NvdW50KCk7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy4jY291bnQoKTsgaSsrKSB7XG4gICAgICAgICAgICByIC09IGluY3JlbWVudCAqIE1hdGgucmFuZG9tKCk7XG4gICAgICAgICAgICBwb3NpdGlvbnMucHVzaCguLi5nZW5TdGFyKHIpLnRvQXJyYXkoKSk7XG4gICAgICAgICAgICBjb2xvci5zZXRIU0woaSAvIHRoaXMuI2NvdW50KCksIHRoaXMuI3NhdHVyYXRpb24oKSwgMC45KTtcbiAgICAgICAgICAgIGNvbG9ycy5wdXNoKGNvbG9yLnIsIGNvbG9yLmcsIGNvbG9yLmIpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBwb3NpdGlvbnM6IG5ldyBGbG9hdDMyQXJyYXkocG9zaXRpb25zKSxcbiAgICAgICAgICAgIGNvbG9yczogbmV3IEZsb2F0MzJBcnJheShjb2xvcnMpLFxuICAgICAgICAgICAgc2l6ZXM6IG5ldyBGbG9hdDMyQXJyYXkoc2l6ZXMpLFxuICAgICAgICB9O1xuICAgIH0pO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIHJhZGl1czogMTAwLFxuICAgICAgICAgICAgZGVwdGg6IDUwLFxuICAgICAgICAgICAgY291bnQ6IDUwMDAsXG4gICAgICAgICAgICBzYXR1cmF0aW9uOiAwLFxuICAgICAgICAgICAgZmFjdG9yOiA0LFxuICAgICAgICAgICAgZmFkZTogZmFsc2UsXG4gICAgICAgICAgICBzcGVlZDogMSxcbiAgICAgICAgfSk7XG4gICAgICAgIGluamVjdEJlZm9yZVJlbmRlcih0aGlzLiNvbkJlZm9yZVJlbmRlci5iaW5kKHRoaXMpKTtcbiAgICB9XG5cbiAgICAjb25CZWZvcmVSZW5kZXIoeyBjbG9jayB9OiBOZ3RSZW5kZXJTdGF0ZSkge1xuICAgICAgICB0aGlzLm1hdGVyaWFsLnVuaWZvcm1zWyd0aW1lJ10udmFsdWUgPSBjbG9jay5nZXRFbGFwc2VkVGltZSgpICogdGhpcy5nZXQoJ3NwZWVkJyk7XG4gICAgfVxufVxuIl19
|
|
147
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvc3RhZ2luZy9zcmMvc3RhcnMvc3RhcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25GLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQTZCLE1BQU0sZUFBZSxDQUFDO0FBQ3RHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQy9ELE9BQU8sS0FBSyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQy9CLE9BQU8sRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLE9BQU8sQ0FBQzs7QUFFaEUsTUFBTSxDQUFDLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDO0FBa0JwRCxNQUFNLE9BQU8sR0FBRyxDQUFDLENBQVMsRUFBRSxFQUFFLENBQzdCLElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLGdCQUFnQixDQUNuQyxJQUFJLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FDckYsQ0FBQztBQTRCSCxNQUFNLE9BQU8sU0FBUztJQTFCdEI7UUEyQlMsV0FBTSxHQUFHLFdBQVcsQ0FBaUI7WUFDNUMsTUFBTSxFQUFFLEdBQUc7WUFDWCxLQUFLLEVBQUUsRUFBRTtZQUNULEtBQUssRUFBRSxJQUFJO1lBQ1gsVUFBVSxFQUFFLENBQUM7WUFDYixNQUFNLEVBQUUs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QUMsc0JBQXNCLENBQUM7aUJBQ2pDOzhCQWNTLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRTBCLE9BQU87c0JBQXRDLEtBQUs7dUJBQUMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFO2dCQUlLLE1BQU07c0JBQXBDLEtBQUs7dUJBQUMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFO2dCQUlNLE1BQU07c0JBQXBDLEtBQUs7dUJBQUMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFO2dCQUlPLE9BQU87c0JBQXRDLEtBQUs7dUJBQUMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFO2dCQUlVLFdBQVc7c0JBQTlDLEtBQUs7dUJBQUMsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFO2dCQUlYLFNBQVM7c0JBQTNCLEtBQUs7dUJBQUMsTUFBTTtnQkFJa0IsTUFBTTtzQkFBcEMsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBDb21wb25lbnQsIElucHV0LCBjb21wdXRlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd0QXJncywgZXh0ZW5kLCBpbmplY3ROZ3RSZWYsIHNpZ25hbFN0b3JlLCB0eXBlIE5ndEJlZm9yZVJlbmRlckV2ZW50IH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBTdGFyRmllbGRNYXRlcmlhbCB9IGZyb20gJ2FuZ3VsYXItdGhyZWUtc29iYS9zaGFkZXJzJztcbmltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcbmltcG9ydCB7IEJ1ZmZlckF0dHJpYnV0ZSwgQnVmZmVyR2VvbWV0cnksIFBvaW50cyB9IGZyb20gJ3RocmVlJztcblxuZXh0ZW5kKHsgUG9pbnRzLCBCdWZmZXJHZW9tZXRyeSwgQnVmZmVyQXR0cmlidXRlIH0pO1xuXG5leHBvcnQgdHlwZSBOZ3RzU3RhcnNTdGF0ZSA9IHtcblx0cmFkaXVzOiBudW1iZXI7XG5cdGRlcHRoOiBudW1iZXI7XG5cdGNvdW50OiBudW1iZXI7XG5cdGZhY3RvcjogbnVtYmVyO1xuXHRzYXR1cmF0aW9uOiBudW1iZXI7XG5cdGZhZGU6IGJvb2xlYW47XG5cdHNwZWVkOiBudW1iZXI7XG59O1xuXG5kZWNsYXJlIGdsb2JhbCB7XG5cdGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuXHRcdCduZ3RzLXN0YXJzJzogTmd0c1N0YXJzU3RhdGU7XG5cdH1cbn1cblxuY29uc3QgZ2VuU3RhciA9IChyOiBudW1iZXIpID0+XG5cdG5ldyBUSFJFRS5WZWN0b3IzKCkuc2V0RnJvbVNwaGVyaWNhbChcblx0XHRuZXcgVEhSRUUuU3BoZXJpY2FsKHIsIE1hdGguYWNvcygxIC0gTWF0aC5yYW5kb20oKSAqIDIpLCBNYXRoLnJhbmRvbSgpICogMiAqIE1hdGguUEkpLFxuXHQpO1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RzLXN0YXJzJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0LXBvaW50cyBbcmVmXT1cInN0YXJzUmVmXCI+XG5cdFx0XHQ8bmd0LWJ1ZmZlci1nZW9tZXRyeT5cblx0XHRcdFx0PG5ndC1idWZmZXItYXR0cmlidXRlIGF0dGFjaD1cImF0dHJpYnV0ZXMucG9zaXRpb25cIiAqYXJncz1cIlthdHRyaWJ1dGVzKCkucG9zaXRpb25zLCAzXVwiIC8+XG5cdFx0XHRcdDxuZ3QtYnVmZmVyLWF0dHJpYnV0ZSBhdHRhY2g9XCJhdHRyaWJ1dGVzLmNvbG9yXCIgKmFyZ3M9XCJbYXR0cmlidXRlcygpLmNvbG9ycywgM11cIiAvPlxuXHRcdFx0XHQ8bmd0LWJ1ZmZlci1hdHRyaWJ1dGUgYXR0YWNoPVwiYXR0cmlidXRlcy5zaXplXCIgKmFyZ3M9XCJbYXR0cmlidXRlcygpLnNpemVzLCAxXVwiIC8+XG5cdFx0XHQ8L25ndC1idWZmZXItZ2VvbWV0cnk+XG5cdFx0XHQ8bmd0LXByaW1pdGl2ZVxuXHRcdFx0XHQqYXJncz1cIlttYXRlcmlhbF1cIlxuXHRcdFx0XHRhdHRhY2g9XCJtYXRlcmlhbFwiXG5cdFx0XHRcdFtibGVuZGluZ109XCJBZGRpdGl2ZUJsZW5kaW5nXCJcblx0XHRcdFx0W2RlcHRoV3JpdGVdPVwiZmFsc2VcIlxuXHRcdFx0XHRbdHJhbnNwYXJlbnRdPVwidHJ1ZVwiXG5cdFx0XHRcdFt2ZXJ0ZXhDb2xvcnNdPVwidHJ1ZVwiXG5cdFx0XHRcdChiZWZvcmVSZW5kZXIpPVwib25CZWZvcmVSZW5kZXIoJGV2ZW50KVwiXG5cdFx0XHQ+XG5cdFx0XHRcdDxuZ3QtdmFsdWUgYXR0YWNoPVwidW5pZm9ybXMuZmFkZS52YWx1ZVwiIFtyYXdWYWx1ZV09XCJmYWRlKClcIiAvPlxuXHRcdFx0PC9uZ3QtcHJpbWl0aXZlPlxuXHRcdDwvbmd0LXBvaW50cz5cblx0YCxcblx0aW1wb3J0czogW05ndEFyZ3NdLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHNTdGFycyB7XG5cdHByaXZhdGUgaW5wdXRzID0gc2lnbmFsU3RvcmU8Tmd0c1N0YXJzU3RhdGU+KHtcblx0XHRyYWRpdXM6IDEwMCxcblx0XHRkZXB0aDogNTAsXG5cdFx0Y291bnQ6IDUwMDAsXG5cdFx0c2F0dXJhdGlvbjogMCxcblx0XHRmYWN0b3I6IDQsXG5cdFx0ZmFkZTogZmFsc2UsXG5cdFx0c3BlZWQ6IDEsXG5cdH0pO1xuXHRBZGRpdGl2ZUJsZW5kaW5nID0gVEhSRUUuQWRkaXRpdmVCbGVuZGluZztcblx0bWF0ZXJpYWwgPSBuZXcgU3RhckZpZWxkTWF0ZXJpYWwoKTtcblxuXHRASW5wdXQoKSBzdGFyc1JlZiA9IGluamVjdE5ndFJlZjxQb2ludHM+KCk7XG5cblx0QElucHV0KHsgYWxpYXM6ICdyYWRpdXMnIH0pIHNldCBfcmFkaXVzKHJhZGl1czogbnVtYmVyKSB7XG5cdFx0dGhpcy5pbnB1dHMuc2V0KHsgcmFkaXVzIH0pO1xuXHR9XG5cblx0QElucHV0KHsgYWxpYXM6ICdkZXB0aCcgfSkgc2V0IF9kZXB0aChkZXB0aDogbnVtYmVyKSB7XG5cdFx0dGhpcy5pbnB1dHMuc2V0KHsgZGVwdGggfSk7XG5cdH1cblxuXHRASW5wdXQoeyBhbGlhczogJ2NvdW50JyB9KSBzZXQgX2NvdW50KGNvdW50OiBudW1iZXIpIHtcblx0XHR0aGlzLmlucHV0cy5zZXQoeyBjb3VudCB9KTtcblx0fVxuXG5cdEBJbnB1dCh7IGFsaWFzOiAnZmFjdG9yJyB9KSBzZXQgX2ZhY3RvcihmYWN0b3I6IG51bWJlcikge1xuXHRcdHRoaXMuaW5wdXRzLnNldCh7IGZhY3RvciB9KTtcblx0fVxuXG5cdEBJbnB1dCh7IGFsaWFzOiAnc2F0dXJhdGlvbicgfSkgc2V0IF9zYXR1cmF0aW9uKHNhdHVyYXRpb246IG51bWJlcikge1xuXHRcdHRoaXMuaW5wdXRzLnNldCh7IHNhdHVyYXRpb24gfSk7XG5cdH1cblxuXHRASW5wdXQoJ2ZhZGUnKSBzZXQgc3RhcnNGYWRlKGZhZGU6IGJvb2xlYW4pIHtcblx0XHR0aGlzLmlucHV0cy5zZXQoeyBmYWRlIH0pO1xuXHR9XG5cblx0QElucHV0KHsgYWxpYXM6ICdzcGVlZCcgfSkgc2V0IF9zcGVlZChzcGVlZDogbnVtYmVyKSB7XG5cdFx0dGhpcy5pbnB1dHMuc2V0KHsgc3BlZWQgfSk7XG5cdH1cblxuXHRwcml2YXRlIGNvdW50ID0gdGhpcy5pbnB1dHMuc2VsZWN0KCdjb3VudCcpO1xuXHRwcml2YXRlIGRlcHRoID0gdGhpcy5pbnB1dHMuc2VsZWN0KCdkZXB0aCcpO1xuXHRwcml2YXRlIGZhY3RvciA9IHRoaXMuaW5wdXRzLnNlbGVjdCgnZmFjdG9yJyk7XG5cdHByaXZhdGUgcmFkaXVzID0gdGhpcy5pbnB1dHMuc2VsZWN0KCdyYWRpdXMnKTtcblx0cHJpdmF0ZSBzYXR1cmF0aW9uID0gdGhpcy5pbnB1dHMuc2VsZWN0KCdzYXR1cmF0aW9uJyk7XG5cblx0ZmFkZSA9IHRoaXMuaW5wdXRzLnNlbGVjdCgnZmFkZScpO1xuXHRhdHRyaWJ1dGVzID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdGNvbnN0IHBvc2l0aW9uczogbnVtYmVyW10gPSBbXTtcblx0XHRjb25zdCBjb2xvcnM6IG51bWJlcltdID0gW107XG5cdFx0Y29uc3Qgc2l6ZXMgPSBBcnJheS5mcm9tKHsgbGVuZ3RoOiB0aGlzLmNvdW50KCkgfSwgKCkgPT4gKDAuNSArIDAuNSAqIE1hdGgucmFuZG9tKCkpICogdGhpcy5mYWN0b3IoKSk7XG5cdFx0Y29uc3QgY29sb3IgPSBuZXcgVEhSRUUuQ29sb3IoKTtcblx0XHRsZXQgciA9IHRoaXMucmFkaXVzKCkgKyB0aGlzLmRlcHRoKCk7XG5cdFx0Y29uc3QgaW5jcmVtZW50ID0gdGhpcy5kZXB0aCgpIC8gdGhpcy5jb3VudCgpO1xuXHRcdGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5jb3VudCgpOyBpKyspIHtcblx0XHRcdHIgLT0gaW5jcmVtZW50ICogTWF0aC5yYW5kb20oKTtcblx0XHRcdHBvc2l0aW9ucy5wdXNoKC4uLmdlblN0YXIocikudG9BcnJheSgpKTtcblx0XHRcdGNvbG9yLnNldEhTTChpIC8gdGhpcy5jb3VudCgpLCB0aGlzLnNhdHVyYXRpb24oKSwgMC45KTtcblx0XHRcdGNvbG9ycy5wdXNoKGNvbG9yLnIsIGNvbG9yLmcsIGNvbG9yLmIpO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cG9zaXRpb25zOiBuZXcgRmxvYXQzMkFycmF5KHBvc2l0aW9ucyksXG5cdFx0XHRjb2xvcnM6IG5ldyBGbG9hdDMyQXJyYXkoY29sb3JzKSxcblx0XHRcdHNpemVzOiBuZXcgRmxvYXQzMkFycmF5KHNpemVzKSxcblx0XHR9O1xuXHR9KTtcblxuXHRvbkJlZm9yZVJlbmRlcih7IG9iamVjdCwgc3RhdGUgfTogTmd0QmVmb3JlUmVuZGVyRXZlbnQ8SW5zdGFuY2VUeXBlPHR5cGVvZiBTdGFyRmllbGRNYXRlcmlhbD4+KSB7XG5cdFx0b2JqZWN0LnVuaWZvcm1zWyd0aW1lJ10udmFsdWUgPSBzdGF0ZS5jbG9jay5nZXRFbGFwc2VkVGltZSgpICogdGhpcy5pbnB1dHMuZ2V0KCdzcGVlZCcpO1xuXHR9XG59XG4iXX0=
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
import { Directive, Input, computed } from '@angular/core';
|
|
2
|
+
import { is, signalStore } from 'angular-three';
|
|
3
|
+
import * as THREE from 'three';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class NgtsWireframeInput {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.inputs = signalStore({
|
|
8
|
+
simplify: false,
|
|
9
|
+
strokeOpacity: 1,
|
|
10
|
+
fillOpacity: 0.25,
|
|
11
|
+
fillMix: 0,
|
|
12
|
+
thickness: 0.05,
|
|
13
|
+
colorBackfaces: false,
|
|
14
|
+
dashInvert: true,
|
|
15
|
+
dash: false,
|
|
16
|
+
dashRepeats: 4,
|
|
17
|
+
dashLength: 0.5,
|
|
18
|
+
squeeze: false,
|
|
19
|
+
squeezeMin: 0.2,
|
|
20
|
+
squeezeMax: 1,
|
|
21
|
+
stroke: new THREE.Color('#ff0000'),
|
|
22
|
+
backfaceStroke: new THREE.Color('#0000ff'),
|
|
23
|
+
fill: new THREE.Color('#00ff00'),
|
|
24
|
+
});
|
|
25
|
+
this.simplify = this.inputs.select('simplify');
|
|
26
|
+
this.geometry = this.inputs.select('geometry');
|
|
27
|
+
this.customGeometry = computed(() => {
|
|
28
|
+
const geometry = this.geometry();
|
|
29
|
+
return is.ref(geometry) ? geometry.nativeElement : geometry;
|
|
30
|
+
});
|
|
31
|
+
this.strokeOpacity = this.inputs.select('strokeOpacity');
|
|
32
|
+
this.fillOpacity = this.inputs.select('fillOpacity');
|
|
33
|
+
this.fillMix = this.inputs.select('fillMix');
|
|
34
|
+
this.thickness = this.inputs.select('thickness');
|
|
35
|
+
this.colorBackfaces = this.inputs.select('colorBackfaces');
|
|
36
|
+
this.dashInvert = this.inputs.select('dashInvert');
|
|
37
|
+
this.dash = this.inputs.select('dash');
|
|
38
|
+
this.dashRepeats = this.inputs.select('dashRepeats');
|
|
39
|
+
this.dashLength = this.inputs.select('dashLength');
|
|
40
|
+
this.squeeze = this.inputs.select('squeeze');
|
|
41
|
+
this.squeezeMin = this.inputs.select('squeezeMin');
|
|
42
|
+
this.squeezeMax = this.inputs.select('squeezeMax');
|
|
43
|
+
this.stroke = this.inputs.select('stroke');
|
|
44
|
+
this.backfaceStroke = this.inputs.select('backfaceStroke');
|
|
45
|
+
this.fill = this.inputs.select('fill');
|
|
46
|
+
this.materialState = computed(() => {
|
|
47
|
+
const [strokeOpacity, fillOpacity, fillMix, thickness, colorBackfaces, dashInvert, dash, dashRepeats, dashLength, squeeze, squeezeMin, squeezeMax, stroke, backfaceStroke, fill,] = [
|
|
48
|
+
this.strokeOpacity(),
|
|
49
|
+
this.fillOpacity(),
|
|
50
|
+
this.fillMix(),
|
|
51
|
+
this.thickness(),
|
|
52
|
+
this.colorBackfaces(),
|
|
53
|
+
this.dashInvert(),
|
|
54
|
+
this.dash(),
|
|
55
|
+
this.dashRepeats(),
|
|
56
|
+
this.dashLength(),
|
|
57
|
+
this.squeeze(),
|
|
58
|
+
this.squeezeMin(),
|
|
59
|
+
this.squeezeMax(),
|
|
60
|
+
this.stroke(),
|
|
61
|
+
this.backfaceStroke(),
|
|
62
|
+
this.fill(),
|
|
63
|
+
];
|
|
64
|
+
return {
|
|
65
|
+
strokeOpacity,
|
|
66
|
+
fillOpacity,
|
|
67
|
+
fillMix,
|
|
68
|
+
thickness,
|
|
69
|
+
colorBackfaces,
|
|
70
|
+
dashInvert,
|
|
71
|
+
dash,
|
|
72
|
+
dashRepeats,
|
|
73
|
+
dashLength,
|
|
74
|
+
squeeze,
|
|
75
|
+
squeezeMin,
|
|
76
|
+
squeezeMax,
|
|
77
|
+
stroke,
|
|
78
|
+
backfaceStroke,
|
|
79
|
+
fill,
|
|
80
|
+
};
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
set _geometry(geometry) {
|
|
84
|
+
this.inputs.set({ geometry });
|
|
85
|
+
}
|
|
86
|
+
set _simplify(simplify) {
|
|
87
|
+
this.inputs.set({ simplify });
|
|
88
|
+
}
|
|
89
|
+
set _fillOpacity(fillOpacity) {
|
|
90
|
+
this.inputs.set({ fillOpacity });
|
|
91
|
+
}
|
|
92
|
+
set _fillMix(fillMix) {
|
|
93
|
+
this.inputs.set({ fillMix });
|
|
94
|
+
}
|
|
95
|
+
set _strokeOpacity(strokeOpacity) {
|
|
96
|
+
this.inputs.set({ strokeOpacity });
|
|
97
|
+
}
|
|
98
|
+
set _thickness(thickness) {
|
|
99
|
+
this.inputs.set({ thickness });
|
|
100
|
+
}
|
|
101
|
+
set _colorBackfaces(colorBackfaces) {
|
|
102
|
+
this.inputs.set({ colorBackfaces });
|
|
103
|
+
}
|
|
104
|
+
set _dashInvert(dashInvert) {
|
|
105
|
+
this.inputs.set({ dashInvert });
|
|
106
|
+
}
|
|
107
|
+
set _dash(dash) {
|
|
108
|
+
this.inputs.set({ dash });
|
|
109
|
+
}
|
|
110
|
+
set _dashRepeats(dashRepeats) {
|
|
111
|
+
this.inputs.set({ dashRepeats });
|
|
112
|
+
}
|
|
113
|
+
set _dashLength(dashLength) {
|
|
114
|
+
this.inputs.set({ dashLength });
|
|
115
|
+
}
|
|
116
|
+
set _squeeze(squeeze) {
|
|
117
|
+
this.inputs.set({ squeeze });
|
|
118
|
+
}
|
|
119
|
+
set _squeezeMin(squeezeMin) {
|
|
120
|
+
this.inputs.set({ squeezeMin });
|
|
121
|
+
}
|
|
122
|
+
set _squeezeMax(squeezeMax) {
|
|
123
|
+
this.inputs.set({ squeezeMax });
|
|
124
|
+
}
|
|
125
|
+
set _stroke(stroke) {
|
|
126
|
+
this.inputs.set({ stroke });
|
|
127
|
+
}
|
|
128
|
+
set _backfaceStroke(backfaceStroke) {
|
|
129
|
+
this.inputs.set({ backfaceStroke });
|
|
130
|
+
}
|
|
131
|
+
set _fill(fill) {
|
|
132
|
+
this.inputs.set({ fill });
|
|
133
|
+
}
|
|
134
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: NgtsWireframeInput, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
135
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.2", type: NgtsWireframeInput, inputs: { _geometry: ["geometry", "_geometry"], _simplify: ["simplify", "_simplify"], _fillOpacity: ["fillOpacity", "_fillOpacity"], _fillMix: ["fillMix", "_fillMix"], _strokeOpacity: ["strokeOpacity", "_strokeOpacity"], _thickness: ["thickness", "_thickness"], _colorBackfaces: ["colorBackfaces", "_colorBackfaces"], _dashInvert: ["dashInvert", "_dashInvert"], _dash: ["dash", "_dash"], _dashRepeats: ["dashRepeats", "_dashRepeats"], _dashLength: ["dashLength", "_dashLength"], _squeeze: ["squeeze", "_squeeze"], _squeezeMin: ["squeezeMin", "_squeezeMin"], _squeezeMax: ["squeezeMax", "_squeezeMax"], _stroke: ["stroke", "_stroke"], _backfaceStroke: ["backfaceStroke", "_backfaceStroke"], _fill: ["fill", "_fill"] }, ngImport: i0 }); }
|
|
136
|
+
}
|
|
137
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: NgtsWireframeInput, decorators: [{
|
|
138
|
+
type: Directive
|
|
139
|
+
}], propDecorators: { _geometry: [{
|
|
140
|
+
type: Input,
|
|
141
|
+
args: [{ alias: 'geometry' }]
|
|
142
|
+
}], _simplify: [{
|
|
143
|
+
type: Input,
|
|
144
|
+
args: [{ alias: 'simplify' }]
|
|
145
|
+
}], _fillOpacity: [{
|
|
146
|
+
type: Input,
|
|
147
|
+
args: [{ alias: 'fillOpacity' }]
|
|
148
|
+
}], _fillMix: [{
|
|
149
|
+
type: Input,
|
|
150
|
+
args: [{ alias: 'fillMix' }]
|
|
151
|
+
}], _strokeOpacity: [{
|
|
152
|
+
type: Input,
|
|
153
|
+
args: [{ alias: 'strokeOpacity' }]
|
|
154
|
+
}], _thickness: [{
|
|
155
|
+
type: Input,
|
|
156
|
+
args: [{ alias: 'thickness' }]
|
|
157
|
+
}], _colorBackfaces: [{
|
|
158
|
+
type: Input,
|
|
159
|
+
args: [{ alias: 'colorBackfaces' }]
|
|
160
|
+
}], _dashInvert: [{
|
|
161
|
+
type: Input,
|
|
162
|
+
args: [{ alias: 'dashInvert' }]
|
|
163
|
+
}], _dash: [{
|
|
164
|
+
type: Input,
|
|
165
|
+
args: [{ alias: 'dash' }]
|
|
166
|
+
}], _dashRepeats: [{
|
|
167
|
+
type: Input,
|
|
168
|
+
args: [{ alias: 'dashRepeats' }]
|
|
169
|
+
}], _dashLength: [{
|
|
170
|
+
type: Input,
|
|
171
|
+
args: [{ alias: 'dashLength' }]
|
|
172
|
+
}], _squeeze: [{
|
|
173
|
+
type: Input,
|
|
174
|
+
args: [{ alias: 'squeeze' }]
|
|
175
|
+
}], _squeezeMin: [{
|
|
176
|
+
type: Input,
|
|
177
|
+
args: [{ alias: 'squeezeMin' }]
|
|
178
|
+
}], _squeezeMax: [{
|
|
179
|
+
type: Input,
|
|
180
|
+
args: [{ alias: 'squeezeMax' }]
|
|
181
|
+
}], _stroke: [{
|
|
182
|
+
type: Input,
|
|
183
|
+
args: [{ alias: 'stroke' }]
|
|
184
|
+
}], _backfaceStroke: [{
|
|
185
|
+
type: Input,
|
|
186
|
+
args: [{ alias: 'backfaceStroke' }]
|
|
187
|
+
}], _fill: [{
|
|
188
|
+
type: Input,
|
|
189
|
+
args: [{ alias: 'fill' }]
|
|
190
|
+
}] } });
|
|
191
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lyZWZyYW1lLWlucHV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zb2JhL3N0YWdpbmcvc3JjL3dpcmVmcmFtZS93aXJlZnJhbWUtaW5wdXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sRUFBRSxFQUFFLEVBQUUsV0FBVyxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBRTdELE9BQU8sS0FBSyxLQUFLLE1BQU0sT0FBTyxDQUFDOztBQVEvQixNQUFNLE9BQWdCLGtCQUFrQjtJQUR4QztRQUVDLFdBQU0sR0FBRyxXQUFXLENBQXFCO1lBQ3hDLFFBQVEsRUFBRSxLQUFLO1lBQ2YsYUFBYSxFQUFFLENBQUM7WUFDaEIsV0FBVyxFQUFFLElBQUk7WUFDakIsT0FBTyxFQUFFLENBQUM7WUFDVixTQUFTLEVBQUUsSUFBSTtZQUNmLGNBQWMsRUFBRSxLQUFLO1lBQ3JCLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLElBQUksRUFBRSxLQUFLO1lBQ1gsV0FBVyxFQUFFLENBQUM7WUFDZCxVQUFVLEVBQUUsR0FBRztZQUNmLE9BQU8sRUFBRSxLQUFLO1lBQ2QsVUFBVSxFQUFFLEdBQUc7WUFDZixVQUFVLEVBQUUsQ0FBQztZQUNiLE1BQU0sRUFBRSxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDO1lBQ2xDLGNBQWMsRUFBRSxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDO1lBQzFDLElBQUksRUFBRSxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDO1NBQ2hDLENBQUMsQ0FBQztRQXNFSCxhQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDMUMsYUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFB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RUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFO2dCQUljLGVBQWU7c0JBQXRELEtBQUs7dUJBQUMsRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBSUosS0FBSztzQkFBbEMsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0LCBjb21wdXRlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaXMsIHNpZ25hbFN0b3JlLCB0eXBlIE5ndFJlZiB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHR5cGUgeyBXaXJlZnJhbWVNYXRlcmlhbFN0YXRlIH0gZnJvbSAnYW5ndWxhci10aHJlZS1zb2JhL3NoYWRlcnMnO1xuaW1wb3J0ICogYXMgVEhSRUUgZnJvbSAndGhyZWUnO1xuXG5leHBvcnQgdHlwZSBOZ3RzV2lyZWZyYW1lU3RhdGUgPSB7XG5cdGdlb21ldHJ5PzogTmd0UmVmPFRIUkVFLkJ1ZmZlckdlb21ldHJ5Pjtcblx0c2ltcGxpZnk6IGJvb2xlYW47XG59ICYgUmVxdWlyZWQ8V2lyZWZyYW1lTWF0ZXJpYWxTdGF0ZT47XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIE5ndHNXaXJlZnJhbWVJbnB1dCB7XG5cdGlucHV0cyA9IHNpZ25hbFN0b3JlPE5ndHNXaXJlZnJhbWVTdGF0ZT4oe1xuXHRcdHNpbXBsaWZ5OiBmYWxzZSxcblx0XHRzdHJva2VPcGFjaXR5OiAxLFxuXHRcdGZpbGxPcGFjaXR5OiAwLjI1LFxuXHRcdGZpbGxNaXg6IDAsXG5cdFx0dGhpY2tuZXNzOiAwLjA1LFxuXHRcdGNvbG9yQmFja2ZhY2VzOiBmYWxzZSxcblx0XHRkYXNoSW52ZXJ0OiB0cnVlLFxuXHRcdGRhc2g6IGZhbHNlLFxuXHRcdGRhc2hSZXBlYXRzOiA0LFxuXHRcdGRhc2hMZW5ndGg6IDAuNSxcblx0XHRzcXVlZXplOiBmYWxzZSxcblx0XHRzcXVlZXplTWluOiAwLjIsXG5cdFx0c3F1ZWV6ZU1heDogMSxcblx0XHRzdHJva2U6IG5ldyBUSFJFRS5Db2xvcignI2ZmMDAwMCcpLFxuXHRcdGJhY2tmYWNlU3Ryb2tlOiBuZXcgVEhSRUUuQ29sb3IoJyMwMDAwZmYnKSxcblx0XHRmaWxsOiBuZXcgVEhSRUUuQ29sb3IoJyMwMGZmMDAnKSxcblx0fSk7XG5cblx0QElucHV0KHsgYWxpYXM6ICdnZW9tZXRyeScgfSkgc2V0IF9nZW9tZXRyeShnZW9tZXRyeTogTmd0UmVmPFRIUkVFLkJ1ZmZlckdlb21ldHJ5Pikge1xuXHRcdHRoaXMuaW5wdXRzLnNldCh7IGdlb21ldHJ5IH0pO1xuXHR9XG5cblx0QElucHV0KHsgYWxpYXM6ICdzaW1wbGlmeScgfSkgc2V0IF9zaW1wbGlmeShzaW1wbGlmeTogYm9vbGVhbikge1xuXHRcdHRoaXMuaW5wdXRzLnNldCh7IHNpbXBsaWZ5IH0pO1xuXHR9XG5cblx0QElucHV0KHsgYWxpYXM6ICdmaWxsT3BhY2l0eScgfSkgc2V0IF9maWxsT3BhY2l0eShmaWxsT3BhY2l0eTogbnVtYmVyKSB7XG5cdFx0dGhpcy5pbnB1dHMuc2V0KHsgZmlsbE9wYWNpdHkgfSk7XG5cdH1cblxuXHRASW5wdXQoeyBhbGlhczogJ2ZpbGxNaXgnIH0pIHNldCBfZmlsbE1peChmaWxsTWl4OiBudW1iZXIpIHtcblx0XHR0aGlzLmlucHV0cy5zZXQoeyBmaWxsTWl4IH0pO1xuXHR9XG5cblx0QElucHV0KHsgYWxpYXM6ICdzdHJva2VPcGFjaXR5JyB9KSBzZXQgX3N0cm9rZU9wYWNpdHkoc3Ryb2tlT3BhY2l0eTogbnVtYmVyKSB7XG5cdFx0dGhpcy5pbnB1dHMuc2V0KHsgc3Ryb2tlT3BhY2l0eSB9KTtcblx0fVxuXG5cdEBJbnB1dCh7IGFsaWFzOiAndGhpY2tuZXNzJyB9KSBzZXQgX3RoaWNrbmVzcyh0aGlja25lc3M6IG51bWJlcikge1xuXHRcdHRoaXMuaW5wdXRzLnNldCh7IHRoaWNrbmVzcyB9KTtcblx0fVxuXG5cdEBJbnB1dCh7IGFsaWFzOiAnY29sb3JCYWNrZmFjZXMnIH0pIHNldCBfY29sb3JCYWNrZmFjZXMoY29sb3JCYWNrZmFjZXM6IGJvb2xlYW4pIHtcblx0XHR0aGlzLmlucHV0cy5zZXQoeyBjb2xvckJhY2tmYWNlcyB9KTtcblx0fVxuXG5cdEBJbnB1dCh7IGFsaWFzOiAnZGFzaEludmVydCcgfSkgc2V0IF9kYXNoSW52ZXJ0KGRhc2hJbnZlcnQ6IGJvb2xlYW4pIHtcblx0XHR0aGlzLmlucHV0cy5zZXQoeyBkYXNoSW52ZXJ0IH0pO1xuXHR9XG5cblx0QElucHV0KHsgYWxpYXM6ICdkYXNoJyB9KSBzZXQgX2Rhc2goZGFzaDogYm9vbGVhbikge1xuXHRcdHRoaXMuaW5wdXRzLnNldCh7IGRhc2ggfSk7XG5cdH1cblxuXHRASW5wdXQoeyBhbGlhczogJ2Rhc2hSZXBlYXRzJyB9KSBzZXQgX2Rhc2hSZXBlYXRzKGRhc2hSZXBlYXRzOiBudW1iZXIpIHtcblx0XHR0aGlzLmlucHV0cy5zZXQoeyBkYXNoUmVwZWF0cyB9KTtcblx0fVxuXG5cdEBJbnB1dCh7IGFsaWFzOiAnZGFzaExlbmd0aCcgfSkgc2V0IF9kYXNoTGVuZ3RoKGRhc2hMZW5ndGg6IG51bWJlcikge1xuXHRcdHRoaXMuaW5wdXRzLnNldCh7IGRhc2hMZW5ndGggfSk7XG5cdH1cblxuXHRASW5wdXQoeyBhbGlhczogJ3NxdWVlemUnIH0pIHNldCBfc3F1ZWV6ZShzcXVlZXplOiBib29sZWFuKSB7XG5cdFx0dGhpcy5pbnB1dHMuc2V0KHsgc3F1ZWV6ZSB9KTtcblx0fVxuXG5cdEBJbnB1dCh7IGFsaWFzOiAnc3F1ZWV6ZU1pbicgfSkgc2V0IF9zcXVlZXplTWluKHNxdWVlemVNaW46IG51bWJlcikge1xuXHRcdHRoaXMuaW5wdXRzLnNldCh7IHNxdWVlemVNaW4gfSk7XG5cdH1cblxuXHRASW5wdXQoeyBhbGlhczogJ3NxdWVlemVNYXgnIH0pIHNldCBfc3F1ZWV6ZU1heChzcXVlZXplTWF4OiBudW1iZXIpIHtcblx0XHR0aGlzLmlucHV0cy5zZXQoeyBzcXVlZXplTWF4IH0pO1xuXHR9XG5cblx0QElucHV0KHsgYWxpYXM6ICdzdHJva2UnIH0pIHNldCBfc3Ryb2tlKHN0cm9rZTogVEhSRUUuQ29sb3JSZXByZXNlbnRhdGlvbikge1xuXHRcdHRoaXMuaW5wdXRzLnNldCh7IHN0cm9rZSB9KTtcblx0fVxuXG5cdEBJbnB1dCh7IGFsaWFzOiAnYmFja2ZhY2VTdHJva2UnIH0pIHNldCBfYmFja2ZhY2VTdHJva2UoYmFja2ZhY2VTdHJva2U6IFRIUkVFLkNvbG9yUmVwcmVzZW50YXRpb24pIHtcblx0XHR0aGlzLmlucHV0cy5zZXQoeyBiYWNrZmFjZVN0cm9rZSB9KTtcblx0fVxuXG5cdEBJbnB1dCh7IGFsaWFzOiAnZmlsbCcgfSkgc2V0IF9maWxsKGZpbGw6IFRIUkVFLkNvbG9yUmVwcmVzZW50YXRpb24pIHtcblx0XHR0aGlzLmlucHV0cy5zZXQoeyBmaWxsIH0pO1xuXHR9XG5cblx0c2ltcGxpZnkgPSB0aGlzLmlucHV0cy5zZWxlY3QoJ3NpbXBsaWZ5Jyk7XG5cdGdlb21ldHJ5ID0gdGhpcy5pbnB1dHMuc2VsZWN0KCdnZW9tZXRyeScpO1xuXHRjdXN0b21HZW9tZXRyeSA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRjb25zdCBnZW9tZXRyeSA9IHRoaXMuZ2VvbWV0cnkoKTtcblx0XHRyZXR1cm4gaXMucmVmKGdlb21ldHJ5KSA/IGdlb21ldHJ5Lm5hdGl2ZUVsZW1lbnQgOiBnZW9tZXRyeTtcblx0fSk7XG5cblx0c3Ryb2tlT3BhY2l0eSA9IHRoaXMuaW5wdXRzLnNlbGVjdCgnc3Ryb2tlT3BhY2l0eScpO1xuXHRmaWxsT3BhY2l0eSA9IHRoaXMuaW5wdXRzLnNlbGVjdCgnZmlsbE9wYWNpdHknKTtcblx0ZmlsbE1peCA9IHRoaXMuaW5wdXRzLnNlbGVjdCgnZmlsbE1peCcpO1xuXHR0aGlja25lc3MgPSB0aGlzLmlucHV0cy5zZWxlY3QoJ3RoaWNrbmVzcycpO1xuXHRjb2xvckJhY2tmYWNlcyA9IHRoaXMuaW5wdXRzLnNlbGVjdCgnY29sb3JCYWNrZmFjZXMnKTtcblx0ZGFzaEludmVydCA9IHRoaXMuaW5wdXRzLnNlbGVjdCgnZGFzaEludmVydCcpO1xuXHRkYXNoID0gdGhpcy5pbnB1dHMuc2VsZWN0KCdkYXNoJyk7XG5cdGRhc2hSZXBlYXRzID0gdGhpcy5pbnB1dHMuc2VsZWN0KCdkYXNoUmVwZWF0cycpO1xuXHRkYXNoTGVuZ3RoID0gdGhpcy5pbnB1dHMuc2VsZWN0KCdkYXNoTGVuZ3RoJyk7XG5cdHNxdWVlemUgPSB0aGlzLmlucHV0cy5zZWxlY3QoJ3NxdWVlemUnKTtcblx0c3F1ZWV6ZU1pbiA9IHRoaXMuaW5wdXRzLnNlbGVjdCgnc3F1ZWV6ZU1pbicpO1xuXHRzcXVlZXplTWF4ID0gdGhpcy5pbnB1dHMuc2VsZWN0KCdzcXVlZXplTWF4Jyk7XG5cdHN0cm9rZSA9IHRoaXMuaW5wdXRzLnNlbGVjdCgnc3Ryb2tlJyk7XG5cdGJhY2tmYWNlU3Ryb2tlID0gdGhpcy5pbnB1dHMuc2VsZWN0KCdiYWNrZmFjZVN0cm9rZScpO1xuXHRmaWxsID0gdGhpcy5pbnB1dHMuc2VsZWN0KCdmaWxsJyk7XG5cblx0bWF0ZXJpYWxTdGF0ZSA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRjb25zdCBbXG5cdFx0XHRzdHJva2VPcGFjaXR5LFxuXHRcdFx0ZmlsbE9wYWNpdHksXG5cdFx0XHRmaWxsTWl4LFxuXHRcdFx0dGhpY2tuZXNzLFxuXHRcdFx0Y29sb3JCYWNrZmFjZXMsXG5cdFx0XHRkYXNoSW52ZXJ0LFxuXHRcdFx0ZGFzaCxcblx0XHRcdGRhc2hSZXBlYXRzLFxuXHRcdFx0ZGFzaExlbmd0aCxcblx0XHRcdHNxdWVlemUsXG5cdFx0XHRzcXVlZXplTWluLFxuXHRcdFx0c3F1ZWV6ZU1heCxcblx0XHRcdHN0cm9rZSxcblx0XHRcdGJhY2tmYWNlU3Ryb2tlLFxuXHRcdFx0ZmlsbCxcblx0XHRdID0gW1xuXHRcdFx0dGhpcy5zdHJva2VPcGFjaXR5KCksXG5cdFx0XHR0aGlzLmZpbGxPcGFjaXR5KCksXG5cdFx0XHR0aGlzLmZpbGxNaXgoKSxcblx0XHRcdHRoaXMudGhpY2tuZXNzKCksXG5cdFx0XHR0aGlzLmNvbG9yQmFja2ZhY2VzKCksXG5cdFx0XHR0aGlzLmRhc2hJbnZlcnQoKSxcblx0XHRcdHRoaXMuZGFzaCgpLFxuXHRcdFx0dGhpcy5kYXNoUmVwZWF0cygpLFxuXHRcdFx0dGhpcy5kYXNoTGVuZ3RoKCksXG5cdFx0XHR0aGlzLnNxdWVlemUoKSxcblx0XHRcdHRoaXMuc3F1ZWV6ZU1pbigpLFxuXHRcdFx0dGhpcy5zcXVlZXplTWF4KCksXG5cdFx0XHR0aGlzLnN0cm9rZSgpLFxuXHRcdFx0dGhpcy5iYWNrZmFjZVN0cm9rZSgpLFxuXHRcdFx0dGhpcy5maWxsKCksXG5cdFx0XTtcblx0XHRyZXR1cm4ge1xuXHRcdFx0c3Ryb2tlT3BhY2l0eSxcblx0XHRcdGZpbGxPcGFjaXR5LFxuXHRcdFx0ZmlsbE1peCxcblx0XHRcdHRoaWNrbmVzcyxcblx0XHRcdGNvbG9yQmFja2ZhY2VzLFxuXHRcdFx0ZGFzaEludmVydCxcblx0XHRcdGRhc2gsXG5cdFx0XHRkYXNoUmVwZWF0cyxcblx0XHRcdGRhc2hMZW5ndGgsXG5cdFx0XHRzcXVlZXplLFxuXHRcdFx0c3F1ZWV6ZU1pbixcblx0XHRcdHNxdWVlemVNYXgsXG5cdFx0XHRzdHJva2UsXG5cdFx0XHRiYWNrZmFjZVN0cm9rZSxcblx0XHRcdGZpbGwsXG5cdFx0fTtcblx0fSk7XG59XG4iXX0=
|