angular-three-soba 2.0.0-beta.26 → 2.0.0-beta.261
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/README.md +62 -4
- package/abstractions/README.md +278 -2
- package/abstractions/index.d.ts +11 -6
- package/abstractions/lib/catmull-rom-line.d.ts +648 -0
- package/abstractions/lib/cubic-bezier-line.d.ts +19 -0
- package/abstractions/lib/edges.d.ts +850 -0
- package/abstractions/lib/gradient-texture.d.ts +24 -0
- package/abstractions/lib/grid.d.ts +339 -0
- package/abstractions/lib/helper.d.ts +25 -0
- package/abstractions/lib/line.d.ts +41 -0
- package/abstractions/lib/prism-geometry.d.ts +30 -0
- package/abstractions/lib/quadratic-bezier-line.d.ts +21 -0
- package/abstractions/lib/text-3d.d.ts +338 -0
- package/abstractions/lib/text.d.ts +55 -0
- package/cameras/README.md +91 -2
- package/cameras/index.d.ts +4 -4
- package/cameras/lib/camera-content.d.ts +10 -0
- package/cameras/lib/cube-camera.d.ts +38 -0
- package/cameras/lib/orthographic-camera.d.ts +40 -0
- package/cameras/lib/perspective-camera.d.ts +36 -0
- package/controls/README.md +95 -2
- package/controls/index.d.ts +2 -1
- package/controls/lib/camera-controls.d.ts +31 -0
- package/controls/lib/orbit-controls.d.ts +38 -0
- package/esm2022/abstractions/index.mjs +12 -7
- package/esm2022/abstractions/lib/catmull-rom-line.mjs +76 -0
- package/esm2022/abstractions/lib/cubic-bezier-line.mjs +51 -0
- package/esm2022/abstractions/lib/edges.mjs +70 -0
- package/esm2022/abstractions/lib/gradient-texture.mjs +91 -0
- package/esm2022/abstractions/lib/grid.mjs +103 -0
- package/esm2022/abstractions/lib/helper.mjs +80 -0
- package/esm2022/abstractions/lib/line.mjs +123 -0
- package/esm2022/abstractions/lib/prism-geometry.mjs +55 -0
- package/esm2022/abstractions/lib/quadratic-bezier-line.mjs +73 -0
- package/esm2022/abstractions/lib/text-3d.mjs +98 -0
- package/esm2022/abstractions/lib/text.mjs +92 -0
- package/esm2022/cameras/index.mjs +5 -5
- package/esm2022/cameras/lib/camera-content.mjs +14 -0
- package/esm2022/cameras/lib/cube-camera.mjs +111 -0
- package/esm2022/cameras/lib/orthographic-camera.mjs +131 -0
- package/esm2022/cameras/lib/perspective-camera.mjs +104 -0
- package/esm2022/controls/index.mjs +3 -2
- package/esm2022/controls/lib/camera-controls.mjs +127 -0
- package/esm2022/controls/lib/orbit-controls.mjs +126 -0
- package/esm2022/loaders/index.mjs +6 -5
- package/esm2022/loaders/lib/font-loader.mjs +49 -0
- package/esm2022/loaders/lib/gltf-loader.mjs +33 -0
- package/esm2022/loaders/lib/loader.mjs +109 -0
- package/esm2022/loaders/lib/progress.mjs +51 -0
- package/esm2022/loaders/lib/texture-loader.mjs +32 -0
- package/esm2022/materials/index.mjs +7 -7
- package/esm2022/materials/lib/custom-shader-material.mjs +71 -0
- package/esm2022/materials/lib/mesh-distort-material.mjs +42 -0
- package/esm2022/materials/lib/mesh-reflector-material.mjs +278 -0
- package/esm2022/materials/lib/mesh-refraction-material.mjs +144 -0
- package/esm2022/materials/lib/mesh-transmission-material.mjs +188 -0
- package/esm2022/materials/lib/mesh-wobble-material.mjs +42 -0
- package/esm2022/misc/index.mjs +10 -14
- package/esm2022/misc/lib/animations.mjs +74 -0
- package/esm2022/misc/lib/bake-shadows.mjs +26 -0
- package/esm2022/misc/lib/computed-attribute.mjs +56 -0
- package/esm2022/misc/lib/constants.mjs +5 -0
- package/esm2022/misc/lib/decal.mjs +135 -0
- package/esm2022/misc/lib/deprecated.mjs +15 -0
- package/esm2022/misc/lib/depth-buffer.mjs +39 -0
- package/esm2022/misc/lib/fbo.mjs +89 -0
- package/esm2022/misc/lib/sampler.mjs +121 -0
- package/esm2022/shaders/index.mjs +3 -18
- package/esm2022/shaders/lib/grid-material.mjs +81 -0
- package/esm2022/shaders/lib/mesh-refraction-material.mjs +163 -0
- package/esm2022/staging/index.mjs +19 -22
- package/esm2022/staging/lib/accumulative-shadows.mjs +182 -0
- package/esm2022/staging/lib/backdrop.mjs +73 -0
- package/esm2022/staging/lib/bb-anchor.mjs +58 -0
- package/esm2022/staging/lib/bounds.mjs +286 -0
- package/esm2022/staging/lib/camera-shake.mjs +69 -0
- package/esm2022/staging/lib/caustics.mjs +188 -0
- package/esm2022/staging/lib/center.mjs +113 -0
- package/esm2022/staging/lib/contact-shadows.mjs +201 -0
- package/esm2022/staging/lib/environment.mjs +465 -0
- package/esm2022/staging/lib/float.mjs +60 -0
- package/esm2022/staging/lib/lightformer.mjs +107 -0
- package/esm2022/staging/lib/matcap-texture.mjs +81 -0
- package/esm2022/staging/lib/normal-texture.mjs +85 -0
- package/esm2022/staging/lib/randomized-lights.mjs +104 -0
- package/esm2022/staging/lib/render-texture.mjs +213 -0
- package/esm2022/staging/lib/sky.mjs +86 -0
- package/esm2022/staging/lib/spot-light.mjs +450 -0
- package/esm2022/staging/lib/stage.mjs +236 -0
- package/esm2022/vanilla-exports/angular-three-soba-vanilla-exports.mjs +5 -0
- package/esm2022/vanilla-exports/index.mjs +3 -0
- package/fesm2022/angular-three-soba-abstractions.mjs +739 -718
- package/fesm2022/angular-three-soba-abstractions.mjs.map +1 -1
- package/fesm2022/angular-three-soba-cameras.mjs +260 -307
- package/fesm2022/angular-three-soba-cameras.mjs.map +1 -1
- package/fesm2022/angular-three-soba-controls.mjs +174 -110
- package/fesm2022/angular-three-soba-controls.mjs.map +1 -1
- package/fesm2022/angular-three-soba-loaders.mjs +151 -129
- package/fesm2022/angular-three-soba-loaders.mjs.map +1 -1
- package/fesm2022/angular-three-soba-materials.mjs +511 -764
- package/fesm2022/angular-three-soba-materials.mjs.map +1 -1
- package/fesm2022/angular-three-soba-misc.mjs +405 -2149
- package/fesm2022/angular-three-soba-misc.mjs.map +1 -1
- package/fesm2022/angular-three-soba-shaders.mjs +33 -1373
- package/fesm2022/angular-three-soba-shaders.mjs.map +1 -1
- package/fesm2022/angular-three-soba-staging.mjs +2329 -3538
- package/fesm2022/angular-three-soba-staging.mjs.map +1 -1
- package/fesm2022/angular-three-soba-vanilla-exports.mjs +6 -0
- package/fesm2022/angular-three-soba-vanilla-exports.mjs.map +1 -0
- package/loaders/README.md +130 -2
- package/loaders/index.d.ts +5 -4
- package/loaders/lib/font-loader.d.ts +27 -0
- package/loaders/lib/gltf-loader.d.ts +21 -0
- package/loaders/lib/loader.d.ts +29 -0
- package/loaders/lib/progress.d.ts +9 -0
- package/loaders/lib/texture-loader.d.ts +13 -0
- package/materials/README.md +160 -2
- package/materials/index.d.ts +6 -6
- package/materials/lib/custom-shader-material.d.ts +19 -0
- package/materials/lib/mesh-distort-material.d.ts +18 -0
- package/materials/lib/mesh-reflector-material.d.ts +50 -0
- package/materials/lib/mesh-refraction-material.d.ts +42 -0
- package/materials/lib/mesh-transmission-material.d.ts +77 -0
- package/materials/lib/mesh-wobble-material.d.ts +15 -0
- package/metadata.json +1 -1
- package/misc/README.md +217 -2
- package/misc/index.d.ts +9 -13
- package/misc/lib/animations.d.ts +14 -0
- package/misc/lib/computed-attribute.d.ts +69 -0
- package/misc/lib/constants.d.ts +1 -0
- package/misc/lib/decal.d.ts +27 -0
- package/misc/lib/deprecated.d.ts +14 -0
- package/misc/lib/depth-buffer.d.ts +8 -0
- package/misc/lib/fbo.d.ts +47 -0
- package/misc/lib/sampler.d.ts +73 -0
- package/package.json +60 -38
- package/shaders/index.d.ts +2 -17
- package/shaders/lib/grid-material.d.ts +69 -0
- package/shaders/lib/mesh-refraction-material.d.ts +11 -0
- package/staging/README.md +472 -2
- package/staging/index.d.ts +18 -21
- package/staging/lib/accumulative-shadows.d.ts +75 -0
- package/staging/lib/backdrop.d.ts +22 -0
- package/staging/lib/bb-anchor.d.ts +17 -0
- package/staging/lib/bounds.d.ts +47 -0
- package/staging/lib/camera-shake.d.ts +29 -0
- package/staging/lib/caustics.d.ts +53 -0
- package/staging/lib/center.d.ts +422 -0
- package/staging/lib/contact-shadows.d.ts +45 -0
- package/staging/lib/environment.d.ts +159 -0
- package/staging/lib/float.d.ts +19 -0
- package/staging/lib/lightformer.d.ts +334 -0
- package/staging/lib/matcap-texture.d.ts +32 -0
- package/staging/lib/normal-texture.d.ts +37 -0
- package/staging/lib/randomized-lights.d.ts +54 -0
- package/staging/lib/render-texture.d.ts +64 -0
- package/staging/lib/sky.d.ts +32 -0
- package/staging/lib/spot-light.d.ts +120 -0
- package/staging/lib/stage.d.ts +376 -0
- package/vanilla-exports/README.md +3 -0
- package/vanilla-exports/index.d.ts +27 -0
- package/web-types.json +1 -1
- package/abstractions/billboard/billboard.d.ts +0 -28
- package/abstractions/detailed/detailed.d.ts +0 -26
- package/abstractions/edges/edges.d.ts +0 -34
- package/abstractions/grid/grid.d.ts +0 -50
- package/abstractions/text/text.d.ts +0 -82
- package/abstractions/text-3d/text-3d.d.ts +0 -84
- package/assets/distort.vert.glsl +0 -1
- package/cameras/camera/camera-content.d.ts +0 -13
- package/cameras/camera/camera.d.ts +0 -26
- package/cameras/cube-camera/cube-camera.d.ts +0 -69
- package/cameras/orthographic-camera/orthographic-camera.d.ts +0 -37
- package/cameras/perspective-camera/perspective-camera.d.ts +0 -18
- package/controls/orbit-controls/orbit-controls.d.ts +0 -54
- package/esm2022/abstractions/billboard/billboard.mjs +0 -74
- package/esm2022/abstractions/detailed/detailed.mjs +0 -64
- package/esm2022/abstractions/edges/edges.mjs +0 -88
- package/esm2022/abstractions/grid/grid.mjs +0 -180
- package/esm2022/abstractions/text/text.mjs +0 -274
- package/esm2022/abstractions/text-3d/text-3d.mjs +0 -172
- package/esm2022/cameras/camera/camera-content.mjs +0 -21
- package/esm2022/cameras/camera/camera.mjs +0 -77
- package/esm2022/cameras/cube-camera/cube-camera.mjs +0 -161
- package/esm2022/cameras/orthographic-camera/orthographic-camera.mjs +0 -102
- package/esm2022/cameras/perspective-camera/perspective-camera.mjs +0 -46
- package/esm2022/controls/orbit-controls/orbit-controls.mjs +0 -185
- package/esm2022/gizmos/angular-three-soba-gizmos.mjs +0 -5
- package/esm2022/gizmos/gizmo-helper/gizmo-helper.mjs +0 -197
- package/esm2022/gizmos/gizmo-helper/gizmo-viewcube/constants.mjs +0 -31
- package/esm2022/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube-edge.mjs +0 -93
- package/esm2022/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube-face.mjs +0 -150
- package/esm2022/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube-input.mjs +0 -66
- package/esm2022/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube.mjs +0 -71
- package/esm2022/gizmos/gizmo-helper/gizmo-viewport/gizmo-viewport-axis.mjs +0 -195
- package/esm2022/gizmos/gizmo-helper/gizmo-viewport/gizmo-viewport.mjs +0 -272
- package/esm2022/gizmos/index.mjs +0 -4
- package/esm2022/loaders/gltf-loader/gltf-loader.mjs +0 -30
- package/esm2022/loaders/loader/loader.mjs +0 -138
- package/esm2022/loaders/progress/progress.mjs +0 -52
- package/esm2022/loaders/texture-loader/texture-loader.mjs +0 -28
- package/esm2022/materials/mesh-distort-material/mesh-distort-material.mjs +0 -82
- package/esm2022/materials/mesh-reflector-material/mesh-reflector-material.mjs +0 -367
- package/esm2022/materials/mesh-refraction-material/mesh-refraction-material.mjs +0 -171
- package/esm2022/materials/mesh-transmission-material/mesh-transmission-material.mjs +0 -278
- package/esm2022/materials/mesh-wobble-material/mesh-wobble-material.mjs +0 -68
- package/esm2022/materials/point-material/point-material.mjs +0 -50
- package/esm2022/misc/animations/animations.mjs +0 -59
- package/esm2022/misc/bake-shadows/bake-shadows.mjs +0 -24
- package/esm2022/misc/caustics/caustics.mjs +0 -387
- package/esm2022/misc/decal/decal.mjs +0 -187
- package/esm2022/misc/depth-buffer/depth-buffer.mjs +0 -44
- package/esm2022/misc/example/example.mjs +0 -160
- package/esm2022/misc/fbo/fbo.mjs +0 -47
- package/esm2022/misc/html/html-wrapper.mjs +0 -478
- package/esm2022/misc/html/html.mjs +0 -304
- package/esm2022/misc/sampler/sampler.mjs +0 -142
- package/esm2022/misc/shadow/shadow.mjs +0 -111
- package/esm2022/misc/stats-gl/stats-gl.mjs +0 -61
- package/esm2022/misc/trail/trail.mjs +0 -209
- package/esm2022/misc/trail-texture/inject-trail-texture.mjs +0 -17
- package/esm2022/misc/trail-texture/trail-texture.mjs +0 -106
- package/esm2022/modifiers/angular-three-soba-modifiers.mjs +0 -5
- package/esm2022/modifiers/curve-modifier/curve-modifier.mjs +0 -64
- package/esm2022/modifiers/index.mjs +0 -2
- package/esm2022/performances/adaptive-dpr/adaptive-dpr.mjs +0 -44
- package/esm2022/performances/adaptive-events/adaptive-events.mjs +0 -27
- package/esm2022/performances/angular-three-soba-performances.mjs +0 -5
- package/esm2022/performances/index.mjs +0 -8
- package/esm2022/performances/instances/instances.mjs +0 -220
- package/esm2022/performances/instances/position-mesh.mjs +0 -52
- package/esm2022/performances/points/points-input.mjs +0 -64
- package/esm2022/performances/points/points.mjs +0 -326
- package/esm2022/performances/points/position-point.mjs +0 -54
- package/esm2022/performances/segments/segment-object.mjs +0 -9
- package/esm2022/performances/segments/segments.mjs +0 -182
- package/esm2022/shaders/blur-pass/blur-pass.mjs +0 -61
- package/esm2022/shaders/caustics/caustics-material.mjs +0 -130
- package/esm2022/shaders/caustics/caustics-projection-material.mjs +0 -31
- package/esm2022/shaders/convolution-material/convolution-material.mjs +0 -94
- package/esm2022/shaders/discard-material/discard-material.mjs +0 -3
- package/esm2022/shaders/grid-material/grid-material.mjs +0 -77
- package/esm2022/shaders/mesh-distort-material/mesh-distort-material.mjs +0 -56
- package/esm2022/shaders/mesh-reflector-material/mesh-reflector-material.mjs +0 -223
- package/esm2022/shaders/mesh-refraction-material/mesh-refraction-material.mjs +0 -170
- package/esm2022/shaders/mesh-transmission-material/mesh-transmission-material.mjs +0 -268
- package/esm2022/shaders/mesh-wobble-material/mesh-wobble-material.mjs +0 -37
- package/esm2022/shaders/shader-material/shader-material.mjs +0 -34
- package/esm2022/shaders/soft-shadow-material/soft-shadow-material.mjs +0 -25
- package/esm2022/shaders/sparkles-material/sparkles-material.mjs +0 -33
- package/esm2022/shaders/spot-light-material/spot-light-material.mjs +0 -86
- package/esm2022/shaders/star-field-material/star-field-material.mjs +0 -33
- package/esm2022/shaders/wireframe-material/wireframe-material.mjs +0 -247
- package/esm2022/staging/accumulative-shadows/accumulative-shadows.mjs +0 -267
- package/esm2022/staging/accumulative-shadows/progressive-light-map.mjs +0 -108
- package/esm2022/staging/accumulative-shadows/randomized-lights.mjs +0 -206
- package/esm2022/staging/backdrop/backdrop.mjs +0 -77
- package/esm2022/staging/bb-anchor/bb-anchor.mjs +0 -69
- package/esm2022/staging/bounds/bounds.mjs +0 -308
- package/esm2022/staging/camera-shake/camera-shake.mjs +0 -123
- package/esm2022/staging/center/center.mjs +0 -165
- package/esm2022/staging/cloud/cloud.mjs +0 -158
- package/esm2022/staging/contact-shadows/contact-shadows.mjs +0 -246
- package/esm2022/staging/environment/assets.mjs +0 -13
- package/esm2022/staging/environment/environment-cube.mjs +0 -47
- package/esm2022/staging/environment/environment-ground.mjs +0 -41
- package/esm2022/staging/environment/environment-input.mjs +0 -119
- package/esm2022/staging/environment/environment-map.mjs +0 -53
- package/esm2022/staging/environment/environment-portal.mjs +0 -113
- package/esm2022/staging/environment/environment.mjs +0 -61
- package/esm2022/staging/environment/utils.mjs +0 -106
- package/esm2022/staging/float/float.mjs +0 -94
- package/esm2022/staging/matcap-texture/matcap-texture.mjs +0 -64
- package/esm2022/staging/normal-texture/normal-texture.mjs +0 -53
- package/esm2022/staging/sky/sky.mjs +0 -119
- package/esm2022/staging/sparkles/sparkles.mjs +0 -164
- package/esm2022/staging/spot-light/shadow-mesh-input.mjs +0 -63
- package/esm2022/staging/spot-light/shadow-mesh.mjs +0 -266
- package/esm2022/staging/spot-light/spot-light-input.mjs +0 -84
- package/esm2022/staging/spot-light/spot-light.mjs +0 -81
- package/esm2022/staging/spot-light/volumetric-mesh.mjs +0 -98
- package/esm2022/staging/stage/stage.mjs +0 -389
- package/esm2022/staging/stars/stars.mjs +0 -147
- package/esm2022/staging/wireframe/wireframe-input.mjs +0 -191
- package/esm2022/staging/wireframe/wireframe.mjs +0 -228
- package/esm2022/utils/angular-three-soba-utils.mjs +0 -5
- package/esm2022/utils/content/content.mjs +0 -15
- package/esm2022/utils/index.mjs +0 -2
- package/fesm2022/angular-three-soba-gizmos.mjs +0 -1043
- package/fesm2022/angular-three-soba-gizmos.mjs.map +0 -1
- package/fesm2022/angular-three-soba-modifiers.mjs +0 -71
- package/fesm2022/angular-three-soba-modifiers.mjs.map +0 -1
- package/fesm2022/angular-three-soba-performances.mjs +0 -956
- package/fesm2022/angular-three-soba-performances.mjs.map +0 -1
- package/fesm2022/angular-three-soba-utils.mjs +0 -22
- package/fesm2022/angular-three-soba-utils.mjs.map +0 -1
- package/gizmos/README.md +0 -3
- package/gizmos/gizmo-helper/gizmo-helper.d.ts +0 -69
- package/gizmos/gizmo-helper/gizmo-viewcube/constants.d.ts +0 -12
- package/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube-edge.d.ts +0 -22
- package/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube-face.d.ts +0 -29
- package/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube-input.d.ts +0 -33
- package/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube.d.ts +0 -10
- package/gizmos/gizmo-helper/gizmo-viewport/gizmo-viewport-axis.d.ts +0 -40
- package/gizmos/gizmo-helper/gizmo-viewport/gizmo-viewport.d.ts +0 -30
- package/gizmos/index.d.ts +0 -3
- package/loaders/gltf-loader/gltf-loader.d.ts +0 -10
- package/loaders/loader/loader.d.ts +0 -33
- package/loaders/progress/progress.d.ts +0 -9
- package/loaders/texture-loader/texture-loader.d.ts +0 -7
- package/materials/mesh-distort-material/mesh-distort-material.d.ts +0 -40
- package/materials/mesh-reflector-material/mesh-reflector-material.d.ts +0 -99
- package/materials/mesh-refraction-material/mesh-refraction-material.d.ts +0 -62
- package/materials/mesh-transmission-material/mesh-transmission-material.d.ts +0 -107
- package/materials/mesh-wobble-material/mesh-wobble-material.d.ts +0 -29
- package/materials/point-material/point-material.d.ts +0 -24
- package/misc/animations/animations.d.ts +0 -15
- package/misc/caustics/caustics.d.ts +0 -87
- package/misc/decal/decal.d.ts +0 -49
- package/misc/depth-buffer/depth-buffer.d.ts +0 -9
- package/misc/example/example.d.ts +0 -81
- package/misc/fbo/fbo.d.ts +0 -17
- package/misc/html/html-wrapper.d.ts +0 -559
- package/misc/html/html.d.ts +0 -214
- package/misc/sampler/sampler.d.ts +0 -67
- package/misc/shadow/shadow.d.ts +0 -37
- package/misc/stats-gl/stats-gl.d.ts +0 -24
- package/misc/trail/trail.d.ts +0 -57
- package/misc/trail-texture/inject-trail-texture.d.ts +0 -9
- package/misc/trail-texture/trail-texture.d.ts +0 -50
- package/modifiers/README.md +0 -3
- package/modifiers/curve-modifier/curve-modifier.d.ts +0 -23
- package/modifiers/index.d.ts +0 -1
- package/performances/README.md +0 -3
- package/performances/adaptive-dpr/adaptive-dpr.d.ts +0 -14
- package/performances/adaptive-events/adaptive-events.d.ts +0 -9
- package/performances/index.d.ts +0 -7
- package/performances/instances/instances.d.ts +0 -79
- package/performances/instances/position-mesh.d.ts +0 -10
- package/performances/points/points-input.d.ts +0 -32
- package/performances/points/points.d.ts +0 -92
- package/performances/points/position-point.d.ts +0 -11
- package/performances/segments/segment-object.d.ts +0 -7
- package/performances/segments/segments.d.ts +0 -124
- package/shaders/blur-pass/blur-pass.d.ts +0 -23
- package/shaders/caustics/caustics-material.d.ts +0 -4
- package/shaders/caustics/caustics-projection-material.d.ts +0 -4
- package/shaders/convolution-material/convolution-material.d.ts +0 -7
- package/shaders/discard-material/discard-material.d.ts +0 -3
- package/shaders/grid-material/grid-material.d.ts +0 -37
- package/shaders/mesh-distort-material/mesh-distort-material.d.ts +0 -295
- package/shaders/mesh-reflector-material/mesh-reflector-material.d.ts +0 -50
- package/shaders/mesh-refraction-material/mesh-refraction-material.d.ts +0 -4
- package/shaders/mesh-transmission-material/mesh-transmission-material.d.ts +0 -25
- package/shaders/mesh-wobble-material/mesh-wobble-material.d.ts +0 -16
- package/shaders/shader-material/shader-material.d.ts +0 -6
- package/shaders/soft-shadow-material/soft-shadow-material.d.ts +0 -19
- package/shaders/sparkles-material/sparkles-material.d.ts +0 -17
- package/shaders/spot-light-material/spot-light-material.d.ts +0 -13
- package/shaders/star-field-material/star-field-material.d.ts +0 -13
- package/shaders/wireframe-material/wireframe-material.d.ts +0 -58
- package/staging/accumulative-shadows/accumulative-shadows.d.ts +0 -146
- package/staging/accumulative-shadows/progressive-light-map.d.ts +0 -34
- package/staging/accumulative-shadows/randomized-lights.d.ts +0 -90
- package/staging/backdrop/backdrop.d.ts +0 -30
- package/staging/bb-anchor/bb-anchor.d.ts +0 -27
- package/staging/bounds/bounds.d.ts +0 -134
- package/staging/camera-shake/camera-shake.d.ts +0 -43
- package/staging/center/center.d.ts +0 -70
- package/staging/cloud/cloud.d.ts +0 -51
- package/staging/contact-shadows/contact-shadows.d.ts +0 -70
- package/staging/environment/assets.d.ts +0 -13
- package/staging/environment/environment-cube.d.ts +0 -15
- package/staging/environment/environment-ground.d.ts +0 -13
- package/staging/environment/environment-input.d.ts +0 -68
- package/staging/environment/environment-map.d.ts +0 -16
- package/staging/environment/environment-portal.d.ts +0 -18
- package/staging/environment/environment.d.ts +0 -8
- package/staging/environment/utils.d.ts +0 -7
- package/staging/float/float.d.ts +0 -31
- package/staging/matcap-texture/matcap-texture.d.ts +0 -13
- package/staging/normal-texture/normal-texture.d.ts +0 -16
- package/staging/sky/sky.d.ts +0 -48
- package/staging/sparkles/sparkles.d.ts +0 -63
- package/staging/spot-light/shadow-mesh-input.d.ts +0 -29
- package/staging/spot-light/shadow-mesh.d.ts +0 -37
- package/staging/spot-light/spot-light-input.d.ts +0 -38
- package/staging/spot-light/spot-light.d.ts +0 -39
- package/staging/spot-light/volumetric-mesh.d.ts +0 -24
- package/staging/stage/stage.d.ts +0 -130
- package/staging/stars/stars.d.ts +0 -45
- package/staging/wireframe/wireframe-input.d.ts +0 -65
- package/staging/wireframe/wireframe.d.ts +0 -28
- package/utils/README.md +0 -3
- package/utils/content/content.d.ts +0 -8
- package/utils/index.d.ts +0 -1
- /package/misc/{bake-shadows → lib}/bake-shadows.d.ts +0 -0
|
@@ -1,389 +0,0 @@
|
|
|
1
|
-
import { NgIf } from '@angular/common';
|
|
2
|
-
import { CUSTOM_ELEMENTS_SCHEMA, Component, Directive, EventEmitter, Input, Output, computed, } from '@angular/core';
|
|
3
|
-
import { NgtArgs, extend, signalStore } from 'angular-three';
|
|
4
|
-
import { AmbientLight, Group, PointLight, SpotLight, Vector2 } from 'three';
|
|
5
|
-
import { NgtsAccumulativeShadows, } from '../accumulative-shadows/accumulative-shadows';
|
|
6
|
-
import { NgtsRandomizedLights } from '../accumulative-shadows/randomized-lights';
|
|
7
|
-
import { NgtsBounds, injectNgtsBoundsApi } from '../bounds/bounds';
|
|
8
|
-
import { NgtsCenter } from '../center/center';
|
|
9
|
-
import { NgtsContactShadows } from '../contact-shadows/contact-shadows';
|
|
10
|
-
import { NgtsEnvironment } from '../environment/environment';
|
|
11
|
-
import {} from '../environment/environment-input';
|
|
12
|
-
import * as i0 from "@angular/core";
|
|
13
|
-
const presets = {
|
|
14
|
-
rembrandt: {
|
|
15
|
-
main: [1, 2, 1],
|
|
16
|
-
fill: [-2, -0.5, -2],
|
|
17
|
-
},
|
|
18
|
-
portrait: {
|
|
19
|
-
main: [-1, 2, 0.5],
|
|
20
|
-
fill: [-1, 0.5, -1.5],
|
|
21
|
-
},
|
|
22
|
-
upfront: {
|
|
23
|
-
main: [0, 2, 1],
|
|
24
|
-
fill: [-1, 0.5, -1.5],
|
|
25
|
-
},
|
|
26
|
-
soft: {
|
|
27
|
-
main: [-2, 4, 4],
|
|
28
|
-
fill: [-1, 0.5, -1.5],
|
|
29
|
-
},
|
|
30
|
-
};
|
|
31
|
-
extend({ AmbientLight, SpotLight, Vector2, PointLight, Group });
|
|
32
|
-
export class NgtsStageRefit {
|
|
33
|
-
constructor() {
|
|
34
|
-
this.boundsApi = injectNgtsBoundsApi();
|
|
35
|
-
this.radius = 0;
|
|
36
|
-
this.adjustCamera = true;
|
|
37
|
-
}
|
|
38
|
-
ngOnChanges() {
|
|
39
|
-
if (this.adjustCamera) {
|
|
40
|
-
this.boundsApi().refresh().clip().fit();
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: NgtsStageRefit, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
44
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.2", type: NgtsStageRefit, isStandalone: true, selector: "ngts-stage-refit", inputs: { radius: "radius", adjustCamera: "adjustCamera" }, usesOnChanges: true, ngImport: i0 }); }
|
|
45
|
-
}
|
|
46
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: NgtsStageRefit, decorators: [{
|
|
47
|
-
type: Directive,
|
|
48
|
-
args: [{ selector: 'ngts-stage-refit', standalone: true }]
|
|
49
|
-
}], propDecorators: { radius: [{
|
|
50
|
-
type: Input
|
|
51
|
-
}], adjustCamera: [{
|
|
52
|
-
type: Input
|
|
53
|
-
}] } });
|
|
54
|
-
export class NgtsStage {
|
|
55
|
-
constructor() {
|
|
56
|
-
this.Number = Number;
|
|
57
|
-
this.inputs = signalStore({
|
|
58
|
-
adjustCamera: true,
|
|
59
|
-
intensity: 0.5,
|
|
60
|
-
shadows: 'contact',
|
|
61
|
-
environment: 'city',
|
|
62
|
-
preset: 'rembrandt',
|
|
63
|
-
});
|
|
64
|
-
this.centered = new EventEmitter();
|
|
65
|
-
this.preset = this.inputs.select('preset');
|
|
66
|
-
this.environment = this.inputs.select('environment');
|
|
67
|
-
this.boundingState = signalStore({ radius: 0, width: 0, height: 0, depth: 0 });
|
|
68
|
-
this.config = computed(() => {
|
|
69
|
-
const preset = this.preset();
|
|
70
|
-
return typeof preset === 'string' ? presets[preset] : preset;
|
|
71
|
-
});
|
|
72
|
-
this.shadows = this.inputs.select('shadows');
|
|
73
|
-
this.intensity = this.inputs.select('intensity');
|
|
74
|
-
this.adjustCamera = this.inputs.select('adjustCamera');
|
|
75
|
-
this.center = this.inputs.select('center');
|
|
76
|
-
this.shadowsState = computed(() => {
|
|
77
|
-
const shadows = this.shadows();
|
|
78
|
-
const { bias: shadowBias = -0.0001, normalBias = 0, size: shadowSize = 1024, offset: shadowOffset = 0, ...restProps } = (typeof shadows === 'string' ? {} : shadows || {});
|
|
79
|
-
return {
|
|
80
|
-
contactShadow: shadows === 'contact' || restProps.type === 'contact',
|
|
81
|
-
accumulativeShadow: shadows === 'accumulative' || restProps.type === 'accumulative',
|
|
82
|
-
shadowBias,
|
|
83
|
-
normalBias,
|
|
84
|
-
shadowSize,
|
|
85
|
-
shadowOffset,
|
|
86
|
-
...restProps,
|
|
87
|
-
};
|
|
88
|
-
});
|
|
89
|
-
this.environmentState = computed(() => {
|
|
90
|
-
const environment = this.environment();
|
|
91
|
-
return !environment ? null : typeof environment === 'string' ? { preset: environment } : environment;
|
|
92
|
-
});
|
|
93
|
-
}
|
|
94
|
-
set _preset(preset) {
|
|
95
|
-
this.inputs.set({ preset });
|
|
96
|
-
}
|
|
97
|
-
set _shadows(shadows) {
|
|
98
|
-
this.inputs.set({ shadows });
|
|
99
|
-
}
|
|
100
|
-
set _adjustCamera(adjustCamera) {
|
|
101
|
-
this.inputs.set({ adjustCamera });
|
|
102
|
-
}
|
|
103
|
-
set _environment(environment) {
|
|
104
|
-
this.inputs.set({ environment });
|
|
105
|
-
}
|
|
106
|
-
set _intensity(intensity) {
|
|
107
|
-
this.inputs.set({ intensity });
|
|
108
|
-
}
|
|
109
|
-
set _center(center) {
|
|
110
|
-
this.inputs.set({ center });
|
|
111
|
-
}
|
|
112
|
-
onCentered($event) {
|
|
113
|
-
const { width, height, depth, boundingSphere } = $event;
|
|
114
|
-
this.boundingState.set({ radius: boundingSphere.radius, width, height, depth });
|
|
115
|
-
if (this.centered.observed)
|
|
116
|
-
this.centered.emit($event);
|
|
117
|
-
}
|
|
118
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: NgtsStage, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
119
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: NgtsStage, isStandalone: true, selector: "ngts-stage", inputs: { _preset: ["preset", "_preset"], _shadows: ["shadows", "_shadows"], _adjustCamera: ["adjustCamera", "_adjustCamera"], _environment: ["environment", "_environment"], _intensity: ["intensity", "_intensity"], _center: ["center", "_center"] }, outputs: { centered: "centered" }, ngImport: i0, template: `
|
|
120
|
-
<ngt-ambient-light [intensity]="intensity() / 3" />
|
|
121
|
-
<ngt-spot-light
|
|
122
|
-
[penumbra]="1"
|
|
123
|
-
[position]="[
|
|
124
|
-
config().main[0] * boundingState.get('radius'),
|
|
125
|
-
config().main[1] * boundingState.get('radius'),
|
|
126
|
-
config().main[2] * boundingState.get('radius')
|
|
127
|
-
]"
|
|
128
|
-
[intensity]="intensity() * 2"
|
|
129
|
-
[castShadow]="!!shadows()"
|
|
130
|
-
>
|
|
131
|
-
<ngt-value [rawValue]="shadowsState().shadowBias" attach="shadow.bias" />
|
|
132
|
-
<ngt-value [rawValue]="shadowsState().normalBias" attach="shadow.normalBias" />
|
|
133
|
-
<ngt-vector2 *args="[shadowsState().shadowSize, shadowsState().shadowSize]" attach="shadow.mapSize" />
|
|
134
|
-
</ngt-spot-light>
|
|
135
|
-
<ngt-point-light
|
|
136
|
-
[position]="[
|
|
137
|
-
config().fill[0] * boundingState.get('radius'),
|
|
138
|
-
config().fill[1] * boundingState.get('radius'),
|
|
139
|
-
config().fill[2] * boundingState.get('radius')
|
|
140
|
-
]"
|
|
141
|
-
[intensity]="intensity()"
|
|
142
|
-
/>
|
|
143
|
-
|
|
144
|
-
<ngts-bounds
|
|
145
|
-
[fit]="!!adjustCamera()"
|
|
146
|
-
[clip]="!!adjustCamera()"
|
|
147
|
-
[margin]="Number(adjustCamera())"
|
|
148
|
-
[observe]="true"
|
|
149
|
-
>
|
|
150
|
-
<ngts-stage-refit [radius]="boundingState.get('radius')" [adjustCamera]="adjustCamera()" />
|
|
151
|
-
<ngts-center
|
|
152
|
-
[position]="[0, shadowsState().shadowOffset / 2, 0]"
|
|
153
|
-
[top]="!!center()?.top"
|
|
154
|
-
[right]="!!center()?.right"
|
|
155
|
-
[bottom]="!!center()?.bottom"
|
|
156
|
-
[left]="!!center()?.left"
|
|
157
|
-
[front]="!!center()?.front"
|
|
158
|
-
[back]="!!center()?.back"
|
|
159
|
-
[disableX]="!!center()?.disableX"
|
|
160
|
-
[disableY]="!!center()?.disableY"
|
|
161
|
-
[disableZ]="!!center()?.disableZ"
|
|
162
|
-
[precise]="!!center()?.precise"
|
|
163
|
-
(centered)="onCentered($event)"
|
|
164
|
-
>
|
|
165
|
-
<ng-content />
|
|
166
|
-
</ngts-center>
|
|
167
|
-
</ngts-bounds>
|
|
168
|
-
|
|
169
|
-
<ngt-group [position]="[0, -boundingState.get('height') / 2 - shadowsState().shadowOffset / 2, 0]">
|
|
170
|
-
<ngts-contact-shadows
|
|
171
|
-
*ngIf="shadowsState().contactShadow"
|
|
172
|
-
[scale]="boundingState.get('radius') * 4"
|
|
173
|
-
[far]="boundingState.get('radius')"
|
|
174
|
-
[blur]="2"
|
|
175
|
-
[opacity]="shadowsState().opacity!"
|
|
176
|
-
[width]="shadowsState().width!"
|
|
177
|
-
[height]="shadowsState().height!"
|
|
178
|
-
[smooth]="shadowsState().smooth!"
|
|
179
|
-
[resolution]="shadowsState().resolution!"
|
|
180
|
-
[frames]="shadowsState().frames!"
|
|
181
|
-
[scale]="shadowsState().scale!"
|
|
182
|
-
[color]="shadowsState().color!"
|
|
183
|
-
[depthWrite]="shadowsState().depthWrite!"
|
|
184
|
-
[renderOrder]="shadowsState().renderOrder!"
|
|
185
|
-
/>
|
|
186
|
-
<ngts-accumulative-shadows
|
|
187
|
-
*ngIf="shadowsState().accumulativeShadow"
|
|
188
|
-
[temporal]="true"
|
|
189
|
-
[frames]="100"
|
|
190
|
-
[alphaTest]="0.9"
|
|
191
|
-
[toneMapped]="true"
|
|
192
|
-
[scale]="boundingState.get('radius') * 4"
|
|
193
|
-
[opacity]="shadowsState().opacity!"
|
|
194
|
-
[alphaTest]="shadowsState().alphaTest!"
|
|
195
|
-
[color]="shadowsState().color!"
|
|
196
|
-
[colorBlend]="shadowsState().colorBlend!"
|
|
197
|
-
[resolution]="shadowsState().resolution!"
|
|
198
|
-
>
|
|
199
|
-
<ngts-randomized-lights
|
|
200
|
-
[amount]="shadowsState().amount ?? 8"
|
|
201
|
-
[radius]="shadowsState().radius ?? boundingState.get('radius')"
|
|
202
|
-
[ambient]="shadowsState().ambient ?? 0.5"
|
|
203
|
-
[intensity]="shadowsState().intensity ?? 1"
|
|
204
|
-
[position]="[
|
|
205
|
-
config().main[0] * boundingState.get('radius'),
|
|
206
|
-
config().main[1] * boundingState.get('radius'),
|
|
207
|
-
config().main[2] * boundingState.get('radius')
|
|
208
|
-
]"
|
|
209
|
-
[size]="boundingState.get('radius') * 4"
|
|
210
|
-
[bias]="-shadowsState().shadowBias"
|
|
211
|
-
[mapSize]="shadowsState().shadowSize"
|
|
212
|
-
/>
|
|
213
|
-
</ngts-accumulative-shadows>
|
|
214
|
-
</ngt-group>
|
|
215
|
-
|
|
216
|
-
<ngts-environment
|
|
217
|
-
*ngIf="environmentState() as environment"
|
|
218
|
-
[frames]="environment.frames"
|
|
219
|
-
[near]="environment.near"
|
|
220
|
-
[far]="environment.far"
|
|
221
|
-
[resolution]="environment.resolution"
|
|
222
|
-
[background]="environment.background"
|
|
223
|
-
[blur]="environment.blur"
|
|
224
|
-
[map]="environment.map"
|
|
225
|
-
[files]="environment.files"
|
|
226
|
-
[path]="environment.path"
|
|
227
|
-
[preset]="environment.preset"
|
|
228
|
-
[scene]="environment.scene"
|
|
229
|
-
[extensions]="environment.extensions"
|
|
230
|
-
[ground]="environment.ground"
|
|
231
|
-
[encoding]="environment.encoding"
|
|
232
|
-
/>
|
|
233
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: NgtsBounds, selector: "ngts-bounds", inputs: ["boundsRef", "damping", "fit", "clip", "observe", "margin", "eps"], outputs: ["fitted"] }, { kind: "directive", type: NgtsStageRefit, selector: "ngts-stage-refit", inputs: ["radius", "adjustCamera"] }, { kind: "component", type: NgtsCenter, selector: "ngts-center", inputs: ["centerRef", "top", "right", "bottom", "left", "front", "back", "disableX", "disableY", "disableZ", "disable", "precise", "cacheKey"], outputs: ["centered"] }, { kind: "component", type: NgtsContactShadows, selector: "ngts-contact-shadows", inputs: ["contactShadowsRef", "opacity", "width", "height", "blur", "far", "smooth", "resolution", "frames", "scale", "color", "depthWrite", "renderOrder"] }, { kind: "component", type: NgtsAccumulativeShadows, selector: "ngts-accumulative-shadows", inputs: ["accumulativeShadowsRef", "frames", "blend", "limit", "scale", "temporal", "opacity", "alphaTest", "color", "colorBlend", "resolution", "toneMapped"] }, { kind: "component", type: NgtsRandomizedLights, selector: "ngts-randomized-lights", inputs: ["lightsRef", "frames", "position", "radius", "amount", "intensity", "ambient", "castShadow", "bias", "mapSize", "size", "near", "far"] }, { kind: "component", type: NgtsEnvironment, selector: "ngts-environment" }] }); }
|
|
234
|
-
}
|
|
235
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: NgtsStage, decorators: [{
|
|
236
|
-
type: Component,
|
|
237
|
-
args: [{
|
|
238
|
-
selector: 'ngts-stage',
|
|
239
|
-
standalone: true,
|
|
240
|
-
template: `
|
|
241
|
-
<ngt-ambient-light [intensity]="intensity() / 3" />
|
|
242
|
-
<ngt-spot-light
|
|
243
|
-
[penumbra]="1"
|
|
244
|
-
[position]="[
|
|
245
|
-
config().main[0] * boundingState.get('radius'),
|
|
246
|
-
config().main[1] * boundingState.get('radius'),
|
|
247
|
-
config().main[2] * boundingState.get('radius')
|
|
248
|
-
]"
|
|
249
|
-
[intensity]="intensity() * 2"
|
|
250
|
-
[castShadow]="!!shadows()"
|
|
251
|
-
>
|
|
252
|
-
<ngt-value [rawValue]="shadowsState().shadowBias" attach="shadow.bias" />
|
|
253
|
-
<ngt-value [rawValue]="shadowsState().normalBias" attach="shadow.normalBias" />
|
|
254
|
-
<ngt-vector2 *args="[shadowsState().shadowSize, shadowsState().shadowSize]" attach="shadow.mapSize" />
|
|
255
|
-
</ngt-spot-light>
|
|
256
|
-
<ngt-point-light
|
|
257
|
-
[position]="[
|
|
258
|
-
config().fill[0] * boundingState.get('radius'),
|
|
259
|
-
config().fill[1] * boundingState.get('radius'),
|
|
260
|
-
config().fill[2] * boundingState.get('radius')
|
|
261
|
-
]"
|
|
262
|
-
[intensity]="intensity()"
|
|
263
|
-
/>
|
|
264
|
-
|
|
265
|
-
<ngts-bounds
|
|
266
|
-
[fit]="!!adjustCamera()"
|
|
267
|
-
[clip]="!!adjustCamera()"
|
|
268
|
-
[margin]="Number(adjustCamera())"
|
|
269
|
-
[observe]="true"
|
|
270
|
-
>
|
|
271
|
-
<ngts-stage-refit [radius]="boundingState.get('radius')" [adjustCamera]="adjustCamera()" />
|
|
272
|
-
<ngts-center
|
|
273
|
-
[position]="[0, shadowsState().shadowOffset / 2, 0]"
|
|
274
|
-
[top]="!!center()?.top"
|
|
275
|
-
[right]="!!center()?.right"
|
|
276
|
-
[bottom]="!!center()?.bottom"
|
|
277
|
-
[left]="!!center()?.left"
|
|
278
|
-
[front]="!!center()?.front"
|
|
279
|
-
[back]="!!center()?.back"
|
|
280
|
-
[disableX]="!!center()?.disableX"
|
|
281
|
-
[disableY]="!!center()?.disableY"
|
|
282
|
-
[disableZ]="!!center()?.disableZ"
|
|
283
|
-
[precise]="!!center()?.precise"
|
|
284
|
-
(centered)="onCentered($event)"
|
|
285
|
-
>
|
|
286
|
-
<ng-content />
|
|
287
|
-
</ngts-center>
|
|
288
|
-
</ngts-bounds>
|
|
289
|
-
|
|
290
|
-
<ngt-group [position]="[0, -boundingState.get('height') / 2 - shadowsState().shadowOffset / 2, 0]">
|
|
291
|
-
<ngts-contact-shadows
|
|
292
|
-
*ngIf="shadowsState().contactShadow"
|
|
293
|
-
[scale]="boundingState.get('radius') * 4"
|
|
294
|
-
[far]="boundingState.get('radius')"
|
|
295
|
-
[blur]="2"
|
|
296
|
-
[opacity]="shadowsState().opacity!"
|
|
297
|
-
[width]="shadowsState().width!"
|
|
298
|
-
[height]="shadowsState().height!"
|
|
299
|
-
[smooth]="shadowsState().smooth!"
|
|
300
|
-
[resolution]="shadowsState().resolution!"
|
|
301
|
-
[frames]="shadowsState().frames!"
|
|
302
|
-
[scale]="shadowsState().scale!"
|
|
303
|
-
[color]="shadowsState().color!"
|
|
304
|
-
[depthWrite]="shadowsState().depthWrite!"
|
|
305
|
-
[renderOrder]="shadowsState().renderOrder!"
|
|
306
|
-
/>
|
|
307
|
-
<ngts-accumulative-shadows
|
|
308
|
-
*ngIf="shadowsState().accumulativeShadow"
|
|
309
|
-
[temporal]="true"
|
|
310
|
-
[frames]="100"
|
|
311
|
-
[alphaTest]="0.9"
|
|
312
|
-
[toneMapped]="true"
|
|
313
|
-
[scale]="boundingState.get('radius') * 4"
|
|
314
|
-
[opacity]="shadowsState().opacity!"
|
|
315
|
-
[alphaTest]="shadowsState().alphaTest!"
|
|
316
|
-
[color]="shadowsState().color!"
|
|
317
|
-
[colorBlend]="shadowsState().colorBlend!"
|
|
318
|
-
[resolution]="shadowsState().resolution!"
|
|
319
|
-
>
|
|
320
|
-
<ngts-randomized-lights
|
|
321
|
-
[amount]="shadowsState().amount ?? 8"
|
|
322
|
-
[radius]="shadowsState().radius ?? boundingState.get('radius')"
|
|
323
|
-
[ambient]="shadowsState().ambient ?? 0.5"
|
|
324
|
-
[intensity]="shadowsState().intensity ?? 1"
|
|
325
|
-
[position]="[
|
|
326
|
-
config().main[0] * boundingState.get('radius'),
|
|
327
|
-
config().main[1] * boundingState.get('radius'),
|
|
328
|
-
config().main[2] * boundingState.get('radius')
|
|
329
|
-
]"
|
|
330
|
-
[size]="boundingState.get('radius') * 4"
|
|
331
|
-
[bias]="-shadowsState().shadowBias"
|
|
332
|
-
[mapSize]="shadowsState().shadowSize"
|
|
333
|
-
/>
|
|
334
|
-
</ngts-accumulative-shadows>
|
|
335
|
-
</ngt-group>
|
|
336
|
-
|
|
337
|
-
<ngts-environment
|
|
338
|
-
*ngIf="environmentState() as environment"
|
|
339
|
-
[frames]="environment.frames"
|
|
340
|
-
[near]="environment.near"
|
|
341
|
-
[far]="environment.far"
|
|
342
|
-
[resolution]="environment.resolution"
|
|
343
|
-
[background]="environment.background"
|
|
344
|
-
[blur]="environment.blur"
|
|
345
|
-
[map]="environment.map"
|
|
346
|
-
[files]="environment.files"
|
|
347
|
-
[path]="environment.path"
|
|
348
|
-
[preset]="environment.preset"
|
|
349
|
-
[scene]="environment.scene"
|
|
350
|
-
[extensions]="environment.extensions"
|
|
351
|
-
[ground]="environment.ground"
|
|
352
|
-
[encoding]="environment.encoding"
|
|
353
|
-
/>
|
|
354
|
-
`,
|
|
355
|
-
imports: [
|
|
356
|
-
NgtArgs,
|
|
357
|
-
NgIf,
|
|
358
|
-
NgtsBounds,
|
|
359
|
-
NgtsStageRefit,
|
|
360
|
-
NgtsCenter,
|
|
361
|
-
NgtsContactShadows,
|
|
362
|
-
NgtsAccumulativeShadows,
|
|
363
|
-
NgtsRandomizedLights,
|
|
364
|
-
NgtsEnvironment,
|
|
365
|
-
],
|
|
366
|
-
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
367
|
-
}]
|
|
368
|
-
}], propDecorators: { _preset: [{
|
|
369
|
-
type: Input,
|
|
370
|
-
args: [{ alias: 'preset' }]
|
|
371
|
-
}], _shadows: [{
|
|
372
|
-
type: Input,
|
|
373
|
-
args: [{ alias: 'shadows' }]
|
|
374
|
-
}], _adjustCamera: [{
|
|
375
|
-
type: Input,
|
|
376
|
-
args: [{ alias: 'adjustCamera' }]
|
|
377
|
-
}], _environment: [{
|
|
378
|
-
type: Input,
|
|
379
|
-
args: [{ alias: 'environment' }]
|
|
380
|
-
}], _intensity: [{
|
|
381
|
-
type: Input,
|
|
382
|
-
args: [{ alias: 'intensity' }]
|
|
383
|
-
}], _center: [{
|
|
384
|
-
type: Input,
|
|
385
|
-
args: [{ alias: 'center' }]
|
|
386
|
-
}], centered: [{
|
|
387
|
-
type: Output
|
|
388
|
-
}] } });
|
|
389
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvc3RhZ2luZy9zcmMvc3RhZ2Uvc3RhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZDLE9BQU8sRUFDTixzQkFBc0IsRUFDdEIsU0FBUyxFQUNULFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixRQUFRLEdBRVIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQzVFLE9BQU8sRUFDTix1QkFBdUIsR0FFdkIsTUFBTSw4Q0FBOEMsQ0FBQztBQUN0RCxPQUFPLEVBQUUsb0JBQW9CLEVBQWtDLE1BQU0sMkNBQTJDLENBQUM7QUFDakgsT0FBTyxFQUFFLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxVQUFVLEVBQWdELE1BQU0sa0JBQWtCLENBQUM7QUFDNUYsT0FBTyxFQUFFLGtCQUFrQixFQUFnQyxNQUFNLG9DQUFvQyxDQUFDO0FBRXRHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQWtDLE1BQU0sa0NBQWtDLENBQUM7O0FBRWxGLE1BQU0sT0FBTyxHQUFHO0lBQ2YsU0FBUyxFQUFFO1FBQ1YsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDZixJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztLQUNwQjtJ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dXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcblx0Q1VTVE9NX0VMRU1FTlRTX1NDSEVNQSxcblx0Q29tcG9uZW50LFxuXHREaXJlY3RpdmUsXG5cdEV2ZW50RW1pdHRlcixcblx0SW5wdXQsXG5cdE91dHB1dCxcblx0Y29tcHV0ZWQsXG5cdHR5cGUgT25DaGFuZ2VzLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5ndEFyZ3MsIGV4dGVuZCwgc2lnbmFsU3RvcmUgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IEFtYmllbnRMaWdodCwgR3JvdXAsIFBvaW50TGlnaHQsIFNwb3RMaWdodCwgVmVjdG9yMiB9IGZyb20gJ3RocmVlJztcbmltcG9ydCB7XG5cdE5ndHNBY2N1bXVsYXRpdmVTaGFkb3dzLFxuXHR0eXBlIE5ndHNBY2N1bXVsYXRpdmVTaGFkb3dzU3RhdGUsXG59IGZyb20gJy4uL2FjY3VtdWxhdGl2ZS1zaGFkb3dzL2FjY3VtdWxhdGl2ZS1zaGFkb3dzJztcbmltcG9ydCB7IE5ndHNSYW5kb21pemVkTGlnaHRzLCB0eXBlIE5ndHNSYW5kb21pemVkTGlnaHRzU3RhdGUgfSBmcm9tICcuLi9hY2N1bXVsYXRpdmUtc2hhZG93cy9yYW5kb21pemVkLWxpZ2h0cyc7XG5pbXBvcnQgeyBOZ3RzQm91bmRzLCBpbmplY3ROZ3RzQm91bmRzQXBpIH0gZnJvbSAnLi4vYm91bmRzL2JvdW5kcyc7XG5pbXBvcnQgeyBOZ3RzQ2VudGVyLCB0eXBlIE5ndHNDZW50ZXJTdGF0ZSwgdHlwZSBOZ3RzQ2VudGVyZWRFdmVudCB9IGZyb20gJy4uL2NlbnRlci9jZW50ZXInO1xuaW1wb3J0IHsgTmd0c0NvbnRhY3RTaGFkb3dzLCB0eXBlIE5ndHNDb250YWN0U2hhZG93c1N0YXRlIH0gZnJvbSAnLi4vY29udGFjdC1zaGFkb3dzL2NvbnRhY3Qtc2hhZG93cyc7XG5pbXBvcnQgdHlwZSB7IE5ndHNFbnZpcm9ubWVudFByZXNldHNUeXBlIH0gZnJvbSAnLi4vZW52aXJvbm1lbnQvYXNzZXRzJztcbmltcG9ydCB7IE5ndHNFbnZpcm9ubWVudCB9IGZyb20gJy4uL2Vudmlyb25tZW50L2Vudmlyb25tZW50JztcbmltcG9ydCB7IHR5cGUgTmd0c0Vudmlyb25tZW50SW5wdXRTdGF0ZSB9IGZyb20gJy4uL2Vudmlyb25tZW50L2Vudmlyb25tZW50LWlucHV0JztcblxuY29uc3QgcHJlc2V0cyA9IHtcblx0cmVtYnJhbmR0OiB7XG5cdFx0bWFpbjogWzEsIDIsIDFdLFxuXHRcdGZpbGw6IFstMiwgLTAuNSwgLTJdLFxuXHR9LFxuXHRwb3J0cmFpdDoge1xuXHRcdG1haW46IFstMSwgMiwgMC41XSxcblx0XHRmaWxsOiBbLTEsIDAuNSwgLTEuNV0sXG5cdH0sXG5cdHVwZnJvbnQ6IHtcblx0XHRtYWluOiBbMCwgMiwgMV0sXG5cdFx0ZmlsbDogWy0xLCAwLjUsIC0xLjVdLFxuXHR9LFxuXHRzb2Z0OiB7XG5cdFx0bWFpbjogWy0yLCA0LCA0XSxcblx0XHRmaWxsOiBbLTEsIDAuNSwgLTEuNV0sXG5cdH0sXG59O1xuXG50eXBlIE5ndHNTdGFnZVNoYWRvd3NTdGF0ZSA9IFBhcnRpYWw8Tmd0c0FjY3VtdWxhdGl2ZVNoYWRvd3NTdGF0ZT4gJlxuXHRQYXJ0aWFsPE5ndHNSYW5kb21pemVkTGlnaHRzU3RhdGU+ICZcblx0UGFydGlhbDxOZ3RzQ29udGFjdFNoYWRvd3NTdGF0ZT4gJiB7XG5cdFx0dHlwZTogJ2NvbnRhY3QnIHwgJ2FjY3VtdWxhdGl2ZSc7XG5cdFx0LyoqIFNoYWRvdyBwbGFuZSBvZmZzZXQsIGRlZmF1bHQ6IDAgKi9cblx0XHRvZmZzZXQ/OiBudW1iZXI7XG5cdFx0LyoqIFNoYWRvdyBiaWFzLCBkZWZhdWx0OiAtMC4wMDAxICovXG5cdFx0Ymlhcz86IG51bWJlcjtcblx0XHQvKiogU2hhZG93IG5vcm1hbCBiaWFzLCBkZWZhdWx0OiAwICovXG5cdFx0bm9ybWFsQmlhcz86IG51bWJlcjtcblx0XHQvKiogU2hhZG93IG1hcCBzaXplLCBkZWZhdWx0OiAxMDI0ICovXG5cdFx0c2l6ZT86IG51bWJlcjtcblx0fTtcblxuZXhwb3J0IHR5cGUgTmd0c1N0YWdlU3RhdGUgPSB7XG5cdC8qKiBMaWdodGluZyBzZXR1cCwgZGVmYXVsdDogXCJyZW1icmFuZHRcIiAqL1xuXHRwcmVzZXQ6XG5cdFx0fCAncmVtYnJhbmR0J1xuXHRcdHwgJ3BvcnRyYWl0J1xuXHRcdHwgJ3VwZnJvbnQnXG5cdFx0fCAnc29mdCdcblx0XHR8IHsgbWFpbjogW3g6IG51bWJlciwgeTogbnVtYmVyLCB6OiBudW1iZXJdOyBmaWxsOiBbeDogbnVtYmVyLCB5OiBudW1iZXIsIHo6IG51bWJlcl0gfTtcblx0LyoqIENvbnRyb2xzIHRoZSBncm91bmQgc2hhZG93cywgZGVmYXVsdDogXCJjb250YWN0XCIgKi9cblx0c2hhZG93czogYm9vbGVhbiB8ICdjb250YWN0JyB8ICdhY2N1bXVsYXRpdmUnIHwgTmd0c1N0YWdlU2hhZG93c1N0YXRlO1xuXHQvKiogT3B0aW9uYWxseSB3cmFwcyBhbmQgdGhlcmVieSBjZW50ZXJzIHRoZSBtb2RlbHMgdXNpbmcgPEJvdW5kcz4sIGNhbiBhbHNvIGJlIGEgbWFyZ2luLCBkZWZhdWx0OiB0cnVlICovXG5cdGFkanVzdENhbWVyYTogYm9vbGVhbiB8IG51bWJlcjtcblx0LyoqIFRoZSBkZWZhdWx0IGVudmlyb25tZW50LCBkZWZhdWx0OiBcImNpdHlcIiAqL1xuXHRlbnZpcm9ubWVudDogTmd0c0Vudmlyb25tZW50UHJlc2V0c1R5cGUgfCBQYXJ0aWFsPE5ndHNFbnZpcm9ubWVudElucHV0U3RhdGU+O1xuXHQvKiogVGhlIGxpZ2h0aW5nIGludGVuc2l0eSwgZGVmYXVsdDogMC41ICovXG5cdGludGVuc2l0eTogbnVtYmVyO1xuXHQvKiogVG8gYWRqdXN0IGNlbnRlcmluZywgZGVmYXVsdDogdW5kZWZpbmVkICovXG5cdGNlbnRlcj86IFBhcnRpYWw8Tmd0c0NlbnRlclN0YXRlPjtcbn07XG5cbmRlY2xhcmUgZ2xvYmFsIHtcblx0aW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG5cdFx0J25ndHMtc3RhZ2UnOiBOZ3RzU3RhZ2VTdGF0ZTtcblx0fVxufVxuXG5leHRlbmQoeyBBbWJpZW50TGlnaHQsIFNwb3RMaWdodCwgVmVjdG9yMiwgUG9pbnRMaWdodCwgR3JvdXAgfSk7XG5cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ25ndHMtc3RhZ2UtcmVmaXQnLCBzdGFuZGFsb25lOiB0cnVlIH0pXG5leHBvcnQgY2xhc3MgTmd0c1N0YWdlUmVmaXQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuXHRib3VuZHNBcGkgPSBpbmplY3ROZ3RzQm91bmRzQXBpKCk7XG5cblx0QElucHV0KCkgcmFkaXVzID0gMDtcblx0QElucHV0KCkgYWRqdXN0Q2FtZXJhOiBib29sZWFuIHwgbnVtYmVyID0gdHJ1ZTtcblxuXHRuZ09uQ2hhbmdlcygpIHtcblx0XHRpZiAodGhpcy5hZGp1c3RDYW1lcmEpIHtcblx0XHRcdHRoaXMuYm91bmRzQXBpKCkucmVmcmVzaCgpLmNsaXAoKS5maXQoKTtcblx0XHR9XG5cdH1cbn1cblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cy1zdGFnZScsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC1hbWJpZW50LWxpZ2h0IFtpbnRlbnNpdHldPVwiaW50ZW5zaXR5KCkgLyAzXCIgLz5cblx0XHQ8bmd0LXNwb3QtbGlnaHRcblx0XHRcdFtwZW51bWJyYV09XCIxXCJcblx0XHRcdFtwb3NpdGlvbl09XCJbXG5cdFx0XHRcdGNvbmZpZygpLm1haW5bMF0gKiBib3VuZGluZ1N0YXRlLmdldCgncmFkaXVzJyksXG5cdFx0XHRcdGNvbmZpZygpLm1haW5bMV0gKiBib3VuZGluZ1N0YXRlLmdldCgncmFkaXVzJyksXG5cdFx0XHRcdGNvbmZpZygpLm1haW5bMl0gKiBib3VuZGluZ1N0YXRlLmdldCgncmFkaXVzJylcblx0XHRcdF1cIlxuXHRcdFx0W2ludGVuc2l0eV09XCJpbnRlbnNpdHkoKSAqIDJcIlxuXHRcdFx0W2Nhc3RTaGFkb3ddPVwiISFzaGFkb3dzKClcIlxuXHRcdD5cblx0XHRcdDxuZ3QtdmFsdWUgW3Jhd1ZhbHVlXT1cInNoYWRvd3NTdGF0ZSgpLnNoYWRvd0JpYXNcIiBhdHRhY2g9XCJzaGFkb3cuYmlhc1wiIC8+XG5cdFx0XHQ8bmd0LXZhbHVlIFtyYXdWYWx1ZV09XCJzaGFkb3dzU3RhdGUoKS5ub3JtYWxCaWFzXCIgYXR0YWNoPVwic2hhZG93Lm5vcm1hbEJpYXNcIiAvPlxuXHRcdFx0PG5ndC12ZWN0b3IyICphcmdzPVwiW3NoYWRvd3NTdGF0ZSgpLnNoYWRvd1NpemUsIHNoYWRvd3NTdGF0ZSgpLnNoYWRvd1NpemVdXCIgYXR0YWNoPVwic2hhZG93Lm1hcFNpemVcIiAvPlxuXHRcdDwvbmd0LXNwb3QtbGlnaHQ+XG5cdFx0PG5ndC1wb2ludC1saWdodFxuXHRcdFx0W3Bvc2l0aW9uXT1cIltcblx0XHRcdFx0Y29uZmlnKCkuZmlsbFswXSAqIGJvdW5kaW5nU3RhdGUuZ2V0KCdyYWRpdXMnKSxcblx0XHRcdFx0Y29uZmlnKCkuZmlsbFsxXSAqIGJvdW5kaW5nU3RhdGUuZ2V0KCdyYWRpdXMnKSxcblx0XHRcdFx0Y29uZmlnKCkuZmlsbFsyXSAqIGJvdW5kaW5nU3RhdGUuZ2V0KCdyYWRpdXMnKVxuXHRcdFx0XVwiXG5cdFx0XHRbaW50ZW5zaXR5XT1cImludGVuc2l0eSgpXCJcblx0XHQvPlxuXG5cdFx0PG5ndHMtYm91bmRzXG5cdFx0XHRbZml0XT1cIiEhYWRqdXN0Q2FtZXJhKClcIlxuXHRcdFx0W2NsaXBdPVwiISFhZGp1c3RDYW1lcmEoKVwiXG5cdFx0XHRbbWFyZ2luXT1cIk51bWJlcihhZGp1c3RDYW1lcmEoKSlcIlxuXHRcdFx0W29ic2VydmVdPVwidHJ1ZVwiXG5cdFx0PlxuXHRcdFx0PG5ndHMtc3RhZ2UtcmVmaXQgW3JhZGl1c109XCJib3VuZGluZ1N0YXRlLmdldCgncmFkaXVzJylcIiBbYWRqdXN0Q2FtZXJhXT1cImFkanVzdENhbWVyYSgpXCIgLz5cblx0XHRcdDxuZ3RzLWNlbnRlclxuXHRcdFx0XHRbcG9zaXRpb25dPVwiWzAsIHNoYWRvd3NTdGF0ZSgpLnNoYWRvd09mZnNldCAvIDIsIDBdXCJcblx0XHRcdFx0W3RvcF09XCIhIWNlbnRlcigpPy50b3BcIlxuXHRcdFx0XHRbcmlnaHRdPVwiISFjZW50ZXIoKT8ucmlnaHRcIlxuXHRcdFx0XHRbYm90dG9tXT1cIiEhY2VudGVyKCk/LmJvdHRvbVwiXG5cdFx0XHRcdFtsZWZ0XT1cIiEhY2VudGVyKCk/LmxlZnRcIlxuXHRcdFx0XHRbZnJvbnRdPVwiISFjZW50ZXIoKT8uZnJvbnRcIlxuXHRcdFx0XHRbYmFja109XCIhIWNlbnRlcigpPy5iYWNrXCJcblx0XHRcdFx0W2Rpc2FibGVYXT1cIiEhY2VudGVyKCk/LmRpc2FibGVYXCJcblx0XHRcdFx0W2Rpc2FibGVZXT1cIiEhY2VudGVyKCk/LmRpc2FibGVZXCJcblx0XHRcdFx0W2Rpc2FibGVaXT1cIiEhY2VudGVyKCk/LmRpc2FibGVaXCJcblx0XHRcdFx0W3ByZWNpc2VdPVwiISFjZW50ZXIoKT8ucHJlY2lzZVwiXG5cdFx0XHRcdChjZW50ZXJlZCk9XCJvbkNlbnRlcmVkKCRldmVudClcIlxuXHRcdFx0PlxuXHRcdFx0XHQ8bmctY29udGVudCAvPlxuXHRcdFx0PC9uZ3RzLWNlbnRlcj5cblx0XHQ8L25ndHMtYm91bmRzPlxuXG5cdFx0PG5ndC1ncm91cCBbcG9zaXRpb25dPVwiWzAsIC1ib3VuZGluZ1N0YXRlLmdldCgnaGVpZ2h0JykgLyAyIC0gc2hhZG93c1N0YXRlKCkuc2hhZG93T2Zmc2V0IC8gMiwgMF1cIj5cblx0XHRcdDxuZ3RzLWNvbnRhY3Qtc2hhZG93c1xuXHRcdFx0XHQqbmdJZj1cInNoYWRvd3NTdGF0ZSgpLmNvbnRhY3RTaGFkb3dcIlxuXHRcdFx0XHRbc2NhbGVdPVwiYm91bmRpbmdTdGF0ZS5nZXQoJ3JhZGl1cycpICogNFwiXG5cdFx0XHRcdFtmYXJdPVwiYm91bmRpbmdTdGF0ZS5nZXQoJ3JhZGl1cycpXCJcblx0XHRcdFx0W2JsdXJdPVwiMlwiXG5cdFx0XHRcdFtvcGFjaXR5XT1cInNoYWRvd3NTdGF0ZSgpLm9wYWNpdHkhXCJcblx0XHRcdFx0W3dpZHRoXT1cInNoYWRvd3NTdGF0ZSgpLndpZHRoIVwiXG5cdFx0XHRcdFtoZWlnaHRdPVwic2hhZG93c1N0YXRlKCkuaGVpZ2h0IVwiXG5cdFx0XHRcdFtzbW9vdGhdPVwic2hhZG93c1N0YXRlKCkuc21vb3RoIVwiXG5cdFx0XHRcdFtyZXNvbHV0aW9uXT1cInNoYWRvd3NTdGF0ZSgpLnJlc29sdXRpb24hXCJcblx0XHRcdFx0W2ZyYW1lc109XCJzaGFkb3dzU3RhdGUoKS5mcmFtZXMhXCJcblx0XHRcdFx0W3NjYWxlXT1cInNoYWRvd3NTdGF0ZSgpLnNjYWxlIVwiXG5cdFx0XHRcdFtjb2xvcl09XCJzaGFkb3dzU3RhdGUoKS5jb2xvciFcIlxuXHRcdFx0XHRbZGVwdGhXcml0ZV09XCJzaGFkb3dzU3RhdGUoKS5kZXB0aFdyaXRlIVwiXG5cdFx0XHRcdFtyZW5kZXJPcmRlcl09XCJzaGFkb3dzU3RhdGUoKS5yZW5kZXJPcmRlciFcIlxuXHRcdFx0Lz5cblx0XHRcdDxuZ3RzLWFjY3VtdWxhdGl2ZS1zaGFkb3dzXG5cdFx0XHRcdCpuZ0lmPVwic2hhZG93c1N0YXRlKCkuYWNjdW11bGF0aXZlU2hhZG93XCJcblx0XHRcdFx0W3RlbXBvcmFsXT1cInRydWVcIlxuXHRcdFx0XHRbZnJhbWVzXT1cIjEwMFwiXG5cdFx0XHRcdFthbHBoYVRlc3RdPVwiMC45XCJcblx0XHRcdFx0W3RvbmVNYXBwZWRdPVwidHJ1ZVwiXG5cdFx0XHRcdFtzY2FsZV09XCJib3VuZGluZ1N0YXRlLmdldCgncmFkaXVzJykgKiA0XCJcblx0XHRcdFx0W29wYWNpdHldPVwic2hhZG93c1N0YXRlKCkub3BhY2l0eSFcIlxuXHRcdFx0XHRbYWxwaGFUZXN0XT1cInNoYWRvd3NTdGF0ZSgpLmFscGhhVGVzdCFcIlxuXHRcdFx0XHRbY29sb3JdPVwic2hhZG93c1N0YXRlKCkuY29sb3IhXCJcblx0XHRcdFx0W2NvbG9yQmxlbmRdPVwic2hhZG93c1N0YXRlKCkuY29sb3JCbGVuZCFcIlxuXHRcdFx0XHRbcmVzb2x1dGlvbl09XCJzaGFkb3dzU3RhdGUoKS5yZXNvbHV0aW9uIVwiXG5cdFx0XHQ+XG5cdFx0XHRcdDxuZ3RzLXJhbmRvbWl6ZWQtbGlnaHRzXG5cdFx0XHRcdFx0W2Ftb3VudF09XCJzaGFkb3dzU3RhdGUoKS5hbW91bnQgPz8gOFwiXG5cdFx0XHRcdFx0W3JhZGl1c109XCJzaGFkb3dzU3RhdGUoKS5yYWRpdXMgPz8gYm91bmRpbmdTdGF0ZS5nZXQoJ3JhZGl1cycpXCJcblx0XHRcdFx0XHRbYW1iaWVudF09XCJzaGFkb3dzU3RhdGUoKS5hbWJpZW50ID8/IDAuNVwiXG5cdFx0XHRcdFx0W2ludGVuc2l0eV09XCJzaGFkb3dzU3RhdGUoKS5pbnRlbnNpdHkgPz8gMVwiXG5cdFx0XHRcdFx0W3Bvc2l0aW9uXT1cIltcblx0XHRcdFx0XHRcdGNvbmZpZygpLm1haW5bMF0gKiBib3VuZGluZ1N0YXRlLmdldCgncmFkaXVzJyksXG5cdFx0XHRcdFx0XHRjb25maWcoKS5tYWluWzFdICogYm91bmRpbmdTdGF0ZS5nZXQoJ3JhZGl1cycpLFxuXHRcdFx0XHRcdFx0Y29uZmlnKCkubWFpblsyXSAqIGJvdW5kaW5nU3RhdGUuZ2V0KCdyYWRpdXMnKVxuXHRcdFx0XHRcdF1cIlxuXHRcdFx0XHRcdFtzaXplXT1cImJvdW5kaW5nU3RhdGUuZ2V0KCdyYWRpdXMnKSAqIDRcIlxuXHRcdFx0XHRcdFtiaWFzXT1cIi1zaGFkb3dzU3RhdGUoKS5zaGFkb3dCaWFzXCJcblx0XHRcdFx0XHRbbWFwU2l6ZV09XCJzaGFkb3dzU3RhdGUoKS5zaGFkb3dTaXplXCJcblx0XHRcdFx0Lz5cblx0XHRcdDwvbmd0cy1hY2N1bXVsYXRpdmUtc2hhZG93cz5cblx0XHQ8L25ndC1ncm91cD5cblxuXHRcdDxuZ3RzLWVudmlyb25tZW50XG5cdFx0XHQqbmdJZj1cImVudmlyb25tZW50U3RhdGUoKSBhcyBlbnZpcm9ubWVudFwiXG5cdFx0XHRbZnJhbWVzXT1cImVudmlyb25tZW50LmZyYW1lc1wiXG5cdFx0XHRbbmVhcl09XCJlbnZpcm9ubWVudC5uZWFyXCJcblx0XHRcdFtmYXJdPVwiZW52aXJvbm1lbnQuZmFyXCJcblx0XHRcdFtyZXNvbHV0aW9uXT1cImVudmlyb25tZW50LnJlc29sdXRpb25cIlxuXHRcdFx0W2JhY2tncm91bmRdPVwiZW52aXJvbm1lbnQuYmFja2dyb3VuZFwiXG5cdFx0XHRbYmx1cl09XCJlbnZpcm9ubWVudC5ibHVyXCJcblx0XHRcdFttYXBdPVwiZW52aXJvbm1lbnQubWFwXCJcblx0XHRcdFtmaWxlc109XCJlbnZpcm9ubWVudC5maWxlc1wiXG5cdFx0XHRbcGF0aF09XCJlbnZpcm9ubWVudC5wYXRoXCJcblx0XHRcdFtwcmVzZXRdPVwiZW52aXJvbm1lbnQucHJlc2V0XCJcblx0XHRcdFtzY2VuZV09XCJlbnZpcm9ubWVudC5zY2VuZVwiXG5cdFx0XHRbZXh0ZW5zaW9uc109XCJlbnZpcm9ubWVudC5leHRlbnNpb25zXCJcblx0XHRcdFtncm91bmRdPVwiZW52aXJvbm1lbnQuZ3JvdW5kXCJcblx0XHRcdFtlbmNvZGluZ109XCJlbnZpcm9ubWVudC5lbmNvZGluZ1wiXG5cdFx0Lz5cblx0YCxcblx0aW1wb3J0czogW1xuXHRcdE5ndEFyZ3MsXG5cdFx0TmdJZixcblx0XHROZ3RzQm91bmRzLFxuXHRcdE5ndHNTdGFnZVJlZml0LFxuXHRcdE5ndHNDZW50ZXIsXG5cdFx0Tmd0c0NvbnRhY3RTaGFkb3dzLFxuXHRcdE5ndHNBY2N1bXVsYXRpdmVTaGFkb3dzLFxuXHRcdE5ndHNSYW5kb21pemVkTGlnaHRzLFxuXHRcdE5ndHNFbnZpcm9ubWVudCxcblx0XSxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RzU3RhZ2Uge1xuXHROdW1iZXIgPSBOdW1iZXI7XG5cblx0cHJpdmF0ZSBpbnB1dHMgPSBzaWduYWxTdG9yZTxOZ3RzU3RhZ2VTdGF0ZT4oe1xuXHRcdGFkanVzdENhbWVyYTogdHJ1ZSxcblx0XHRpbnRlbnNpdHk6IDAuNSxcblx0XHRzaGFkb3dzOiAnY29udGFjdCcsXG5cdFx0ZW52aXJvbm1lbnQ6ICdjaXR5Jyxcblx0XHRwcmVzZXQ6ICdyZW1icmFuZHQnLFxuXHR9KTtcblxuXHRASW5wdXQoeyBhbGlhczogJ3ByZXNldCcgfSkgc2V0IF9wcmVzZXQocHJlc2V0OiBOZ3RzU3RhZ2VTdGF0ZVsncHJlc2V0J10pIHtcblx0XHR0aGlzLmlucHV0cy5zZXQoeyBwcmVzZXQgfSk7XG5cdH1cblxuXHRASW5wdXQoeyBhbGlhczogJ3NoYWRvd3MnIH0pIHNldCBfc2hhZG93cyhzaGFkb3dzOiBOZ3RzU3RhZ2VTdGF0ZVsnc2hhZG93cyddKSB7XG5cdFx0dGhpcy5pbnB1dHMuc2V0KHsgc2hhZG93cyB9KTtcblx0fVxuXG5cdEBJbnB1dCh7IGFsaWFzOiAnYWRqdXN0Q2FtZXJhJyB9KSBzZXQgX2FkanVzdENhbWVyYShhZGp1c3RDYW1lcmE6IE5ndHNTdGFnZVN0YXRlWydhZGp1c3RDYW1lcmEnXSkge1xuXHRcdHRoaXMuaW5wdXRzLnNldCh7IGFkanVzdENhbWVyYSB9KTtcblx0fVxuXG5cdEBJbnB1dCh7IGFsaWFzOiAnZW52aXJvbm1lbnQnIH0pIHNldCBfZW52aXJvbm1lbnQoZW52aXJvbm1lbnQ6IE5ndHNTdGFnZVN0YXRlWydlbnZpcm9ubWVudCddKSB7XG5cdFx0dGhpcy5pbnB1dHMuc2V0KHsgZW52aXJvbm1lbnQgfSk7XG5cdH1cblxuXHRASW5wdXQoeyBhbGlhczogJ2ludGVuc2l0eScgfSkgc2V0IF9pbnRlbnNpdHkoaW50ZW5zaXR5OiBOZ3RzU3RhZ2VTdGF0ZVsnaW50ZW5zaXR5J10pIHtcblx0XHR0aGlzLmlucHV0cy5zZXQoeyBpbnRlbnNpdHkgfSk7XG5cdH1cblxuXHRASW5wdXQoeyBhbGlhczogJ2NlbnRlcicgfSkgc2V0IF9jZW50ZXIoY2VudGVyOiBOZ3RzU3RhZ2VTdGF0ZVsnY2VudGVyJ10pIHtcblx0XHR0aGlzLmlucHV0cy5zZXQoeyBjZW50ZXIgfSk7XG5cdH1cblxuXHRAT3V0cHV0KCkgY2VudGVyZWQgPSBuZXcgRXZlbnRFbWl0dGVyPE5ndHNDZW50ZXJlZEV2ZW50PigpO1xuXG5cdHByaXZhdGUgcHJlc2V0ID0gdGhpcy5pbnB1dHMuc2VsZWN0KCdwcmVzZXQnKTtcblx0cHJpdmF0ZSBlbnZpcm9ubWVudCA9IHRoaXMuaW5wdXRzLnNlbGVjdCgnZW52aXJvbm1lbnQnKTtcblxuXHRib3VuZGluZ1N0YXRlID0gc2lnbmFsU3RvcmUoeyByYWRpdXM6IDAsIHdpZHRoOiAwLCBoZWlnaHQ6IDAsIGRlcHRoOiAwIH0pO1xuXHRjb25maWcgPSBjb21wdXRlZCgoKSA9PiB7XG5cdFx0Y29uc3QgcHJlc2V0ID0gdGhpcy5wcmVzZXQoKTtcblx0XHRyZXR1cm4gdHlwZW9mIHByZXNldCA9PT0gJ3N0cmluZycgPyBwcmVzZXRzW3ByZXNldF0gOiBwcmVzZXQ7XG5cdH0pO1xuXHRzaGFkb3dzID0gdGhpcy5pbnB1dHMuc2VsZWN0KCdzaGFkb3dzJyk7XG5cdGludGVuc2l0eSA9IHRoaXMuaW5wdXRzLnNlbGVjdCgnaW50ZW5zaXR5Jyk7XG5cdGFkanVzdENhbWVyYSA9IHRoaXMuaW5wdXRzLnNlbGVjdCgnYWRqdXN0Q2FtZXJhJyk7XG5cdGNlbnRlciA9IHRoaXMuaW5wdXRzLnNlbGVjdCgnY2VudGVyJyk7XG5cblx0c2hhZG93c1N0YXRlID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdGNvbnN0IHNoYWRvd3MgPSB0aGlzLnNoYWRvd3MoKTtcblx0XHRjb25zdCB7XG5cdFx0XHRiaWFzOiBzaGFkb3dCaWFzID0gLTAuMDAwMSxcblx0XHRcdG5vcm1hbEJpYXMgPSAwLFxuXHRcdFx0c2l6ZTogc2hhZG93U2l6ZSA9IDEwMjQsXG5cdFx0XHRvZmZzZXQ6IHNoYWRvd09mZnNldCA9IDAsXG5cdFx0XHQuLi5yZXN0UHJvcHNcblx0XHR9ID0gKHR5cGVvZiBzaGFkb3dzID09PSAnc3RyaW5nJyA/IHt9IDogc2hhZG93cyB8fCB7fSkgYXMgTmd0c1N0YWdlU2hhZG93c1N0YXRlO1xuXHRcdHJldHVybiB7XG5cdFx0XHRjb250YWN0U2hhZG93OiBzaGFkb3dzID09PSAnY29udGFjdCcgfHwgcmVzdFByb3BzLnR5cGUgPT09ICdjb250YWN0Jyxcblx0XHRcdGFjY3VtdWxhdGl2ZVNoYWRvdzogc2hhZG93cyA9PT0gJ2FjY3VtdWxhdGl2ZScgfHwgcmVzdFByb3BzLnR5cGUgPT09ICdhY2N1bXVsYXRpdmUnLFxuXHRcdFx0c2hhZG93Qmlhcyxcblx0XHRcdG5vcm1hbEJpYXMsXG5cdFx0XHRzaGFkb3dTaXplLFxuXHRcdFx0c2hhZG93T2Zmc2V0LFxuXHRcdFx0Li4ucmVzdFByb3BzLFxuXHRcdH07XG5cdH0pO1xuXHRlbnZpcm9ubWVudFN0YXRlID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdGNvbnN0IGVudmlyb25tZW50ID0gdGhpcy5lbnZpcm9ubWVudCgpO1xuXHRcdHJldHVybiAhZW52aXJvbm1lbnQgPyBudWxsIDogdHlwZW9mIGVudmlyb25tZW50ID09PSAnc3RyaW5nJyA/IHsgcHJlc2V0OiBlbnZpcm9ubWVudCB9IDogZW52aXJvbm1lbnQ7XG5cdH0pO1xuXG5cdG9uQ2VudGVyZWQoJGV2ZW50OiBOZ3RzQ2VudGVyZWRFdmVudCkge1xuXHRcdGNvbnN0IHsgd2lkdGgsIGhlaWdodCwgZGVwdGgsIGJvdW5kaW5nU3BoZXJlIH0gPSAkZXZlbnQ7XG5cdFx0dGhpcy5ib3VuZGluZ1N0YXRlLnNldCh7IHJhZGl1czogYm91bmRpbmdTcGhlcmUucmFkaXVzLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCB9KTtcblx0XHRpZiAodGhpcy5jZW50ZXJlZC5vYnNlcnZlZCkgdGhpcy5jZW50ZXJlZC5lbWl0KCRldmVudCk7XG5cdH1cbn1cbiJdfQ==
|
|
@@ -1,147 +0,0 @@
|
|
|
1
|
-
import { CUSTOM_ELEMENTS_SCHEMA, Component, Input, computed } from '@angular/core';
|
|
2
|
-
import { NgtArgs, extend, injectNgtRef, signalStore } from 'angular-three';
|
|
3
|
-
import { StarFieldMaterial } from 'angular-three-soba/shaders';
|
|
4
|
-
import * as THREE from 'three';
|
|
5
|
-
import { BufferAttribute, BufferGeometry, Points } from 'three';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
extend({ Points, BufferGeometry, BufferAttribute });
|
|
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 {
|
|
10
|
-
constructor() {
|
|
11
|
-
this.inputs = signalStore({
|
|
12
|
-
radius: 100,
|
|
13
|
-
depth: 50,
|
|
14
|
-
count: 5000,
|
|
15
|
-
saturation: 0,
|
|
16
|
-
factor: 4,
|
|
17
|
-
fade: false,
|
|
18
|
-
speed: 1,
|
|
19
|
-
});
|
|
20
|
-
this.AdditiveBlending = THREE.AdditiveBlending;
|
|
21
|
-
this.material = new StarFieldMaterial();
|
|
22
|
-
this.starsRef = injectNgtRef();
|
|
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(() => {
|
|
30
|
-
const positions = [];
|
|
31
|
-
const colors = [];
|
|
32
|
-
const sizes = Array.from({ length: this.count() }, () => (0.5 + 0.5 * Math.random()) * this.factor());
|
|
33
|
-
const color = new THREE.Color();
|
|
34
|
-
let r = this.radius() + this.depth();
|
|
35
|
-
const increment = this.depth() / this.count();
|
|
36
|
-
for (let i = 0; i < this.count(); i++) {
|
|
37
|
-
r -= increment * Math.random();
|
|
38
|
-
positions.push(...genStar(r).toArray());
|
|
39
|
-
color.setHSL(i / this.count(), this.saturation(), 0.9);
|
|
40
|
-
colors.push(color.r, color.g, color.b);
|
|
41
|
-
}
|
|
42
|
-
return {
|
|
43
|
-
positions: new Float32Array(positions),
|
|
44
|
-
colors: new Float32Array(colors),
|
|
45
|
-
sizes: new Float32Array(sizes),
|
|
46
|
-
};
|
|
47
|
-
});
|
|
48
|
-
}
|
|
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');
|
|
72
|
-
}
|
|
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"] }] }); }
|
|
94
|
-
}
|
|
95
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: NgtsStars, decorators: [{
|
|
96
|
-
type: Component,
|
|
97
|
-
args: [{
|
|
98
|
-
selector: 'ngts-stars',
|
|
99
|
-
standalone: true,
|
|
100
|
-
template: `
|
|
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
|
-
`,
|
|
120
|
-
imports: [NgtArgs],
|
|
121
|
-
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
122
|
-
}]
|
|
123
|
-
}], propDecorators: { starsRef: [{
|
|
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' }]
|
|
140
|
-
}], starsFade: [{
|
|
141
|
-
type: Input,
|
|
142
|
-
args: ['fade']
|
|
143
|
-
}], _speed: [{
|
|
144
|
-
type: Input,
|
|
145
|
-
args: [{ alias: 'speed' }]
|
|
146
|
-
}] } });
|
|
147
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvc3RhZ2luZy9zcmMvc3RhcnMvc3RhcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25GLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQTZCLE1BQU0sZUFBZSxDQUFDO0FBQ3RHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQy9ELE9BQU8sS0FBSyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQy9CLE9BQU8sRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLE9BQU8sQ0FBQzs7QUFFaEUsTUFBTSxDQUFDLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDO0FBa0JwRCxNQUFNLE9BQU8sR0FBRyxDQUFDLENBQVMsRUFBRSxFQUFFLENBQzdCLElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLGdCQUFnQixDQUNuQyxJQUFJLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FDckYsQ0FBQztBQTRCSCxNQUFNLE9BQU8sU0FBUztJQTFCdEI7UUEyQlMsV0FBTSxHQUFHLFdBQVcsQ0FBaUI7WUFDNUMsTUFBTSxFQUFFLEdBQUc7WUFDWCxLQUFLLEVBQUUsRUFBRTtZQUNULEtBQUssRUFBRSxJQUFJO1lBQ1gsVUFBVSxFQUFFLENBQUM7WUFDYixNQUFNLEVBQUUs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QUMsc0JBQXNCLENBQUM7aUJBQ2pDOzhCQWNTLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRTBCLE9BQU87c0JBQXRDLEtBQUs7dUJBQUMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFO2dCQUlLLE1BQU07c0JBQXBDLEtBQUs7dUJBQUMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFO2dCQUlNLE1BQU07c0JBQXBDLEtBQUs7dUJBQUMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFO2dCQUlPLE9BQU87c0JBQXRDLEtBQUs7dUJBQUMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFO2dCQUlVLFdBQVc7c0JBQTlDLEtBQUs7dUJBQUMsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFO2dCQUlYLFNBQVM7c0JBQTNCLEtBQUs7dUJBQUMsTUFBTTtnQkFJa0IsTUFBTTtzQkFBcEMsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBDb21wb25lbnQsIElucHV0LCBjb21wdXRlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd0QXJncywgZXh0ZW5kLCBpbmplY3ROZ3RSZWYsIHNpZ25hbFN0b3JlLCB0eXBlIE5ndEJlZm9yZVJlbmRlckV2ZW50IH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBTdGFyRmllbGRNYXRlcmlhbCB9IGZyb20gJ2FuZ3VsYXItdGhyZWUtc29iYS9zaGFkZXJzJztcbmltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcbmltcG9ydCB7IEJ1ZmZlckF0dHJpYnV0ZSwgQnVmZmVyR2VvbWV0cnksIFBvaW50cyB9IGZyb20gJ3RocmVlJztcblxuZXh0ZW5kKHsgUG9pbnRzLCBCdWZmZXJHZW9tZXRyeSwgQnVmZmVyQXR0cmlidXRlIH0pO1xuXG5leHBvcnQgdHlwZSBOZ3RzU3RhcnNTdGF0ZSA9IHtcblx0cmFkaXVzOiBudW1iZXI7XG5cdGRlcHRoOiBudW1iZXI7XG5cdGNvdW50OiBudW1iZXI7XG5cdGZhY3RvcjogbnVtYmVyO1xuXHRzYXR1cmF0aW9uOiBudW1iZXI7XG5cdGZhZGU6IGJvb2xlYW47XG5cdHNwZWVkOiBudW1iZXI7XG59O1xuXG5kZWNsYXJlIGdsb2JhbCB7XG5cdGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuXHRcdCduZ3RzLXN0YXJzJzogTmd0c1N0YXJzU3RhdGU7XG5cdH1cbn1cblxuY29uc3QgZ2VuU3RhciA9IChyOiBudW1iZXIpID0+XG5cdG5ldyBUSFJFRS5WZWN0b3IzKCkuc2V0RnJvbVNwaGVyaWNhbChcblx0XHRuZXcgVEhSRUUuU3BoZXJpY2FsKHIsIE1hdGguYWNvcygxIC0gTWF0aC5yYW5kb20oKSAqIDIpLCBNYXRoLnJhbmRvbSgpICogMiAqIE1hdGguUEkpLFxuXHQpO1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RzLXN0YXJzJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0LXBvaW50cyBbcmVmXT1cInN0YXJzUmVmXCI+XG5cdFx0XHQ8bmd0LWJ1ZmZlci1nZW9tZXRyeT5cblx0XHRcdFx0PG5ndC1idWZmZXItYXR0cmlidXRlIGF0dGFjaD1cImF0dHJpYnV0ZXMucG9zaXRpb25cIiAqYXJncz1cIlthdHRyaWJ1dGVzKCkucG9zaXRpb25zLCAzXVwiIC8+XG5cdFx0XHRcdDxuZ3QtYnVmZmVyLWF0dHJpYnV0ZSBhdHRhY2g9XCJhdHRyaWJ1dGVzLmNvbG9yXCIgKmFyZ3M9XCJbYXR0cmlidXRlcygpLmNvbG9ycywgM11cIiAvPlxuXHRcdFx0XHQ8bmd0LWJ1ZmZlci1hdHRyaWJ1dGUgYXR0YWNoPVwiYXR0cmlidXRlcy5zaXplXCIgKmFyZ3M9XCJbYXR0cmlidXRlcygpLnNpemVzLCAxXVwiIC8+XG5cdFx0XHQ8L25ndC1idWZmZXItZ2VvbWV0cnk+XG5cdFx0XHQ8bmd0LXByaW1pdGl2ZVxuXHRcdFx0XHQqYXJncz1cIlttYXRlcmlhbF1cIlxuXHRcdFx0XHRhdHRhY2g9XCJtYXRlcmlhbFwiXG5cdFx0XHRcdFtibGVuZGluZ109XCJBZGRpdGl2ZUJsZW5kaW5nXCJcblx0XHRcdFx0W2RlcHRoV3JpdGVdPVwiZmFsc2VcIlxuXHRcdFx0XHRbdHJhbnNwYXJlbnRdPVwidHJ1ZVwiXG5cdFx0XHRcdFt2ZXJ0ZXhDb2xvcnNdPVwidHJ1ZVwiXG5cdFx0XHRcdChiZWZvcmVSZW5kZXIpPVwib25CZWZvcmVSZW5kZXIoJGV2ZW50KVwiXG5cdFx0XHQ+XG5cdFx0XHRcdDxuZ3QtdmFsdWUgYXR0YWNoPVwidW5pZm9ybXMuZmFkZS52YWx1ZVwiIFtyYXdWYWx1ZV09XCJmYWRlKClcIiAvPlxuXHRcdFx0PC9uZ3QtcHJpbWl0aXZlPlxuXHRcdDwvbmd0LXBvaW50cz5cblx0YCxcblx0aW1wb3J0czogW05ndEFyZ3NdLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHNTdGFycyB7XG5cdHByaXZhdGUgaW5wdXRzID0gc2lnbmFsU3RvcmU8Tmd0c1N0YXJzU3RhdGU+KHtcblx0XHRyYWRpdXM6IDEwMCxcblx0XHRkZXB0aDogNTAsXG5cdFx0Y291bnQ6IDUwMDAsXG5cdFx0c2F0dXJhdGlvbjogMCxcblx0XHRmYWN0b3I6IDQsXG5cdFx0ZmFkZTogZmFsc2UsXG5cdFx0c3BlZWQ6IDEsXG5cdH0pO1xuXHRBZGRpdGl2ZUJsZW5kaW5nID0gVEhSRUUuQWRkaXRpdmVCbGVuZGluZztcblx0bWF0ZXJpYWwgPSBuZXcgU3RhckZpZWxkTWF0ZXJpYWwoKTtcblxuXHRASW5wdXQoKSBzdGFyc1JlZiA9IGluamVjdE5ndFJlZjxQb2ludHM+KCk7XG5cblx0QElucHV0KHsgYWxpYXM6ICdyYWRpdXMnIH0pIHNldCBfcmFkaXVzKHJhZGl1czogbnVtYmVyKSB7XG5cdFx0dGhpcy5pbnB1dHMuc2V0KHsgcmFkaXVzIH0pO1xuXHR9XG5cblx0QElucHV0KHsgYWxpYXM6ICdkZXB0aCcgfSkgc2V0IF9kZXB0aChkZXB0aDogbnVtYmVyKSB7XG5cdFx0dGhpcy5pbnB1dHMuc2V0KHsgZGVwdGggfSk7XG5cdH1cblxuXHRASW5wdXQoeyBhbGlhczogJ2NvdW50JyB9KSBzZXQgX2NvdW50KGNvdW50OiBudW1iZXIpIHtcblx0XHR0aGlzLmlucHV0cy5zZXQoeyBjb3VudCB9KTtcblx0fVxuXG5cdEBJbnB1dCh7IGFsaWFzOiAnZmFjdG9yJyB9KSBzZXQgX2ZhY3RvcihmYWN0b3I6IG51bWJlcikge1xuXHRcdHRoaXMuaW5wdXRzLnNldCh7IGZhY3RvciB9KTtcblx0fVxuXG5cdEBJbnB1dCh7IGFsaWFzOiAnc2F0dXJhdGlvbicgfSkgc2V0IF9zYXR1cmF0aW9uKHNhdHVyYXRpb246IG51bWJlcikge1xuXHRcdHRoaXMuaW5wdXRzLnNldCh7IHNhdHVyYXRpb24gfSk7XG5cdH1cblxuXHRASW5wdXQoJ2ZhZGUnKSBzZXQgc3RhcnNGYWRlKGZhZGU6IGJvb2xlYW4pIHtcblx0XHR0aGlzLmlucHV0cy5zZXQoeyBmYWRlIH0pO1xuXHR9XG5cblx0QElucHV0KHsgYWxpYXM6ICdzcGVlZCcgfSkgc2V0IF9zcGVlZChzcGVlZDogbnVtYmVyKSB7XG5cdFx0dGhpcy5pbnB1dHMuc2V0KHsgc3BlZWQgfSk7XG5cdH1cblxuXHRwcml2YXRlIGNvdW50ID0gdGhpcy5pbnB1dHMuc2VsZWN0KCdjb3VudCcpO1xuXHRwcml2YXRlIGRlcHRoID0gdGhpcy5pbnB1dHMuc2VsZWN0KCdkZXB0aCcpO1xuXHRwcml2YXRlIGZhY3RvciA9IHRoaXMuaW5wdXRzLnNlbGVjdCgnZmFjdG9yJyk7XG5cdHByaXZhdGUgcmFkaXVzID0gdGhpcy5pbnB1dHMuc2VsZWN0KCdyYWRpdXMnKTtcblx0cHJpdmF0ZSBzYXR1cmF0aW9uID0gdGhpcy5pbnB1dHMuc2VsZWN0KCdzYXR1cmF0aW9uJyk7XG5cblx0ZmFkZSA9IHRoaXMuaW5wdXRzLnNlbGVjdCgnZmFkZScpO1xuXHRhdHRyaWJ1dGVzID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdGNvbnN0IHBvc2l0aW9uczogbnVtYmVyW10gPSBbXTtcblx0XHRjb25zdCBjb2xvcnM6IG51bWJlcltdID0gW107XG5cdFx0Y29uc3Qgc2l6ZXMgPSBBcnJheS5mcm9tKHsgbGVuZ3RoOiB0aGlzLmNvdW50KCkgfSwgKCkgPT4gKDAuNSArIDAuNSAqIE1hdGgucmFuZG9tKCkpICogdGhpcy5mYWN0b3IoKSk7XG5cdFx0Y29uc3QgY29sb3IgPSBuZXcgVEhSRUUuQ29sb3IoKTtcblx0XHRsZXQgciA9IHRoaXMucmFkaXVzKCkgKyB0aGlzLmRlcHRoKCk7XG5cdFx0Y29uc3QgaW5jcmVtZW50ID0gdGhpcy5kZXB0aCgpIC8gdGhpcy5jb3VudCgpO1xuXHRcdGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5jb3VudCgpOyBpKyspIHtcblx0XHRcdHIgLT0gaW5jcmVtZW50ICogTWF0aC5yYW5kb20oKTtcblx0XHRcdHBvc2l0aW9ucy5wdXNoKC4uLmdlblN0YXIocikudG9BcnJheSgpKTtcblx0XHRcdGNvbG9yLnNldEhTTChpIC8gdGhpcy5jb3VudCgpLCB0aGlzLnNhdHVyYXRpb24oKSwgMC45KTtcblx0XHRcdGNvbG9ycy5wdXNoKGNvbG9yLnIsIGNvbG9yLmcsIGNvbG9yLmIpO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cG9zaXRpb25zOiBuZXcgRmxvYXQzMkFycmF5KHBvc2l0aW9ucyksXG5cdFx0XHRjb2xvcnM6IG5ldyBGbG9hdDMyQXJyYXkoY29sb3JzKSxcblx0XHRcdHNpemVzOiBuZXcgRmxvYXQzMkFycmF5KHNpemVzKSxcblx0XHR9O1xuXHR9KTtcblxuXHRvbkJlZm9yZVJlbmRlcih7IG9iamVjdCwgc3RhdGUgfTogTmd0QmVmb3JlUmVuZGVyRXZlbnQ8SW5zdGFuY2VUeXBlPHR5cGVvZiBTdGFyRmllbGRNYXRlcmlhbD4+KSB7XG5cdFx0b2JqZWN0LnVuaWZvcm1zWyd0aW1lJ10udmFsdWUgPSBzdGF0ZS5jbG9jay5nZXRFbGFwc2VkVGltZSgpICogdGhpcy5pbnB1dHMuZ2V0KCdzcGVlZCcpO1xuXHR9XG59XG4iXX0=
|