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,108 +0,0 @@
|
|
|
1
|
-
import { DiscardMaterial } from 'angular-three-soba/shaders';
|
|
2
|
-
import * as THREE from 'three';
|
|
3
|
-
function isLight(object) {
|
|
4
|
-
return object.isLight;
|
|
5
|
-
}
|
|
6
|
-
function isGeometry(object) {
|
|
7
|
-
return !!object.geometry;
|
|
8
|
-
}
|
|
9
|
-
// Based on "Progressive Light Map Accumulator", by [zalo](https://github.com/zalo/)
|
|
10
|
-
export class ProgressiveLightMap {
|
|
11
|
-
constructor(renderer, scene, res = 1024) {
|
|
12
|
-
this.renderer = renderer;
|
|
13
|
-
this.res = res;
|
|
14
|
-
this.scene = scene;
|
|
15
|
-
this.buffer1Active = false;
|
|
16
|
-
this.lights = [];
|
|
17
|
-
this.meshes = [];
|
|
18
|
-
this.object = null;
|
|
19
|
-
this.clearColor = new THREE.Color();
|
|
20
|
-
this.clearAlpha = 0;
|
|
21
|
-
// Create the Progressive LightMap Texture
|
|
22
|
-
const format = /(Android|iPad|iPhone|iPod)/g.test(navigator.userAgent) ? THREE.HalfFloatType : THREE.FloatType;
|
|
23
|
-
this.progressiveLightMap1 = new THREE.WebGLRenderTarget(this.res, this.res, {
|
|
24
|
-
type: format,
|
|
25
|
-
});
|
|
26
|
-
this.progressiveLightMap2 = new THREE.WebGLRenderTarget(this.res, this.res, {
|
|
27
|
-
type: format,
|
|
28
|
-
});
|
|
29
|
-
// Inject some spicy new logic into a standard phong material
|
|
30
|
-
this.discardMat = new DiscardMaterial();
|
|
31
|
-
this.targetMat = new THREE.MeshLambertMaterial({ fog: false });
|
|
32
|
-
this.previousShadowMap = { value: this.progressiveLightMap1.texture };
|
|
33
|
-
this.averagingWindow = { value: 100 };
|
|
34
|
-
this.targetMat.onBeforeCompile = (shader) => {
|
|
35
|
-
// Vertex Shader: Set Vertex Positions to the Unwrapped UV Positions
|
|
36
|
-
shader.vertexShader =
|
|
37
|
-
'varying vec2 vUv;\n' +
|
|
38
|
-
shader.vertexShader.slice(0, -1) +
|
|
39
|
-
'vUv = uv; gl_Position = vec4((uv - 0.5) * 2.0, 1.0, 1.0); }';
|
|
40
|
-
// Fragment Shader: Set Pixels to average in the Previous frame's Shadows
|
|
41
|
-
const bodyStart = shader.fragmentShader.indexOf('void main() {');
|
|
42
|
-
shader.fragmentShader =
|
|
43
|
-
'varying vec2 vUv;\n' +
|
|
44
|
-
shader.fragmentShader.slice(0, bodyStart) +
|
|
45
|
-
'uniform sampler2D previousShadowMap;\n uniform float averagingWindow;\n' +
|
|
46
|
-
shader.fragmentShader.slice(bodyStart - 1, -1) +
|
|
47
|
-
`\nvec3 texelOld = texture2D(previousShadowMap, vUv).rgb;
|
|
48
|
-
gl_FragColor.rgb = mix(texelOld, gl_FragColor.rgb, 1.0/ averagingWindow);
|
|
49
|
-
}`;
|
|
50
|
-
// Set the Previous Frame's Texture Buffer and Averaging Window
|
|
51
|
-
// Set the Previous Frame's Texture Buffer and Averaging Window
|
|
52
|
-
shader.uniforms['previousShadowMap'] = this.previousShadowMap;
|
|
53
|
-
shader.uniforms['averagingWindow'] = this.averagingWindow;
|
|
54
|
-
};
|
|
55
|
-
}
|
|
56
|
-
clear() {
|
|
57
|
-
this.renderer.getClearColor(this.clearColor);
|
|
58
|
-
this.clearAlpha = this.renderer.getClearAlpha();
|
|
59
|
-
this.renderer.setClearColor('black', 1);
|
|
60
|
-
this.renderer.setRenderTarget(this.progressiveLightMap1);
|
|
61
|
-
this.renderer.clear();
|
|
62
|
-
this.renderer.setRenderTarget(this.progressiveLightMap2);
|
|
63
|
-
this.renderer.clear();
|
|
64
|
-
this.renderer.setRenderTarget(null);
|
|
65
|
-
this.renderer.setClearColor(this.clearColor, this.clearAlpha);
|
|
66
|
-
this.lights = [];
|
|
67
|
-
this.meshes = [];
|
|
68
|
-
this.scene.traverse((object) => {
|
|
69
|
-
if (isGeometry(object)) {
|
|
70
|
-
this.meshes.push({ object, material: object.material });
|
|
71
|
-
}
|
|
72
|
-
else if (isLight(object)) {
|
|
73
|
-
this.lights.push({ object, intensity: object.intensity });
|
|
74
|
-
}
|
|
75
|
-
});
|
|
76
|
-
}
|
|
77
|
-
prepare() {
|
|
78
|
-
this.lights.forEach((light) => (light.object.intensity = 0));
|
|
79
|
-
this.meshes.forEach((mesh) => (mesh.object.material = this.discardMat));
|
|
80
|
-
}
|
|
81
|
-
finish() {
|
|
82
|
-
this.lights.forEach((light) => (light.object.intensity = light.intensity));
|
|
83
|
-
this.meshes.forEach((mesh) => (mesh.object.material = mesh.material));
|
|
84
|
-
}
|
|
85
|
-
configure(object) {
|
|
86
|
-
this.object = object;
|
|
87
|
-
}
|
|
88
|
-
update(camera, blendWindow = 100) {
|
|
89
|
-
if (!this.object)
|
|
90
|
-
return;
|
|
91
|
-
// Set each object's material to the UV Unwrapped Surface Mapping Version
|
|
92
|
-
this.averagingWindow.value = blendWindow;
|
|
93
|
-
this.object.material = this.targetMat;
|
|
94
|
-
// Ping-pong two surface buffers for reading/writing
|
|
95
|
-
const activeMap = this.buffer1Active ? this.progressiveLightMap1 : this.progressiveLightMap2;
|
|
96
|
-
const inactiveMap = this.buffer1Active ? this.progressiveLightMap2 : this.progressiveLightMap1;
|
|
97
|
-
// Render the object's surface maps
|
|
98
|
-
const oldBg = this.scene.background;
|
|
99
|
-
this.scene.background = null;
|
|
100
|
-
this.renderer.setRenderTarget(activeMap);
|
|
101
|
-
this.previousShadowMap.value = inactiveMap.texture;
|
|
102
|
-
this.buffer1Active = !this.buffer1Active;
|
|
103
|
-
this.renderer.render(this.scene, camera);
|
|
104
|
-
this.renderer.setRenderTarget(null);
|
|
105
|
-
this.scene.background = oldBg;
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3NpdmUtbGlnaHQtbWFwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zb2JhL3N0YWdpbmcvc3JjL2FjY3VtdWxhdGl2ZS1zaGFkb3dzL3Byb2dyZXNzaXZlLWxpZ2h0LW1hcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxLQUFLLEtBQUssTUFBTSxPQUFPLENBQUM7QUFFL0IsU0FBUyxPQUFPLENBQUMsTUFBVztJQUMzQixPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUM7QUFDdkIsQ0FBQztBQUVELFNBQVMsVUFBVSxDQUFDLE1BQVc7SUFDOUIsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQztBQUMxQixDQUFDO0FBRUQsb0ZBQW9GO0FBQ3BGLE1BQU0sT0FBTyxtQkFBbUI7SUFpQi9CLFlBQVksUUFBNkIsRUFBRSxLQUFrQixFQUFFLE1BQWMsSUFBSTtRQUNoRixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUNmLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO1FBQzNCLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ25CLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDcEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUM7UUFFcEIsMENBQTBDO1FBQzFDLE1BQU0sTUFBTSxHQUFHLDZCQUE2QixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsU0FB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LGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFDL0IsQ0FBQztDQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlzY2FyZE1hdGVyaWFsIH0gZnJvbSAnYW5ndWxhci10aHJlZS1zb2JhL3NoYWRlcnMnO1xuaW1wb3J0ICogYXMgVEhSRUUgZnJvbSAndGhyZWUnO1xuXG5mdW5jdGlvbiBpc0xpZ2h0KG9iamVjdDogYW55KTogb2JqZWN0IGlzIFRIUkVFLkxpZ2h0IHtcblx0cmV0dXJuIG9iamVjdC5pc0xpZ2h0O1xufVxuXG5mdW5jdGlvbiBpc0dlb21ldHJ5KG9iamVjdDogYW55KTogb2JqZWN0IGlzIFRIUkVFLk1lc2gge1xuXHRyZXR1cm4gISFvYmplY3QuZ2VvbWV0cnk7XG59XG5cbi8vIEJhc2VkIG9uIFwiUHJvZ3Jlc3NpdmUgTGlnaHQgTWFwIEFjY3VtdWxhdG9yXCIsIGJ5IFt6YWxvXShodHRwczovL2dpdGh1Yi5jb20vemFsby8pXG5leHBvcnQgY2xhc3MgUHJvZ3Jlc3NpdmVMaWdodE1hcCB7XG5cdHJlbmRlcmVyOiBUSFJFRS5XZWJHTFJlbmRlcmVyO1xuXHRyZXM6IG51bWJlcjtcblx0c2NlbmU6IFRIUkVFLlNjZW5lO1xuXHRvYmplY3Q6IFRIUkVFLk1lc2ggfCBudWxsO1xuXHRidWZmZXIxQWN0aXZlOiBib29sZWFuO1xuXHRwcm9ncmVzc2l2ZUxpZ2h0TWFwMTogVEhSRUUuV2ViR0xSZW5kZXJUYXJnZXQ7XG5cdHByb2dyZXNzaXZlTGlnaHRNYXAyOiBUSFJFRS5XZWJHTFJlbmRlclRhcmdldDtcblx0ZGlzY2FyZE1hdDogVEhSRUUuU2hhZGVyTWF0ZXJpYWw7XG5cdHRhcmdldE1hdDogVEhSRUUuTWVzaExhbWJlcnRNYXRlcmlhbDtcblx0cHJldmlvdXNTaGFkb3dNYXA6IHsgdmFsdWU6IFRIUkVFLlRleHR1cmUgfTtcblx0YXZlcmFnaW5nV2luZG93OiB7IHZhbHVlOiBudW1iZXIgfTtcblx0Y2xlYXJDb2xvcjogVEhSRUUuQ29sb3I7XG5cdGNsZWFyQWxwaGE6IG51bWJlcjtcblx0bGlnaHRzOiB7IG9iamVjdDogVEhSRUUuTGlnaHQ7IGludGVuc2l0eTogbnVtYmVyIH1bXTtcblx0bWVzaGVzOiB7IG9iamVjdDogVEhSRUUuTWVzaDsgbWF0ZXJpYWw6IFRIUkVFLk1hdGVyaWFsIHwgVEhSRUUuTWF0ZXJpYWxbXSB9W107XG5cblx0Y29uc3RydWN0b3IocmVuZGVyZXI6IFRIUkVFLldlYkdMUmVuZGVyZXIsIHNjZW5lOiBUSFJFRS5TY2VuZSwgcmVzOiBudW1iZXIgPSAxMDI0KSB7XG5cdFx0dGhpcy5yZW5kZXJlciA9IHJlbmRlcmVyO1xuXHRcdHRoaXMucmVzID0gcmVzO1xuXHRcdHRoaXMuc2NlbmUgPSBzY2VuZTtcblx0XHR0aGlzLmJ1ZmZlcjFBY3RpdmUgPSBmYWxzZTtcblx0XHR0aGlzLmxpZ2h0cyA9IFtdO1xuXHRcdHRoaXMubWVzaGVzID0gW107XG5cdFx0dGhpcy5vYmplY3QgPSBudWxsO1xuXHRcdHRoaXMuY2xlYXJDb2xvciA9IG5ldyBUSFJFRS5Db2xvcigpO1xuXHRcdHRoaXMuY2xlYXJBbHBoYSA9IDA7XG5cblx0XHQvLyBDcmVhdGUgdGhlIFByb2dyZXNzaXZlIExpZ2h0TWFwIFRleHR1cmVcblx0XHRjb25zdCBmb3JtYXQgPSAvKEFuZHJvaWR8aVBhZHxpUGhvbmV8aVBvZCkvZy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpID8gVEhSRUUuSGFsZkZsb2F0VHlwZSA6IFRIUkVFLkZsb2F0VHlwZTtcblx0XHR0aGlzLnByb2dyZXNzaXZlTGlnaHRNYXAxID0gbmV3IFRIUkVFLldlYkdMUmVuZGVyVGFyZ2V0KHRoaXMucmVzLCB0aGlzLnJlcywge1xuXHRcdFx0dHlwZTogZm9ybWF0LFxuXHRcdH0pO1xuXHRcdHRoaXMucHJvZ3Jlc3NpdmVMaWdodE1hcDIgPSBuZXcgVEhSRUUuV2ViR0xSZW5kZXJUYXJnZXQodGhpcy5yZXMsIHRoaXMucmVzLCB7XG5cdFx0XHR0eXBlOiBmb3JtYXQsXG5cdFx0fSk7XG5cblx0XHQvLyBJbmplY3Qgc29tZSBzcGljeSBuZXcgbG9naWMgaW50byBhIHN0YW5kYXJkIHBob25nIG1hdGVyaWFsXG5cdFx0dGhpcy5kaXNjYXJkTWF0ID0gbmV3IERpc2NhcmRNYXRlcmlhbCgpO1xuXHRcdHRoaXMudGFyZ2V0TWF0ID0gbmV3IFRIUkVFLk1lc2hMYW1iZXJ0TWF0ZXJpYWwoeyBmb2c6IGZhbHNlIH0pO1xuXHRcdHRoaXMucHJldmlvdXNTaGFkb3dNYXAgPSB7IHZhbHVlOiB0aGlzLnByb2dyZXNzaXZlTGlnaHRNYXAxLnRleHR1cmUgfTtcblx0XHR0aGlzLmF2ZXJhZ2luZ1dpbmRvdyA9IHsgdmFsdWU6IDEwMCB9O1xuXHRcdHRoaXMudGFyZ2V0TWF0Lm9uQmVmb3JlQ29tcGlsZSA9IChzaGFkZXIpID0+IHtcblx0XHRcdC8vIFZlcnRleCBTaGFkZXI6IFNldCBWZXJ0ZXggUG9zaXRpb25zIHRvIHRoZSBVbndyYXBwZWQgVVYgUG9zaXRpb25zXG5cdFx0XHRzaGFkZXIudmVydGV4U2hhZGVyID1cblx0XHRcdFx0J3ZhcnlpbmcgdmVjMiB2VXY7XFxuJyArXG5cdFx0XHRcdHNoYWRlci52ZXJ0ZXhTaGFkZXIuc2xpY2UoMCwgLTEpICtcblx0XHRcdFx0J3ZVdiA9IHV2OyBnbF9Qb3NpdGlvbiA9IHZlYzQoKHV2IC0gMC41KSAqIDIuMCwgMS4wLCAxLjApOyB9JztcblxuXHRcdFx0Ly8gRnJhZ21lbnQgU2hhZGVyOiBTZXQgUGl4ZWxzIHRvIGF2ZXJhZ2UgaW4gdGhlIFByZXZpb3VzIGZyYW1lJ3MgU2hhZG93c1xuXHRcdFx0Y29uc3QgYm9keVN0YXJ0ID0gc2hhZGVyLmZyYWdtZW50U2hhZGVyLmluZGV4T2YoJ3ZvaWQgbWFpbigpIHsnKTtcblx0XHRcdHNoYWRlci5mcmFnbWVudFNoYWRlciA9XG5cdFx0XHRcdCd2YXJ5aW5nIHZlYzIgdlV2O1xcbicgK1xuXHRcdFx0XHRzaGFkZXIuZnJhZ21lbnRTaGFkZXIuc2xpY2UoMCwgYm9keVN0YXJ0KSArXG5cdFx0XHRcdCd1bmlmb3JtIHNhbXBsZXIyRCBwcmV2aW91c1NoYWRvd01hcDtcXG5cdHVuaWZvcm0gZmxvYXQgYXZlcmFnaW5nV2luZG93O1xcbicgK1xuXHRcdFx0XHRzaGFkZXIuZnJhZ21lbnRTaGFkZXIuc2xpY2UoYm9keVN0YXJ0IC0gMSwgLTEpICtcblx0XHRcdFx0YFxcbnZlYzMgdGV4ZWxPbGQgPSB0ZXh0dXJlMkQocHJldmlvdXNTaGFkb3dNYXAsIHZVdikucmdiO1xuICAgICAgICBnbF9GcmFnQ29sb3IucmdiID0gbWl4KHRleGVsT2xkLCBnbF9GcmFnQ29sb3IucmdiLCAxLjAvIGF2ZXJhZ2luZ1dpbmRvdyk7XG4gICAgICB9YDtcblxuXHRcdFx0Ly8gU2V0IHRoZSBQcmV2aW91cyBGcmFtZSdzIFRleHR1cmUgQnVmZmVyIGFuZCBBdmVyYWdpbmcgV2luZG93XG5cdFx0XHQvLyBTZXQgdGhlIFByZXZpb3VzIEZyYW1lJ3MgVGV4dHVyZSBCdWZmZXIgYW5kIEF2ZXJhZ2luZyBXaW5kb3dcblx0XHRcdHNoYWRlci51bmlmb3Jtc1sncHJldmlvdXNTaGFkb3dNYXAnXSA9IHRoaXMucHJldmlvdXNTaGFkb3dNYXA7XG5cdFx0XHRzaGFkZXIudW5pZm9ybXNbJ2F2ZXJhZ2luZ1dpbmRvdyddID0gdGhpcy5hdmVyYWdpbmdXaW5kb3c7XG5cdFx0fTtcblx0fVxuXG5cdGNsZWFyKCkge1xuXHRcdHRoaXMucmVuZGVyZXIuZ2V0Q2xlYXJDb2xvcih0aGlzLmNsZWFyQ29sb3IpO1xuXHRcdHRoaXMuY2xlYXJBbHBoYSA9IHRoaXMucmVuZGVyZXIuZ2V0Q2xlYXJBbHBoYSgpO1xuXHRcdHRoaXMucmVuZGVyZXIuc2V0Q2xlYXJDb2xvcignYmxhY2snLCAxKTtcblx0XHR0aGlzLnJlbmRlcmVyLnNldFJlbmRlclRhcmdldCh0aGlzLnByb2dyZXNzaXZlTGlnaHRNYXAxKTtcblx0XHR0aGlzLnJlbmRlcmVyLmNsZWFyKCk7XG5cdFx0dGhpcy5yZW5kZXJlci5zZXRSZW5kZXJUYXJnZXQodGhpcy5wcm9ncmVzc2l2ZUxpZ2h0TWFwMik7XG5cdFx0dGhpcy5yZW5kZXJlci5jbGVhcigpO1xuXHRcdHRoaXMucmVuZGVyZXIuc2V0UmVuZGVyVGFyZ2V0KG51bGwpO1xuXHRcdHRoaXMucmVuZGVyZXIuc2V0Q2xlYXJDb2xvcih0aGlzLmNsZWFyQ29sb3IsIHRoaXMuY2xlYXJBbHBoYSk7XG5cblx0XHR0aGlzLmxpZ2h0cyA9IFtdO1xuXHRcdHRoaXMubWVzaGVzID0gW107XG5cdFx0dGhpcy5zY2VuZS50cmF2ZXJzZSgob2JqZWN0KSA9PiB7XG5cdFx0XHRpZiAoaXNHZW9tZXRyeShvYmplY3QpKSB7XG5cdFx0XHRcdHRoaXMubWVzaGVzLnB1c2goeyBvYmplY3QsIG1hdGVyaWFsOiBvYmplY3QubWF0ZXJpYWwgfSk7XG5cdFx0XHR9IGVsc2UgaWYgKGlzTGlnaHQob2JqZWN0KSkge1xuXHRcdFx0XHR0aGlzLmxpZ2h0cy5wdXNoKHsgb2JqZWN0LCBpbnRlbnNpdHk6IG9iamVjdC5pbnRlbnNpdHkgfSk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblxuXHRwcmVwYXJlKCkge1xuXHRcdHRoaXMubGlnaHRzLmZvckVhY2goKGxpZ2h0KSA9PiAobGlnaHQub2JqZWN0LmludGVuc2l0eSA9IDApKTtcblx0XHR0aGlzLm1lc2hlcy5mb3JFYWNoKChtZXNoKSA9PiAobWVzaC5vYmplY3QubWF0ZXJpYWwgPSB0aGlzLmRpc2NhcmRNYXQpKTtcblx0fVxuXG5cdGZpbmlzaCgpIHtcblx0XHR0aGlzLmxpZ2h0cy5mb3JFYWNoKChsaWdodCkgPT4gKGxpZ2h0Lm9iamVjdC5pbnRlbnNpdHkgPSBsaWdodC5pbnRlbnNpdHkpKTtcblx0XHR0aGlzLm1lc2hlcy5mb3JFYWNoKChtZXNoKSA9PiAobWVzaC5vYmplY3QubWF0ZXJpYWwgPSBtZXNoLm1hdGVyaWFsKSk7XG5cdH1cblxuXHRjb25maWd1cmUob2JqZWN0OiBUSFJFRS5NZXNoKSB7XG5cdFx0dGhpcy5vYmplY3QgPSBvYmplY3Q7XG5cdH1cblxuXHR1cGRhdGUoY2FtZXJhOiBUSFJFRS5DYW1lcmEsIGJsZW5kV2luZG93ID0gMTAwKSB7XG5cdFx0aWYgKCF0aGlzLm9iamVjdCkgcmV0dXJuO1xuXHRcdC8vIFNldCBlYWNoIG9iamVjdCdzIG1hdGVyaWFsIHRvIHRoZSBVViBVbndyYXBwZWQgU3VyZmFjZSBNYXBwaW5nIFZlcnNpb25cblx0XHR0aGlzLmF2ZXJhZ2luZ1dpbmRvdy52YWx1ZSA9IGJsZW5kV2luZG93O1xuXHRcdHRoaXMub2JqZWN0Lm1hdGVyaWFsID0gdGhpcy50YXJnZXRNYXQ7XG5cdFx0Ly8gUGluZy1wb25nIHR3byBzdXJmYWNlIGJ1ZmZlcnMgZm9yIHJlYWRpbmcvd3JpdGluZ1xuXHRcdGNvbnN0IGFjdGl2ZU1hcCA9IHRoaXMuYnVmZmVyMUFjdGl2ZSA/IHRoaXMucHJvZ3Jlc3NpdmVMaWdodE1hcDEgOiB0aGlzLnByb2dyZXNzaXZlTGlnaHRNYXAyO1xuXHRcdGNvbnN0IGluYWN0aXZlTWFwID0gdGhpcy5idWZmZXIxQWN0aXZlID8gdGhpcy5wcm9ncmVzc2l2ZUxpZ2h0TWFwMiA6IHRoaXMucHJvZ3Jlc3NpdmVMaWdodE1hcDE7XG5cdFx0Ly8gUmVuZGVyIHRoZSBvYmplY3QncyBzdXJmYWNlIG1hcHNcblx0XHRjb25zdCBvbGRCZyA9IHRoaXMuc2NlbmUuYmFja2dyb3VuZDtcblx0XHR0aGlzLnNjZW5lLmJhY2tncm91bmQgPSBudWxsO1xuXHRcdHRoaXMucmVuZGVyZXIuc2V0UmVuZGVyVGFyZ2V0KGFjdGl2ZU1hcCk7XG5cdFx0dGhpcy5wcmV2aW91c1NoYWRvd01hcC52YWx1ZSA9IGluYWN0aXZlTWFwLnRleHR1cmU7XG5cdFx0dGhpcy5idWZmZXIxQWN0aXZlID0gIXRoaXMuYnVmZmVyMUFjdGl2ZTtcblx0XHR0aGlzLnJlbmRlcmVyLnJlbmRlcih0aGlzLnNjZW5lLCBjYW1lcmEpO1xuXHRcdHRoaXMucmVuZGVyZXIuc2V0UmVuZGVyVGFyZ2V0KG51bGwpO1xuXHRcdHRoaXMuc2NlbmUuYmFja2dyb3VuZCA9IG9sZEJnO1xuXHR9XG59XG4iXX0=
|
|
@@ -1,206 +0,0 @@
|
|
|
1
|
-
import { CUSTOM_ELEMENTS_SCHEMA, Component, Input, computed, effect } from '@angular/core';
|
|
2
|
-
import { NgtArgs, NgtRepeat, extend, injectNgtRef, signalStore } from 'angular-three';
|
|
3
|
-
import * as THREE from 'three';
|
|
4
|
-
import { DirectionalLight, Group, OrthographicCamera, Vector2 } from 'three';
|
|
5
|
-
import { injectNgtsAccumulativeShadowsApi } from './accumulative-shadows';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
extend({ Group, DirectionalLight, OrthographicCamera, Vector2 });
|
|
8
|
-
export class NgtsRandomizedLights {
|
|
9
|
-
/** How many frames it will jiggle the lights, 1.
|
|
10
|
-
* Frames is context aware, if a provider like AccumulativeShadows exists, frames will be taken from there! */
|
|
11
|
-
set _frames(frames) {
|
|
12
|
-
this.inputs.set({ frames });
|
|
13
|
-
}
|
|
14
|
-
/** Light position, [0, 0, 0] */
|
|
15
|
-
set _position(position) {
|
|
16
|
-
this.inputs.set({ position });
|
|
17
|
-
}
|
|
18
|
-
/** Radius of the jiggle, higher values make softer light, 5 */
|
|
19
|
-
set _radius(radius) {
|
|
20
|
-
this.inputs.set({ radius });
|
|
21
|
-
}
|
|
22
|
-
/** Amount of lights, 8 */
|
|
23
|
-
set _amount(amount) {
|
|
24
|
-
this.inputs.set({ amount });
|
|
25
|
-
}
|
|
26
|
-
/** Light intensity, 1 */
|
|
27
|
-
set _intensity(intensity) {
|
|
28
|
-
this.inputs.set({ intensity });
|
|
29
|
-
}
|
|
30
|
-
/** Ambient occlusion, lower values mean less AO, hight more, you can mix AO and directional light, 0.5 */
|
|
31
|
-
set _ambient(ambient) {
|
|
32
|
-
this.inputs.set({ ambient });
|
|
33
|
-
}
|
|
34
|
-
/** If the lights cast shadows, this is true by default */
|
|
35
|
-
set _castShadow(castShadow) {
|
|
36
|
-
this.inputs.set({ castShadow });
|
|
37
|
-
}
|
|
38
|
-
/** Default shadow bias, 0 */
|
|
39
|
-
set _bias(bias) {
|
|
40
|
-
this.inputs.set({ bias });
|
|
41
|
-
}
|
|
42
|
-
/** Default map size, 512 */
|
|
43
|
-
set _mapSize(mapSize) {
|
|
44
|
-
this.inputs.set({ mapSize });
|
|
45
|
-
}
|
|
46
|
-
/** Default size of the shadow camera, 10 */
|
|
47
|
-
set _size(size) {
|
|
48
|
-
this.inputs.set({ size });
|
|
49
|
-
}
|
|
50
|
-
/** Default shadow camera near, 0.5 */
|
|
51
|
-
set _near(near) {
|
|
52
|
-
this.inputs.set({ near });
|
|
53
|
-
}
|
|
54
|
-
/** Default shadow camera far, 500 */
|
|
55
|
-
set _far(far) {
|
|
56
|
-
this.inputs.set({ far });
|
|
57
|
-
}
|
|
58
|
-
constructor() {
|
|
59
|
-
this.inputs = signalStore({
|
|
60
|
-
castShadow: true,
|
|
61
|
-
bias: 0.001,
|
|
62
|
-
mapSize: 512,
|
|
63
|
-
size: 5,
|
|
64
|
-
near: 0.5,
|
|
65
|
-
far: 500,
|
|
66
|
-
frames: 1,
|
|
67
|
-
position: [0, 0, 0],
|
|
68
|
-
radius: 1,
|
|
69
|
-
amount: 8,
|
|
70
|
-
intensity: 1,
|
|
71
|
-
ambient: 0.5,
|
|
72
|
-
});
|
|
73
|
-
this.Math = Math;
|
|
74
|
-
this.lightsRef = injectNgtRef();
|
|
75
|
-
this.position = this.inputs.select('position');
|
|
76
|
-
this.ambient = this.inputs.select('ambient');
|
|
77
|
-
this.radius = this.inputs.select('radius');
|
|
78
|
-
this.mapSize = this.inputs.select('mapSize');
|
|
79
|
-
this.size = this.inputs.select('size');
|
|
80
|
-
this.near = this.inputs.select('near');
|
|
81
|
-
this.far = this.inputs.select('far');
|
|
82
|
-
this.length = computed(() => new THREE.Vector3(...this.position()).length());
|
|
83
|
-
this.shadowsApi = injectNgtsAccumulativeShadowsApi();
|
|
84
|
-
this.amount = this.inputs.select('amount');
|
|
85
|
-
this.castShadow = this.inputs.select('castShadow');
|
|
86
|
-
this.intensity = this.inputs.select('intensity');
|
|
87
|
-
this.bias = this.inputs.select('bias');
|
|
88
|
-
this.shadowsMapSize = computed(() => [this.mapSize(), this.mapSize()]);
|
|
89
|
-
this.cameraArgs = computed(() => [-this.size(), this.size(), this.size(), -this.size(), this.near(), this.far()]);
|
|
90
|
-
this.api = computed(() => {
|
|
91
|
-
const [lights, ambient, radius, length, position] = [
|
|
92
|
-
this.lightsRef.nativeElement,
|
|
93
|
-
this.ambient(),
|
|
94
|
-
this.radius(),
|
|
95
|
-
this.length(),
|
|
96
|
-
this.position(),
|
|
97
|
-
];
|
|
98
|
-
const update = () => {
|
|
99
|
-
if (lights) {
|
|
100
|
-
for (let l = 0; l < lights.children.length; l++) {
|
|
101
|
-
const light = lights.children[l];
|
|
102
|
-
if (Math.random() > ambient) {
|
|
103
|
-
light.position.set(position[0] + THREE.MathUtils.randFloatSpread(radius), position[1] + THREE.MathUtils.randFloatSpread(radius), position[2] + THREE.MathUtils.randFloatSpread(radius));
|
|
104
|
-
}
|
|
105
|
-
else {
|
|
106
|
-
const lambda = Math.acos(2 * Math.random() - 1) - Math.PI / 2.0;
|
|
107
|
-
const phi = 2 * Math.PI * Math.random();
|
|
108
|
-
light.position.set(Math.cos(lambda) * Math.cos(phi) * length, Math.abs(Math.cos(lambda) * Math.sin(phi) * length), Math.sin(lambda) * length);
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
};
|
|
113
|
-
return { update };
|
|
114
|
-
});
|
|
115
|
-
this.updateLightMap();
|
|
116
|
-
}
|
|
117
|
-
updateLightMap() {
|
|
118
|
-
effect((onCleanup) => {
|
|
119
|
-
const lights = this.lightsRef.nativeElement;
|
|
120
|
-
if (!lights)
|
|
121
|
-
return;
|
|
122
|
-
const shadowsApi = this.shadowsApi();
|
|
123
|
-
if (shadowsApi) {
|
|
124
|
-
shadowsApi.lights.set(lights.uuid, this.api);
|
|
125
|
-
onCleanup(() => shadowsApi.lights.delete(lights.uuid));
|
|
126
|
-
}
|
|
127
|
-
});
|
|
128
|
-
}
|
|
129
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: NgtsRandomizedLights, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
130
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: NgtsRandomizedLights, isStandalone: true, selector: "ngts-randomized-lights", inputs: { lightsRef: "lightsRef", _frames: ["frames", "_frames"], _position: ["position", "_position"], _radius: ["radius", "_radius"], _amount: ["amount", "_amount"], _intensity: ["intensity", "_intensity"], _ambient: ["ambient", "_ambient"], _castShadow: ["castShadow", "_castShadow"], _bias: ["bias", "_bias"], _mapSize: ["mapSize", "_mapSize"], _size: ["size", "_size"], _near: ["near", "_near"], _far: ["far", "_far"] }, ngImport: i0, template: `
|
|
131
|
-
<ngt-group ngtCompound [ref]="lightsRef">
|
|
132
|
-
<ngt-directional-light
|
|
133
|
-
*ngFor="let i; repeat: amount()"
|
|
134
|
-
[castShadow]="castShadow()"
|
|
135
|
-
[intensity]="intensity() / amount()"
|
|
136
|
-
>
|
|
137
|
-
<ngt-value [rawValue]="bias()" attach="shadow.bias" />
|
|
138
|
-
<ngt-vector2 *args="shadowsMapSize()" attach="shadow.mapSize" />
|
|
139
|
-
<ngt-orthographic-camera *args="cameraArgs()" attach="shadow.camera" />
|
|
140
|
-
</ngt-directional-light>
|
|
141
|
-
<ng-content />
|
|
142
|
-
</ngt-group>
|
|
143
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: NgtRepeat, selector: "[ngFor][ngForRepeat]", inputs: ["ngForRepeat"] }, { kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }] }); }
|
|
144
|
-
}
|
|
145
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: NgtsRandomizedLights, decorators: [{
|
|
146
|
-
type: Component,
|
|
147
|
-
args: [{
|
|
148
|
-
selector: 'ngts-randomized-lights',
|
|
149
|
-
standalone: true,
|
|
150
|
-
template: `
|
|
151
|
-
<ngt-group ngtCompound [ref]="lightsRef">
|
|
152
|
-
<ngt-directional-light
|
|
153
|
-
*ngFor="let i; repeat: amount()"
|
|
154
|
-
[castShadow]="castShadow()"
|
|
155
|
-
[intensity]="intensity() / amount()"
|
|
156
|
-
>
|
|
157
|
-
<ngt-value [rawValue]="bias()" attach="shadow.bias" />
|
|
158
|
-
<ngt-vector2 *args="shadowsMapSize()" attach="shadow.mapSize" />
|
|
159
|
-
<ngt-orthographic-camera *args="cameraArgs()" attach="shadow.camera" />
|
|
160
|
-
</ngt-directional-light>
|
|
161
|
-
<ng-content />
|
|
162
|
-
</ngt-group>
|
|
163
|
-
`,
|
|
164
|
-
imports: [NgtRepeat, NgtArgs],
|
|
165
|
-
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
166
|
-
}]
|
|
167
|
-
}], ctorParameters: function () { return []; }, propDecorators: { lightsRef: [{
|
|
168
|
-
type: Input
|
|
169
|
-
}], _frames: [{
|
|
170
|
-
type: Input,
|
|
171
|
-
args: [{ alias: 'frames' }]
|
|
172
|
-
}], _position: [{
|
|
173
|
-
type: Input,
|
|
174
|
-
args: [{ alias: 'position' }]
|
|
175
|
-
}], _radius: [{
|
|
176
|
-
type: Input,
|
|
177
|
-
args: [{ alias: 'radius' }]
|
|
178
|
-
}], _amount: [{
|
|
179
|
-
type: Input,
|
|
180
|
-
args: [{ alias: 'amount' }]
|
|
181
|
-
}], _intensity: [{
|
|
182
|
-
type: Input,
|
|
183
|
-
args: [{ alias: 'intensity' }]
|
|
184
|
-
}], _ambient: [{
|
|
185
|
-
type: Input,
|
|
186
|
-
args: [{ alias: 'ambient' }]
|
|
187
|
-
}], _castShadow: [{
|
|
188
|
-
type: Input,
|
|
189
|
-
args: [{ alias: 'castShadow' }]
|
|
190
|
-
}], _bias: [{
|
|
191
|
-
type: Input,
|
|
192
|
-
args: [{ alias: 'bias' }]
|
|
193
|
-
}], _mapSize: [{
|
|
194
|
-
type: Input,
|
|
195
|
-
args: [{ alias: 'mapSize' }]
|
|
196
|
-
}], _size: [{
|
|
197
|
-
type: Input,
|
|
198
|
-
args: [{ alias: 'size' }]
|
|
199
|
-
}], _near: [{
|
|
200
|
-
type: Input,
|
|
201
|
-
args: [{ alias: 'near' }]
|
|
202
|
-
}], _far: [{
|
|
203
|
-
type: Input,
|
|
204
|
-
args: [{ alias: 'far' }]
|
|
205
|
-
}] } });
|
|
206
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFuZG9taXplZC1saWdodHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvc3RhZ2luZy9zcmMvYWNjdW11bGF0aXZlLXNoYWRvd3MvcmFuZG9taXplZC1saWdodHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRixPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDckcsT0FBTyxLQUFLLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDL0IsT0FBTyxFQUFFLGdCQUFnQixFQUFFLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxPQUFPLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDN0UsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBRTFFLE1BQU0sQ0FBQyxFQUFFLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0FBMkRqRSxNQUFNLE9BQU8sb0JBQW9CO0lBa0JoQztvSEFDZ0g7SUFDaEgsSUFBZ0MsT0FBTyxDQUFDLE1BQWM7UUFDckQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxnQ0FBZ0M7SUFDaEMsSUFBa0MsU0FBUyxDQUFDLFFBQTJDO1FBQ3RGLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsK0RBQStEO0lBQy9ELElBQWdDLE9BQU8sQ0FBQyxNQUFjO1FBQ3JELElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsMEJBQTBCO0lBQzFCLElBQWdDLE9BQU8sQ0FBQyxNQUFjO1FBQ3JELElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQseUJBQXlCO0lBQ3pCLElBQW1DLFVBQVUsQ0FBQyxTQUFpQjtRQUM5RCxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELDBHQUEwRztJQUMxRyxJQUFpQyxRQUFRLENBQUMsT0FBZTtRQUN4RCxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELDBEQUEwRDtJQUMxRCxJQUFvQyxXQUFXLENBQUMsVUFBbUI7UUFDbEUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCw2QkFBNkI7SUFDN0IsSUFBOEIsS0FBSyxDQUFDLElBQVk7UUFDL0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRCw0QkFBNEI7SUFDNUIsSUFBaUMsUUFBUSxDQUFDLE9BQWU7UUFDeEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCw0Q0FBNEM7SUFDNUMsSUFBOEIsS0FBSyxDQUFDLElBQVk7UUFDL0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRCxzQ0FBc0M7SUFDdEMsSUFBOEIsS0FBSyxDQUFDLElBQVk7UUFDL0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRCxxQ0FBcUM7SUFDckMsSUFBNkIsSUFBSSxDQUFDLEdBQVc7UUFDNUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUF5REQ7UUFySVEsV0FBTSxHQUFHLFdBQVcsQ0FBNEI7WUFDdkQsVUFBVSxFQUFFLElBQUk7WUFDaEIsSUFBSSxFQUFFLEtBQUs7WUFDWCxPQUFPLEVBQUUsR0FBRztZQUNaLElBQUksRUFBRSxDQUFDO1lBQ1AsSUFBSSxFQUFFLEdBQUc7WUFDVCxHQUFHLEVBQUUsR0FBRztZQUNSLE1BQU0sRUFBRSxDQUFDO1lBQ1QsUUFBUSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDbkIsTUFBTSxFQUFFLENBQUM7WUFDVCxNQUFNLEVBQUUsQ0FBQztZQUNULFNBQVMsRUFBRSxDQUFDO1lBQ1osT0FBTyxFQUFFLEdBQUc7U0FDWixDQUFDLENBQUM7UUFDSCxTQUFJLEdBQUcsSUFBSSxDQUFDO1FBRUgsY0FBUyxHQUFHLFlBQVksRUFBUyxDQUFDO1FBOERuQyxhQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDMUMsWUFBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3hDLFdBQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN0QyxZQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDeEMsU0FBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2xDLFNBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNsQyxRQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFaEMsV0FBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBRXhFLGVBQVUsR0FBRyxnQ0FBZ0MsRUFBRSxDQUFDO1FBRXhELFdBQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN0QyxlQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDOUMsY0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzVDLFNBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUVsQyxtQkFBYyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2xFLGVBQVUsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRTdHLFFBQUcsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ25CLE1BQU0sQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxDQUFDLEdBQUc7Z0JBQ25ELElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYTtnQkFDNUIsSUFBSSxDQUFDLE9BQU8sRUFBRTtnQkFDZCxJQUFJLENBQUMsTUFBTSxFQUFFO2dCQUNiLElBQUksQ0FBQyxNQUFNLEVBQUU7Z0JBQ2IsSUFBSSxDQUFDLFFBQVEsRUFBRTthQUNmLENBQUM7WUFFRixNQUFNLE1BQU0sR0FBRyxHQUFHLEVBQUU7Z0JBQ25CLElBQUksTUFBTSxFQUFFO29CQUNYLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTt3QkFDaEQsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQTJCLENBQUM7d0JBQzNELElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLE9BQU8sRUFBRTs0QkFDNUIsS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQ2pCLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsRUFDckQsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxFQUNyRCxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQ3JELENBQUM7eUJBQ0Y7NkJBQU07NEJBQ04sTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxFQUFFLEdBQUcsR0FBRyxDQUFDOzRCQUNoRSxNQUFNLEdBQUcsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7NEJBQ3hDLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUNqQixJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsTUFBTSxFQUN6QyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxNQUFNLENBQUMsRUFDbkQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxNQUFNLENBQ3pCLENBQUM7eUJBQ0Y7cUJBQ0Q7aUJBQ0Q7WUFDRixDQUFDLENBQUM7WUFFRixPQUFPLEVBQUUsTUFBTSxFQUFFLENBQUM7UUFDbkIsQ0FBQyxDQUFDLENBQUM7UUFHRixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVPLGNBQWM7UUFDckIsTUFBTSxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDcEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUM7WUFDNUMsSUFBSSxDQUFDLE1BQU07Z0JBQUUsT0FBTztZQUNwQixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDckMsSUFBSSxVQUFVLEVBQUU7Z0JBQ2YsVUFBVSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQzdDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQzthQUN2RDtRQUNGLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQzs4R0FwSlcsb0JBQW9CO2tHQUFwQixvQkFBb0IsNGZBakJ0Qjs7Ozs7Ozs7Ozs7OztFQWFULDREQUNTLFNBQVMsMEZBQUUsT0FBTzs7MkZBR2hCLG9CQUFvQjtrQkFwQmhDLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLHdCQUF3QjtvQkFDbEMsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7OztFQWFUO29CQUNELE9BQU8sRUFBRSxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUM7b0JBQzdCLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO2lCQUNqQzswRUFrQlMsU0FBUztzQkFBakIsS0FBSztnQkFHMEIsT0FBTztzQkFBdEMsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUU7Z0JBS1EsU0FBUztzQkFBMUMsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUU7Z0JBS0ksT0FBTztzQkFBdEMsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUU7Z0JBS00sT0FBTztzQkFBdEMsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUU7Z0JBS1MsVUFBVTtzQkFBNUMsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUU7Z0JBS0ksUUFBUTtzQkFBeEMsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUU7Z0JBS1MsV0FBVztzQkFBOUMsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUU7Z0JBS0EsS0FBSztzQkFBbEMsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7Z0JBS1MsUUFBUTtzQkFBeEMsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUU7Z0JBS0csS0FBSztzQkFBbEMsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7Z0JBS00sS0FBSztzQkFBbEMsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7Z0JBS0ssSUFBSTtzQkFBaEMsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBDb21wb25lbnQsIElucHV0LCBjb21wdXRlZCwgZWZmZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ3RBcmdzLCBOZ3RSZXBlYXQsIGV4dGVuZCwgaW5qZWN0Tmd0UmVmLCBzaWduYWxTdG9yZSwgdHlwZSBOZ3RHcm91cCB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0ICogYXMgVEhSRUUgZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgRGlyZWN0aW9uYWxMaWdodCwgR3JvdXAsIE9ydGhvZ3JhcGhpY0NhbWVyYSwgVmVjdG9yMiB9IGZyb20gJ3RocmVlJztcbmltcG9ydCB7IGluamVjdE5ndHNBY2N1bXVsYXRpdmVTaGFkb3dzQXBpIH0gZnJvbSAnLi9hY2N1bXVsYXRpdmUtc2hhZG93cyc7XG5cbmV4dGVuZCh7IEdyb3VwLCBEaXJlY3Rpb25hbExpZ2h0LCBPcnRob2dyYXBoaWNDYW1lcmEsIFZlY3RvcjIgfSk7XG5cbmV4cG9ydCB0eXBlIE5ndHNSYW5kb21pemVkTGlnaHRzU3RhdGUgPSB7XG5cdC8qKiBIb3cgbWFueSBmcmFtZXMgaXQgd2lsbCBqaWdnbGUgdGhlIGxpZ2h0cywgMS5cblx0ICogIEZyYW1lcyBpcyBjb250ZXh0IGF3YXJlLCBpZiBhIHByb3ZpZGVyIGxpa2UgQWNjdW11bGF0aXZlU2hhZG93cyBleGlzdHMsIGZyYW1lcyB3aWxsIGJlIHRha2VuIGZyb20gdGhlcmUhICAqL1xuXHRmcmFtZXM6IG51bWJlcjtcblx0LyoqIExpZ2h0IHBvc2l0aW9uLCBbMCwgMCwgMF0gKi9cblx0cG9zaXRpb246IFt4OiBudW1iZXIsIHk6IG51bWJlciwgejogbnVtYmVyXTtcblx0LyoqIFJhZGl1cyBvZiB0aGUgamlnZ2xlLCBoaWdoZXIgdmFsdWVzIG1ha2Ugc29mdGVyIGxpZ2h0LCA1ICovXG5cdHJhZGl1czogbnVtYmVyO1xuXHQvKiogQW1vdW50IG9mIGxpZ2h0cywgOCAqL1xuXHRhbW91bnQ6IG51bWJlcjtcblx0LyoqIExpZ2h0IGludGVuc2l0eSwgMSAqL1xuXHRpbnRlbnNpdHk6IG51bWJlcjtcblx0LyoqIEFtYmllbnQgb2NjbHVzaW9uLCBsb3dlciB2YWx1ZXMgbWVhbiBsZXNzIEFPLCBoaWdodCBtb3JlLCB5b3UgY2FuIG1peCBBTyBhbmQgZGlyZWN0aW9uYWwgbGlnaHQsIDAuNSAqL1xuXHRhbWJpZW50OiBudW1iZXI7XG5cdC8qKiBJZiB0aGUgbGlnaHRzIGNhc3Qgc2hhZG93cywgdGhpcyBpcyB0cnVlIGJ5IGRlZmF1bHQgKi9cblx0Y2FzdFNoYWRvdzogYm9vbGVhbjtcblx0LyoqIERlZmF1bHQgc2hhZG93IGJpYXMsIDAgKi9cblx0YmlhczogbnVtYmVyO1xuXHQvKiogRGVmYXVsdCBtYXAgc2l6ZSwgNTEyICovXG5cdG1hcFNpemU6IG51bWJlcjtcblx0LyoqIERlZmF1bHQgc2l6ZSBvZiB0aGUgc2hhZG93IGNhbWVyYSwgMTAgKi9cblx0c2l6ZTogbnVtYmVyO1xuXHQvKiogRGVmYXVsdCBzaGFkb3cgY2FtZXJhIG5lYXIsIDAuNSAqL1xuXHRuZWFyOiBudW1iZXI7XG5cdC8qKiBEZWZhdWx0IHNoYWRvdyBjYW1lcmEgZmFyLCA1MDAgKi9cblx0ZmFyOiBudW1iZXI7XG59O1xuXG5kZWNsYXJlIGdsb2JhbCB7XG5cdGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuXHRcdC8qKlxuXHRcdCAqIEBleHRlbmRzIG5ndC1ncm91cFxuXHRcdCAqL1xuXHRcdCduZ3RzLXJhbmRvbWl6ZWQtbGlnaHRzJzogTmd0c1JhbmRvbWl6ZWRMaWdodHNTdGF0ZSAmIE5ndEdyb3VwO1xuXHR9XG59XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHMtcmFuZG9taXplZC1saWdodHMnLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3QtZ3JvdXAgbmd0Q29tcG91bmQgW3JlZl09XCJsaWdodHNSZWZcIj5cblx0XHRcdDxuZ3QtZGlyZWN0aW9uYWwtbGlnaHRcblx0XHRcdFx0Km5nRm9yPVwibGV0IGk7IHJlcGVhdDogYW1vdW50KClcIlxuXHRcdFx0XHRbY2FzdFNoYWRvd109XCJjYXN0U2hhZG93KClcIlxuXHRcdFx0XHRbaW50ZW5zaXR5XT1cImludGVuc2l0eSgpIC8gYW1vdW50KClcIlxuXHRcdFx0PlxuXHRcdFx0XHQ8bmd0LXZhbHVlIFtyYXdWYWx1ZV09XCJiaWFzKClcIiBhdHRhY2g9XCJzaGFkb3cuYmlhc1wiIC8+XG5cdFx0XHRcdDxuZ3QtdmVjdG9yMiAqYXJncz1cInNoYWRvd3NNYXBTaXplKClcIiBhdHRhY2g9XCJzaGFkb3cubWFwU2l6ZVwiIC8+XG5cdFx0XHRcdDxuZ3Qtb3J0aG9ncmFwaGljLWNhbWVyYSAqYXJncz1cImNhbWVyYUFyZ3MoKVwiIGF0dGFjaD1cInNoYWRvdy5jYW1lcmFcIiAvPlxuXHRcdFx0PC9uZ3QtZGlyZWN0aW9uYWwtbGlnaHQ+XG5cdFx0XHQ8bmctY29udGVudCAvPlxuXHRcdDwvbmd0LWdyb3VwPlxuXHRgLFxuXHRpbXBvcnRzOiBbTmd0UmVwZWF0LCBOZ3RBcmdzXSxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RzUmFuZG9taXplZExpZ2h0cyB7XG5cdHByaXZhdGUgaW5wdXRzID0gc2lnbmFsU3RvcmU8Tmd0c1JhbmRvbWl6ZWRMaWdodHNTdGF0ZT4oe1xuXHRcdGNhc3RTaGFkb3c6IHRydWUsXG5cdFx0YmlhczogMC4wMDEsXG5cdFx0bWFwU2l6ZTogNTEyLFxuXHRcdHNpemU6IDUsXG5cdFx0bmVhcjogMC41LFxuXHRcdGZhcjogNTAwLFxuXHRcdGZyYW1lczogMSxcblx0XHRwb3NpdGlvbjogWzAsIDAsIDBdLFxuXHRcdHJhZGl1czogMSxcblx0XHRhbW91bnQ6IDgsXG5cdFx0aW50ZW5zaXR5OiAxLFxuXHRcdGFtYmllbnQ6IDAuNSxcblx0fSk7XG5cdE1hdGggPSBNYXRoO1xuXG5cdEBJbnB1dCgpIGxpZ2h0c1JlZiA9IGluamVjdE5ndFJlZjxHcm91cD4oKTtcblx0LyoqIEhvdyBtYW55IGZyYW1lcyBpdCB3aWxsIGppZ2dsZSB0aGUgbGlnaHRzLCAxLlxuXHQgKiAgRnJhbWVzIGlzIGNvbnRleHQgYXdhcmUsIGlmIGEgcHJvdmlkZXIgbGlrZSBBY2N1bXVsYXRpdmVTaGFkb3dzIGV4aXN0cywgZnJhbWVzIHdpbGwgYmUgdGFrZW4gZnJvbSB0aGVyZSEgICovXG5cdEBJbnB1dCh7IGFsaWFzOiAnZnJhbWVzJyB9KSBzZXQgX2ZyYW1lcyhmcmFtZXM6IG51bWJlcikge1xuXHRcdHRoaXMuaW5wdXRzLnNldCh7IGZyYW1lcyB9KTtcblx0fVxuXG5cdC8qKiBMaWdodCBwb3NpdGlvbiwgWzAsIDAsIDBdICovXG5cdEBJbnB1dCh7IGFsaWFzOiAncG9zaXRpb24nIH0pIHNldCBfcG9zaXRpb24ocG9zaXRpb246IFt4OiBudW1iZXIsIHk6IG51bWJlciwgejogbnVtYmVyXSkge1xuXHRcdHRoaXMuaW5wdXRzLnNldCh7IHBvc2l0aW9uIH0pO1xuXHR9XG5cblx0LyoqIFJhZGl1cyBvZiB0aGUgamlnZ2xlLCBoaWdoZXIgdmFsdWVzIG1ha2Ugc29mdGVyIGxpZ2h0LCA1ICovXG5cdEBJbnB1dCh7IGFsaWFzOiAncmFkaXVzJyB9KSBzZXQgX3JhZGl1cyhyYWRpdXM6IG51bWJlcikge1xuXHRcdHRoaXMuaW5wdXRzLnNldCh7IHJhZGl1cyB9KTtcblx0fVxuXG5cdC8qKiBBbW91bnQgb2YgbGlnaHRzLCA4ICovXG5cdEBJbnB1dCh7IGFsaWFzOiAnYW1vdW50JyB9KSBzZXQgX2Ftb3VudChhbW91bnQ6IG51bWJlcikge1xuXHRcdHRoaXMuaW5wdXRzLnNldCh7IGFtb3VudCB9KTtcblx0fVxuXG5cdC8qKiBMaWdodCBpbnRlbnNpdHksIDEgKi9cblx0QElucHV0KHsgYWxpYXM6ICdpbnRlbnNpdHknIH0pIHNldCBfaW50ZW5zaXR5KGludGVuc2l0eTogbnVtYmVyKSB7XG5cdFx0dGhpcy5pbnB1dHMuc2V0KHsgaW50ZW5zaXR5IH0pO1xuXHR9XG5cblx0LyoqIEFtYmllbnQgb2NjbHVzaW9uLCBsb3dlciB2YWx1ZXMgbWVhbiBsZXNzIEFPLCBoaWdodCBtb3JlLCB5b3UgY2FuIG1peCBBTyBhbmQgZGlyZWN0aW9uYWwgbGlnaHQsIDAuNSAqL1xuXHRASW5wdXQoeyBhbGlhczogJ2FtYmllbnQnIH0pIHNldCBfYW1iaWVudChhbWJpZW50OiBudW1iZXIpIHtcblx0XHR0aGlzLmlucHV0cy5zZXQoeyBhbWJpZW50IH0pO1xuXHR9XG5cblx0LyoqIElmIHRoZSBsaWdodHMgY2FzdCBzaGFkb3dzLCB0aGlzIGlzIHRydWUgYnkgZGVmYXVsdCAqL1xuXHRASW5wdXQoeyBhbGlhczogJ2Nhc3RTaGFkb3cnIH0pIHNldCBfY2FzdFNoYWRvdyhjYXN0U2hhZG93OiBib29sZWFuKSB7XG5cdFx0dGhpcy5pbnB1dHMuc2V0KHsgY2FzdFNoYWRvdyB9KTtcblx0fVxuXG5cdC8qKiBEZWZhdWx0IHNoYWRvdyBiaWFzLCAwICovXG5cdEBJbnB1dCh7IGFsaWFzOiAnYmlhcycgfSkgc2V0IF9iaWFzKGJpYXM6IG51bWJlcikge1xuXHRcdHRoaXMuaW5wdXRzLnNldCh7IGJpYXMgfSk7XG5cdH1cblxuXHQvKiogRGVmYXVsdCBtYXAgc2l6ZSwgNTEyICovXG5cdEBJbnB1dCh7IGFsaWFzOiAnbWFwU2l6ZScgfSkgc2V0IF9tYXBTaXplKG1hcFNpemU6IG51bWJlcikge1xuXHRcdHRoaXMuaW5wdXRzLnNldCh7IG1hcFNpemUgfSk7XG5cdH1cblxuXHQvKiogRGVmYXVsdCBzaXplIG9mIHRoZSBzaGFkb3cgY2FtZXJhLCAxMCAqL1xuXHRASW5wdXQoeyBhbGlhczogJ3NpemUnIH0pIHNldCBfc2l6ZShzaXplOiBudW1iZXIpIHtcblx0XHR0aGlzLmlucHV0cy5zZXQoeyBzaXplIH0pO1xuXHR9XG5cblx0LyoqIERlZmF1bHQgc2hhZG93IGNhbWVyYSBuZWFyLCAwLjUgKi9cblx0QElucHV0KHsgYWxpYXM6ICduZWFyJyB9KSBzZXQgX25lYXIobmVhcjogbnVtYmVyKSB7XG5cdFx0dGhpcy5pbnB1dHMuc2V0KHsgbmVhciB9KTtcblx0fVxuXG5cdC8qKiBEZWZhdWx0IHNoYWRvdyBjYW1lcmEgZmFyLCA1MDAgKi9cblx0QElucHV0KHsgYWxpYXM6ICdmYXInIH0pIHNldCBfZmFyKGZhcjogbnVtYmVyKSB7XG5cdFx0dGhpcy5pbnB1dHMuc2V0KHsgZmFyIH0pO1xuXHR9XG5cblx0cHJpdmF0ZSBwb3NpdGlvbiA9IHRoaXMuaW5wdXRzLnNlbGVjdCgncG9zaXRpb24nKTtcblx0cHJpdmF0ZSBhbWJpZW50ID0gdGhpcy5pbnB1dHMuc2VsZWN0KCdhbWJpZW50Jyk7XG5cdHByaXZhdGUgcmFkaXVzID0gdGhpcy5pbnB1dHMuc2VsZWN0KCdyYWRpdXMnKTtcblx0cHJpdmF0ZSBtYXBTaXplID0gdGhpcy5pbnB1dHMuc2VsZWN0KCdtYXBTaXplJyk7XG5cdHByaXZhdGUgc2l6ZSA9IHRoaXMuaW5wdXRzLnNlbGVjdCgnc2l6ZScpO1xuXHRwcml2YXRlIG5lYXIgPSB0aGlzLmlucHV0cy5zZWxlY3QoJ25lYXInKTtcblx0cHJpdmF0ZSBmYXIgPSB0aGlzLmlucHV0cy5zZWxlY3QoJ2ZhcicpO1xuXG5cdHByaXZhdGUgbGVuZ3RoID0gY29tcHV0ZWQoKCkgPT4gbmV3IFRIUkVFLlZlY3RvcjMoLi4udGhpcy5wb3NpdGlvbigpKS5sZW5ndGgoKSk7XG5cblx0cHJpdmF0ZSBzaGFkb3dzQXBpID0gaW5qZWN0Tmd0c0FjY3VtdWxhdGl2ZVNoYWRvd3NBcGkoKTtcblxuXHRhbW91bnQgPSB0aGlzLmlucHV0cy5zZWxlY3QoJ2Ftb3VudCcpO1xuXHRjYXN0U2hhZG93ID0gdGhpcy5pbnB1dHMuc2VsZWN0KCdjYXN0U2hhZG93Jyk7XG5cdGludGVuc2l0eSA9IHRoaXMuaW5wdXRzLnNlbGVjdCgnaW50ZW5zaXR5Jyk7XG5cdGJpYXMgPSB0aGlzLmlucHV0cy5zZWxlY3QoJ2JpYXMnKTtcblxuXHRzaGFkb3dzTWFwU2l6ZSA9IGNvbXB1dGVkKCgpID0+IFt0aGlzLm1hcFNpemUoKSwgdGhpcy5tYXBTaXplKCldKTtcblx0Y2FtZXJhQXJncyA9IGNvbXB1dGVkKCgpID0+IFstdGhpcy5zaXplKCksIHRoaXMuc2l6ZSgpLCB0aGlzLnNpemUoKSwgLXRoaXMuc2l6ZSgpLCB0aGlzLm5lYXIoKSwgdGhpcy5mYXIoKV0pO1xuXG5cdGFwaSA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRjb25zdCBbbGlnaHRzLCBhbWJpZW50LCByYWRpdXMsIGxlbmd0aCwgcG9zaXRpb25dID0gW1xuXHRcdFx0dGhpcy5saWdodHNSZWYubmF0aXZlRWxlbWVudCxcblx0XHRcdHRoaXMuYW1iaWVudCgpLFxuXHRcdFx0dGhpcy5yYWRpdXMoKSxcblx0XHRcdHRoaXMubGVuZ3RoKCksXG5cdFx0XHR0aGlzLnBvc2l0aW9uKCksXG5cdFx0XTtcblxuXHRcdGNvbnN0IHVwZGF0ZSA9ICgpID0+IHtcblx0XHRcdGlmIChsaWdodHMpIHtcblx0XHRcdFx0Zm9yIChsZXQgbCA9IDA7IGwgPCBsaWdodHMuY2hpbGRyZW4ubGVuZ3RoOyBsKyspIHtcblx0XHRcdFx0XHRjb25zdCBsaWdodCA9IGxpZ2h0cy5jaGlsZHJlbltsXSBhcyBUSFJFRS5EaXJlY3Rpb25hbExpZ2h0O1xuXHRcdFx0XHRcdGlmIChNYXRoLnJhbmRvbSgpID4gYW1iaWVudCkge1xuXHRcdFx0XHRcdFx0bGlnaHQucG9zaXRpb24uc2V0KFxuXHRcdFx0XHRcdFx0XHRwb3NpdGlvblswXSArIFRIUkVFLk1hdGhVdGlscy5yYW5kRmxvYXRTcHJlYWQocmFkaXVzKSxcblx0XHRcdFx0XHRcdFx0cG9zaXRpb25bMV0gKyBUSFJFRS5NYXRoVXRpbHMucmFuZEZsb2F0U3ByZWFkKHJhZGl1cyksXG5cdFx0XHRcdFx0XHRcdHBvc2l0aW9uWzJdICsgVEhSRUUuTWF0aFV0aWxzLnJhbmRGbG9hdFNwcmVhZChyYWRpdXMpLFxuXHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0Y29uc3QgbGFtYmRhID0gTWF0aC5hY29zKDIgKiBNYXRoLnJhbmRvbSgpIC0gMSkgLSBNYXRoLlBJIC8gMi4wO1xuXHRcdFx0XHRcdFx0Y29uc3QgcGhpID0gMiAqIE1hdGguUEkgKiBNYXRoLnJhbmRvbSgpO1xuXHRcdFx0XHRcdFx0bGlnaHQucG9zaXRpb24uc2V0KFxuXHRcdFx0XHRcdFx0XHRNYXRoLmNvcyhsYW1iZGEpICogTWF0aC5jb3MocGhpKSAqIGxlbmd0aCxcblx0XHRcdFx0XHRcdFx0TWF0aC5hYnMoTWF0aC5jb3MobGFtYmRhKSAqIE1hdGguc2luKHBoaSkgKiBsZW5ndGgpLFxuXHRcdFx0XHRcdFx0XHRNYXRoLnNpbihsYW1iZGEpICogbGVuZ3RoLFxuXHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9O1xuXG5cdFx0cmV0dXJuIHsgdXBkYXRlIH07XG5cdH0pO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdHRoaXMudXBkYXRlTGlnaHRNYXAoKTtcblx0fVxuXG5cdHByaXZhdGUgdXBkYXRlTGlnaHRNYXAoKSB7XG5cdFx0ZWZmZWN0KChvbkNsZWFudXApID0+IHtcblx0XHRcdGNvbnN0IGxpZ2h0cyA9IHRoaXMubGlnaHRzUmVmLm5hdGl2ZUVsZW1lbnQ7XG5cdFx0XHRpZiAoIWxpZ2h0cykgcmV0dXJuO1xuXHRcdFx0Y29uc3Qgc2hhZG93c0FwaSA9IHRoaXMuc2hhZG93c0FwaSgpO1xuXHRcdFx0aWYgKHNoYWRvd3NBcGkpIHtcblx0XHRcdFx0c2hhZG93c0FwaS5saWdodHMuc2V0KGxpZ2h0cy51dWlkLCB0aGlzLmFwaSk7XG5cdFx0XHRcdG9uQ2xlYW51cCgoKSA9PiBzaGFkb3dzQXBpLmxpZ2h0cy5kZWxldGUobGlnaHRzLnV1aWQpKTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxufVxuIl19
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
import { CUSTOM_ELEMENTS_SCHEMA, Component, Input, effect } from '@angular/core';
|
|
2
|
-
import { NgtArgs, checkUpdate, extend, injectNgtRef, signalStore } from 'angular-three';
|
|
3
|
-
import { Group, Mesh, PlaneGeometry } from 'three';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
const easeInExpo = (x) => (x === 0 ? 0 : Math.pow(2, 10 * x - 10));
|
|
6
|
-
extend({ Group, Mesh, PlaneGeometry });
|
|
7
|
-
export class NgtsBackdrop {
|
|
8
|
-
set _floor(floor) {
|
|
9
|
-
this.inputs.set({ floor });
|
|
10
|
-
}
|
|
11
|
-
set _segments(segments) {
|
|
12
|
-
this.inputs.set({ segments });
|
|
13
|
-
}
|
|
14
|
-
set _receiveShadow(receiveShadow) {
|
|
15
|
-
this.inputs.set({ receiveShadow });
|
|
16
|
-
}
|
|
17
|
-
constructor() {
|
|
18
|
-
this.Math = Math;
|
|
19
|
-
this.inputs = signalStore({ floor: 0.25, segments: 20, receiveShadow: false });
|
|
20
|
-
this.floor = this.inputs.select('floor');
|
|
21
|
-
this.planeRef = injectNgtRef();
|
|
22
|
-
this.segments = this.inputs.select('segments');
|
|
23
|
-
this.receiveShadow = this.inputs.select('receiveShadow');
|
|
24
|
-
effect(() => {
|
|
25
|
-
const plane = this.planeRef.nativeElement;
|
|
26
|
-
if (!plane)
|
|
27
|
-
return;
|
|
28
|
-
const [segments, floor] = [this.segments(), this.floor()];
|
|
29
|
-
const offset = segments / segments / 2;
|
|
30
|
-
const position = plane.attributes['position'];
|
|
31
|
-
let i = 0;
|
|
32
|
-
for (let x = 0; x < segments + 1; x++) {
|
|
33
|
-
for (let y = 0; y < segments + 1; y++) {
|
|
34
|
-
position.setXYZ(i++, x / segments - offset + (x === 0 ? -floor : 0), y / segments - offset, easeInExpo(x / segments));
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
checkUpdate(position);
|
|
38
|
-
plane.computeVertexNormals();
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: NgtsBackdrop, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
42
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: NgtsBackdrop, isStandalone: true, selector: "ngts-backdrop", inputs: { _floor: ["floor", "_floor"], _segments: ["segments", "_segments"], _receiveShadow: ["receiveShadow", "_receiveShadow"] }, ngImport: i0, template: `
|
|
43
|
-
<ngt-group ngtCompound>
|
|
44
|
-
<ngt-mesh [receiveShadow]="receiveShadow()" [rotation]="[-Math.PI / 2, 0, Math.PI / 2]">
|
|
45
|
-
<ngt-plane-geometry [ref]="planeRef" *args="[1, 1, segments(), segments()]" />
|
|
46
|
-
<ng-content />
|
|
47
|
-
</ngt-mesh>
|
|
48
|
-
</ngt-group>
|
|
49
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }] }); }
|
|
50
|
-
}
|
|
51
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: NgtsBackdrop, decorators: [{
|
|
52
|
-
type: Component,
|
|
53
|
-
args: [{
|
|
54
|
-
selector: 'ngts-backdrop',
|
|
55
|
-
standalone: true,
|
|
56
|
-
template: `
|
|
57
|
-
<ngt-group ngtCompound>
|
|
58
|
-
<ngt-mesh [receiveShadow]="receiveShadow()" [rotation]="[-Math.PI / 2, 0, Math.PI / 2]">
|
|
59
|
-
<ngt-plane-geometry [ref]="planeRef" *args="[1, 1, segments(), segments()]" />
|
|
60
|
-
<ng-content />
|
|
61
|
-
</ngt-mesh>
|
|
62
|
-
</ngt-group>
|
|
63
|
-
`,
|
|
64
|
-
imports: [NgtArgs],
|
|
65
|
-
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
66
|
-
}]
|
|
67
|
-
}], ctorParameters: function () { return []; }, propDecorators: { _floor: [{
|
|
68
|
-
type: Input,
|
|
69
|
-
args: [{ alias: 'floor' }]
|
|
70
|
-
}], _segments: [{
|
|
71
|
-
type: Input,
|
|
72
|
-
args: [{ alias: 'segments' }]
|
|
73
|
-
}], _receiveShadow: [{
|
|
74
|
-
type: Input,
|
|
75
|
-
args: [{ alias: 'receiveShadow' }]
|
|
76
|
-
}] } });
|
|
77
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFja2Ryb3AuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvc3RhZ2luZy9zcmMvYmFja2Ryb3AvYmFja2Ryb3AudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUN2RyxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxhQUFhLEVBQXdCLE1BQU0sT0FBTyxDQUFDOztBQUV6RSxNQUFNLFVBQVUsR0FBRyxDQUFDLENBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztBQWlCM0UsTUFBTSxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsQ0FBQyxDQUFDO0FBZ0J2QyxNQUFNLE9BQU8sWUFBWTtJQUt4QixJQUErQixNQUFNLENBQUMsS0FBYTtRQUNsRCxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQWtDLFNBQVMsQ0FBQyxRQUFnQjtRQUMzRCxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELElBQXVDLGNBQWMsQ0FBQyxhQUFzQjtRQUMzRSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLGFBQWEsRUFBRSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQVFEO1FBdEJBLFNBQUksR0FBRyxJQUFJLENBQUM7UUFFSixXQUFNLEdBQUcsV0FBVyxDQUFvQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQWM3RixVQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFNUMsYUFBUSxHQUFHLFlBQVksRUFBaUIsQ0FBQztRQUN6QyxhQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDMUMsa0JBQWEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUduRCxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1gsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUM7WUFDMUMsSUFBSSxDQUFDLEtBQUs7Z0JBQUUsT0FBTztZQUNuQixNQUFNLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1lBQzFELE1BQU0sTUFBTSxHQUFHLFFBQVEsR0FBRyxRQUFRLEdBQUcsQ0FBQyxDQUFDO1lBQ3ZDLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFvQixDQUFDO1lBQ2pFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNWLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxRQUFRLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUN0QyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsUUFBUSxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtvQkFDdEMsUUFBUSxDQUFDLE1BQU0sQ0FDZCxDQUFDLEVBQUUsRUFDSCxDQUFDLEdBQUcsUUFBUSxHQUFHLE1BQU0sR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFDOUMsQ0FBQyxHQUFHLFFBQVEsR0FBRyxNQUFNLEVBQ3JCLFVBQVUsQ0FBQyxDQUFDLEdBQUcsUUFBUSxDQUFDLENBQ3hCLENBQUM7aUJBQ0Y7YUFDRDtZQUVELFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN0QixLQUFLLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUM5QixDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7OEdBN0NXLFlBQVk7a0dBQVosWUFBWSw2TUFYZDs7Ozs7OztFQU9ULDREQUNTLE9BQU87OzJGQUdMLFlBQVk7a0JBZHhCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUU7Ozs7Ozs7RUFPVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUM7b0JBQ2xCLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO2lCQUNqQzswRUFNK0IsTUFBTTtzQkFBcEMsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUU7Z0JBSVMsU0FBUztzQkFBMUMsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUU7Z0JBSVcsY0FBYztzQkFBcEQsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBDb21wb25lbnQsIElucHV0LCBlZmZlY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5ndEFyZ3MsIGNoZWNrVXBkYXRlLCBleHRlbmQsIGluamVjdE5ndFJlZiwgc2lnbmFsU3RvcmUsIHR5cGUgTmd0R3JvdXAgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IEdyb3VwLCBNZXNoLCBQbGFuZUdlb21ldHJ5LCB0eXBlIEJ1ZmZlckF0dHJpYnV0ZSB9IGZyb20gJ3RocmVlJztcblxuY29uc3QgZWFzZUluRXhwbyA9ICh4OiBudW1iZXIpID0+ICh4ID09PSAwID8gMCA6IE1hdGgucG93KDIsIDEwICogeCAtIDEwKSk7XG5cbmV4cG9ydCB0eXBlIE5ndHNCYWNrZHJvcFN0YXRlID0ge1xuXHRmbG9vcjogbnVtYmVyO1xuXHRzZWdtZW50czogbnVtYmVyO1xuXHRyZWNlaXZlU2hhZG93OiBib29sZWFuO1xufTtcblxuZGVjbGFyZSBnbG9iYWwge1xuXHRpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcblx0XHQvKipcblx0XHQgKiBAZXh0ZW5kcyBuZ3QtZ3JvdXBcblx0XHQgKi9cblx0XHQnbmd0cy1iYWNrZHJvcCc6IE5ndHNCYWNrZHJvcFN0YXRlICYgTmd0R3JvdXA7XG5cdH1cbn1cblxuZXh0ZW5kKHsgR3JvdXAsIE1lc2gsIFBsYW5lR2VvbWV0cnkgfSk7XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHMtYmFja2Ryb3AnLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3QtZ3JvdXAgbmd0Q29tcG91bmQ+XG5cdFx0XHQ8bmd0LW1lc2ggW3JlY2VpdmVTaGFkb3ddPVwicmVjZWl2ZVNoYWRvdygpXCIgW3JvdGF0aW9uXT1cIlstTWF0aC5QSSAvIDIsIDAsIE1hdGguUEkgLyAyXVwiPlxuXHRcdFx0XHQ8bmd0LXBsYW5lLWdlb21ldHJ5IFtyZWZdPVwicGxhbmVSZWZcIiAqYXJncz1cIlsxLCAxLCBzZWdtZW50cygpLCBzZWdtZW50cygpXVwiIC8+XG5cdFx0XHRcdDxuZy1jb250ZW50IC8+XG5cdFx0XHQ8L25ndC1tZXNoPlxuXHRcdDwvbmd0LWdyb3VwPlxuXHRgLFxuXHRpbXBvcnRzOiBbTmd0QXJnc10sXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0c0JhY2tkcm9wIHtcblx0TWF0aCA9IE1hdGg7XG5cblx0cHJpdmF0ZSBpbnB1dHMgPSBzaWduYWxTdG9yZTxOZ3RzQmFja2Ryb3BTdGF0ZT4oeyBmbG9vcjogMC4yNSwgc2VnbWVudHM6IDIwLCByZWNlaXZlU2hhZG93OiBmYWxzZSB9KTtcblxuXHRASW5wdXQoeyBhbGlhczogJ2Zsb29yJyB9KSBzZXQgX2Zsb29yKGZsb29yOiBudW1iZXIpIHtcblx0XHR0aGlzLmlucHV0cy5zZXQoeyBmbG9vciB9KTtcblx0fVxuXG5cdEBJbnB1dCh7IGFsaWFzOiAnc2VnbWVudHMnIH0pIHNldCBfc2VnbWVudHMoc2VnbWVudHM6IG51bWJlcikge1xuXHRcdHRoaXMuaW5wdXRzLnNldCh7IHNlZ21lbnRzIH0pO1xuXHR9XG5cblx0QElucHV0KHsgYWxpYXM6ICdyZWNlaXZlU2hhZG93JyB9KSBzZXQgX3JlY2VpdmVTaGFkb3cocmVjZWl2ZVNoYWRvdzogYm9vbGVhbikge1xuXHRcdHRoaXMuaW5wdXRzLnNldCh7IHJlY2VpdmVTaGFkb3cgfSk7XG5cdH1cblxuXHRwcml2YXRlIGZsb29yID0gdGhpcy5pbnB1dHMuc2VsZWN0KCdmbG9vcicpO1xuXG5cdHBsYW5lUmVmID0gaW5qZWN0Tmd0UmVmPFBsYW5lR2VvbWV0cnk+KCk7XG5cdHNlZ21lbnRzID0gdGhpcy5pbnB1dHMuc2VsZWN0KCdzZWdtZW50cycpO1xuXHRyZWNlaXZlU2hhZG93ID0gdGhpcy5pbnB1dHMuc2VsZWN0KCdyZWNlaXZlU2hhZG93Jyk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0ZWZmZWN0KCgpID0+IHtcblx0XHRcdGNvbnN0IHBsYW5lID0gdGhpcy5wbGFuZVJlZi5uYXRpdmVFbGVtZW50O1xuXHRcdFx0aWYgKCFwbGFuZSkgcmV0dXJuO1xuXHRcdFx0Y29uc3QgW3NlZ21lbnRzLCBmbG9vcl0gPSBbdGhpcy5zZWdtZW50cygpLCB0aGlzLmZsb29yKCldO1xuXHRcdFx0Y29uc3Qgb2Zmc2V0ID0gc2VnbWVudHMgLyBzZWdtZW50cyAvIDI7XG5cdFx0XHRjb25zdCBwb3NpdGlvbiA9IHBsYW5lLmF0dHJpYnV0ZXNbJ3Bvc2l0aW9uJ10gYXMgQnVmZmVyQXR0cmlidXRlO1xuXHRcdFx0bGV0IGkgPSAwO1xuXHRcdFx0Zm9yIChsZXQgeCA9IDA7IHggPCBzZWdtZW50cyArIDE7IHgrKykge1xuXHRcdFx0XHRmb3IgKGxldCB5ID0gMDsgeSA8IHNlZ21lbnRzICsgMTsgeSsrKSB7XG5cdFx0XHRcdFx0cG9zaXRpb24uc2V0WFlaKFxuXHRcdFx0XHRcdFx0aSsrLFxuXHRcdFx0XHRcdFx0eCAvIHNlZ21lbnRzIC0gb2Zmc2V0ICsgKHggPT09IDAgPyAtZmxvb3IgOiAwKSxcblx0XHRcdFx0XHRcdHkgLyBzZWdtZW50cyAtIG9mZnNldCxcblx0XHRcdFx0XHRcdGVhc2VJbkV4cG8oeCAvIHNlZ21lbnRzKSxcblx0XHRcdFx0XHQpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdGNoZWNrVXBkYXRlKHBvc2l0aW9uKTtcblx0XHRcdHBsYW5lLmNvbXB1dGVWZXJ0ZXhOb3JtYWxzKCk7XG5cdFx0fSk7XG5cdH1cbn1cbiJdfQ==
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
import { CUSTOM_ELEMENTS_SCHEMA, Component, Input, computed, effect } from '@angular/core';
|
|
2
|
-
import { extend, injectBeforeRender, injectNgtRef, signalStore } from 'angular-three';
|
|
3
|
-
import * as THREE from 'three';
|
|
4
|
-
import { Group } from 'three';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
const boundingBox = new THREE.Box3();
|
|
7
|
-
const boundingBoxSize = new THREE.Vector3();
|
|
8
|
-
extend({ Group });
|
|
9
|
-
export class NgtsBBAnchor {
|
|
10
|
-
set _anchor(anchor) {
|
|
11
|
-
this.inputs.set({ anchor });
|
|
12
|
-
}
|
|
13
|
-
constructor() {
|
|
14
|
-
this.inputs = signalStore();
|
|
15
|
-
this.groupRef = injectNgtRef();
|
|
16
|
-
this.parentRef = injectNgtRef();
|
|
17
|
-
this.anchor = this.inputs.select('anchor');
|
|
18
|
-
this.xyz = computed(() => {
|
|
19
|
-
const anchor = this.anchor();
|
|
20
|
-
return Array.isArray(anchor) ? anchor : [anchor.x, anchor.y, anchor.z];
|
|
21
|
-
});
|
|
22
|
-
this.reattachParent();
|
|
23
|
-
this.beforeRender();
|
|
24
|
-
}
|
|
25
|
-
reattachParent() {
|
|
26
|
-
effect(() => {
|
|
27
|
-
const group = this.groupRef.nativeElement;
|
|
28
|
-
if (!group)
|
|
29
|
-
return;
|
|
30
|
-
if (group.parent?.parent) {
|
|
31
|
-
this.parentRef.nativeElement = group.parent.parent;
|
|
32
|
-
group.parent.parent.add(group);
|
|
33
|
-
}
|
|
34
|
-
});
|
|
35
|
-
}
|
|
36
|
-
beforeRender() {
|
|
37
|
-
injectBeforeRender(() => {
|
|
38
|
-
const [parent, group, anchor] = [this.parentRef.nativeElement, this.groupRef.nativeElement, this.xyz()];
|
|
39
|
-
if (parent) {
|
|
40
|
-
boundingBox.setFromObject(parent);
|
|
41
|
-
boundingBox.getSize(boundingBoxSize);
|
|
42
|
-
group.position.set(parent.position.x + (boundingBoxSize.x * anchor[0]) / 2, parent.position.y + (boundingBoxSize.y * anchor[1]) / 2, parent.position.z + (boundingBoxSize.z * anchor[2]) / 2);
|
|
43
|
-
}
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: NgtsBBAnchor, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
47
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: NgtsBBAnchor, isStandalone: true, selector: "ngts-bb-anchor", inputs: { _anchor: ["anchor", "_anchor"] }, ngImport: i0, template: `
|
|
48
|
-
<ngt-group ngtCompound [ref]="groupRef">
|
|
49
|
-
<ng-content />
|
|
50
|
-
</ngt-group>
|
|
51
|
-
`, isInline: true }); }
|
|
52
|
-
}
|
|
53
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: NgtsBBAnchor, decorators: [{
|
|
54
|
-
type: Component,
|
|
55
|
-
args: [{
|
|
56
|
-
selector: 'ngts-bb-anchor',
|
|
57
|
-
standalone: true,
|
|
58
|
-
template: `
|
|
59
|
-
<ngt-group ngtCompound [ref]="groupRef">
|
|
60
|
-
<ng-content />
|
|
61
|
-
</ngt-group>
|
|
62
|
-
`,
|
|
63
|
-
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
64
|
-
}]
|
|
65
|
-
}], ctorParameters: function () { return []; }, propDecorators: { _anchor: [{
|
|
66
|
-
type: Input,
|
|
67
|
-
args: [{ required: true, alias: 'anchor' }]
|
|
68
|
-
}] } });
|
|
69
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmItYW5jaG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zb2JhL3N0YWdpbmcvc3JjL2JiLWFuY2hvci9iYi1hbmNob3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRixPQUFPLEVBQUUsTUFBTSxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRSxXQUFXLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3JHLE9BQU8sS0FBSyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQy9CLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxPQUFPLENBQUM7O0FBRTlCLE1BQU0sV0FBVyxHQUFHLElBQUksS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO0FBQ3JDLE1BQU0sZUFBZSxHQUFHLElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO0FBZTVDLE1BQU0sQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7QUFZbEIsTUFBTSxPQUFPLFlBQVk7SUFHeEIsSUFBZ0QsT0FBTyxDQUFDLE1BQW1DO1FBQzFGLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBVUQ7UUFkUSxXQUFNLEdBQUcsV0FBVyxFQUFxQixDQUFDO1FBTWxELGFBQVEsR0FBRyxZQUFZLEVBQVMsQ0FBQztRQUN6QixjQUFTLEdBQUcsWUFBWSxFQUF5QixDQUFDO1FBQ2xELFdBQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN0QyxRQUFHLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUMzQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDN0IsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN4RSxDQUFDLENBQUMsQ0FBQztRQUdGLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVPLGNBQWM7UUFDckIsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNYLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDO1lBQzFDLElBQUksQ0FBQyxLQUFLO2dCQUFFLE9BQU87WUFDbkIsSUFBSSxLQUFLLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRTtnQkFDekIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7Z0JBQ25ELEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUMvQjtRQUNGLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVPLFlBQVk7UUFDbkIsa0JBQWtCLENBQUMsR0FBRyxFQUFFO1lBQ3ZCLE1BQU0sQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFFeEcsSUFBSSxNQUFNLEVBQUU7Z0JBQ1gsV0FBVyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDbEMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQztnQkFFckMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQ2pCLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQ3ZELE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQ3ZELE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQ3ZELENBQUM7YUFDRjtRQUNGLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQzs4R0E5Q1csWUFBWTtrR0FBWixZQUFZLHNIQVBkOzs7O0VBSVQ7OzJGQUdXLFlBQVk7a0JBVnhCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRTs7OztFQUlUO29CQUNELE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO2lCQUNqQzswRUFJZ0QsT0FBTztzQkFBdEQsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIENvbXBvbmVudCwgSW5wdXQsIGNvbXB1dGVkLCBlZmZlY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGV4dGVuZCwgaW5qZWN0QmVmb3JlUmVuZGVyLCBpbmplY3ROZ3RSZWYsIHNpZ25hbFN0b3JlLCB0eXBlIE5ndEdyb3VwIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgKiBhcyBUSFJFRSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgeyBHcm91cCB9IGZyb20gJ3RocmVlJztcblxuY29uc3QgYm91bmRpbmdCb3ggPSBuZXcgVEhSRUUuQm94MygpO1xuY29uc3QgYm91bmRpbmdCb3hTaXplID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcblxuZXhwb3J0IHR5cGUgTmd0c0JCQW5jaG9yU3RhdGUgPSB7XG5cdGFuY2hvcjogVEhSRUUuVmVjdG9yMyB8IFtudW1iZXIsIG51bWJlciwgbnVtYmVyXTtcbn07XG5cbmRlY2xhcmUgZ2xvYmFsIHtcblx0aW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG5cdFx0LyoqXG5cdFx0ICogQGV4dGVuZHMgbmd0LWdyb3VwXG5cdFx0ICovXG5cdFx0J25ndHMtYmItYW5jaG9yJzogTmd0c0JCQW5jaG9yU3RhdGUgJiBOZ3RHcm91cDtcblx0fVxufVxuXG5leHRlbmQoeyBHcm91cCB9KTtcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cy1iYi1hbmNob3InLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3QtZ3JvdXAgbmd0Q29tcG91bmQgW3JlZl09XCJncm91cFJlZlwiPlxuXHRcdFx0PG5nLWNvbnRlbnQgLz5cblx0XHQ8L25ndC1ncm91cD5cblx0YCxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RzQkJBbmNob3Ige1xuXHRwcml2YXRlIGlucHV0cyA9IHNpZ25hbFN0b3JlPE5ndHNCQkFuY2hvclN0YXRlPigpO1xuXG5cdEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlLCBhbGlhczogJ2FuY2hvcicgfSkgc2V0IF9hbmNob3IoYW5jaG9yOiBOZ3RzQkJBbmNob3JTdGF0ZVsnYW5jaG9yJ10pIHtcblx0XHR0aGlzLmlucHV0cy5zZXQoeyBhbmNob3IgfSk7XG5cdH1cblxuXHRncm91cFJlZiA9IGluamVjdE5ndFJlZjxHcm91cD4oKTtcblx0cHJpdmF0ZSBwYXJlbnRSZWYgPSBpbmplY3ROZ3RSZWY8VEhSRUUuT2JqZWN0M0QgfCBudWxsPigpO1xuXHRwcml2YXRlIGFuY2hvciA9IHRoaXMuaW5wdXRzLnNlbGVjdCgnYW5jaG9yJyk7XG5cdHByaXZhdGUgeHl6ID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdGNvbnN0IGFuY2hvciA9IHRoaXMuYW5jaG9yKCk7XG5cdFx0cmV0dXJuIEFycmF5LmlzQXJyYXkoYW5jaG9yKSA/IGFuY2hvciA6IFthbmNob3IueCwgYW5jaG9yLnksIGFuY2hvci56XTtcblx0fSk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0dGhpcy5yZWF0dGFjaFBhcmVudCgpO1xuXHRcdHRoaXMuYmVmb3JlUmVuZGVyKCk7XG5cdH1cblxuXHRwcml2YXRlIHJlYXR0YWNoUGFyZW50KCkge1xuXHRcdGVmZmVjdCgoKSA9PiB7XG5cdFx0XHRjb25zdCBncm91cCA9IHRoaXMuZ3JvdXBSZWYubmF0aXZlRWxlbWVudDtcblx0XHRcdGlmICghZ3JvdXApIHJldHVybjtcblx0XHRcdGlmIChncm91cC5wYXJlbnQ/LnBhcmVudCkge1xuXHRcdFx0XHR0aGlzLnBhcmVudFJlZi5uYXRpdmVFbGVtZW50ID0gZ3JvdXAucGFyZW50LnBhcmVudDtcblx0XHRcdFx0Z3JvdXAucGFyZW50LnBhcmVudC5hZGQoZ3JvdXApO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG5cblx0cHJpdmF0ZSBiZWZvcmVSZW5kZXIoKSB7XG5cdFx0aW5qZWN0QmVmb3JlUmVuZGVyKCgpID0+IHtcblx0XHRcdGNvbnN0IFtwYXJlbnQsIGdyb3VwLCBhbmNob3JdID0gW3RoaXMucGFyZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHRoaXMuZ3JvdXBSZWYubmF0aXZlRWxlbWVudCwgdGhpcy54eXooKV07XG5cblx0XHRcdGlmIChwYXJlbnQpIHtcblx0XHRcdFx0Ym91bmRpbmdCb3guc2V0RnJvbU9iamVjdChwYXJlbnQpO1xuXHRcdFx0XHRib3VuZGluZ0JveC5nZXRTaXplKGJvdW5kaW5nQm94U2l6ZSk7XG5cblx0XHRcdFx0Z3JvdXAucG9zaXRpb24uc2V0KFxuXHRcdFx0XHRcdHBhcmVudC5wb3NpdGlvbi54ICsgKGJvdW5kaW5nQm94U2l6ZS54ICogYW5jaG9yWzBdKSAvIDIsXG5cdFx0XHRcdFx0cGFyZW50LnBvc2l0aW9uLnkgKyAoYm91bmRpbmdCb3hTaXplLnkgKiBhbmNob3JbMV0pIC8gMixcblx0XHRcdFx0XHRwYXJlbnQucG9zaXRpb24ueiArIChib3VuZGluZ0JveFNpemUueiAqIGFuY2hvclsyXSkgLyAyLFxuXHRcdFx0XHQpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG59XG4iXX0=
|