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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"angular-three-soba-materials.mjs","sources":["../../../../libs/soba/materials/src/mesh-distort-material/mesh-distort-material.ts","../../../../libs/soba/materials/src/mesh-reflector-material/mesh-reflector-material.ts","../../../../libs/soba/materials/src/mesh-refraction-material/mesh-refraction-material.ts","../../../../libs/soba/materials/src/mesh-transmission-material/mesh-transmission-material.ts","../../../../libs/soba/materials/src/mesh-wobble-material/mesh-wobble-material.ts","../../../../libs/soba/materials/src/point-material/point-material.ts","../../../../libs/soba/materials/src/angular-three-soba-materials.ts"],"sourcesContent":["import { Component, CUSTOM_ELEMENTS_SCHEMA, Input } from '@angular/core';\nimport { injectBeforeRender, injectNgtRef, NgtArgs, signalStore, type NgtMeshPhysicalMaterial } from 'angular-three';\nimport { injectNgtsMeshDistortMaterial, type MeshDistortMaterial } from 'angular-three-soba/shaders';\n\nexport type NgtsMeshDistortMaterialState = {\n\ttime: number;\n\tdistort: number;\n\tradius: number;\n\tspeed: number;\n};\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t/**\n\t\t * @extends ngt-mesh-physical-material\n\t\t */\n\t\t'ngts-mesh-distort-material': NgtsMeshDistortMaterialState & NgtMeshPhysicalMaterial;\n\t}\n}\n\n@Component({\n\tselector: 'ngts-mesh-distort-material',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-primitive\n\t\t\t*args=\"[material]\"\n\t\t\t[ref]=\"materialRef\"\n\t\t\t[time]=\"time()\"\n\t\t\t[distort]=\"distort()\"\n\t\t\t[radius]=\"radius()\"\n\t\t\tngtCompound\n\t\t\tattach=\"material\"\n\t\t/>\n\t`,\n\timports: [NgtArgs],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtsMeshDistortMaterial {\n\tprivate inputs = signalStore<NgtsMeshDistortMaterialState>({\n\t\tspeed: 1,\n\t\ttime: 0,\n\t\tdistort: 0.4,\n\t\tradius: 1,\n\t});\n\n\t@Input() materialRef = injectNgtRef<InstanceType<MeshDistortMaterial>>();\n\n\t@Input({ alias: 'time' }) set _time(time: number) {\n\t\tthis.inputs.set({ time });\n\t}\n\n\t@Input({ alias: 'distort' }) set _distort(distort: number) {\n\t\tthis.inputs.set({ distort });\n\t}\n\n\t@Input({ alias: 'radius' }) set _radius(radius: number) {\n\t\tthis.inputs.set({ radius });\n\t}\n\n\t@Input({ alias: 'speed' }) set _speed(speed: number) {\n\t\tthis.inputs.set({ speed });\n\t}\n\n\tprivate MeshDistortMaterial = injectNgtsMeshDistortMaterial();\n\tmaterial = new this.MeshDistortMaterial();\n\n\ttime = this.inputs.select('time');\n\tdistort = this.inputs.select('distort');\n\tradius = this.inputs.select('radius');\n\n\tconstructor() {\n\t\tinjectBeforeRender(({ clock }) => {\n\t\t\tthis.material.time = clock.getElapsedTime() * this.inputs.get('speed');\n\t\t});\n\t}\n}\n","import { NgIf } from '@angular/common';\nimport { Component, computed, CUSTOM_ELEMENTS_SCHEMA, Input } from '@angular/core';\nimport {\n\textend,\n\tgetLocalState,\n\tinjectBeforeRender,\n\tinjectNgtRef,\n\tinjectNgtStore,\n\tNgtKey,\n\tsignalStore,\n\ttype NgtMeshStandardMaterial,\n\ttype NgtRenderState,\n} from 'angular-three';\nimport { BlurPass, MeshReflectorMaterial } from 'angular-three-soba/shaders';\nimport * as THREE from 'three';\n\nextend({ MeshReflectorMaterial });\n\nexport type NgtsMeshReflectorMaterialState = {\n\tresolution: number;\n\tmixBlur: number;\n\tmixStrength: number;\n\tblur: [number, number] | number;\n\tmirror: number;\n\tminDepthThreshold: number;\n\tmaxDepthThreshold: number;\n\tdepthScale: number;\n\tdepthToBlurRatioBias: number;\n\tdistortionMap?: THREE.Texture;\n\tdistortion: number;\n\tmixContrast: number;\n\treflectorOffset: number;\n};\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t/**\n\t\t * @extends ngt-mesh-standard-material\n\t\t */\n\t\t'ngts-mesh-reflector-material': NgtsMeshReflectorMaterialState & NgtMeshStandardMaterial;\n\t}\n}\n\n@Component({\n\tselector: 'ngts-mesh-reflector-material',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-mesh-reflector-material\n\t\t\t*ngIf=\"defines() as defines\"\n\t\t\t[key]=\"defines\"\n\t\t\tngtCompound\n\t\t\tattach=\"material\"\n\t\t\t[ref]=\"materialRef\"\n\t\t\t[defines]=\"defines\"\n\t\t\t[mirror]=\"mirror()\"\n\t\t\t[textureMatrix]=\"textureMatrix()\"\n\t\t\t[mixBlur]=\"mixBlur()\"\n\t\t\t[tDiffuse]=\"tDiffuse()\"\n\t\t\t[tDepth]=\"tDepth()\"\n\t\t\t[tDiffuseBlur]=\"tDiffuseBlur()\"\n\t\t\t[hasBlur]=\"hasBlur()\"\n\t\t\t[mixStrength]=\"mixStrength()\"\n\t\t\t[minDepthThreshold]=\"minDepthThreshold()\"\n\t\t\t[maxDepthThreshold]=\"maxDepthThreshold()\"\n\t\t\t[depthScale]=\"depthScale()\"\n\t\t\t[depthToBlurRatioBias]=\"depthToBlurRatioBias()\"\n\t\t\t[distortion]=\"distortion()\"\n\t\t\t[distortionMap]=\"distortionMap()\"\n\t\t\t[mixContrast]=\"mixContrast()\"\n\t\t>\n\t\t\t<ng-content />\n\t\t</ngt-mesh-reflector-material>\n\t`,\n\timports: [NgIf, NgtKey],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtsMeshReflectorMaterial {\n\tprivate inputs = signalStore<NgtsMeshReflectorMaterialState>({\n\t\tmixBlur: 0,\n\t\tmixStrength: 1,\n\t\tresolution: 256,\n\t\tblur: [0, 0],\n\t\tminDepthThreshold: 0.9,\n\t\tmaxDepthThreshold: 1,\n\t\tdepthScale: 0,\n\t\tdepthToBlurRatioBias: 0.25,\n\t\tmirror: 0,\n\t\tdistortion: 1,\n\t\tmixContrast: 1,\n\t\treflectorOffset: 0,\n\t});\n\n\t@Input() materialRef = injectNgtRef<MeshReflectorMaterial>();\n\n\t@Input({ alias: 'resolution' }) set _resolution(resolution: number) {\n\t\tthis.inputs.set({ resolution });\n\t}\n\n\t@Input({ alias: 'mixBlur' }) set _mixBlur(mixBlur: number) {\n\t\tthis.inputs.set({ mixBlur });\n\t}\n\n\t@Input({ alias: 'mixStrength' }) set _mixStrength(mixStrength: number) {\n\t\tthis.inputs.set({ mixStrength });\n\t}\n\n\t@Input({ alias: 'blur' }) set _blur(blur: [number, number] | number) {\n\t\tthis.inputs.set({ blur });\n\t}\n\n\t@Input({ alias: 'mirror' }) set _mirror(mirror: number) {\n\t\tthis.inputs.set({ mirror });\n\t}\n\n\t@Input({ alias: 'minDepthThreshold' }) set _minDepthThreshold(minDepthThreshold: number) {\n\t\tthis.inputs.set({ minDepthThreshold });\n\t}\n\n\t@Input({ alias: 'maxDepthThreshold' }) set _maxDepthThreshold(maxDepthThreshold: number) {\n\t\tthis.inputs.set({ maxDepthThreshold });\n\t}\n\n\t@Input({ alias: 'depthScale' }) set _depthScale(depthScale: number) {\n\t\tthis.inputs.set({ depthScale });\n\t}\n\n\t@Input({ alias: 'depthToBlurRatioBias' }) set _depthToBlurRatioBias(depthToBlurRatioBias: number) {\n\t\tthis.inputs.set({ depthToBlurRatioBias });\n\t}\n\n\t@Input({ alias: 'distortionMap' }) set _distortionMap(distortionMap: THREE.Texture) {\n\t\tthis.inputs.set({ distortionMap });\n\t}\n\n\t@Input({ alias: 'distortion' }) set _distortion(distortion: number) {\n\t\tthis.inputs.set({ distortion });\n\t}\n\n\t@Input({ alias: 'mixContrast' }) set _mixContrast(mixContrast: number) {\n\t\tthis.inputs.set({ mixContrast });\n\t}\n\n\t@Input({ alias: 'reflectorOffset' }) set _reflectorOffset(reflectorOffset: number) {\n\t\tthis.inputs.set({ reflectorOffset });\n\t}\n\n\tprivate reflectorProps = computed(() => this.states().reflectorProps);\n\tdefines = computed(() => this.reflectorProps().defines);\n\tmirror = computed(() => this.reflectorProps().mirror);\n\ttextureMatrix = computed(() => this.reflectorProps().textureMatrix);\n\tmixBlur = computed(() => this.reflectorProps().mixBlur);\n\ttDiffuse = computed(() => this.reflectorProps().tDiffuse);\n\ttDepth = computed(() => this.reflectorProps().tDepth);\n\ttDiffuseBlur = computed(() => this.reflectorProps().tDiffuseBlur);\n\thasBlur = computed(() => this.reflectorProps().hasBlur);\n\tmixStrength = computed(() => this.reflectorProps().mixStrength);\n\tminDepthThreshold = computed(() => this.reflectorProps().minDepthThreshold);\n\tmaxDepthThreshold = computed(() => this.reflectorProps().maxDepthThreshold);\n\tdepthScale = computed(() => this.reflectorProps().depthScale);\n\tdepthToBlurRatioBias = computed(() => this.reflectorProps().depthToBlurRatioBias);\n\tdistortion = computed(() => this.reflectorProps().distortion);\n\tdistortionMap = computed(() => this.reflectorProps().distortionMap);\n\tmixContrast = computed(() => this.reflectorProps().mixContrast);\n\n\tprivate store = injectNgtStore();\n\tprivate gl = this.store.select('gl');\n\n\tprivate reflectorPlane = new THREE.Plane();\n\tprivate normal = new THREE.Vector3();\n\tprivate reflectorWorldPosition = new THREE.Vector3();\n\tprivate cameraWorldPosition = new THREE.Vector3();\n\tprivate rotationMatrix = new THREE.Matrix4();\n\tprivate lookAtPosition = new THREE.Vector3(0, 0, -1);\n\tprivate clipPlane = new THREE.Vector4();\n\tprivate view = new THREE.Vector3();\n\tprivate target = new THREE.Vector3();\n\tprivate q = new THREE.Vector4();\n\tprivate virtualCamera = new THREE.PerspectiveCamera();\n\tprivate _textureMatrix = new THREE.Matrix4();\n\n\tprivate __blur = this.inputs.select('blur');\n\tprivate __resolution = this.inputs.select('resolution');\n\tprivate __mirror = this.inputs.select('mirror');\n\tprivate __mixBlur = this.inputs.select('mixBlur');\n\tprivate __mixStrength = this.inputs.select('mixStrength');\n\tprivate __minDepthThreshold = this.inputs.select('minDepthThreshold');\n\tprivate __maxDepthThreshold = this.inputs.select('maxDepthThreshold');\n\tprivate __depthScale = this.inputs.select('depthScale');\n\tprivate __depthToBlurRatioBias = this.inputs.select('depthToBlurRatioBias');\n\tprivate __distortion = this.inputs.select('distortion');\n\tprivate __distortionMap = this.inputs.select('distortionMap');\n\tprivate __mixContrast = this.inputs.select('mixContrast');\n\n\tprivate normalizedBlur = computed(() => {\n\t\tconst blur = this.__blur();\n\t\treturn Array.isArray(blur) ? blur : [blur, blur];\n\t});\n\n\tprivate __hasBlur = computed(() => {\n\t\tconst [x, y] = this.normalizedBlur();\n\t\treturn x + y > 0;\n\t});\n\n\tprivate states = computed(() => {\n\t\tconst gl = this.gl();\n\t\tconst resolution = this.__resolution();\n\t\tconst blur = this.normalizedBlur();\n\t\tconst minDepthThreshold = this.__minDepthThreshold();\n\t\tconst maxDepthThreshold = this.__maxDepthThreshold();\n\t\tconst depthScale = this.__depthScale();\n\t\tconst depthToBlurRatioBias = this.__depthToBlurRatioBias();\n\t\tconst mirror = this.__mirror();\n\t\tconst mixBlur = this.__mixBlur();\n\t\tconst mixStrength = this.__mixStrength();\n\t\tconst mixContrast = this.__mixContrast();\n\t\tconst distortion = this.__distortion();\n\t\tconst distortionMap = this.__distortionMap();\n\t\tconst hasBlur = this.__hasBlur();\n\n\t\tconst parameters = {\n\t\t\tminFilter: THREE.LinearFilter,\n\t\t\tmagFilter: THREE.LinearFilter,\n\t\t\ttype: THREE.HalfFloatType,\n\t\t};\n\t\tconst fbo1 = new THREE.WebGLRenderTarget(resolution, resolution, parameters);\n\t\tfbo1.depthBuffer = true;\n\t\tfbo1.depthTexture = new THREE.DepthTexture(resolution, resolution);\n\t\tfbo1.depthTexture.format = THREE.DepthFormat;\n\t\tfbo1.depthTexture.type = THREE.UnsignedShortType;\n\n\t\tconst fbo2 = new THREE.WebGLRenderTarget(resolution, resolution, parameters);\n\t\tconst blurPass = new BlurPass({\n\t\t\tgl,\n\t\t\tresolution,\n\t\t\twidth: blur[0],\n\t\t\theight: blur[1],\n\t\t\tminDepthThreshold,\n\t\t\tmaxDepthThreshold,\n\t\t\tdepthScale,\n\t\t\tdepthToBlurRatioBias,\n\t\t});\n\t\tconst reflectorProps = {\n\t\t\tmirror,\n\t\t\ttextureMatrix: this._textureMatrix,\n\t\t\tmixBlur,\n\t\t\ttDiffuse: fbo1.texture,\n\t\t\ttDepth: fbo1.depthTexture,\n\t\t\ttDiffuseBlur: fbo2.texture,\n\t\t\thasBlur,\n\t\t\tmixStrength,\n\t\t\tminDepthThreshold,\n\t\t\tmaxDepthThreshold,\n\t\t\tdepthScale,\n\t\t\tdepthToBlurRatioBias,\n\t\t\tdistortion,\n\t\t\tdistortionMap,\n\t\t\tmixContrast,\n\t\t\tdefines: {\n\t\t\t\tUSE_BLUR: hasBlur ? '' : undefined,\n\t\t\t\tUSE_DEPTH: depthScale > 0 ? '' : undefined,\n\t\t\t\tUSE_DISTORTION: distortionMap ? '' : undefined,\n\t\t\t},\n\t\t};\n\n\t\treturn { fbo1, fbo2, blurPass, reflectorProps };\n\t});\n\n\tconstructor() {\n\t\tinjectBeforeRender(this.onBeforeRender.bind(this));\n\t}\n\n\tprivate onBeforeRender(state: NgtRenderState) {\n\t\tif (!this.materialRef.nativeElement) return;\n\t\tconst parent = getLocalState(this.materialRef.nativeElement).parent?.();\n\t\tif (!parent) return;\n\n\t\tconst { gl, scene } = state;\n\t\tconst hasBlur = this.__hasBlur();\n\t\tconst { fbo1, fbo2, blurPass } = this.states();\n\n\t\tif (fbo1 && fbo2 && blurPass) {\n\t\t\tparent.visible = false;\n\t\t\tconst currentXrEnabled = gl.xr.enabled;\n\t\t\tconst currentShadowAutoUpdate = gl.shadowMap.autoUpdate;\n\t\t\tthis.beforeRender(state);\n\t\t\tgl.xr.enabled = false;\n\t\t\tgl.shadowMap.autoUpdate = false;\n\t\t\tgl.setRenderTarget(fbo1);\n\t\t\tgl.state.buffers.depth.setMask(true);\n\t\t\tif (!gl.autoClear) gl.clear();\n\t\t\tgl.render(scene, this.virtualCamera);\n\t\t\tif (hasBlur) blurPass.render(gl, fbo1, fbo2);\n\t\t\tgl.xr.enabled = currentXrEnabled;\n\t\t\tgl.shadowMap.autoUpdate = currentShadowAutoUpdate;\n\t\t\tparent.visible = true;\n\t\t\tgl.setRenderTarget(null);\n\t\t}\n\t}\n\n\tprivate beforeRender(state: NgtRenderState) {\n\t\tconst parent = getLocalState(this.materialRef.nativeElement).parent?.();\n\t\tif (!parent) return;\n\n\t\tconst { camera } = state;\n\n\t\tthis.reflectorWorldPosition.setFromMatrixPosition(parent.matrixWorld);\n\t\tthis.cameraWorldPosition.setFromMatrixPosition(camera.matrixWorld);\n\t\tthis.rotationMatrix.extractRotation(parent.matrixWorld);\n\t\tthis.normal.set(0, 0, 1);\n\t\tthis.normal.applyMatrix4(this.rotationMatrix);\n\t\tthis.reflectorWorldPosition.addScaledVector(this.normal, this.inputs.get('reflectorOffset'));\n\t\tthis.view.subVectors(this.reflectorWorldPosition, this.cameraWorldPosition);\n\t\t// Avoid rendering when reflector is facing away\n\t\tif (this.view.dot(this.normal) > 0) return;\n\t\tthis.view.reflect(this.normal).negate();\n\t\tthis.view.add(this.reflectorWorldPosition);\n\t\tthis.rotationMatrix.extractRotation(camera.matrixWorld);\n\t\tthis.lookAtPosition.set(0, 0, -1);\n\t\tthis.lookAtPosition.applyMatrix4(this.rotationMatrix);\n\t\tthis.lookAtPosition.add(this.cameraWorldPosition);\n\t\tthis.target.subVectors(this.reflectorWorldPosition, this.lookAtPosition);\n\t\tthis.target.reflect(this.normal).negate();\n\t\tthis.target.add(this.reflectorWorldPosition);\n\t\tthis.virtualCamera.position.copy(this.view);\n\t\tthis.virtualCamera.up.set(0, 1, 0);\n\t\tthis.virtualCamera.up.applyMatrix4(this.rotationMatrix);\n\t\tthis.virtualCamera.up.reflect(this.normal);\n\t\tthis.virtualCamera.lookAt(this.target);\n\t\tthis.virtualCamera.far = camera.far; // Used in WebGLBackground\n\t\tthis.virtualCamera.updateMatrixWorld();\n\t\tthis.virtualCamera.projectionMatrix.copy(camera.projectionMatrix);\n\t\t// Update the texture matrix\n\t\tthis._textureMatrix.set(0.5, 0.0, 0.0, 0.5, 0.0, 0.5, 0.0, 0.5, 0.0, 0.0, 0.5, 0.5, 0.0, 0.0, 0.0, 1.0);\n\t\tthis._textureMatrix.multiply(this.virtualCamera.projectionMatrix);\n\t\tthis._textureMatrix.multiply(this.virtualCamera.matrixWorldInverse);\n\t\tthis._textureMatrix.multiply(parent.matrixWorld);\n\t\t// Now update projection matrix with new clip plane, implementing code from: http://www.terathon.com/code/oblique.html\n\t\t// Paper explaining this technique: http://www.terathon.com/lengyel/Lengyel-Oblique.pdf\n\t\tthis.reflectorPlane.setFromNormalAndCoplanarPoint(this.normal, this.reflectorWorldPosition);\n\t\tthis.reflectorPlane.applyMatrix4(this.virtualCamera.matrixWorldInverse);\n\t\tthis.clipPlane.set(\n\t\t\tthis.reflectorPlane.normal.x,\n\t\t\tthis.reflectorPlane.normal.y,\n\t\t\tthis.reflectorPlane.normal.z,\n\t\t\tthis.reflectorPlane.constant,\n\t\t);\n\t\tconst projectionMatrix = this.virtualCamera.projectionMatrix;\n\t\tthis.q.x = (Math.sign(this.clipPlane.x) + projectionMatrix.elements[8]) / projectionMatrix.elements[0];\n\t\tthis.q.y = (Math.sign(this.clipPlane.y) + projectionMatrix.elements[9]) / projectionMatrix.elements[5];\n\t\tthis.q.z = -1.0;\n\t\tthis.q.w = (1.0 + projectionMatrix.elements[10]) / projectionMatrix.elements[14];\n\t\t// Calculate the scaled plane vector\n\t\tthis.clipPlane.multiplyScalar(2.0 / this.clipPlane.dot(this.q));\n\t\t// Replacing the third row of the projection matrix\n\t\tprojectionMatrix.elements[2] = this.clipPlane.x;\n\t\tprojectionMatrix.elements[6] = this.clipPlane.y;\n\t\tprojectionMatrix.elements[10] = this.clipPlane.z + 1.0;\n\t\tprojectionMatrix.elements[14] = this.clipPlane.w;\n\t}\n}\n","import { NgIf } from '@angular/common';\nimport { Component, computed, CUSTOM_ELEMENTS_SCHEMA, effect, Input } from '@angular/core';\nimport {\n\textend,\n\tgetLocalState,\n\tinjectBeforeRender,\n\tinjectNgtRef,\n\tinjectNgtStore,\n\tNgtKey,\n\tsignalStore,\n\ttype NgtShaderMaterial,\n} from 'angular-three';\nimport { MeshRefractionMaterial } from 'angular-three-soba/shaders';\nimport { MeshBVH, MeshBVHUniformStruct, SAH } from 'three-mesh-bvh';\nimport type { NgtsMeshTranmissionMaterialState } from '../mesh-transmission-material/mesh-transmission-material';\n\nextend({ MeshRefractionMaterial });\n\nexport type NgtsMeshRefractionMaterialState = {\n\t/** Environment map */\n\tenvMap: THREE.CubeTexture | THREE.Texture;\n\t/** Number of ray-cast bounces, it can be expensive to have too many, 2 */\n\tbounces: number;\n\t/** Refraction index, 2.4 */\n\tior: number;\n\t/** Fresnel (strip light), 0 */\n\tfresnel: number;\n\t/** RGB shift intensity, can be expensive, 0 */\n\taberrationStrength: number;\n\t/** Color, white */\n\tcolor: THREE.ColorRepresentation;\n\t/** If this is on it uses fewer ray casts for the RGB shift sacrificing physical accuracy, true */\n\tfastChroma: boolean;\n};\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t/**\n\t\t * @extends ngt-shader-material\n\t\t */\n\t\t'ngts-mesh-refraction-material': NgtsMeshTranmissionMaterialState & NgtShaderMaterial;\n\t}\n}\n\nconst isCubeTexture = (def: THREE.CubeTexture | THREE.Texture): def is THREE.CubeTexture =>\n\tdef && (def as THREE.CubeTexture).isCubeTexture;\n\n@Component({\n\tselector: 'ngts-mesh-refraction-material',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-mesh-refraction-material\n\t\t\t*ngIf=\"defines() as defines\"\n\t\t\t[key]=\"defines\"\n\t\t\t[ref]=\"materialRef\"\n\t\t\t[defines]=\"defines\"\n\t\t\t[resolution]=\"resolution()\"\n\t\t\t[aberrationStrength]=\"aberrationStrength()\"\n\t\t\t[envMap]=\"envMap()\"\n\t\t\t[bounces]=\"bounces()\"\n\t\t\t[ior]=\"ior()\"\n\t\t\t[fresnel]=\"fresnel()\"\n\t\t\t[color]=\"color()\"\n\t\t\t[fastChroma]=\"fastChroma()\"\n\t\t\tngtCompound\n\t\t\tattach=\"material\"\n\t\t>\n\t\t\t<ng-content />\n\t\t</ngt-mesh-refraction-material>\n\t`,\n\timports: [NgIf, NgtKey],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtsMeshRefractionMaterial {\n\tprivate inputs = signalStore<NgtsMeshRefractionMaterialState>({ aberrationStrength: 0, fastChroma: true });\n\n\t@Input() materialRef = injectNgtRef<InstanceType<typeof MeshRefractionMaterial>>();\n\t/** Environment map */\n\t@Input({ required: true, alias: 'envMap' }) set _envMap(envMap: THREE.CubeTexture | THREE.Texture) {\n\t\tthis.inputs.set({ envMap });\n\t}\n\t/** Number of ray-cast bounces, it can be expensive to have too many, 2 */\n\t@Input({ alias: 'bounces' }) set _bounces(bounces: number) {\n\t\tthis.inputs.set({ bounces });\n\t}\n\t/** Refraction index, 2.4 */\n\t@Input({ alias: 'ior' }) set _ior(ior: number) {\n\t\tthis.inputs.set({ ior });\n\t}\n\t/** Fresnel (strip light), 0 */\n\t@Input({ alias: 'fresnel' }) set _fresnel(fresnel: number) {\n\t\tthis.inputs.set({ fresnel });\n\t}\n\t/** RGB shift intensity, can be expensive, 0 */\n\t@Input({ alias: 'aberrationStrength' }) set _aberrationStrength(aberrationStrength: number) {\n\t\tthis.inputs.set({ aberrationStrength });\n\t}\n\t/** Color, white */\n\t@Input({ alias: 'color' }) set _color(color: THREE.ColorRepresentation) {\n\t\tthis.inputs.set({ color });\n\t}\n\t/** If this is on it uses fewer ray casts for the RGB shift sacrificing physical accuracy, true */\n\t@Input({ alias: 'fastChroma' }) set _fastChroma(fastChroma: boolean) {\n\t\tthis.inputs.set({ fastChroma });\n\t}\n\n\tenvMap = this.inputs.select('envMap');\n\tbounces = this.inputs.select('bounces');\n\tior = this.inputs.select('ior');\n\tfresnel = this.inputs.select('fresnel');\n\taberrationStrength = this.inputs.select('aberrationStrength');\n\tcolor = this.inputs.select('color');\n\tfastChroma = this.inputs.select('fastChroma');\n\n\tprivate store = injectNgtStore();\n\tprivate size = this.store.select('size');\n\n\tdefines = computed(() => {\n\t\tconst [envMap, aberrationStrength, fastChroma] = [this.envMap(), this.aberrationStrength(), this.fastChroma()];\n\t\tif (!envMap) return null;\n\n\t\tconst temp = {} as { [key: string]: string };\n\t\t// Sampler2D and SamplerCube need different defines\n\t\tconst isCubeMap = isCubeTexture(envMap);\n\t\tconst w = (isCubeMap ? envMap.image[0]?.width : envMap.image.width) ?? 1024;\n\t\tconst cubeSize = w / 4;\n\t\tconst _lodMax = Math.floor(Math.log2(cubeSize));\n\t\tconst _cubeSize = Math.pow(2, _lodMax);\n\t\tconst width = 3 * Math.max(_cubeSize, 16 * 7);\n\t\tconst height = 4 * _cubeSize;\n\t\tif (isCubeMap) temp['ENVMAP_TYPE_CUBEM'] = '';\n\t\ttemp['CUBEUV_TEXEL_WIDTH'] = `${1.0 / width}`;\n\t\ttemp['CUBEUV_TEXEL_HEIGHT'] = `${1.0 / height}`;\n\t\ttemp['CUBEUV_MAX_MIP'] = `${_lodMax}.0`;\n\t\t// Add defines from chromatic aberration\n\t\tif (aberrationStrength > 0) temp['CHROMATIC_ABERRATIONS'] = '';\n\t\tif (fastChroma) temp['FAST_CHROMA'] = '';\n\t\treturn temp;\n\t});\n\tresolution = computed(() => [this.size().width, this.size().height]);\n\n\tconstructor() {\n\t\tinjectBeforeRender(({ camera }) => {\n\t\t\tconst material = this.materialRef.nativeElement;\n\t\t\tif (material) {\n\t\t\t\t(material as any).viewMatrixInverse = camera.matrixWorld;\n\t\t\t\t(material as any).projectionMatrixInverse = camera.projectionMatrixInverse;\n\t\t\t}\n\t\t});\n\t\tthis.setupGeometry();\n\t}\n\n\tprivate setupGeometry() {\n\t\teffect(() => {\n\t\t\tconst material = this.materialRef.nativeElement;\n\t\t\tif (!material) return;\n\t\t\tconst geometry = getLocalState(material).parent?.()?.geometry;\n\t\t\tif (geometry) {\n\t\t\t\t(material as any).bvh = new MeshBVHUniformStruct();\n\t\t\t\t(material as any).bvh.updateFrom(\n\t\t\t\t\tnew MeshBVH(geometry.clone().toNonIndexed(), { lazyGeneration: false, strategy: SAH } as any),\n\t\t\t\t);\n\t\t\t}\n\t\t});\n\t}\n}\n","import { Component, computed, CUSTOM_ELEMENTS_SCHEMA, Input } from '@angular/core';\nimport {\n\textend,\n\tgetLocalState,\n\tinjectBeforeRender,\n\tinjectNgtRef,\n\tNgtArgs,\n\tsignalStore,\n\ttype NgtAnyRecord,\n\ttype NgtMeshPhysicalMaterial,\n} from 'angular-three';\nimport { injectNgtsFBO } from 'angular-three-soba/misc';\nimport { DiscardMaterial, MeshTransmissionMaterial } from 'angular-three-soba/shaders';\nimport * as THREE from 'three';\n\nextend({ MeshTransmissionMaterial });\n\nexport type NgtsMeshTranmissionMaterialState = {\n\t/** transmissionSampler, you can use the threejs transmission sampler texture that is\n\t * generated once for all transmissive materials. The upside is that it can be faster if you\n\t * use multiple MeshPhysical and Transmission materials, the downside is that transmissive materials\n\t * using this can't see other transparent or transmissive objects, default: false */\n\ttransmissionSampler: boolean;\n\t/** Render the backside of the material (more cost, better results), default: false */\n\tbackside: boolean;\n\t/** Backside thickness (when backside is true), default: 0 */\n\tbacksideThickness: number;\n\t/** Resolution of the local buffer, default: undefined (fullscreen) */\n\tresolution: number;\n\t/** Resolution of the local buffer for backfaces, default: undefined (fullscreen) */\n\tbacksideResolution: number;\n\t/** Refraction samples, default: 10 */\n\tsamples: number;\n\t/** Buffer scene background (can be a texture, a cubetexture or a color), default: null */\n\tbackground: THREE.Texture | THREE.Color;\n\t/* Transmission, default: 1 */\n\ttransmission: number;\n\t/* Thickness (refraction), default: 0 */\n\tthickness: number;\n\t/* Roughness (blur), default: 0 */\n\troughness: number;\n\t/* Chromatic aberration, default: 0.03 */\n\tchromaticAberration: number;\n\t/* Anisotropy, default: 0.1 */\n\tanisotropy: number;\n\t/* AnisotropicBlur, default: 0.1 */\n\tanisotropicBlur: number;\n\t/* Distortion, default: 0 */\n\tdistortion: number;\n\t/* Distortion scale, default: 0.5 */\n\tdistortionScale: number;\n\t/* Temporal distortion (speed of movement), default: 0.0 */\n\ttemporalDistortion: number;\n\t/** The scene rendered into a texture (use it to share a texture between materials), default: null */\n\tbuffer: THREE.Texture | null;\n\t/** Internals */\n\ttime: number;\n};\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t/**\n\t\t * @extends ngt-mesh-physical-material\n\t\t */\n\t\t'ngts-mesh-transmission-material': NgtsMeshTranmissionMaterialState & NgtMeshPhysicalMaterial;\n\t}\n}\n\n@Component({\n\tselector: 'ngts-mesh-transmission-material',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-mesh-transmission-material\n\t\t\tngtCompound\n\t\t\t*args=\"[samples(), transmissionSampler()]\"\n\t\t\t[ref]=\"materialRef\"\n\t\t\t[buffer]=\"buffer() || fboMainRef.nativeElement?.texture\"\n\t\t\t[_transmission]=\"transmission()\"\n\t\t\t[transmission]=\"transmissionSampler() ? transmission() : 0\"\n\t\t\t[thickness]=\"thickness()\"\n\t\t\t[side]=\"side\"\n\t\t\t[anisotropicBlur]=\"anisotropicBlur() ?? anisotropy()\"\n\t\t\t[roughness]=\"roughness()\"\n\t\t\t[chromaticAberration]=\"chromaticAberration()\"\n\t\t\t[distortion]=\"distortion()\"\n\t\t\t[distortionScale]=\"distortionScale()\"\n\t\t\t[temporalDistortion]=\"temporalDistortion()\"\n\t\t\t[time]=\"time()\"\n\t\t/>\n\t`,\n\timports: [NgtArgs],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtsMeshTranmissionMaterial {\n\tprivate inputs = signalStore<NgtsMeshTranmissionMaterialState>({\n\t\ttransmissionSampler: false,\n\t\tbackside: false,\n\t\ttransmission: 1,\n\t\tthickness: 0,\n\t\tbacksideThickness: 0,\n\t\tsamples: 10,\n\t\troughness: 0,\n\t\tanisotropy: 0.1,\n\t\tanisotropicBlur: 0.1,\n\t\tchromaticAberration: 0.03,\n\t\tdistortion: 0,\n\t\tdistortionScale: 0.5,\n\t\ttemporalDistortion: 0.0,\n\t\tbuffer: null,\n\t});\n\n\t@Input() materialRef = injectNgtRef<MeshTransmissionMaterial & { time: number; buffer?: THREE.Texture }>();\n\t/** transmissionSampler, you can use the threejs transmission sampler texture that is\n\t * generated once for all transmissive materials. The upside is that it can be faster if you\n\t * use multiple MeshPhysical and Transmission materials, the downside is that transmissive materials\n\t * using this can't see other transparent or transmissive objects, default: false */\n\t@Input({ alias: 'transmissionSampler' }) set _transmissionSampler(transmissionSampler: boolean) {\n\t\tthis.inputs.set({ transmissionSampler });\n\t}\n\t/** Render the backside of the material (more cost, better results), default: false */\n\t@Input({ alias: 'backside' }) set _backside(backside: boolean) {\n\t\tthis.inputs.set({ backside });\n\t}\n\t/** Backside thickness (when backside is true), default: 0 */\n\t@Input({ alias: 'backsideThickness' }) set _backsideThickness(backsideThickness: number) {\n\t\tthis.inputs.set({ backsideThickness });\n\t}\n\t/** Resolution of the local buffer, default: undefined (fullscreen) */\n\t@Input({ alias: 'resolution' }) set _resolution(resolution: number) {\n\t\tthis.inputs.set({ resolution });\n\t}\n\t/** Resolution of the local buffer for backfaces, default: undefined (fullscreen) */\n\t@Input({ alias: 'backsideResolution' }) set _backsideResolution(backsideResolution: number) {\n\t\tthis.inputs.set({ backsideResolution });\n\t}\n\t/** Refraction samples, default: 10 */\n\t@Input({ alias: 'samples' }) set _samples(samples: number) {\n\t\tthis.inputs.set({ samples });\n\t}\n\t/** Buffer scene background (can be a texture, a cubetexture or a color), default: null */\n\t@Input({ alias: 'background' }) set _background(background: THREE.Texture | THREE.Color) {\n\t\tthis.inputs.set({ background });\n\t}\n\t/* Transmission, default: 1 */\n\t@Input({ alias: 'transmission' }) set _transmission(transmission: number) {\n\t\tthis.inputs.set({ transmission });\n\t}\n\t/* Thickness (refraction), default: 0 */\n\t@Input({ alias: 'thickness' }) set _thickness(thickness: number) {\n\t\tthis.inputs.set({ thickness });\n\t}\n\t/* Roughness (blur), default: 0 */\n\t@Input({ alias: 'roughness' }) set _roughness(roughness: number) {\n\t\tthis.inputs.set({ roughness });\n\t}\n\t/* Chromatic aberration, default: 0.03 */\n\t@Input({ alias: 'chromaticAberration' }) set _chromaticAberration(chromaticAberration: number) {\n\t\tthis.inputs.set({ chromaticAberration });\n\t}\n\t/* Anisotropy, default: 0.1 */\n\t@Input({ alias: 'anisotropy' }) set _anisotropy(anisotropy: number) {\n\t\tthis.inputs.set({ anisotropy });\n\t}\n\t/* AnisotropicBlur, default: 0.1 */\n\t@Input({ alias: 'anisotropicBlur' }) set _anisotropicBlur(anisotropicBlur: number) {\n\t\tthis.inputs.set({ anisotropicBlur });\n\t}\n\t/* Distortion, default: 0 */\n\t@Input({ alias: 'distortion' }) set _distortion(distortion: number) {\n\t\tthis.inputs.set({ distortion });\n\t}\n\t/* Distortion scale, default: 0.5 */\n\t@Input({ alias: 'distortionScale' }) set _distortionScale(distortionScale: number) {\n\t\tthis.inputs.set({ distortionScale });\n\t}\n\t/* Temporal distortion (speed of movement), default: 0.0 */\n\t@Input({ alias: 'temporalDistortion' }) set _temporalDistortion(temporalDistortion: number) {\n\t\tthis.inputs.set({ temporalDistortion });\n\t}\n\t/** The scene rendered into a texture (use it to share a texture between materials), default: null */\n\t@Input({ alias: 'buffer' }) set _buffer(buffer: THREE.Texture) {\n\t\tthis.inputs.set({ buffer });\n\t}\n\t/** Internals */\n\t@Input({ alias: 'time' }) set _time(time: number) {\n\t\tthis.inputs.set({ time });\n\t}\n\n\ttransmissionSampler = this.inputs.select('transmissionSampler');\n\tbackside = this.inputs.select('backside');\n\ttransmission = this.inputs.select('transmission');\n\tthickness = this.inputs.select('thickness');\n\tbacksideThickness = this.inputs.select('backsideThickness');\n\tsamples = this.inputs.select('samples');\n\troughness = this.inputs.select('roughness');\n\tanisotropy = this.inputs.select('anisotropy');\n\tanisotropicBlur = this.inputs.select('anisotropicBlur');\n\tchromaticAberration = this.inputs.select('chromaticAberration');\n\tdistortion = this.inputs.select('distortion');\n\tdistortionScale = this.inputs.select('distortionScale');\n\ttemporalDistortion = this.inputs.select('temporalDistortion');\n\tbuffer = this.inputs.select('buffer');\n\ttime = this.inputs.select('time');\n\n\tprivate discardMaterial = new DiscardMaterial();\n\n\tprivate backsideResolution = this.inputs.select('backsideResolution');\n\tprivate resolution = this.inputs.select('resolution');\n\n\tprivate fboBackSettings = computed(() => ({ width: this.backsideResolution() || this.resolution() }));\n\tprivate fboMainSettings = computed(() => ({ width: this.resolution() }));\n\n\tfboBackRef = injectNgtsFBO(this.fboBackSettings);\n\tfboMainRef = injectNgtsFBO(this.fboMainSettings);\n\n\tside = THREE.FrontSide;\n\n\tconstructor() {\n\t\tlet oldBg: THREE.Scene['background'];\n\t\tlet oldTone: THREE.WebGLRenderer['toneMapping'];\n\t\tlet parent: THREE.Object3D;\n\n\t\tinjectBeforeRender((state) => {\n\t\t\tif (!this.materialRef.nativeElement) return;\n\n\t\t\tconst { transmissionSampler, background, backside, backsideThickness, thickness } = this.inputs.get();\n\n\t\t\tthis.materialRef.nativeElement.time = state.clock.getElapsedTime();\n\t\t\t// Render only if the buffer matches the built-in and no transmission sampler is set\n\t\t\tif (\n\t\t\t\tthis.materialRef.nativeElement.buffer === this.fboMainRef.nativeElement?.texture &&\n\t\t\t\t!transmissionSampler\n\t\t\t) {\n\t\t\t\tparent = getLocalState(this.materialRef.nativeElement).parent?.() as THREE.Object3D;\n\t\t\t\tif (parent) {\n\t\t\t\t\t// Save defaults\n\t\t\t\t\toldTone = state.gl.toneMapping;\n\t\t\t\t\toldBg = state.scene.background;\n\n\t\t\t\t\t// Switch off tonemapping lest it double tone maps\n\t\t\t\t\t// Save the current background and set the HDR as the new BG\n\t\t\t\t\t// Use discardmaterial, the parent will be invisible, but it's shadows will still be cast\n\t\t\t\t\tstate.gl.toneMapping = THREE.NoToneMapping;\n\t\t\t\t\tif (background) state.scene.background = background;\n\t\t\t\t\t(parent as NgtAnyRecord)['material'] = this.discardMaterial;\n\n\t\t\t\t\tif (backside) {\n\t\t\t\t\t\t// Render into the backside buffer\n\t\t\t\t\t\tstate.gl.setRenderTarget(this.fboBackRef.nativeElement);\n\t\t\t\t\t\tstate.gl.render(state.scene, state.camera);\n\t\t\t\t\t\t// And now prepare the material for the main render using the backside buffer\n\t\t\t\t\t\t(parent as NgtAnyRecord)['material'] = this.materialRef.nativeElement;\n\t\t\t\t\t\t(parent as NgtAnyRecord)['material'].buffer = this.fboBackRef.nativeElement?.texture;\n\t\t\t\t\t\t(parent as NgtAnyRecord)['material'].thickness = backsideThickness;\n\t\t\t\t\t\t(parent as NgtAnyRecord)['material'].side = THREE.BackSide;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Render into the main buffer\n\t\t\t\t\tstate.gl.setRenderTarget(this.fboMainRef.nativeElement);\n\t\t\t\t\tstate.gl.render(state.scene, state.camera);\n\n\t\t\t\t\t(parent as NgtAnyRecord)['material'].thickness = thickness;\n\t\t\t\t\t(parent as NgtAnyRecord)['material'].side = this.side;\n\t\t\t\t\t(parent as NgtAnyRecord)['material'].buffer = this.fboMainRef.nativeElement?.texture;\n\n\t\t\t\t\t// Set old state back\n\t\t\t\t\tstate.scene.background = oldBg;\n\t\t\t\t\tstate.gl.setRenderTarget(null);\n\t\t\t\t\t(parent as NgtAnyRecord)['material'] = this.materialRef.nativeElement;\n\t\t\t\t\tstate.gl.toneMapping = oldTone;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n}\n","import { Component, CUSTOM_ELEMENTS_SCHEMA, Input } from '@angular/core';\nimport {\n\textend,\n\tinjectBeforeRender,\n\tinjectNgtRef,\n\tNgtArgs,\n\tsignalStore,\n\ttype NgtMeshStandardMaterial,\n} from 'angular-three';\nimport { MeshWobbleMaterial } from 'angular-three-soba/shaders';\n\nextend({ MeshWobbleMaterial });\n\nexport type NgtsMeshWobbleMaterialState = {\n\ttime: number;\n\tfactor: number;\n\tspeed: number;\n};\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t/**\n\t\t * @extends ngt-mesh-standard-material\n\t\t */\n\t\t'ngts-mesh-wobble-material': NgtsMeshWobbleMaterialState & NgtMeshStandardMaterial;\n\t}\n}\n\n@Component({\n\tselector: 'ngts-mesh-wobble-material',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-primitive\n\t\t\t*args=\"[material]\"\n\t\t\t[ref]=\"materialRef\"\n\t\t\t[time]=\"time()\"\n\t\t\t[factor]=\"factor()\"\n\t\t\tattach=\"material\"\n\t\t\tngtCompound\n\t\t/>\n\t`,\n\timports: [NgtArgs],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtsMeshWobbleMaterial {\n\tprivate inputs = signalStore<NgtsMeshWobbleMaterialState>({ speed: 1, time: 0, factor: 1 });\n\n\t@Input() materialRef = injectNgtRef<MeshWobbleMaterial>();\n\n\t@Input({ alias: 'time' }) set _time(time: number) {\n\t\tthis.inputs.set({ time });\n\t}\n\n\t@Input({ alias: 'factor' }) set _factor(factor: number) {\n\t\tthis.inputs.set({ factor });\n\t}\n\n\t@Input({ alias: 'speed' }) set _speed(speed: number) {\n\t\tthis.inputs.set({ speed });\n\t}\n\n\tmaterial = new MeshWobbleMaterial();\n\ttime = this.inputs.select('time');\n\tfactor = this.inputs.select('factor');\n\n\tconstructor() {\n\t\tinjectBeforeRender(({ clock }) => {\n\t\t\tthis.material.time = clock.getElapsedTime() * this.inputs.get('speed');\n\t\t});\n\t}\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, Component, Input } from '@angular/core';\nimport { NgtArgs, injectNgtRef, type NgtPointsMaterial } from 'angular-three';\nimport * as THREE from 'three';\n\nconst opaque_fragment = parseInt(THREE.REVISION.replace(/\\D+/g, '')) >= 154 ? 'opaque_fragment' : 'output_fragment';\n\nexport class PointMaterial extends THREE.PointsMaterial {\n\tconstructor(parameters: THREE.PointsMaterialParameters) {\n\t\tsuper(parameters);\n\t\tthis.onBeforeCompile = (shader, renderer) => {\n\t\t\tconst { isWebGL2 } = renderer.capabilities;\n\t\t\tshader.fragmentShader = shader.fragmentShader.replace(\n\t\t\t\t`#include <${opaque_fragment}>`,\n\t\t\t\t`\n ${\n\t\t\t!isWebGL2\n\t\t\t\t? `#extension GL_OES_standard_derivatives : enable\\n#include <${opaque_fragment}>`\n\t\t\t\t: `#include <${opaque_fragment}>`\n\t\t}\n vec2 cxy = 2.0 * gl_PointCoord - 1.0;\n float r = dot(cxy, cxy);\n float delta = fwidth(r);\n float mask = 1.0 - smoothstep(1.0 - delta, 1.0 + delta, r);\n gl_FragColor = vec4(gl_FragColor.rgb, mask * gl_FragColor.a );\n #include <tonemapping_fragment>\n #include <${parseInt(THREE.REVISION.replace(/\\D+/g, '')) >= 154 ? 'colorspace_fragment' : 'encodings_fragment'}>\n `,\n\t\t\t);\n\t\t};\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t/**\n\t\t * @extends ngt-points-material\n\t\t */\n\t\t'ngt-point-material': NgtPointsMaterial;\n\t\t/**\n\t\t * @extends ngt-points-material\n\t\t */\n\t\t'ngts-point-material': NgtPointsMaterial;\n\t}\n}\n\n@Component({\n\tselector: 'ngts-point-material',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-primitive ngtCompound [ref]=\"pointMaterialRef\" *args=\"[material]\" attach=\"material\" />\n\t`,\n\timports: [NgtArgs],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtsPointMaterial {\n\t@Input() pointMaterialRef = injectNgtRef<PointMaterial>();\n\n\tmaterial = new PointMaterial({});\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;MAqCa,uBAAuB,CAAA;IAUnC,IAA8B,KAAK,CAAC,IAAY,EAAA;QAC/C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;KAC1B;IAED,IAAiC,QAAQ,CAAC,OAAe,EAAA;QACxD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;KAC7B;IAED,IAAgC,OAAO,CAAC,MAAc,EAAA;QACrD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;KAC5B;IAED,IAA+B,MAAM,CAAC,KAAa,EAAA;QAClD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;KAC3B;AASD,IAAA,WAAA,GAAA;QAhCQ,IAAM,CAAA,MAAA,GAAG,WAAW,CAA+B;AAC1D,YAAA,KAAK,EAAE,CAAC;AACR,YAAA,IAAI,EAAE,CAAC;AACP,YAAA,OAAO,EAAE,GAAG;AACZ,YAAA,MAAM,EAAE,CAAC;AACT,SAAA,CAAC,CAAC;QAEM,IAAW,CAAA,WAAA,GAAG,YAAY,EAAqC,CAAC;QAkBjE,IAAmB,CAAA,mBAAA,GAAG,6BAA6B,EAAE,CAAC;AAC9D,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAE1C,IAAI,CAAA,IAAA,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAClC,IAAO,CAAA,OAAA,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACxC,IAAM,CAAA,MAAA,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAGrC,QAAA,kBAAkB,CAAC,CAAC,EAAE,KAAK,EAAE,KAAI;AAChC,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,KAAK,CAAC,cAAc,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AACxE,SAAC,CAAC,CAAC;KACH;8GArCW,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,EAdzB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,KAAA,EAAA,CAAA,MAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,SAAA,CAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,CAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;AAUT,CAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACS,OAAO,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAGL,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAjBnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,4BAA4B;AACtC,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;AAUT,CAAA,CAAA;oBACD,OAAO,EAAE,CAAC,OAAO,CAAC;oBAClB,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACjC,iBAAA,CAAA;0EASS,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAEwB,KAAK,EAAA,CAAA;sBAAlC,KAAK;uBAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAA;gBAIS,QAAQ,EAAA,CAAA;sBAAxC,KAAK;uBAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAA;gBAIK,OAAO,EAAA,CAAA;sBAAtC,KAAK;uBAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAA;gBAIK,MAAM,EAAA,CAAA;sBAApC,KAAK;uBAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAA;;;AC3C1B,MAAM,CAAC,EAAE,qBAAqB,EAAE,CAAC,CAAC;MA4DrB,yBAAyB,CAAA;IAkBrC,IAAoC,WAAW,CAAC,UAAkB,EAAA;QACjE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;KAChC;IAED,IAAiC,QAAQ,CAAC,OAAe,EAAA;QACxD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;KAC7B;IAED,IAAqC,YAAY,CAAC,WAAmB,EAAA;QACpE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;KACjC;IAED,IAA8B,KAAK,CAAC,IAA+B,EAAA;QAClE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;KAC1B;IAED,IAAgC,OAAO,CAAC,MAAc,EAAA;QACrD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;KAC5B;IAED,IAA2C,kBAAkB,CAAC,iBAAyB,EAAA;QACtF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,iBAAiB,EAAE,CAAC,CAAC;KACvC;IAED,IAA2C,kBAAkB,CAAC,iBAAyB,EAAA;QACtF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,iBAAiB,EAAE,CAAC,CAAC;KACvC;IAED,IAAoC,WAAW,CAAC,UAAkB,EAAA;QACjE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;KAChC;IAED,IAA8C,qBAAqB,CAAC,oBAA4B,EAAA;QAC/F,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,oBAAoB,EAAE,CAAC,CAAC;KAC1C;IAED,IAAuC,cAAc,CAAC,aAA4B,EAAA;QACjF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC;KACnC;IAED,IAAoC,WAAW,CAAC,UAAkB,EAAA;QACjE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;KAChC;IAED,IAAqC,YAAY,CAAC,WAAmB,EAAA;QACpE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;KACjC;IAED,IAAyC,gBAAgB,CAAC,eAAuB,EAAA;QAChF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC;KACrC;AA2HD,IAAA,WAAA,GAAA;QA9LQ,IAAM,CAAA,MAAA,GAAG,WAAW,CAAiC;AAC5D,YAAA,OAAO,EAAE,CAAC;AACV,YAAA,WAAW,EAAE,CAAC;AACd,YAAA,UAAU,EAAE,GAAG;AACf,YAAA,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AACZ,YAAA,iBAAiB,EAAE,GAAG;AACtB,YAAA,iBAAiB,EAAE,CAAC;AACpB,YAAA,UAAU,EAAE,CAAC;AACb,YAAA,oBAAoB,EAAE,IAAI;AAC1B,YAAA,MAAM,EAAE,CAAC;AACT,YAAA,UAAU,EAAE,CAAC;AACb,YAAA,WAAW,EAAE,CAAC;AACd,YAAA,eAAe,EAAE,CAAC;AAClB,SAAA,CAAC,CAAC;QAEM,IAAW,CAAA,WAAA,GAAG,YAAY,EAAyB,CAAC;AAsDrD,QAAA,IAAA,CAAA,cAAc,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,cAAc,CAAC,CAAC;AACtE,QAAA,IAAA,CAAA,OAAO,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC,OAAO,CAAC,CAAC;AACxD,QAAA,IAAA,CAAA,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,CAAC;AACtD,QAAA,IAAA,CAAA,aAAa,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC,aAAa,CAAC,CAAC;AACpE,QAAA,IAAA,CAAA,OAAO,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC,OAAO,CAAC,CAAC;AACxD,QAAA,IAAA,CAAA,QAAQ,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC,QAAQ,CAAC,CAAC;AAC1D,QAAA,IAAA,CAAA,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,CAAC;AACtD,QAAA,IAAA,CAAA,YAAY,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC,YAAY,CAAC,CAAC;AAClE,QAAA,IAAA,CAAA,OAAO,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC,OAAO,CAAC,CAAC;AACxD,QAAA,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC,WAAW,CAAC,CAAC;AAChE,QAAA,IAAA,CAAA,iBAAiB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC,iBAAiB,CAAC,CAAC;AAC5E,QAAA,IAAA,CAAA,iBAAiB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC,iBAAiB,CAAC,CAAC;AAC5E,QAAA,IAAA,CAAA,UAAU,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC,UAAU,CAAC,CAAC;AAC9D,QAAA,IAAA,CAAA,oBAAoB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC,oBAAoB,CAAC,CAAC;AAClF,QAAA,IAAA,CAAA,UAAU,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC,UAAU,CAAC,CAAC;AAC9D,QAAA,IAAA,CAAA,aAAa,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC,aAAa,CAAC,CAAC;AACpE,QAAA,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC,WAAW,CAAC,CAAC;QAExD,IAAK,CAAA,KAAA,GAAG,cAAc,EAAE,CAAC;QACzB,IAAE,CAAA,EAAA,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAE7B,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;AACnC,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;AAC7B,QAAA,IAAA,CAAA,sBAAsB,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;AAC7C,QAAA,IAAA,CAAA,mBAAmB,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;AAC1C,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;AACrC,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC7C,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;AAChC,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;AAC3B,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;AAC7B,QAAA,IAAA,CAAA,CAAC,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;AACxB,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;AAC9C,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAErC,IAAM,CAAA,MAAA,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACpC,IAAY,CAAA,YAAA,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAChD,IAAQ,CAAA,QAAA,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACxC,IAAS,CAAA,SAAA,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC1C,IAAa,CAAA,aAAA,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAClD,IAAmB,CAAA,mBAAA,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;QAC9D,IAAmB,CAAA,mBAAA,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;QAC9D,IAAY,CAAA,YAAA,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAChD,IAAsB,CAAA,sBAAA,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;QACpE,IAAY,CAAA,YAAA,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAChD,IAAe,CAAA,eAAA,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QACtD,IAAa,CAAA,aAAA,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;AAElD,QAAA,IAAA,CAAA,cAAc,GAAG,QAAQ,CAAC,MAAK;AACtC,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;AAC3B,YAAA,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAClD,SAAC,CAAC,CAAC;AAEK,QAAA,IAAA,CAAA,SAAS,GAAG,QAAQ,CAAC,MAAK;YACjC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;AACrC,YAAA,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAClB,SAAC,CAAC,CAAC;AAEK,QAAA,IAAA,CAAA,MAAM,GAAG,QAAQ,CAAC,MAAK;AAC9B,YAAA,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;AACrB,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;AACvC,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;AACnC,YAAA,MAAM,iBAAiB,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;AACrD,YAAA,MAAM,iBAAiB,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;AACrD,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;AACvC,YAAA,MAAM,oBAAoB,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;AAC3D,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;AAC/B,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;AACjC,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;AACzC,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;AACzC,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;AACvC,YAAA,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;AAC7C,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;AAEjC,YAAA,MAAM,UAAU,GAAG;gBAClB,SAAS,EAAE,KAAK,CAAC,YAAY;gBAC7B,SAAS,EAAE,KAAK,CAAC,YAAY;gBAC7B,IAAI,EAAE,KAAK,CAAC,aAAa;aACzB,CAAC;AACF,YAAA,MAAM,IAAI,GAAG,IAAI,KAAK,CAAC,iBAAiB,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;AAC7E,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AACxB,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;YACnE,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC;YAC7C,IAAI,CAAC,YAAY,CAAC,IAAI,GAAG,KAAK,CAAC,iBAAiB,CAAC;AAEjD,YAAA,MAAM,IAAI,GAAG,IAAI,KAAK,CAAC,iBAAiB,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;AAC7E,YAAA,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC;gBAC7B,EAAE;gBACF,UAAU;AACV,gBAAA,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;AACd,gBAAA,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;gBACf,iBAAiB;gBACjB,iBAAiB;gBACjB,UAAU;gBACV,oBAAoB;AACpB,aAAA,CAAC,CAAC;AACH,YAAA,MAAM,cAAc,GAAG;gBACtB,MAAM;gBACN,aAAa,EAAE,IAAI,CAAC,cAAc;gBAClC,OAAO;gBACP,QAAQ,EAAE,IAAI,CAAC,OAAO;gBACtB,MAAM,EAAE,IAAI,CAAC,YAAY;gBACzB,YAAY,EAAE,IAAI,CAAC,OAAO;gBAC1B,OAAO;gBACP,WAAW;gBACX,iBAAiB;gBACjB,iBAAiB;gBACjB,UAAU;gBACV,oBAAoB;gBACpB,UAAU;gBACV,aAAa;gBACb,WAAW;AACX,gBAAA,OAAO,EAAE;oBACR,QAAQ,EAAE,OAAO,GAAG,EAAE,GAAG,SAAS;oBAClC,SAAS,EAAE,UAAU,GAAG,CAAC,GAAG,EAAE,GAAG,SAAS;oBAC1C,cAAc,EAAE,aAAa,GAAG,EAAE,GAAG,SAAS;AAC9C,iBAAA;aACD,CAAC;YAEF,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC;AACjD,SAAC,CAAC,CAAC;QAGF,kBAAkB,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;KACnD;AAEO,IAAA,cAAc,CAAC,KAAqB,EAAA;AAC3C,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa;YAAE,OAAO;AAC5C,QAAA,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,MAAM,IAAI,CAAC;AACxE,QAAA,IAAI,CAAC,MAAM;YAAE,OAAO;AAEpB,QAAA,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;AAC5B,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;AACjC,QAAA,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;AAE/C,QAAA,IAAI,IAAI,IAAI,IAAI,IAAI,QAAQ,EAAE;AAC7B,YAAA,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC;AACvB,YAAA,MAAM,gBAAgB,GAAG,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC;AACvC,YAAA,MAAM,uBAAuB,GAAG,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC;AACxD,YAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AACzB,YAAA,EAAE,CAAC,EAAE,CAAC,OAAO,GAAG,KAAK,CAAC;AACtB,YAAA,EAAE,CAAC,SAAS,CAAC,UAAU,GAAG,KAAK,CAAC;AAChC,YAAA,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YACzB,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACrC,IAAI,CAAC,EAAE,CAAC,SAAS;gBAAE,EAAE,CAAC,KAAK,EAAE,CAAC;YAC9B,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;AACrC,YAAA,IAAI,OAAO;gBAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAC7C,YAAA,EAAE,CAAC,EAAE,CAAC,OAAO,GAAG,gBAAgB,CAAC;AACjC,YAAA,EAAE,CAAC,SAAS,CAAC,UAAU,GAAG,uBAAuB,CAAC;AAClD,YAAA,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;AACtB,YAAA,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;AACzB,SAAA;KACD;AAEO,IAAA,YAAY,CAAC,KAAqB,EAAA;AACzC,QAAA,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,MAAM,IAAI,CAAC;AACxE,QAAA,IAAI,CAAC,MAAM;YAAE,OAAO;AAEpB,QAAA,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;QAEzB,IAAI,CAAC,sBAAsB,CAAC,qBAAqB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QACtE,IAAI,CAAC,mBAAmB,CAAC,qBAAqB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QACnE,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QACxD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACzB,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AAC9C,QAAA,IAAI,CAAC,sBAAsB,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC;AAC7F,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,sBAAsB,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;;QAE5E,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;YAAE,OAAO;AAC3C,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC;QACxC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QAC3C,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AACxD,QAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAClC,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACtD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;AAClD,QAAA,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,sBAAsB,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;AACzE,QAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC;QAC1C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QAC7C,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5C,QAAA,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACnC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACxD,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3C,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvC,IAAI,CAAC,aAAa,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;AACpC,QAAA,IAAI,CAAC,aAAa,CAAC,iBAAiB,EAAE,CAAC;QACvC,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;;AAElE,QAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QACxG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;QAClE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC;QACpE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;;;AAGjD,QAAA,IAAI,CAAC,cAAc,CAAC,6BAA6B,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC;QAC5F,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC;AACxE,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CACjB,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,EAC5B,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,EAC5B,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,EAC5B,IAAI,CAAC,cAAc,CAAC,QAAQ,CAC5B,CAAC;AACF,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC;AAC7D,QAAA,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACvG,QAAA,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACvG,QAAA,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;QAChB,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;;AAEjF,QAAA,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;;QAEhE,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;QAChD,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;AAChD,QAAA,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,GAAG,CAAC;QACvD,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;KACjD;8GA1RW,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,EA9B3B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,WAAA,EAAA,CAAA,YAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,EAAA,UAAA,CAAA,EAAA,YAAA,EAAA,CAAA,aAAA,EAAA,cAAA,CAAA,EAAA,KAAA,EAAA,CAAA,MAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,SAAA,CAAA,EAAA,kBAAA,EAAA,CAAA,mBAAA,EAAA,oBAAA,CAAA,EAAA,kBAAA,EAAA,CAAA,mBAAA,EAAA,oBAAA,CAAA,EAAA,WAAA,EAAA,CAAA,YAAA,EAAA,aAAA,CAAA,EAAA,qBAAA,EAAA,CAAA,sBAAA,EAAA,uBAAA,CAAA,EAAA,cAAA,EAAA,CAAA,eAAA,EAAA,gBAAA,CAAA,EAAA,WAAA,EAAA,CAAA,YAAA,EAAA,aAAA,CAAA,EAAA,YAAA,EAAA,CAAA,aAAA,EAAA,cAAA,CAAA,EAAA,gBAAA,EAAA,CAAA,iBAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BT,CAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACS,IAAI,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAGF,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAjCrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,8BAA8B;AACxC,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BT,CAAA,CAAA;AACD,oBAAA,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC;oBACvB,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACjC,iBAAA,CAAA;0EAiBS,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAE8B,WAAW,EAAA,CAAA;sBAA9C,KAAK;uBAAC,EAAE,KAAK,EAAE,YAAY,EAAE,CAAA;gBAIG,QAAQ,EAAA,CAAA;sBAAxC,KAAK;uBAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAA;gBAIU,YAAY,EAAA,CAAA;sBAAhD,KAAK;uBAAC,EAAE,KAAK,EAAE,aAAa,EAAE,CAAA;gBAID,KAAK,EAAA,CAAA;sBAAlC,KAAK;uBAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAA;gBAIQ,OAAO,EAAA,CAAA;sBAAtC,KAAK;uBAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAA;gBAIiB,kBAAkB,EAAA,CAAA;sBAA5D,KAAK;uBAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAA;gBAIM,kBAAkB,EAAA,CAAA;sBAA5D,KAAK;uBAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAA;gBAID,WAAW,EAAA,CAAA;sBAA9C,KAAK;uBAAC,EAAE,KAAK,EAAE,YAAY,EAAE,CAAA;gBAIgB,qBAAqB,EAAA,CAAA;sBAAlE,KAAK;uBAAC,EAAE,KAAK,EAAE,sBAAsB,EAAE,CAAA;gBAID,cAAc,EAAA,CAAA;sBAApD,KAAK;uBAAC,EAAE,KAAK,EAAE,eAAe,EAAE,CAAA;gBAIG,WAAW,EAAA,CAAA;sBAA9C,KAAK;uBAAC,EAAE,KAAK,EAAE,YAAY,EAAE,CAAA;gBAIO,YAAY,EAAA,CAAA;sBAAhD,KAAK;uBAAC,EAAE,KAAK,EAAE,aAAa,EAAE,CAAA;gBAIU,gBAAgB,EAAA,CAAA;sBAAxD,KAAK;uBAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAA;;;AC9HpC,MAAM,CAAC,EAAE,sBAAsB,EAAE,CAAC,CAAC;AA4BnC,MAAM,aAAa,GAAG,CAAC,GAAsC,KAC5D,GAAG,IAAK,GAAyB,CAAC,aAAa,CAAC;MA4BpC,0BAA0B,CAAA;;IAKtC,IAAgD,OAAO,CAAC,MAAyC,EAAA;QAChG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;KAC5B;;IAED,IAAiC,QAAQ,CAAC,OAAe,EAAA;QACxD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;KAC7B;;IAED,IAA6B,IAAI,CAAC,GAAW,EAAA;QAC5C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;KACzB;;IAED,IAAiC,QAAQ,CAAC,OAAe,EAAA;QACxD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;KAC7B;;IAED,IAA4C,mBAAmB,CAAC,kBAA0B,EAAA;QACzF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,kBAAkB,EAAE,CAAC,CAAC;KACxC;;IAED,IAA+B,MAAM,CAAC,KAAgC,EAAA;QACrE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;KAC3B;;IAED,IAAoC,WAAW,CAAC,UAAmB,EAAA;QAClE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;KAChC;AAqCD,IAAA,WAAA,GAAA;AAnEQ,QAAA,IAAA,CAAA,MAAM,GAAG,WAAW,CAAkC,EAAE,kBAAkB,EAAE,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;QAElG,IAAW,CAAA,WAAA,GAAG,YAAY,EAA+C,CAAC;QA8BnF,IAAM,CAAA,MAAA,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACtC,IAAO,CAAA,OAAA,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACxC,IAAG,CAAA,GAAA,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAChC,IAAO,CAAA,OAAA,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACxC,IAAkB,CAAA,kBAAA,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;QAC9D,IAAK,CAAA,KAAA,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACpC,IAAU,CAAA,UAAA,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAEtC,IAAK,CAAA,KAAA,GAAG,cAAc,EAAE,CAAC;QACzB,IAAI,CAAA,IAAA,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAEzC,QAAA,IAAA,CAAA,OAAO,GAAG,QAAQ,CAAC,MAAK;YACvB,MAAM,CAAC,MAAM,EAAE,kBAAkB,EAAE,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,kBAAkB,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;AAC/G,YAAA,IAAI,CAAC,MAAM;AAAE,gBAAA,OAAO,IAAI,CAAC;YAEzB,MAAM,IAAI,GAAG,EAA+B,CAAC;;AAE7C,YAAA,MAAM,SAAS,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;YACxC,MAAM,CAAC,GAAG,CAAC,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC;AAC5E,YAAA,MAAM,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC;AACvB,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YAChD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AACvC,YAAA,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;AAC9C,YAAA,MAAM,MAAM,GAAG,CAAC,GAAG,SAAS,CAAC;AAC7B,YAAA,IAAI,SAAS;AAAE,gBAAA,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,CAAC;YAC9C,IAAI,CAAC,oBAAoB,CAAC,GAAG,GAAG,GAAG,GAAG,KAAK,CAAA,CAAE,CAAC;YAC9C,IAAI,CAAC,qBAAqB,CAAC,GAAG,GAAG,GAAG,GAAG,MAAM,CAAA,CAAE,CAAC;AAChD,YAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAG,EAAA,OAAO,IAAI,CAAC;;YAExC,IAAI,kBAAkB,GAAG,CAAC;AAAE,gBAAA,IAAI,CAAC,uBAAuB,CAAC,GAAG,EAAE,CAAC;AAC/D,YAAA,IAAI,UAAU;AAAE,gBAAA,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC;AACzC,YAAA,OAAO,IAAI,CAAC;AACb,SAAC,CAAC,CAAC;QACH,IAAU,CAAA,UAAA,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AAGpE,QAAA,kBAAkB,CAAC,CAAC,EAAE,MAAM,EAAE,KAAI;AACjC,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC;AAChD,YAAA,IAAI,QAAQ,EAAE;AACZ,gBAAA,QAAgB,CAAC,iBAAiB,GAAG,MAAM,CAAC,WAAW,CAAC;AACxD,gBAAA,QAAgB,CAAC,uBAAuB,GAAG,MAAM,CAAC,uBAAuB,CAAC;AAC3E,aAAA;AACF,SAAC,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,EAAE,CAAC;KACrB;IAEO,aAAa,GAAA;QACpB,MAAM,CAAC,MAAK;AACX,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC;AAChD,YAAA,IAAI,CAAC,QAAQ;gBAAE,OAAO;AACtB,YAAA,MAAM,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC,MAAM,IAAI,EAAE,QAAQ,CAAC;AAC9D,YAAA,IAAI,QAAQ,EAAE;AACZ,gBAAA,QAAgB,CAAC,GAAG,GAAG,IAAI,oBAAoB,EAAE,CAAC;gBAClD,QAAgB,CAAC,GAAG,CAAC,UAAU,CAC/B,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,YAAY,EAAE,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAS,CAAC,CAC7F,CAAC;AACF,aAAA;AACF,SAAC,CAAC,CAAC;KACH;8GA3FW,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0BAA0B,EAvB5B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,+BAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,SAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,EAAA,UAAA,CAAA,EAAA,IAAA,EAAA,CAAA,KAAA,EAAA,MAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,EAAA,UAAA,CAAA,EAAA,mBAAA,EAAA,CAAA,oBAAA,EAAA,qBAAA,CAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,CAAA,EAAA,WAAA,EAAA,CAAA,YAAA,EAAA,aAAA,CAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;AAmBT,CAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACS,IAAI,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAGF,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBA1BtC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,+BAA+B;AACzC,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;;;;AAmBT,CAAA,CAAA;AACD,oBAAA,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC;oBACvB,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACjC,iBAAA,CAAA;0EAIS,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAE0C,OAAO,EAAA,CAAA;sBAAtD,KAAK;AAAC,gBAAA,IAAA,EAAA,CAAA,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAA;gBAIT,QAAQ,EAAA,CAAA;sBAAxC,KAAK;uBAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAA;gBAIE,IAAI,EAAA,CAAA;sBAAhC,KAAK;uBAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;gBAIU,QAAQ,EAAA,CAAA;sBAAxC,KAAK;uBAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAA;gBAIiB,mBAAmB,EAAA,CAAA;sBAA9D,KAAK;uBAAC,EAAE,KAAK,EAAE,oBAAoB,EAAE,CAAA;gBAIP,MAAM,EAAA,CAAA;sBAApC,KAAK;uBAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAA;gBAIW,WAAW,EAAA,CAAA;sBAA9C,KAAK;uBAAC,EAAE,KAAK,EAAE,YAAY,EAAE,CAAA;;;ACvF/B,MAAM,CAAC,EAAE,wBAAwB,EAAE,CAAC,CAAC;MA8ExB,2BAA2B,CAAA;AAmBvC;;;AAGqF;IACrF,IAA6C,oBAAoB,CAAC,mBAA4B,EAAA;QAC7F,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,mBAAmB,EAAE,CAAC,CAAC;KACzC;;IAED,IAAkC,SAAS,CAAC,QAAiB,EAAA;QAC5D,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;KAC9B;;IAED,IAA2C,kBAAkB,CAAC,iBAAyB,EAAA;QACtF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,iBAAiB,EAAE,CAAC,CAAC;KACvC;;IAED,IAAoC,WAAW,CAAC,UAAkB,EAAA;QACjE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;KAChC;;IAED,IAA4C,mBAAmB,CAAC,kBAA0B,EAAA;QACzF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,kBAAkB,EAAE,CAAC,CAAC;KACxC;;IAED,IAAiC,QAAQ,CAAC,OAAe,EAAA;QACxD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;KAC7B;;IAED,IAAoC,WAAW,CAAC,UAAuC,EAAA;QACtF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;KAChC;;IAED,IAAsC,aAAa,CAAC,YAAoB,EAAA;QACvE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC;KAClC;;IAED,IAAmC,UAAU,CAAC,SAAiB,EAAA;QAC9D,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;KAC/B;;IAED,IAAmC,UAAU,CAAC,SAAiB,EAAA;QAC9D,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;KAC/B;;IAED,IAA6C,oBAAoB,CAAC,mBAA2B,EAAA;QAC5F,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,mBAAmB,EAAE,CAAC,CAAC;KACzC;;IAED,IAAoC,WAAW,CAAC,UAAkB,EAAA;QACjE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;KAChC;;IAED,IAAyC,gBAAgB,CAAC,eAAuB,EAAA;QAChF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC;KACrC;;IAED,IAAoC,WAAW,CAAC,UAAkB,EAAA;QACjE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;KAChC;;IAED,IAAyC,gBAAgB,CAAC,eAAuB,EAAA;QAChF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC;KACrC;;IAED,IAA4C,mBAAmB,CAAC,kBAA0B,EAAA;QACzF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,kBAAkB,EAAE,CAAC,CAAC;KACxC;;IAED,IAAgC,OAAO,CAAC,MAAqB,EAAA;QAC5D,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;KAC5B;;IAED,IAA8B,KAAK,CAAC,IAAY,EAAA;QAC/C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;KAC1B;AA+BD,IAAA,WAAA,GAAA;QA3HQ,IAAM,CAAA,MAAA,GAAG,WAAW,CAAmC;AAC9D,YAAA,mBAAmB,EAAE,KAAK;AAC1B,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,YAAY,EAAE,CAAC;AACf,YAAA,SAAS,EAAE,CAAC;AACZ,YAAA,iBAAiB,EAAE,CAAC;AACpB,YAAA,OAAO,EAAE,EAAE;AACX,YAAA,SAAS,EAAE,CAAC;AACZ,YAAA,UAAU,EAAE,GAAG;AACf,YAAA,eAAe,EAAE,GAAG;AACpB,YAAA,mBAAmB,EAAE,IAAI;AACzB,YAAA,UAAU,EAAE,CAAC;AACb,YAAA,eAAe,EAAE,GAAG;AACpB,YAAA,kBAAkB,EAAE,GAAG;AACvB,YAAA,MAAM,EAAE,IAAI;AACZ,SAAA,CAAC,CAAC;QAEM,IAAW,CAAA,WAAA,GAAG,YAAY,EAAuE,CAAC;QA6E3G,IAAmB,CAAA,mBAAA,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;QAChE,IAAQ,CAAA,QAAA,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC1C,IAAY,CAAA,YAAA,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QAClD,IAAS,CAAA,SAAA,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAC5C,IAAiB,CAAA,iBAAA,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;QAC5D,IAAO,CAAA,OAAA,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACxC,IAAS,CAAA,SAAA,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAC5C,IAAU,CAAA,UAAA,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC9C,IAAe,CAAA,eAAA,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;QACxD,IAAmB,CAAA,mBAAA,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;QAChE,IAAU,CAAA,UAAA,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC9C,IAAe,CAAA,eAAA,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;QACxD,IAAkB,CAAA,kBAAA,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;QAC9D,IAAM,CAAA,MAAA,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACtC,IAAI,CAAA,IAAA,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAE1B,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;QAExC,IAAkB,CAAA,kBAAA,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;QAC9D,IAAU,CAAA,UAAA,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAE9C,IAAe,CAAA,eAAA,GAAG,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,kBAAkB,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC;AAC9F,QAAA,IAAA,CAAA,eAAe,GAAG,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC;AAEzE,QAAA,IAAA,CAAA,UAAU,GAAG,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;AACjD,QAAA,IAAA,CAAA,UAAU,GAAG,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;AAEjD,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC;AAGtB,QAAA,IAAI,KAAgC,CAAC;AACrC,QAAA,IAAI,OAA2C,CAAC;AAChD,QAAA,IAAI,MAAsB,CAAC;AAE3B,QAAA,kBAAkB,CAAC,CAAC,KAAK,KAAI;AAC5B,YAAA,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa;gBAAE,OAAO;AAE5C,YAAA,MAAM,EAAE,mBAAmB,EAAE,UAAU,EAAE,QAAQ,EAAE,iBAAiB,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;AAEtG,YAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;;AAEnE,YAAA,IACC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,MAAM,KAAK,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,OAAO;AAChF,gBAAA,CAAC,mBAAmB,EACnB;AACD,gBAAA,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,MAAM,IAAsB,CAAC;AACpF,gBAAA,IAAI,MAAM,EAAE;;AAEX,oBAAA,OAAO,GAAG,KAAK,CAAC,EAAE,CAAC,WAAW,CAAC;AAC/B,oBAAA,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC;;;;oBAK/B,KAAK,CAAC,EAAE,CAAC,WAAW,GAAG,KAAK,CAAC,aAAa,CAAC;AAC3C,oBAAA,IAAI,UAAU;AAAE,wBAAA,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,UAAU,CAAC;AACnD,oBAAA,MAAuB,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC;AAE5D,oBAAA,IAAI,QAAQ,EAAE;;wBAEb,KAAK,CAAC,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AACxD,wBAAA,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;;wBAE1C,MAAuB,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC;AACrE,wBAAA,MAAuB,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,OAAO,CAAC;AACpF,wBAAA,MAAuB,CAAC,UAAU,CAAC,CAAC,SAAS,GAAG,iBAAiB,CAAC;wBAClE,MAAuB,CAAC,UAAU,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC;AAC3D,qBAAA;;oBAGD,KAAK,CAAC,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AACxD,oBAAA,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;AAE1C,oBAAA,MAAuB,CAAC,UAAU,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC;oBAC1D,MAAuB,CAAC,UAAU,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AACrD,oBAAA,MAAuB,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,OAAO,CAAC;;AAGrF,oBAAA,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC;AAC/B,oBAAA,KAAK,CAAC,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;oBAC9B,MAAuB,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC;AACtE,oBAAA,KAAK,CAAC,EAAE,CAAC,WAAW,GAAG,OAAO,CAAC;AAC/B,iBAAA;AACD,aAAA;AACF,SAAC,CAAC,CAAC;KACH;8GApLW,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,2BAA2B,EAtB7B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iCAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,oBAAA,EAAA,CAAA,qBAAA,EAAA,sBAAA,CAAA,EAAA,SAAA,EAAA,CAAA,UAAA,EAAA,WAAA,CAAA,EAAA,kBAAA,EAAA,CAAA,mBAAA,EAAA,oBAAA,CAAA,EAAA,WAAA,EAAA,CAAA,YAAA,EAAA,aAAA,CAAA,EAAA,mBAAA,EAAA,CAAA,oBAAA,EAAA,qBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,EAAA,UAAA,CAAA,EAAA,WAAA,EAAA,CAAA,YAAA,EAAA,aAAA,CAAA,EAAA,aAAA,EAAA,CAAA,cAAA,EAAA,eAAA,CAAA,EAAA,UAAA,EAAA,CAAA,WAAA,EAAA,YAAA,CAAA,EAAA,UAAA,EAAA,CAAA,WAAA,EAAA,YAAA,CAAA,EAAA,oBAAA,EAAA,CAAA,qBAAA,EAAA,sBAAA,CAAA,EAAA,WAAA,EAAA,CAAA,YAAA,EAAA,aAAA,CAAA,EAAA,gBAAA,EAAA,CAAA,iBAAA,EAAA,kBAAA,CAAA,EAAA,WAAA,EAAA,CAAA,YAAA,EAAA,aAAA,CAAA,EAAA,gBAAA,EAAA,CAAA,iBAAA,EAAA,kBAAA,CAAA,EAAA,mBAAA,EAAA,CAAA,oBAAA,EAAA,qBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,SAAA,CAAA,EAAA,KAAA,EAAA,CAAA,MAAA,EAAA,OAAA,CAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;AAkBT,CAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACS,OAAO,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAGL,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAzBvC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,iCAAiC;AAC3C,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;;;AAkBT,CAAA,CAAA;oBACD,OAAO,EAAE,CAAC,OAAO,CAAC;oBAClB,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACjC,iBAAA,CAAA;0EAmBS,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAKuC,oBAAoB,EAAA,CAAA;sBAAhE,KAAK;uBAAC,EAAE,KAAK,EAAE,qBAAqB,EAAE,CAAA;gBAIL,SAAS,EAAA,CAAA;sBAA1C,KAAK;uBAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAA;gBAIe,kBAAkB,EAAA,CAAA;sBAA5D,KAAK;uBAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAA;gBAID,WAAW,EAAA,CAAA;sBAA9C,KAAK;uBAAC,EAAE,KAAK,EAAE,YAAY,EAAE,CAAA;gBAIc,mBAAmB,EAAA,CAAA;sBAA9D,KAAK;uBAAC,EAAE,KAAK,EAAE,oBAAoB,EAAE,CAAA;gBAIL,QAAQ,EAAA,CAAA;sBAAxC,KAAK;uBAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAA;gBAIS,WAAW,EAAA,CAAA;sBAA9C,KAAK;uBAAC,EAAE,KAAK,EAAE,YAAY,EAAE,CAAA;gBAIQ,aAAa,EAAA,CAAA;sBAAlD,KAAK;uBAAC,EAAE,KAAK,EAAE,cAAc,EAAE,CAAA;gBAIG,UAAU,EAAA,CAAA;sBAA5C,KAAK;uBAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAA;gBAIM,UAAU,EAAA,CAAA;sBAA5C,KAAK;uBAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAA;gBAIgB,oBAAoB,EAAA,CAAA;sBAAhE,KAAK;uBAAC,EAAE,KAAK,EAAE,qBAAqB,EAAE,CAAA;gBAIH,WAAW,EAAA,CAAA;sBAA9C,KAAK;uBAAC,EAAE,KAAK,EAAE,YAAY,EAAE,CAAA;gBAIW,gBAAgB,EAAA,CAAA;sBAAxD,KAAK;uBAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAA;gBAIC,WAAW,EAAA,CAAA;sBAA9C,KAAK;uBAAC,EAAE,KAAK,EAAE,YAAY,EAAE,CAAA;gBAIW,gBAAgB,EAAA,CAAA;sBAAxD,KAAK;uBAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAA;gBAIS,mBAAmB,EAAA,CAAA;sBAA9D,KAAK;uBAAC,EAAE,KAAK,EAAE,oBAAoB,EAAE,CAAA;gBAIN,OAAO,EAAA,CAAA;sBAAtC,KAAK;uBAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAA;gBAII,KAAK,EAAA,CAAA;sBAAlC,KAAK;uBAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAA;;;AC7KzB,MAAM,CAAC,EAAE,kBAAkB,EAAE,CAAC,CAAC;MAiClB,sBAAsB,CAAA;IAKlC,IAA8B,KAAK,CAAC,IAAY,EAAA;QAC/C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;KAC1B;IAED,IAAgC,OAAO,CAAC,MAAc,EAAA;QACrD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;KAC5B;IAED,IAA+B,MAAM,CAAC,KAAa,EAAA;QAClD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;KAC3B;AAMD,IAAA,WAAA,GAAA;AApBQ,QAAA,IAAA,CAAA,MAAM,GAAG,WAAW,CAA8B,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;QAEnF,IAAW,CAAA,WAAA,GAAG,YAAY,EAAsB,CAAC;AAc1D,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,kBAAkB,EAAE,CAAC;QACpC,IAAI,CAAA,IAAA,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAClC,IAAM,CAAA,MAAA,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAGrC,QAAA,kBAAkB,CAAC,CAAC,EAAE,KAAK,EAAE,KAAI;AAChC,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,KAAK,CAAC,cAAc,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AACxE,SAAC,CAAC,CAAC;KACH;8GAzBW,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,EAbxB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,KAAA,EAAA,CAAA,MAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,SAAA,CAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,CAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;AAST,CAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACS,OAAO,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAGL,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAhBlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,2BAA2B;AACrC,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;AAST,CAAA,CAAA;oBACD,OAAO,EAAE,CAAC,OAAO,CAAC;oBAClB,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACjC,iBAAA,CAAA;0EAIS,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAEwB,KAAK,EAAA,CAAA;sBAAlC,KAAK;uBAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAA;gBAIQ,OAAO,EAAA,CAAA;sBAAtC,KAAK;uBAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAA;gBAIK,MAAM,EAAA,CAAA;sBAApC,KAAK;uBAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAA;;;ACrD1B,MAAM,eAAe,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,IAAI,GAAG,GAAG,iBAAiB,GAAG,iBAAiB,CAAC;AAEvG,MAAA,aAAc,SAAQ,KAAK,CAAC,cAAc,CAAA;AACtD,IAAA,WAAA,CAAY,UAA0C,EAAA;QACrD,KAAK,CAAC,UAAU,CAAC,CAAC;QAClB,IAAI,CAAC,eAAe,GAAG,CAAC,MAAM,EAAE,QAAQ,KAAI;AAC3C,YAAA,MAAM,EAAE,QAAQ,EAAE,GAAG,QAAQ,CAAC,YAAY,CAAC;AAC3C,YAAA,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC,OAAO,CACpD,CAAA,UAAA,EAAa,eAAe,CAAA,CAAA,CAAG,EAC/B,CAAA;AAED,QAAA,EAAA,CAAC,QAAQ;kBACN,CAA8D,2DAAA,EAAA,eAAe,CAAG,CAAA,CAAA;kBAChF,CAAa,UAAA,EAAA,eAAe,CAChC,CAAA,CAAA,CAAA;;;;;;;kBAOgB,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,IAAI,GAAG,GAAG,qBAAqB,GAAG,oBAAoB,CAAA;AAC7G,MAAA,CAAA,CACH,CAAC;AACH,SAAC,CAAC;KACF;AACD,CAAA;MAwBY,iBAAiB,CAAA;AAT9B,IAAA,WAAA,GAAA;QAUU,IAAgB,CAAA,gBAAA,GAAG,YAAY,EAAiB,CAAC;AAE1D,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,aAAa,CAAC,EAAE,CAAC,CAAC;AACjC,KAAA;8GAJY,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,EANnB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;AAET,CAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACS,OAAO,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAGL,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAT7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,CAAA;;AAET,CAAA,CAAA;oBACD,OAAO,EAAE,CAAC,OAAO,CAAC;oBAClB,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACjC,iBAAA,CAAA;8BAES,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;;;ACvDP;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"angular-three-soba-materials.mjs","sources":["../../../../libs/soba/materials/src/lib/custom-shader-material.ts","../../../../libs/soba/materials/src/lib/mesh-distort-material.ts","../../../../libs/soba/materials/src/lib/mesh-reflector-material.ts","../../../../libs/soba/materials/src/lib/mesh-refraction-material.ts","../../../../libs/soba/materials/src/lib/mesh-transmission-material.ts","../../../../libs/soba/materials/src/lib/mesh-wobble-material.ts","../../../../libs/soba/materials/src/angular-three-soba-materials.ts"],"sourcesContent":["import {\n\tafterNextRender,\n\tChangeDetectionStrategy,\n\tComponent,\n\tcomputed,\n\tCUSTOM_ELEMENTS_SCHEMA,\n\tElementRef,\n\tinput,\n} from '@angular/core';\nimport { is, NgtAnyRecord, NgtArgs, omit, pick } from 'angular-three';\nimport { injectAutoEffect } from 'ngxtension/auto-effect';\nimport { Material } from 'three';\nimport CustomShaderMaterial from 'three-custom-shader-material/vanilla';\n\n@Component({\n\tselector: 'ngts-custom-shader-material',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-primitive *args=\"[material()]\" [attach]=\"attach()\" [parameters]=\"parameters()\">\n\t\t\t<ng-content />\n\t\t</ngt-primitive>\n\t`,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [NgtArgs],\n})\nexport class NgtsCustomShaderMaterial {\n\tbaseMaterial = input.required<Material | typeof Material | ElementRef<Material>>();\n\tattach = input<string | string[]>('material');\n\toptions = input({} as Omit<ConstructorParameters<typeof CustomShaderMaterial>[0], 'baseMaterial'>);\n\tparameters = omit(this.options, ['fragmentShader', 'vertexShader', 'uniforms', 'cacheKey']);\n\n\tbase = computed(() => {\n\t\tconst baseMaterial = this.baseMaterial();\n\t\treturn is.ref(baseMaterial) ? baseMaterial.nativeElement : baseMaterial;\n\t});\n\n\tprivate fragmentShader = pick(this.options, 'fragmentShader');\n\tprivate vertexShader = pick(this.options, 'vertexShader');\n\tprivate uniforms = pick(this.options, 'uniforms');\n\tprivate cacheKey = pick(this.options, 'cacheKey');\n\n\tmaterial = computed(() => {\n\t\tconst [base, fragmentShader, vertexShader, uniforms, cacheKey] = [\n\t\t\tthis.base(),\n\t\t\tthis.fragmentShader(),\n\t\t\tthis.vertexShader(),\n\t\t\tthis.uniforms(),\n\t\t\tthis.cacheKey(),\n\t\t];\n\n\t\t// NOTE: this is specific to angular-three\n\t\tif (is.instance(base)) {\n\t\t\tdelete (base as NgtAnyRecord)['__ngt__'];\n\t\t\tdelete (base as NgtAnyRecord)['__ngt_renderer__'];\n\t\t}\n\n\t\treturn new CustomShaderMaterial({\n\t\t\tbaseMaterial: base,\n\t\t\tfragmentShader,\n\t\t\tvertexShader,\n\t\t\tuniforms,\n\t\t\tcacheKey,\n\t\t});\n\t});\n\n\tconstructor() {\n\t\tconst autoEffect = injectAutoEffect();\n\t\tafterNextRender(() => {\n\t\t\tautoEffect(() => {\n\t\t\t\tconst material = this.material();\n\t\t\t\treturn () => material.dispose();\n\t\t\t});\n\t\t});\n\t}\n}\n","import { ChangeDetectionStrategy, Component, CUSTOM_ELEMENTS_SCHEMA, input } from '@angular/core';\nimport { MeshDistortMaterial } from '@pmndrs/vanilla';\nimport { injectBeforeRender, NgtArgs, NgtMeshPhysicalMaterial, omit, pick } from 'angular-three';\nimport { MeshDistortMaterialParameters } from 'angular-three-soba/vanilla-exports';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\n\nexport interface NgtsMeshDistortMaterialOptions\n\textends Partial<MeshDistortMaterialParameters>,\n\t\tPartial<NgtMeshPhysicalMaterial> {\n\tspeed: number;\n\tfactor?: number;\n}\n\nconst defaultOptions: NgtsMeshDistortMaterialOptions = {\n\tspeed: 1,\n};\n\n@Component({\n\tselector: 'ngts-mesh-distort-material',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-primitive *args=\"[material]\" [attach]=\"attach()\" [parameters]=\"parameters()\">\n\t\t\t<ng-content />\n\t\t</ngt-primitive>\n\t`,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [NgtArgs],\n})\nexport class NgtsMeshDistortMaterial {\n\tattach = input('material');\n\toptions = input(defaultOptions, { transform: mergeInputs(defaultOptions) });\n\tparameters = omit(this.options, ['speed']);\n\n\tmaterial = new MeshDistortMaterial();\n\n\tprivate speed = pick(this.options, 'speed');\n\n\tconstructor() {\n\t\tinjectBeforeRender(({ clock }) => {\n\t\t\tthis.material.time = clock.getElapsedTime() * this.speed();\n\t\t});\n\t}\n}\n","import {\n\tafterNextRender,\n\tChangeDetectionStrategy,\n\tComponent,\n\tcomputed,\n\tCUSTOM_ELEMENTS_SCHEMA,\n\tDestroyRef,\n\tElementRef,\n\tinject,\n\tinput,\n\tuntracked,\n\tviewChild,\n} from '@angular/core';\nimport {\n\tapplyProps,\n\tgetLocalState,\n\tinjectBeforeRender,\n\tinjectStore,\n\tNgtAnyRecord,\n\tNgtArgs,\n\tNgtMeshStandardMaterial,\n\tomit,\n\tpick,\n} from 'angular-three';\nimport { BlurPass, MeshReflectorMaterial } from 'angular-three-soba/vanilla-exports';\nimport { injectAutoEffect } from 'ngxtension/auto-effect';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport {\n\tDepthFormat,\n\tDepthTexture,\n\tHalfFloatType,\n\tLinearFilter,\n\tMatrix4,\n\tPerspectiveCamera,\n\tPlane,\n\tTexture,\n\tUnsignedShortType,\n\tVector3,\n\tVector4,\n\tWebGLRenderTarget,\n} from 'three';\n\nexport interface NgtsMeshReflectorMaterialOptions extends Partial<NgtMeshStandardMaterial> {\n\tresolution: number;\n\tmixBlur: number;\n\tmixStrength: number;\n\tblur: [number, number] | number;\n\tmirror: number;\n\tminDepthThreshold: number;\n\tmaxDepthThreshold: number;\n\tdepthScale: number;\n\tdepthToBlurRatioBias: number;\n\tdistortion: number;\n\tmixContrast: number;\n\treflectorOffset: number;\n\tdistortionMap?: Texture;\n}\n\nconst defaultOptions: NgtsMeshReflectorMaterialOptions = {\n\tmixBlur: 0,\n\tmixStrength: 1,\n\tresolution: 256,\n\tblur: [0, 0],\n\tminDepthThreshold: 0.9,\n\tmaxDepthThreshold: 1,\n\tdepthScale: 0,\n\tdepthToBlurRatioBias: 0.25,\n\tmirror: 0,\n\tdistortion: 1,\n\tmixContrast: 1,\n\treflectorOffset: 0,\n};\n\n@Component({\n\tselector: 'ngts-mesh-reflector-material',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-primitive #material *args=\"[material()]\" [attach]=\"attach()\">\n\t\t\t<ng-content />\n\t\t</ngt-primitive>\n\t`,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [NgtArgs],\n})\nexport class NgtsMeshReflectorMaterial {\n\tattach = input('material');\n\toptions = input(defaultOptions, { transform: mergeInputs(defaultOptions) });\n\tprivate parameters = omit(this.options, [\n\t\t'distortionMap',\n\t\t'resolution',\n\t\t'mixBlur',\n\t\t'mixStrength',\n\t\t'blur',\n\t\t'minDepthThreshold',\n\t\t'maxDepthThreshold',\n\t\t'depthScale',\n\t\t'depthToBlurRatioBias',\n\t\t'mirror',\n\t\t'distortion',\n\t\t'mixContrast',\n\t\t'reflectorOffset',\n\t]);\n\n\tprivate store = injectStore();\n\tprivate gl = this.store.select('gl');\n\n\tprivate materialRef = viewChild<ElementRef<MeshReflectorMaterial>>('material');\n\n\tprivate reflectOptions = pick(this.options, [\n\t\t'distortionMap',\n\t\t'resolution',\n\t\t'mixBlur',\n\t\t'mixStrength',\n\t\t'blur',\n\t\t'minDepthThreshold',\n\t\t'maxDepthThreshold',\n\t\t'depthScale',\n\t\t'depthToBlurRatioBias',\n\t\t'mirror',\n\t\t'distortion',\n\t\t'mixContrast',\n\t\t'reflectorOffset',\n\t]);\n\n\tprivate blur = pick(this.reflectOptions, 'blur');\n\n\tprivate normalizedBlur = computed(() => {\n\t\tconst blur = this.blur();\n\t\treturn Array.isArray(blur) ? blur : [blur, blur];\n\t});\n\tprivate hasBlur = computed(() => this.normalizedBlur()[0] + this.normalizedBlur()[1] > 0);\n\n\tprivate reflectorPlane = new Plane();\n\tprivate normal = new Vector3();\n\tprivate reflectorWorldPosition = new Vector3();\n\tprivate cameraWorldPosition = new Vector3();\n\tprivate rotationMatrix = new Matrix4();\n\tprivate lookAtPosition = new Vector3(0, 0, -1);\n\tprivate clipPlane = new Vector4();\n\tprivate view = new Vector3();\n\tprivate target = new Vector3();\n\tprivate q = new Vector4();\n\tprivate textureMatrix = new Matrix4();\n\tprivate virtualCamera = new PerspectiveCamera();\n\n\tprivate reflectState = computed(() => {\n\t\tconst [\n\t\t\tgl,\n\t\t\t{\n\t\t\t\tresolution,\n\t\t\t\tminDepthThreshold,\n\t\t\t\tmaxDepthThreshold,\n\t\t\t\tdepthScale,\n\t\t\t\tdepthToBlurRatioBias,\n\t\t\t\tmirror,\n\t\t\t\tmixBlur,\n\t\t\t\tmixStrength,\n\t\t\t\tdistortion,\n\t\t\t\tdistortionMap,\n\t\t\t\tmixContrast,\n\t\t\t},\n\t\t\tblur,\n\t\t\thasBlur,\n\t\t] = [this.gl(), this.reflectOptions(), this.normalizedBlur(), this.hasBlur()];\n\n\t\tconst renderTargetParameters = {\n\t\t\tminFilter: LinearFilter,\n\t\t\tmagFilter: LinearFilter,\n\t\t\ttype: HalfFloatType,\n\t\t};\n\n\t\tconst fbo1 = new WebGLRenderTarget(resolution, resolution, renderTargetParameters);\n\t\tfbo1.depthBuffer = true;\n\t\tfbo1.depthTexture = new DepthTexture(resolution, resolution);\n\t\tfbo1.depthTexture.format = DepthFormat;\n\t\tfbo1.depthTexture.type = UnsignedShortType;\n\t\tconst fbo2 = new WebGLRenderTarget(resolution, resolution, renderTargetParameters);\n\n\t\tconst blurPass = new BlurPass({\n\t\t\tgl,\n\t\t\tresolution,\n\t\t\twidth: blur[0],\n\t\t\theight: blur[1],\n\t\t\tminDepthThreshold,\n\t\t\tmaxDepthThreshold,\n\t\t\tdepthScale,\n\t\t\tdepthToBlurRatioBias,\n\t\t});\n\n\t\tconst defines: NgtAnyRecord = {};\n\n\t\tif (hasBlur) {\n\t\t\tdefines['USE_BLUR'] = '';\n\t\t}\n\n\t\tif (depthScale > 0) {\n\t\t\tdefines['USE_DEPTH'] = '';\n\t\t}\n\n\t\tif (distortionMap) {\n\t\t\tdefines['USE_DISTORTION'] = '';\n\t\t}\n\n\t\tconst reflectorParameters = {\n\t\t\tmirror,\n\t\t\ttextureMatrix: this.textureMatrix,\n\t\t\tmixBlur,\n\t\t\ttDiffuse: fbo1.texture,\n\t\t\ttDepth: fbo1.depthTexture,\n\t\t\ttDiffuseBlur: fbo2.texture,\n\t\t\thasBlur,\n\t\t\tmixStrength,\n\t\t\tminDepthThreshold,\n\t\t\tmaxDepthThreshold,\n\t\t\tdepthScale,\n\t\t\tdepthToBlurRatioBias,\n\t\t\tdistortion,\n\t\t\tdistortionMap,\n\t\t\tmixContrast,\n\t\t\tdefines,\n\t\t};\n\n\t\treturn { fbo1, fbo2, blurPass, reflectorParameters };\n\t});\n\n\tprivate definesKey = computed(() => {\n\t\tconst defines = this.reflectState().reflectorParameters.defines;\n\t\treturn Object.entries(defines).reduce((acc, [key, value]) => (value != null ? `${acc} ${key}` : acc), '');\n\t});\n\n\tmaterial = computed(() => {\n\t\tconst prevMaterial = untracked(this.materialRef)?.nativeElement;\n\n\t\tif (prevMaterial) {\n\t\t\tprevMaterial.dispose();\n\t\t\tdelete (prevMaterial as NgtAnyRecord)['__ngt__'];\n\t\t\tdelete (prevMaterial as NgtAnyRecord)['__ngt_renderer__'];\n\t\t}\n\n\t\t// tracking defines key so that the material is recreated when the defines change\n\t\tthis.definesKey();\n\t\treturn new MeshReflectorMaterial();\n\t});\n\n\tconstructor() {\n\t\tconst autoEffect = injectAutoEffect();\n\n\t\tafterNextRender(() => {\n\t\t\tautoEffect(() => {\n\t\t\t\tconst material = this.materialRef()?.nativeElement;\n\t\t\t\tif (!material) return;\n\t\t\t\tconst { reflectorParameters } = this.reflectState();\n\t\t\t\tapplyProps(material, { ...reflectorParameters, ...this.parameters() });\n\t\t\t});\n\t\t});\n\n\t\tinject(DestroyRef).onDestroy(() => {\n\t\t\tconst material = this.materialRef()?.nativeElement;\n\t\t\tif (material) {\n\t\t\t\tmaterial.dispose();\n\t\t\t\tdelete (material as NgtAnyRecord)['__ngt__'];\n\t\t\t\tdelete (material as NgtAnyRecord)['__ngt_renderer__'];\n\t\t\t}\n\t\t});\n\n\t\tinjectBeforeRender(({ gl, scene }) => {\n\t\t\tconst material = this.materialRef()?.nativeElement;\n\t\t\tif (!material) return;\n\n\t\t\tconst localState = getLocalState(material);\n\t\t\tif (!localState) return;\n\n\t\t\tconst parent = Reflect.get(material, 'parent') ?? untracked(localState.parent);\n\t\t\tif (!parent) return;\n\n\t\t\tconst { fbo1, fbo2, blurPass } = this.reflectState();\n\t\t\tconst hasBlur = this.hasBlur();\n\n\t\t\tparent.visible = false;\n\t\t\tconst currentXrEnabled = gl.xr.enabled;\n\t\t\tconst currentShadowAutoUpdate = gl.shadowMap.autoUpdate;\n\t\t\tthis.beforeRender();\n\t\t\tgl.xr.enabled = false;\n\t\t\tgl.shadowMap.autoUpdate = false;\n\t\t\tgl.setRenderTarget(fbo1);\n\t\t\tgl.state.buffers.depth.setMask(true);\n\t\t\tif (!gl.autoClear) gl.clear();\n\t\t\tgl.render(scene, this.virtualCamera);\n\t\t\tif (hasBlur) blurPass.render(gl, fbo1, fbo2);\n\t\t\tgl.xr.enabled = currentXrEnabled;\n\t\t\tgl.shadowMap.autoUpdate = currentShadowAutoUpdate;\n\t\t\tparent.visible = true;\n\t\t\tgl.setRenderTarget(null);\n\t\t});\n\t}\n\n\tprivate beforeRender() {\n\t\tconst material = this.materialRef()?.nativeElement;\n\t\tif (!material) return;\n\n\t\tconst localState = getLocalState(material);\n\t\tif (!localState) return;\n\n\t\tconst parent = Reflect.get(material, 'parent') ?? untracked(localState.parent);\n\t\tif (!parent) return;\n\n\t\tconst { camera } = this.store.snapshot;\n\t\tconst { reflectorOffset } = untracked(this.reflectOptions);\n\n\t\tthis.reflectorWorldPosition.setFromMatrixPosition(parent.matrixWorld);\n\t\tthis.cameraWorldPosition.setFromMatrixPosition(camera.matrixWorld);\n\t\tthis.rotationMatrix.extractRotation(parent.matrixWorld);\n\t\tthis.normal.set(0, 0, 1);\n\t\tthis.normal.applyMatrix4(this.rotationMatrix);\n\t\tthis.reflectorWorldPosition.addScaledVector(this.normal, reflectorOffset);\n\t\tthis.view.subVectors(this.reflectorWorldPosition, this.cameraWorldPosition);\n\t\t// Avoid rendering when reflector is facing away\n\t\tif (this.view.dot(this.normal) > 0) return;\n\t\tthis.view.reflect(this.normal).negate();\n\t\tthis.view.add(this.reflectorWorldPosition);\n\t\tthis.rotationMatrix.extractRotation(camera.matrixWorld);\n\t\tthis.lookAtPosition.set(0, 0, -1);\n\t\tthis.lookAtPosition.applyMatrix4(this.rotationMatrix);\n\t\tthis.lookAtPosition.add(this.cameraWorldPosition);\n\t\tthis.target.subVectors(this.reflectorWorldPosition, this.lookAtPosition);\n\t\tthis.target.reflect(this.normal).negate();\n\t\tthis.target.add(this.reflectorWorldPosition);\n\t\tthis.virtualCamera.position.copy(this.view);\n\t\tthis.virtualCamera.up.set(0, 1, 0);\n\t\tthis.virtualCamera.up.applyMatrix4(this.rotationMatrix);\n\t\tthis.virtualCamera.up.reflect(this.normal);\n\t\tthis.virtualCamera.lookAt(this.target);\n\t\tthis.virtualCamera.far = camera.far; // Used in WebGLBackground\n\t\tthis.virtualCamera.updateMatrixWorld();\n\t\tthis.virtualCamera.projectionMatrix.copy(camera.projectionMatrix);\n\t\t// Update the texture matrix\n\t\tthis.textureMatrix.set(0.5, 0.0, 0.0, 0.5, 0.0, 0.5, 0.0, 0.5, 0.0, 0.0, 0.5, 0.5, 0.0, 0.0, 0.0, 1.0);\n\t\tthis.textureMatrix.multiply(this.virtualCamera.projectionMatrix);\n\t\tthis.textureMatrix.multiply(this.virtualCamera.matrixWorldInverse);\n\t\tthis.textureMatrix.multiply(parent.matrixWorld);\n\t\t// Now update projection matrix with new clip plane, implementing code from: http://www.terathon.com/code/oblique.html\n\t\t// Paper explaining this technique: http://www.terathon.com/lengyel/Lengyel-Oblique.pdf\n\t\tthis.reflectorPlane.setFromNormalAndCoplanarPoint(this.normal, this.reflectorWorldPosition);\n\t\tthis.reflectorPlane.applyMatrix4(this.virtualCamera.matrixWorldInverse);\n\t\tthis.clipPlane.set(\n\t\t\tthis.reflectorPlane.normal.x,\n\t\t\tthis.reflectorPlane.normal.y,\n\t\t\tthis.reflectorPlane.normal.z,\n\t\t\tthis.reflectorPlane.constant,\n\t\t);\n\t\tconst projectionMatrix = this.virtualCamera.projectionMatrix;\n\t\tthis.q.x = (Math.sign(this.clipPlane.x) + projectionMatrix.elements[8]) / projectionMatrix.elements[0];\n\t\tthis.q.y = (Math.sign(this.clipPlane.y) + projectionMatrix.elements[9]) / projectionMatrix.elements[5];\n\t\tthis.q.z = -1.0;\n\t\tthis.q.w = (1.0 + projectionMatrix.elements[10]) / projectionMatrix.elements[14];\n\t\t// Calculate the scaled plane vector\n\t\tthis.clipPlane.multiplyScalar(2.0 / this.clipPlane.dot(this.q));\n\t\t// Replacing the third row of the projection matrix\n\t\tprojectionMatrix.elements[2] = this.clipPlane.x;\n\t\tprojectionMatrix.elements[6] = this.clipPlane.y;\n\t\tprojectionMatrix.elements[10] = this.clipPlane.z + 1.0;\n\t\tprojectionMatrix.elements[14] = this.clipPlane.w;\n\t}\n}\n","import {\n\tafterNextRender,\n\tChangeDetectionStrategy,\n\tComponent,\n\tcomputed,\n\tCUSTOM_ELEMENTS_SCHEMA,\n\tDestroyRef,\n\tElementRef,\n\tinject,\n\tinput,\n\tuntracked,\n\tviewChild,\n} from '@angular/core';\nimport {\n\tgetLocalState,\n\tinjectBeforeRender,\n\tinjectStore,\n\tNgtAnyRecord,\n\tNgtArgs,\n\tNgtShaderMaterial,\n\tomit,\n\tpick,\n} from 'angular-three';\nimport { MeshRefractionMaterial } from 'angular-three-soba/shaders';\nimport { injectAutoEffect } from 'ngxtension/auto-effect';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport { ColorRepresentation, CubeTexture, Mesh, Texture } from 'three';\nimport { MeshBVH, MeshBVHUniformStruct, SAH } from 'three-mesh-bvh';\n\nexport interface NgtsMeshRefractionMaterialOptions extends Partial<NgtShaderMaterial> {\n\t/** Number of ray-cast bounces, it can be expensive to have too many, 2 */\n\tbounces: number;\n\t/** Refraction index, 2.4 */\n\tior: number;\n\t/** Fresnel (strip light), 0 */\n\tfresnel: number;\n\t/** RGB shift intensity, can be expensive, 0 */\n\taberrationStrength: number;\n\t/** Color, white */\n\tcolor: ColorRepresentation;\n\t/** If this is on it uses fewer ray casts for the RGB shift sacrificing physical accuracy, true */\n\tfastChroma: boolean;\n}\n\nconst defaultOptions: NgtsMeshRefractionMaterialOptions = {\n\tbounces: 2,\n\tior: 2.4,\n\tfresnel: 0,\n\taberrationStrength: 0,\n\tcolor: 'white',\n\tfastChroma: true,\n};\n\nfunction isCubeTexture(def: CubeTexture | Texture): def is CubeTexture {\n\treturn def && (def as CubeTexture).isCubeTexture;\n}\n\n@Component({\n\tselector: 'ngts-mesh-refraction-material',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-primitive\n\t\t\t*args=\"[material()]\"\n\t\t\t#material\n\t\t\t[attach]=\"attach()\"\n\t\t\t[parameters]=\"parameters()\"\n\t\t\t[envMap]=\"envMap()\"\n\t\t\t[aberrationStrength]=\"aberrationStrength()\"\n\t\t\t[resolution]=\"resolution()\"\n\t\t\t[defines]=\"defines()\"\n\t\t>\n\t\t\t<ng-content />\n\t\t</ngt-primitive>\n\t`,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [NgtArgs],\n})\nexport class NgtsMeshRefractionMaterial {\n\tenvMap = input.required<CubeTexture | Texture>();\n\tattach = input('material');\n\toptions = input(defaultOptions, { transform: mergeInputs(defaultOptions) });\n\tparameters = omit(this.options, ['fastChroma', 'aberrationStrength']);\n\n\tprivate fastChroma = pick(this.options, 'fastChroma');\n\taberrationStrength = pick(this.options, 'aberrationStrength');\n\n\tmaterialRef = viewChild<ElementRef<InstanceType<typeof MeshRefractionMaterial>>>('material');\n\n\tprivate store = injectStore();\n\tprivate size = this.store.select('size');\n\n\tresolution = computed(() => [this.size().width, this.size().height]);\n\tdefines = computed(() => {\n\t\tconst temp = {} as { [key: string]: string };\n\t\tconst [envMap, aberrationStrength, fastChroma] = [\n\t\t\tuntracked(this.envMap),\n\t\t\tthis.aberrationStrength(),\n\t\t\tthis.fastChroma(),\n\t\t];\n\t\tconst isCubeMap = isCubeTexture(envMap);\n\n\t\tconst w = (isCubeMap ? envMap.image[0]?.width : envMap.image.width) ?? 1024;\n\t\tconst cubeSize = w / 4;\n\t\tconst _lodMax = Math.floor(Math.log2(cubeSize));\n\t\tconst _cubeSize = Math.pow(2, _lodMax);\n\t\tconst width = 3 * Math.max(_cubeSize, 16 * 7);\n\t\tconst height = 4 * _cubeSize;\n\n\t\tif (isCubeMap) temp['ENVMAP_TYPE_CUBEM'] = '';\n\t\ttemp['CUBEUV_TEXEL_WIDTH'] = `${1.0 / width}`;\n\t\ttemp['CUBEUV_TEXEL_HEIGHT'] = `${1.0 / height}`;\n\t\ttemp['CUBEUV_MAX_MIP'] = `${_lodMax}.0`;\n\n\t\t// Add defines from chromatic aberration\n\t\tif (aberrationStrength > 0) temp['CHROMATIC_ABERRATIONS'] = '';\n\t\tif (fastChroma) temp['FAST_CHROMA'] = '';\n\n\t\treturn temp;\n\t});\n\n\tprivate defineKeys = computed(() => {\n\t\treturn Object.keys(this.defines()).join(' ');\n\t});\n\n\tmaterial = computed(() => {\n\t\tconst prevMaterial = untracked(this.materialRef)?.nativeElement;\n\n\t\tif (prevMaterial) {\n\t\t\tprevMaterial.dispose();\n\t\t\tdelete (prevMaterial as NgtAnyRecord)['__ngt__'];\n\t\t\tdelete (prevMaterial as NgtAnyRecord)['__ngt_renderer__'];\n\t\t}\n\n\t\t// track by this.defineKeys\n\t\tthis.defineKeys();\n\t\treturn new MeshRefractionMaterial();\n\t});\n\n\tconstructor() {\n\t\tconst autoEffect = injectAutoEffect();\n\n\t\tafterNextRender(() => {\n\t\t\tautoEffect(() => {\n\t\t\t\tconst material = this.materialRef()?.nativeElement;\n\t\t\t\tif (!material) return;\n\n\t\t\t\tconst localState = getLocalState(material);\n\t\t\t\tif (!localState) return;\n\n\t\t\t\tconst parent = untracked(localState.parent);\n\t\t\t\tconst geometry = (parent as Mesh).geometry;\n\t\t\t\tif (geometry) {\n\t\t\t\t\t(material as any).bvh = new MeshBVHUniformStruct();\n\t\t\t\t\t(material as any).bvh.updateFrom(new MeshBVH(geometry.clone().toNonIndexed(), { strategy: SAH }));\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\n\t\tinjectBeforeRender(({ camera }) => {\n\t\t\tconst material = this.materialRef()?.nativeElement;\n\t\t\tif (material) {\n\t\t\t\t(material as any).viewMatrixInverse = camera.matrixWorld;\n\t\t\t\t(material as any).projectionMatrixInverse = camera.projectionMatrixInverse;\n\t\t\t}\n\t\t});\n\n\t\tinject(DestroyRef).onDestroy(() => {\n\t\t\tconst material = this.materialRef()?.nativeElement;\n\t\t\tif (material) {\n\t\t\t\tmaterial.dispose();\n\t\t\t\tdelete (material as NgtAnyRecord)['__ngt__'];\n\t\t\t\tdelete (material as NgtAnyRecord)['__ngt_renderer__'];\n\t\t\t}\n\t\t});\n\t}\n}\n","import {\n\tChangeDetectionStrategy,\n\tComponent,\n\tcomputed,\n\tCUSTOM_ELEMENTS_SCHEMA,\n\tDestroyRef,\n\tElementRef,\n\tinject,\n\tinput,\n\tuntracked,\n\tviewChild,\n} from '@angular/core';\nimport {\n\tgetLocalState,\n\tinjectBeforeRender,\n\tNgtAnyRecord,\n\tNgtArgs,\n\tNgtMeshPhysicalMaterial,\n\tomit,\n\tpick,\n} from 'angular-three';\nimport { injectFBO } from 'angular-three-soba/misc';\nimport { MeshDiscardMaterial, MeshTransmissionMaterial } from 'angular-three-soba/vanilla-exports';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport { BackSide, Color, FrontSide, Mesh, NoToneMapping, Texture, ToneMapping } from 'three';\n\ntype MeshTransmissionMaterialOptions = ConstructorParameters<typeof MeshTransmissionMaterial>[0];\n\nexport type NgtsMeshTransmissionMaterialOptions = Partial<NgtMeshPhysicalMaterial> &\n\tOmit<MeshTransmissionMaterialOptions, 'buffer' | 'anisotropicBlur'> & {\n\t\tanisotropicBlur?: number;\n\t\tbuffer?: Texture;\n\t\t/** transmissionSampler, you can use the threejs transmission sampler texture that is\n\t\t * generated once for all transmissive materials. The upside is that it can be faster if you\n\t\t * use multiple MeshPhysical and Transmission materials, the downside is that transmissive materials\n\t\t * using this can't see other transparent or transmissive objects, default: false */\n\t\ttransmissionSampler: boolean;\n\t\t/** Render the backside of the material (more cost, better results), default: false */\n\t\tbackside: boolean;\n\t\t/** Backside thickness (when backside is true), default: 0 */\n\t\tbacksideThickness: number;\n\t\tbacksideEnvMapIntensity: number;\n\t\t/** Resolution of the local buffer, default: undefined (fullscreen) */\n\t\tresolution?: number;\n\t\t/** Resolution of the local buffer for backfaces, default: undefined (fullscreen) */\n\t\tbacksideResolution?: number;\n\t\t/** Refraction samples, default: 6 */\n\t\tsamples: number;\n\t\t/** Buffer scene background (can be a texture, a cubetexture or a color), default: null */\n\t\tbackground?: Texture | Color;\n\t};\n\nconst defaultOptions: NgtsMeshTransmissionMaterialOptions = {\n\ttransmissionSampler: false,\n\tbackside: false,\n\tside: FrontSide,\n\ttransmission: 1,\n\tthickness: 0,\n\tbacksideThickness: 0,\n\tbacksideEnvMapIntensity: 1,\n\tsamples: 10,\n};\n\n@Component({\n\tselector: 'ngts-mesh-transmission-material',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-primitive\n\t\t\t*args=\"[material()]\"\n\t\t\t#material\n\t\t\t[attach]=\"attach()\"\n\t\t\t[parameters]=\"parameters()\"\n\t\t\t[_transmission]=\"transmission()\"\n\t\t\t[transmission]=\"transmissionSampler() ? transmission() : 0\"\n\t\t\t[buffer]=\"bufferTexture()\"\n\t\t\t[anisotropicBlur]=\"anisotropicBlurOption()\"\n\t\t\t[side]=\"side()\"\n\t\t\t[thickness]=\"thickness()\"\n\t\t>\n\t\t\t<ng-content />\n\t\t</ngt-primitive>\n\t`,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [NgtArgs],\n})\nexport class NgtsMeshTransmissionMaterial {\n\tattach = input('material');\n\toptions = input(defaultOptions, { transform: mergeInputs(defaultOptions) });\n\tparameters = omit(this.options, [\n\t\t'buffer',\n\t\t'transmissionSampler',\n\t\t'backside',\n\t\t'side',\n\t\t'transmission',\n\t\t'thickness',\n\t\t'backsideThickness',\n\t\t'backsideEnvMapIntensity',\n\t\t'samples',\n\t\t'resolution',\n\t\t'backsideResolution',\n\t\t'background',\n\t\t'anisotropy',\n\t\t'anisotropicBlur',\n\t]);\n\n\tprivate resolution = pick(this.options, 'resolution');\n\tprivate backsideResolution = pick(this.options, 'backsideResolution');\n\tprivate samples = pick(this.options, 'samples');\n\tprivate buffer = pick(this.options, 'buffer');\n\tprivate anisotropy = pick(this.options, 'anisotropy');\n\tprivate anisotropicBlur = pick(this.options, 'anisotropicBlur');\n\tprivate background = pick(this.options, 'background');\n\tprivate backside = pick(this.options, 'backside');\n\tprivate backsideThickness = pick(this.options, 'backsideThickness');\n\tprivate backsideEnvMapIntensity = pick(this.options, 'backsideEnvMapIntensity');\n\n\ttransmissionSampler = pick(this.options, 'transmissionSampler');\n\ttransmission = pick(this.options, 'transmission');\n\tthickness = pick(this.options, 'thickness');\n\tside = pick(this.options, 'side');\n\n\tmaterialRef = viewChild<ElementRef<MeshTransmissionMaterial & MeshTransmissionMaterialOptions>>('material');\n\n\tprivate backResolution = computed(() => this.backsideResolution() || this.resolution());\n\n\tprivate fboBack = injectFBO(() => ({ width: this.backResolution() }));\n\tprivate fboMain = injectFBO(() => ({ width: this.resolution() }));\n\n\tbufferTexture = computed(() => this.buffer() || this.fboMain().texture);\n\tanisotropicBlurOption = computed(() => this.anisotropicBlur() || this.anisotropy());\n\n\tprivate discardMaterial = new MeshDiscardMaterial();\n\n\tmaterial = computed(() => {\n\t\tconst previousMaterial = untracked(this.materialRef)?.nativeElement;\n\n\t\tif (previousMaterial) {\n\t\t\tpreviousMaterial.dispose();\n\t\t\tdelete (previousMaterial as NgtAnyRecord)['__ngt__'];\n\t\t\tdelete (previousMaterial as NgtAnyRecord)['__ngt_renderer__'];\n\t\t}\n\n\t\tconst [samples, transmissionSampler] = [this.samples(), this.transmissionSampler()];\n\t\treturn new MeshTransmissionMaterial({ samples, transmissionSampler });\n\t});\n\n\tconstructor() {\n\t\tinject(DestroyRef).onDestroy(() => {\n\t\t\tconst material = this.materialRef()?.nativeElement;\n\t\t\tif (material) {\n\t\t\t\tmaterial.dispose();\n\t\t\t\tdelete (material as NgtAnyRecord)['__ngt__'];\n\t\t\t\tdelete (material as NgtAnyRecord)['__ngt_renderer__'];\n\t\t\t}\n\t\t});\n\n\t\tlet oldBg: Texture | Color | null;\n\t\tlet oldEnvMapIntensity: number | undefined;\n\t\tlet oldTone: ToneMapping | undefined;\n\t\tlet parent: Mesh | undefined;\n\t\tinjectBeforeRender(({ clock, gl, scene, camera }) => {\n\t\t\tconst material = this.materialRef()?.nativeElement;\n\t\t\tif (!material) return;\n\n\t\t\tconst [\n\t\t\t\tfboMain,\n\t\t\t\tfboBack,\n\t\t\t\ttransmissionSampler,\n\t\t\t\tbackground,\n\t\t\t\tbackside,\n\t\t\t\tbacksideThickness,\n\t\t\t\tbacksideEnvMapIntensity,\n\t\t\t\tthickness,\n\t\t\t\tside,\n\t\t\t] = [\n\t\t\t\tthis.fboMain(),\n\t\t\t\tthis.fboBack(),\n\t\t\t\tthis.transmissionSampler(),\n\t\t\t\tthis.background(),\n\t\t\t\tthis.backside(),\n\t\t\t\tthis.backsideThickness(),\n\t\t\t\tthis.backsideEnvMapIntensity(),\n\t\t\t\tthis.thickness(),\n\t\t\t\tthis.side(),\n\t\t\t];\n\n\t\t\tmaterial.time = clock.getElapsedTime();\n\t\t\t// Render only if the buffer matches the built-in and no transmission sampler is set\n\t\t\t// @ts-ignore\n\t\t\tif (material.buffer === fboMain.texture && !transmissionSampler) {\n\t\t\t\tparent = getLocalState(material)?.parent() as Mesh;\n\n\t\t\t\tif (parent) {\n\t\t\t\t\t// Save defaults\n\t\t\t\t\toldTone = gl.toneMapping;\n\t\t\t\t\toldBg = scene.background;\n\t\t\t\t\toldEnvMapIntensity = material.envMapIntensity;\n\n\t\t\t\t\t// Switch off tonemapping lest it double tone maps\n\t\t\t\t\t// Save the current background and set the HDR as the new BG\n\t\t\t\t\t// Use discardmaterial, the parent will be invisible, but it's shadows will still be cast\n\t\t\t\t\tgl.toneMapping = NoToneMapping;\n\t\t\t\t\tif (background) scene.background = background;\n\t\t\t\t\tparent.material = this.discardMaterial;\n\n\t\t\t\t\tif (backside) {\n\t\t\t\t\t\t// Render into the backside buffer\n\t\t\t\t\t\tgl.setRenderTarget(fboBack);\n\t\t\t\t\t\tgl.render(scene, camera);\n\t\t\t\t\t\t// And now prepare the material for the main render using the backside buffer\n\t\t\t\t\t\tparent.material = material;\n\t\t\t\t\t\tObject.assign(parent.material, {\n\t\t\t\t\t\t\tbuffer: fboBack.texture,\n\t\t\t\t\t\t\tthickness: backsideThickness,\n\t\t\t\t\t\t\tside: BackSide,\n\t\t\t\t\t\t\tenvMapIntensity: backsideEnvMapIntensity,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\t// Render into the main buffer\n\t\t\t\t\tgl.setRenderTarget(fboMain);\n\t\t\t\t\tgl.render(scene, camera);\n\n\t\t\t\t\tparent.material = material;\n\t\t\t\t\tObject.assign(parent.material, {\n\t\t\t\t\t\tbuffer: fboMain.texture,\n\t\t\t\t\t\tthickness,\n\t\t\t\t\t\tside,\n\t\t\t\t\t\tenvMapIntensity: oldEnvMapIntensity,\n\t\t\t\t\t});\n\n\t\t\t\t\t// Set old state back\n\t\t\t\t\tscene.background = oldBg;\n\t\t\t\t\tgl.setRenderTarget(null);\n\t\t\t\t\tgl.toneMapping = oldTone;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n}\n","import { ChangeDetectionStrategy, Component, computed, CUSTOM_ELEMENTS_SCHEMA, input } from '@angular/core';\nimport { injectBeforeRender, NgtArgs, NgtMeshStandardMaterial, omit } from 'angular-three';\nimport { MeshWobbleMaterial, MeshWobbleMaterialParameters } from 'angular-three-soba/vanilla-exports';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\n\nexport interface NgtsMeshWobbleMaterialOptions extends MeshWobbleMaterialParameters, Partial<NgtMeshStandardMaterial> {\n\tspeed: number;\n}\n\nconst defaultOptions: NgtsMeshWobbleMaterialOptions = {\n\tspeed: 1,\n};\n\n@Component({\n\tselector: 'ngts-mesh-wobble-material',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-primitive *args=\"[material()]\" [parameters]=\"parameters()\" [attach]=\"attach()\">\n\t\t\t<ng-content />\n\t\t</ngt-primitive>\n\t`,\n\timports: [NgtArgs],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgtsMeshWobbleMaterial {\n\tattach = input('material');\n\toptions = input(defaultOptions, { transform: mergeInputs(defaultOptions) });\n\tparameters = omit(this.options, ['speed']);\n\n\tmaterial = computed(() => new MeshWobbleMaterial());\n\n\tconstructor() {\n\t\tinjectBeforeRender(({ clock }) => {\n\t\t\tconst material = this.material();\n\t\t\tmaterial.time = clock.elapsedTime * this.options().speed;\n\t\t});\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["defaultOptions"],"mappings":"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"}
|