angular-three-soba 1.13.0 → 1.14.1

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.
Files changed (257) hide show
  1. package/abstractions/lib/billboard/billboard.d.ts +1 -1
  2. package/abstractions/lib/catmull-rom-line/catmull-rom-line.d.ts +1 -1
  3. package/abstractions/lib/cubic-bezier-line/cubic-bezier-line.d.ts +1 -1
  4. package/abstractions/lib/edges/edges.d.ts +2 -2
  5. package/abstractions/lib/gizmo-helper/gizmo-helper.d.ts +1 -1
  6. package/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube-edge.d.ts +1 -1
  7. package/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube-face.d.ts +2 -2
  8. package/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube-inputs.d.ts +1 -1
  9. package/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube.d.ts +1 -1
  10. package/abstractions/lib/gizmo-helper/gizmo-viewport/gizmo-viewport-axis.d.ts +2 -2
  11. package/abstractions/lib/gizmo-helper/gizmo-viewport/gizmo-viewport.d.ts +1 -1
  12. package/abstractions/lib/line/line-input.d.ts +1 -1
  13. package/abstractions/lib/line/line.d.ts +1 -1
  14. package/abstractions/lib/quadratic-bezier-line/quadratic-bezier-line.d.ts +1 -1
  15. package/abstractions/lib/text/text.d.ts +1 -1
  16. package/abstractions/lib/text-3d/text-3d.d.ts +1 -1
  17. package/cameras/lib/camera/camera-content.d.ts +1 -1
  18. package/cameras/lib/camera/camera.d.ts +1 -1
  19. package/cameras/lib/cube-camera/cube-camera.d.ts +1 -1
  20. package/cameras/lib/orthographic-camera/orthographic-camera.d.ts +1 -1
  21. package/controls/lib/orbit-controls/orbit-controls.d.ts +1 -1
  22. package/esm2022/abstractions/lib/billboard/billboard.mjs +74 -0
  23. package/esm2022/abstractions/lib/catmull-rom-line/catmull-rom-line.mjs +120 -0
  24. package/esm2022/abstractions/lib/cubic-bezier-line/cubic-bezier-line.mjs +99 -0
  25. package/esm2022/abstractions/lib/edges/edges.mjs +96 -0
  26. package/esm2022/abstractions/lib/gizmo-helper/gizmo-helper.mjs +213 -0
  27. package/esm2022/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube-edge.mjs +92 -0
  28. package/esm2022/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube-face.mjs +184 -0
  29. package/esm2022/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube-inputs.mjs +46 -0
  30. package/{esm2020 → esm2022}/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube.mjs +8 -7
  31. package/esm2022/abstractions/lib/gizmo-helper/gizmo-viewport/gizmo-viewport-axis.mjs +195 -0
  32. package/{esm2020 → esm2022}/abstractions/lib/gizmo-helper/gizmo-viewport/gizmo-viewport.mjs +8 -7
  33. package/esm2022/abstractions/lib/line/line-input.mjs +76 -0
  34. package/esm2022/abstractions/lib/line/line.mjs +133 -0
  35. package/esm2022/abstractions/lib/quadratic-bezier-line/quadratic-bezier-line.mjs +128 -0
  36. package/esm2022/abstractions/lib/text/text.mjs +115 -0
  37. package/esm2022/abstractions/lib/text-3d/text-3d.mjs +145 -0
  38. package/esm2022/cameras/lib/camera/camera-content.mjs +21 -0
  39. package/esm2022/cameras/lib/camera/camera.mjs +75 -0
  40. package/esm2022/cameras/lib/cube-camera/cube-camera.mjs +131 -0
  41. package/esm2022/cameras/lib/orthographic-camera/orthographic-camera.mjs +93 -0
  42. package/{esm2020 → esm2022}/cameras/lib/perspective-camera/perspective-camera.mjs +8 -7
  43. package/esm2022/controls/lib/orbit-controls/orbit-controls.mjs +147 -0
  44. package/{esm2020 → esm2022}/loaders/lib/cube-texture-loader/cube-texture-loader.mjs +3 -3
  45. package/esm2022/loaders/lib/loader/loader.mjs +134 -0
  46. package/esm2022/materials/lib/mesh-distort-material/mesh-distort-material.mjs +75 -0
  47. package/esm2022/materials/lib/mesh-reflector-material/mesh-reflector-material.mjs +328 -0
  48. package/esm2022/materials/lib/mesh-refraction-material/mesh-refraction-material.mjs +158 -0
  49. package/esm2022/materials/lib/mesh-transmission-material/mesh-transmission-material.mjs +238 -0
  50. package/esm2022/materials/lib/mesh-wobble-material/mesh-wobble-material.mjs +68 -0
  51. package/esm2022/misc/lib/bake-shadows/bake-shadows.mjs +26 -0
  52. package/esm2022/performance/lib/adaptive/adaptive-dpr.mjs +47 -0
  53. package/esm2022/performance/lib/adaptive/adaptive-events.mjs +37 -0
  54. package/esm2022/performance/lib/detailed/detailed.mjs +54 -0
  55. package/esm2022/performance/lib/stats/stats.mjs +80 -0
  56. package/esm2022/shaders/lib/blur-pass/blur-pass.mjs +61 -0
  57. package/esm2022/staging/lib/accumulative-shadows/accumulative-shadows.mjs +249 -0
  58. package/esm2022/staging/lib/accumulative-shadows/randomized-lights.mjs +201 -0
  59. package/{esm2020 → esm2022}/staging/lib/bounds/bounds.mjs +8 -7
  60. package/esm2022/staging/lib/camera-shake/camera-shake.mjs +122 -0
  61. package/esm2022/staging/lib/caustics/caustics.mjs +364 -0
  62. package/esm2022/staging/lib/center/center.mjs +143 -0
  63. package/esm2022/staging/lib/cloud/cloud.mjs +160 -0
  64. package/esm2022/staging/lib/contact-shadows/contact-shadows.mjs +228 -0
  65. package/esm2022/staging/lib/environment/environment-cube.mjs +41 -0
  66. package/esm2022/staging/lib/environment/environment-ground.mjs +67 -0
  67. package/esm2022/staging/lib/environment/environment-inputs.mjs +87 -0
  68. package/esm2022/staging/lib/environment/environment-map.mjs +39 -0
  69. package/esm2022/staging/lib/environment/environment-portal.mjs +111 -0
  70. package/{esm2020 → esm2022}/staging/lib/environment/environment.mjs +13 -11
  71. package/esm2022/staging/lib/float/float.mjs +77 -0
  72. package/esm2022/staging/lib/sky/sky.mjs +109 -0
  73. package/esm2022/staging/lib/sparkles/sparkles.mjs +210 -0
  74. package/esm2022/staging/lib/spot-light/shadow-mesh-input.mjs +51 -0
  75. package/esm2022/staging/lib/spot-light/spot-light-input.mjs +62 -0
  76. package/esm2022/staging/lib/spot-light/spot-light-shadow-no-shader.mjs +74 -0
  77. package/esm2022/staging/lib/spot-light/spot-light-shadow-shader.mjs +126 -0
  78. package/{esm2020 → esm2022}/staging/lib/spot-light/spot-light-shadow.mjs +8 -7
  79. package/esm2022/staging/lib/spot-light/spot-light.mjs +117 -0
  80. package/esm2022/staging/lib/spot-light/volumetric-mesh.mjs +86 -0
  81. package/{esm2020 → esm2022}/staging/lib/stage/stage.mjs +13 -11
  82. package/esm2022/staging/lib/stars/stars.mjs +140 -0
  83. package/{fesm2020 → fesm2022}/angular-three-soba-abstractions.mjs +89 -89
  84. package/{fesm2015 → fesm2022}/angular-three-soba-abstractions.mjs.map +1 -1
  85. package/{fesm2015 → fesm2022}/angular-three-soba-cameras.mjs +21 -21
  86. package/{fesm2015 → fesm2022}/angular-three-soba-cameras.mjs.map +1 -1
  87. package/{fesm2020 → fesm2022}/angular-three-soba-controls.mjs +5 -5
  88. package/fesm2022/angular-three-soba-controls.mjs.map +1 -0
  89. package/{fesm2020 → fesm2022}/angular-three-soba-loaders.mjs +7 -7
  90. package/{fesm2020 → fesm2022}/angular-three-soba-loaders.mjs.map +1 -1
  91. package/{fesm2020 → fesm2022}/angular-three-soba-materials.mjs +25 -25
  92. package/{fesm2020 → fesm2022}/angular-three-soba-materials.mjs.map +1 -1
  93. package/{fesm2020 → fesm2022}/angular-three-soba-misc.mjs +3 -3
  94. package/{fesm2020 → fesm2022}/angular-three-soba-misc.mjs.map +1 -1
  95. package/{fesm2020 → fesm2022}/angular-three-soba-performance.mjs +14 -14
  96. package/{fesm2020 → fesm2022}/angular-three-soba-performance.mjs.map +1 -1
  97. package/{fesm2020 → fesm2022}/angular-three-soba-shaders.mjs +2 -2
  98. package/fesm2022/angular-three-soba-shaders.mjs.map +1 -0
  99. package/{fesm2020 → fesm2022}/angular-three-soba-staging.mjs +139 -139
  100. package/{fesm2020 → fesm2022}/angular-three-soba-staging.mjs.map +1 -1
  101. package/loaders/lib/loader/loader.d.ts +1 -1
  102. package/materials/lib/mesh-distort-material/mesh-distort-material.d.ts +1 -1
  103. package/materials/lib/mesh-reflector-material/mesh-reflector-material.d.ts +1 -1
  104. package/materials/lib/mesh-refraction-material/mesh-refraction-material.d.ts +1 -1
  105. package/materials/lib/mesh-transmission-material/mesh-transmission-material.d.ts +1 -1
  106. package/materials/lib/mesh-wobble-material/mesh-wobble-material.d.ts +1 -1
  107. package/package.json +45 -70
  108. package/performance/lib/adaptive/adaptive-dpr.d.ts +1 -1
  109. package/performance/lib/detailed/detailed.d.ts +1 -1
  110. package/performance/lib/stats/stats.d.ts +1 -1
  111. package/plugin/package.json +1 -1
  112. package/plugin/src/generators/init/compat.js +1 -1
  113. package/plugin/src/generators/init/compat.js.map +1 -1
  114. package/plugin/src/generators/init/init.d.ts +1 -1
  115. package/plugin/src/generators/init/init.js +1 -1
  116. package/plugin/src/generators/init/init.js.map +1 -1
  117. package/staging/lib/accumulative-shadows/accumulative-shadows.d.ts +2 -2
  118. package/staging/lib/accumulative-shadows/randomized-lights.d.ts +1 -1
  119. package/staging/lib/bounds/bounds.d.ts +1 -1
  120. package/staging/lib/camera-shake/camera-shake.d.ts +1 -1
  121. package/staging/lib/caustics/caustics.d.ts +2 -2
  122. package/staging/lib/center/center.d.ts +1 -1
  123. package/staging/lib/cloud/cloud.d.ts +1 -1
  124. package/staging/lib/contact-shadows/contact-shadows.d.ts +1 -1
  125. package/staging/lib/environment/environment-inputs.d.ts +1 -1
  126. package/staging/lib/float/float.d.ts +1 -1
  127. package/staging/lib/sky/sky.d.ts +1 -1
  128. package/staging/lib/sparkles/sparkles.d.ts +2 -2
  129. package/staging/lib/spot-light/shadow-mesh-input.d.ts +1 -1
  130. package/staging/lib/spot-light/spot-light-input.d.ts +1 -1
  131. package/staging/lib/spot-light/spot-light-shadow-no-shader.d.ts +1 -1
  132. package/staging/lib/spot-light/spot-light-shadow-shader.d.ts +1 -1
  133. package/staging/lib/spot-light/spot-light.d.ts +1 -1
  134. package/staging/lib/spot-light/volumetric-mesh.d.ts +1 -1
  135. package/staging/lib/stage/stage.d.ts +2 -2
  136. package/staging/lib/stars/stars.d.ts +2 -2
  137. package/esm2020/abstractions/lib/billboard/billboard.mjs +0 -73
  138. package/esm2020/abstractions/lib/catmull-rom-line/catmull-rom-line.mjs +0 -119
  139. package/esm2020/abstractions/lib/cubic-bezier-line/cubic-bezier-line.mjs +0 -98
  140. package/esm2020/abstractions/lib/edges/edges.mjs +0 -95
  141. package/esm2020/abstractions/lib/gizmo-helper/gizmo-helper.mjs +0 -211
  142. package/esm2020/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube-edge.mjs +0 -91
  143. package/esm2020/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube-face.mjs +0 -182
  144. package/esm2020/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube-inputs.mjs +0 -45
  145. package/esm2020/abstractions/lib/gizmo-helper/gizmo-viewport/gizmo-viewport-axis.mjs +0 -193
  146. package/esm2020/abstractions/lib/line/line-input.mjs +0 -75
  147. package/esm2020/abstractions/lib/line/line.mjs +0 -132
  148. package/esm2020/abstractions/lib/quadratic-bezier-line/quadratic-bezier-line.mjs +0 -127
  149. package/esm2020/abstractions/lib/text/text.mjs +0 -114
  150. package/esm2020/abstractions/lib/text-3d/text-3d.mjs +0 -144
  151. package/esm2020/cameras/lib/camera/camera-content.mjs +0 -20
  152. package/esm2020/cameras/lib/camera/camera.mjs +0 -74
  153. package/esm2020/cameras/lib/cube-camera/cube-camera.mjs +0 -130
  154. package/esm2020/cameras/lib/orthographic-camera/orthographic-camera.mjs +0 -92
  155. package/esm2020/controls/lib/orbit-controls/orbit-controls.mjs +0 -146
  156. package/esm2020/loaders/lib/loader/loader.mjs +0 -133
  157. package/esm2020/materials/lib/mesh-distort-material/mesh-distort-material.mjs +0 -74
  158. package/esm2020/materials/lib/mesh-reflector-material/mesh-reflector-material.mjs +0 -327
  159. package/esm2020/materials/lib/mesh-refraction-material/mesh-refraction-material.mjs +0 -157
  160. package/esm2020/materials/lib/mesh-transmission-material/mesh-transmission-material.mjs +0 -237
  161. package/esm2020/materials/lib/mesh-wobble-material/mesh-wobble-material.mjs +0 -67
  162. package/esm2020/misc/lib/bake-shadows/bake-shadows.mjs +0 -25
  163. package/esm2020/performance/lib/adaptive/adaptive-dpr.mjs +0 -46
  164. package/esm2020/performance/lib/adaptive/adaptive-events.mjs +0 -36
  165. package/esm2020/performance/lib/detailed/detailed.mjs +0 -53
  166. package/esm2020/performance/lib/stats/stats.mjs +0 -79
  167. package/esm2020/shaders/lib/blur-pass/blur-pass.mjs +0 -61
  168. package/esm2020/staging/lib/accumulative-shadows/accumulative-shadows.mjs +0 -247
  169. package/esm2020/staging/lib/accumulative-shadows/randomized-lights.mjs +0 -199
  170. package/esm2020/staging/lib/camera-shake/camera-shake.mjs +0 -121
  171. package/esm2020/staging/lib/caustics/caustics.mjs +0 -363
  172. package/esm2020/staging/lib/center/center.mjs +0 -142
  173. package/esm2020/staging/lib/cloud/cloud.mjs +0 -159
  174. package/esm2020/staging/lib/contact-shadows/contact-shadows.mjs +0 -227
  175. package/esm2020/staging/lib/environment/environment-cube.mjs +0 -40
  176. package/esm2020/staging/lib/environment/environment-ground.mjs +0 -66
  177. package/esm2020/staging/lib/environment/environment-inputs.mjs +0 -86
  178. package/esm2020/staging/lib/environment/environment-map.mjs +0 -38
  179. package/esm2020/staging/lib/environment/environment-portal.mjs +0 -110
  180. package/esm2020/staging/lib/float/float.mjs +0 -76
  181. package/esm2020/staging/lib/sky/sky.mjs +0 -108
  182. package/esm2020/staging/lib/sparkles/sparkles.mjs +0 -209
  183. package/esm2020/staging/lib/spot-light/shadow-mesh-input.mjs +0 -50
  184. package/esm2020/staging/lib/spot-light/spot-light-input.mjs +0 -61
  185. package/esm2020/staging/lib/spot-light/spot-light-shadow-no-shader.mjs +0 -73
  186. package/esm2020/staging/lib/spot-light/spot-light-shadow-shader.mjs +0 -125
  187. package/esm2020/staging/lib/spot-light/spot-light.mjs +0 -116
  188. package/esm2020/staging/lib/spot-light/volumetric-mesh.mjs +0 -85
  189. package/esm2020/staging/lib/stars/stars.mjs +0 -139
  190. package/fesm2015/angular-three-soba-abstractions.mjs +0 -2048
  191. package/fesm2015/angular-three-soba-controls.mjs +0 -153
  192. package/fesm2015/angular-three-soba-controls.mjs.map +0 -1
  193. package/fesm2015/angular-three-soba-loaders.mjs +0 -229
  194. package/fesm2015/angular-three-soba-loaders.mjs.map +0 -1
  195. package/fesm2015/angular-three-soba-materials.mjs +0 -851
  196. package/fesm2015/angular-three-soba-materials.mjs.map +0 -1
  197. package/fesm2015/angular-three-soba-misc.mjs +0 -148
  198. package/fesm2015/angular-three-soba-misc.mjs.map +0 -1
  199. package/fesm2015/angular-three-soba-performance.mjs +0 -210
  200. package/fesm2015/angular-three-soba-performance.mjs.map +0 -1
  201. package/fesm2015/angular-three-soba-shaders.mjs +0 -1239
  202. package/fesm2015/angular-three-soba-shaders.mjs.map +0 -1
  203. package/fesm2015/angular-three-soba-staging.mjs +0 -3772
  204. package/fesm2015/angular-three-soba-staging.mjs.map +0 -1
  205. package/fesm2020/angular-three-soba-abstractions.mjs.map +0 -1
  206. package/fesm2020/angular-three-soba-cameras.mjs +0 -347
  207. package/fesm2020/angular-three-soba-cameras.mjs.map +0 -1
  208. package/fesm2020/angular-three-soba-controls.mjs.map +0 -1
  209. package/fesm2020/angular-three-soba-shaders.mjs.map +0 -1
  210. package/fesm2020/angular-three-soba.mjs +0 -6
  211. package/fesm2020/angular-three-soba.mjs.map +0 -1
  212. /package/{esm2020 → esm2022}/abstractions/angular-three-soba-abstractions.mjs +0 -0
  213. /package/{esm2020 → esm2022}/abstractions/index.mjs +0 -0
  214. /package/{esm2020 → esm2022}/abstractions/lib/gizmo-helper/gizmo-viewcube/constants.mjs +0 -0
  215. /package/{esm2020 → esm2022}/angular-three-soba.mjs +0 -0
  216. /package/{esm2020 → esm2022}/cameras/angular-three-soba-cameras.mjs +0 -0
  217. /package/{esm2020 → esm2022}/cameras/index.mjs +0 -0
  218. /package/{esm2020 → esm2022}/controls/angular-three-soba-controls.mjs +0 -0
  219. /package/{esm2020 → esm2022}/controls/index.mjs +0 -0
  220. /package/{esm2020 → esm2022}/index.mjs +0 -0
  221. /package/{esm2020 → esm2022}/loaders/angular-three-soba-loaders.mjs +0 -0
  222. /package/{esm2020 → esm2022}/loaders/index.mjs +0 -0
  223. /package/{esm2020 → esm2022}/loaders/lib/gltf-loader/gltf-loader.mjs +0 -0
  224. /package/{esm2020 → esm2022}/loaders/lib/progress/progress.mjs +0 -0
  225. /package/{esm2020 → esm2022}/loaders/lib/texture-loader/texture-loader.mjs +0 -0
  226. /package/{esm2020 → esm2022}/materials/angular-three-soba-materials.mjs +0 -0
  227. /package/{esm2020 → esm2022}/materials/index.mjs +0 -0
  228. /package/{esm2020 → esm2022}/misc/angular-three-soba-misc.mjs +0 -0
  229. /package/{esm2020 → esm2022}/misc/index.mjs +0 -0
  230. /package/{esm2020 → esm2022}/misc/lib/animations/animations.mjs +0 -0
  231. /package/{esm2020 → esm2022}/misc/lib/depth-buffer/depth-buffer.mjs +0 -0
  232. /package/{esm2020 → esm2022}/misc/lib/fbo/fbo.mjs +0 -0
  233. /package/{esm2020 → esm2022}/performance/angular-three-soba-performance.mjs +0 -0
  234. /package/{esm2020 → esm2022}/performance/index.mjs +0 -0
  235. /package/{esm2020 → esm2022}/shaders/angular-three-soba-shaders.mjs +0 -0
  236. /package/{esm2020 → esm2022}/shaders/index.mjs +0 -0
  237. /package/{esm2020 → esm2022}/shaders/lib/caustics-material/caustics-material.mjs +0 -0
  238. /package/{esm2020 → esm2022}/shaders/lib/caustics-projection-material/caustics-projection-material.mjs +0 -0
  239. /package/{esm2020 → esm2022}/shaders/lib/convolution-material/convolution-material.mjs +0 -0
  240. /package/{esm2020 → esm2022}/shaders/lib/discard-material/discard-material.mjs +0 -0
  241. /package/{esm2020 → esm2022}/shaders/lib/mesh-distort-material/mesh-distort-material.mjs +0 -0
  242. /package/{esm2020 → esm2022}/shaders/lib/mesh-reflector-material/mesh-reflector-material.mjs +0 -0
  243. /package/{esm2020 → esm2022}/shaders/lib/mesh-refraction-material/mesh-refraction-material.mjs +0 -0
  244. /package/{esm2020 → esm2022}/shaders/lib/mesh-transmission-material/mesh-transmission-material.mjs +0 -0
  245. /package/{esm2020 → esm2022}/shaders/lib/mesh-wobble-material/mesh-wobble-material.mjs +0 -0
  246. /package/{esm2020 → esm2022}/shaders/lib/shader-material/shader-material.mjs +0 -0
  247. /package/{esm2020 → esm2022}/shaders/lib/soft-shadow-material/soft-shadow-material.mjs +0 -0
  248. /package/{esm2020 → esm2022}/shaders/lib/spot-light-material/spot-light-material.mjs +0 -0
  249. /package/{esm2020 → esm2022}/shaders/lib/star-field-material/star-field-material.mjs +0 -0
  250. /package/{esm2020 → esm2022}/staging/angular-three-soba-staging.mjs +0 -0
  251. /package/{esm2020 → esm2022}/staging/index.mjs +0 -0
  252. /package/{esm2020 → esm2022}/staging/lib/accumulative-shadows/progressive-light-map.mjs +0 -0
  253. /package/{esm2020 → esm2022}/staging/lib/environment/assets.mjs +0 -0
  254. /package/{esm2020 → esm2022}/staging/lib/environment/utils.mjs +0 -0
  255. /package/{esm2020 → esm2022}/staging/lib/spot-light/common.mjs +0 -0
  256. /package/{fesm2015 → fesm2022}/angular-three-soba.mjs +0 -0
  257. /package/{fesm2015 → fesm2022}/angular-three-soba.mjs.map +0 -0
@@ -1,116 +0,0 @@
1
- import { NgIf } from '@angular/common';
2
- import { Component, CUSTOM_ELEMENTS_SCHEMA, InjectionToken, Input } from '@angular/core';
3
- import { extend, injectNgtRef, NgtArgs } from 'angular-three';
4
- import { Group, SpotLight, SpotLightHelper } from 'three';
5
- import { NgtsSpotLightInput } from './spot-light-input';
6
- import { NgtsVolumetricMesh } from './volumetric-mesh';
7
- import * as i0 from "@angular/core";
8
- extend({ SpotLight, SpotLightHelper, Group });
9
- export const NGTS_SPOT_LIGHT_API = new InjectionToken('NgtsSpotLight API');
10
- function spotLightApiFactory(spotLight) {
11
- const api = {
12
- spotLight: spotLight.spotLightRef,
13
- };
14
- Object.defineProperty(api, 'debug', {
15
- get: () => spotLight.get('debug'),
16
- });
17
- return api;
18
- }
19
- export class NgtsSpotLight extends NgtsSpotLightInput {
20
- constructor() {
21
- super(...arguments);
22
- this.spotLightRef = injectNgtRef();
23
- }
24
- set volumetric(volumetric) {
25
- this.set({ volumetric });
26
- }
27
- initialize() {
28
- super.initialize();
29
- this.set({
30
- opacity: 1,
31
- color: 'white',
32
- distance: 5,
33
- angle: 0.15,
34
- attenuation: 5,
35
- anglePower: 5,
36
- volumetric: true,
37
- debug: false,
38
- });
39
- }
40
- }
41
- NgtsSpotLight.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: NgtsSpotLight, deps: null, target: i0.ɵɵFactoryTarget.Component });
42
- NgtsSpotLight.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.5", type: NgtsSpotLight, isStandalone: true, selector: "ngts-spot-light", inputs: { spotLightRef: "spotLightRef", volumetric: "volumetric" }, providers: [{ provide: NGTS_SPOT_LIGHT_API, useFactory: spotLightApiFactory, deps: [NgtsSpotLight] }], usesInheritance: true, ngImport: i0, template: `
43
- <ngt-group>
44
- <ng-container *ngIf="get('debug') && spotLightRef.nativeElement">
45
- <ngt-spot-light-helper *args="[spotLightRef.nativeElement]" />
46
- </ng-container>
47
- <ngt-spot-light
48
- [ref]="spotLightRef"
49
- [color]="get('color')"
50
- [distance]="get('distance')"
51
- [angle]="get('angle')"
52
- [castShadow]="true"
53
- ngtCompound
54
- >
55
- <ngts-volumetric-mesh
56
- *ngIf="get('volumetric')"
57
- [debug]="get('debug')"
58
- [opacity]="get('opacity')"
59
- [radiusTop]="get('radiusTop')"
60
- [radiusBottom]="get('radiusBottom')"
61
- [depthBuffer]="get('depthBuffer')"
62
- [color]="get('color')"
63
- [distance]="get('distance')"
64
- [angle]="get('angle')"
65
- [attenuation]="get('attenuation')"
66
- [anglePower]="get('anglePower')"
67
- />
68
- </ngt-spot-light>
69
- <ng-content />
70
- </ngt-group>
71
- `, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgtArgs, selector: "[args]", inputs: ["args"] }, { kind: "component", type: NgtsVolumetricMesh, selector: "ngts-volumetric-mesh" }] });
72
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: NgtsSpotLight, decorators: [{
73
- type: Component,
74
- args: [{
75
- selector: 'ngts-spot-light',
76
- standalone: true,
77
- template: `
78
- <ngt-group>
79
- <ng-container *ngIf="get('debug') && spotLightRef.nativeElement">
80
- <ngt-spot-light-helper *args="[spotLightRef.nativeElement]" />
81
- </ng-container>
82
- <ngt-spot-light
83
- [ref]="spotLightRef"
84
- [color]="get('color')"
85
- [distance]="get('distance')"
86
- [angle]="get('angle')"
87
- [castShadow]="true"
88
- ngtCompound
89
- >
90
- <ngts-volumetric-mesh
91
- *ngIf="get('volumetric')"
92
- [debug]="get('debug')"
93
- [opacity]="get('opacity')"
94
- [radiusTop]="get('radiusTop')"
95
- [radiusBottom]="get('radiusBottom')"
96
- [depthBuffer]="get('depthBuffer')"
97
- [color]="get('color')"
98
- [distance]="get('distance')"
99
- [angle]="get('angle')"
100
- [attenuation]="get('attenuation')"
101
- [anglePower]="get('anglePower')"
102
- />
103
- </ngt-spot-light>
104
- <ng-content />
105
- </ngt-group>
106
- `,
107
- imports: [NgIf, NgtArgs, NgtsVolumetricMesh],
108
- providers: [{ provide: NGTS_SPOT_LIGHT_API, useFactory: spotLightApiFactory, deps: [NgtsSpotLight] }],
109
- schemas: [CUSTOM_ELEMENTS_SCHEMA],
110
- }]
111
- }], propDecorators: { spotLightRef: [{
112
- type: Input
113
- }], volumetric: [{
114
- type: Input
115
- }] } });
116
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BvdC1saWdodC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci10aHJlZS1zb2JhL3N0YWdpbmcvc3JjL2xpYi9zcG90LWxpZ2h0L3Nwb3QtbGlnaHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxTQUFTLEVBQUUsc0JBQXNCLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RixPQUFPLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQWtCLE1BQU0sZUFBZSxDQUFDO0FBQzlFLE9BQU8sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUMxRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFFdkQsTUFBTSxDQUFDLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0FBTzlDLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLElBQUksY0FBYyxDQUFtQixtQkFBbUIsQ0FBQyxDQUFDO0FBRTdGLFNBQVMsbUJBQW1CLENBQUMsU0FBd0I7SUFDakQsTUFBTSxHQUFHLEdBQUc7UUFDUixTQUFTLEVBQUUsU0FBUyxDQUFDLFlBQVk7S0FDcEMsQ0FBQztJQUVGLE1BQU0sQ0FBQyxjQUFjLENBQUMsR0FBRyxFQUFFLE9BQU8sRUFBRTtRQUNoQyxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUM7S0FDcEMsQ0FBQyxDQUFDO0lBRUgsT0FBTyxHQUF1QixDQUFDO0FBQ25DLENBQUM7QUF1Q0QsTUFBTSxPQUFPLGFBQWMsU0FBUSxrQkFBa0I7SUFyQ3JEOztRQXNDYSxpQkFBWSxHQUFHLFlBQVksRUFBbUIsQ0FBQztLQW1CM0Q7SUFqQkcsSUFBYSxVQUFVLENBQUMsVUFBbUI7UUFDdkMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVRLFVBQVU7UUFDZixLQUFLLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLEdBQUcsQ0FBQztZQUNMLE9BQU8sRUFBRSxDQUFDO1lBQ1YsS0FBSyxFQUFFLE9BQU87WUFDZCxRQUFRLEVBQUUsQ0FBQztZQUNYLEtBQUssRUFBRSxJQUFJO1lBQ1gsV0FBVyxFQUFFLENBQUM7WUFDZCxVQUFVLEVBQUUsQ0FBQztZQUNiLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLEtBQUssRUFBRSxLQUFLO1NBQ2YsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7MEdBbkJRLGFBQWE7OEZBQWIsYUFBYSxrSUFIWCxDQUFDLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSxJQUFJLEVBQUUsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLGlEQS9CM0Y7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBNkJULDREQUNTLElBQUksNkZBQUUsT0FBTyxxRUFBRSxrQkFBa0I7MkZBSWxDLGFBQWE7a0JBckN6QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxpQkFBaUI7b0JBQzNCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBNkJUO29CQUNELE9BQU8sRUFBRSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsa0JBQWtCLENBQUM7b0JBQzVDLFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFFLENBQUM7b0JBQ3JHLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO2lCQUNwQzs4QkFFWSxZQUFZO3NCQUFwQixLQUFLO2dCQUVPLFVBQVU7c0JBQXRCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgSW5qZWN0aW9uVG9rZW4sIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBleHRlbmQsIGluamVjdE5ndFJlZiwgTmd0QXJncywgTmd0SW5qZWN0ZWRSZWYgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IEdyb3VwLCBTcG90TGlnaHQsIFNwb3RMaWdodEhlbHBlciB9IGZyb20gJ3RocmVlJztcbmltcG9ydCB7IE5ndHNTcG90TGlnaHRJbnB1dCB9IGZyb20gJy4vc3BvdC1saWdodC1pbnB1dCc7XG5pbXBvcnQgeyBOZ3RzVm9sdW1ldHJpY01lc2ggfSBmcm9tICcuL3ZvbHVtZXRyaWMtbWVzaCc7XG5cbmV4dGVuZCh7IFNwb3RMaWdodCwgU3BvdExpZ2h0SGVscGVyLCBHcm91cCB9KTtcblxuZXhwb3J0IGludGVyZmFjZSBOZ3RzU3BvdExpZ2h0QVBJIHtcbiAgICBzcG90TGlnaHQ6IE5ndEluamVjdGVkUmVmPFRIUkVFLlNwb3RMaWdodD47XG4gICAgZGVidWc6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjb25zdCBOR1RTX1NQT1RfTElHSFRfQVBJID0gbmV3IEluamVjdGlvblRva2VuPE5ndHNTcG90TGlnaHRBUEk+KCdOZ3RzU3BvdExpZ2h0IEFQSScpO1xuXG5mdW5jdGlvbiBzcG90TGlnaHRBcGlGYWN0b3J5KHNwb3RMaWdodDogTmd0c1Nwb3RMaWdodCk6IE5ndHNTcG90TGlnaHRBUEkge1xuICAgIGNvbnN0IGFwaSA9IHtcbiAgICAgICAgc3BvdExpZ2h0OiBzcG90TGlnaHQuc3BvdExpZ2h0UmVmLFxuICAgIH07XG5cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXBpLCAnZGVidWcnLCB7XG4gICAgICAgIGdldDogKCkgPT4gc3BvdExpZ2h0LmdldCgnZGVidWcnKSxcbiAgICB9KTtcblxuICAgIHJldHVybiBhcGkgYXMgTmd0c1Nwb3RMaWdodEFQSTtcbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduZ3RzLXNwb3QtbGlnaHQnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPG5ndC1ncm91cD5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJnZXQoJ2RlYnVnJykgJiYgc3BvdExpZ2h0UmVmLm5hdGl2ZUVsZW1lbnRcIj5cbiAgICAgICAgICAgICAgICA8bmd0LXNwb3QtbGlnaHQtaGVscGVyICphcmdzPVwiW3Nwb3RMaWdodFJlZi5uYXRpdmVFbGVtZW50XVwiIC8+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZ3Qtc3BvdC1saWdodFxuICAgICAgICAgICAgICAgIFtyZWZdPVwic3BvdExpZ2h0UmVmXCJcbiAgICAgICAgICAgICAgICBbY29sb3JdPVwiZ2V0KCdjb2xvcicpXCJcbiAgICAgICAgICAgICAgICBbZGlzdGFuY2VdPVwiZ2V0KCdkaXN0YW5jZScpXCJcbiAgICAgICAgICAgICAgICBbYW5nbGVdPVwiZ2V0KCdhbmdsZScpXCJcbiAgICAgICAgICAgICAgICBbY2FzdFNoYWRvd109XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBuZ3RDb21wb3VuZFxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxuZ3RzLXZvbHVtZXRyaWMtbWVzaFxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImdldCgndm9sdW1ldHJpYycpXCJcbiAgICAgICAgICAgICAgICAgICAgW2RlYnVnXT1cImdldCgnZGVidWcnKVwiXG4gICAgICAgICAgICAgICAgICAgIFtvcGFjaXR5XT1cImdldCgnb3BhY2l0eScpXCJcbiAgICAgICAgICAgICAgICAgICAgW3JhZGl1c1RvcF09XCJnZXQoJ3JhZGl1c1RvcCcpXCJcbiAgICAgICAgICAgICAgICAgICAgW3JhZGl1c0JvdHRvbV09XCJnZXQoJ3JhZGl1c0JvdHRvbScpXCJcbiAgICAgICAgICAgICAgICAgICAgW2RlcHRoQnVmZmVyXT1cImdldCgnZGVwdGhCdWZmZXInKVwiXG4gICAgICAgICAgICAgICAgICAgIFtjb2xvcl09XCJnZXQoJ2NvbG9yJylcIlxuICAgICAgICAgICAgICAgICAgICBbZGlzdGFuY2VdPVwiZ2V0KCdkaXN0YW5jZScpXCJcbiAgICAgICAgICAgICAgICAgICAgW2FuZ2xlXT1cImdldCgnYW5nbGUnKVwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRlbnVhdGlvbl09XCJnZXQoJ2F0dGVudWF0aW9uJylcIlxuICAgICAgICAgICAgICAgICAgICBbYW5nbGVQb3dlcl09XCJnZXQoJ2FuZ2xlUG93ZXInKVwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvbmd0LXNwb3QtbGlnaHQ+XG4gICAgICAgICAgICA8bmctY29udGVudCAvPlxuICAgICAgICA8L25ndC1ncm91cD5cbiAgICBgLFxuICAgIGltcG9ydHM6IFtOZ0lmLCBOZ3RBcmdzLCBOZ3RzVm9sdW1ldHJpY01lc2hdLFxuICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogTkdUU19TUE9UX0xJR0hUX0FQSSwgdXNlRmFjdG9yeTogc3BvdExpZ2h0QXBpRmFjdG9yeSwgZGVwczogW05ndHNTcG90TGlnaHRdIH1dLFxuICAgIHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0c1Nwb3RMaWdodCBleHRlbmRzIE5ndHNTcG90TGlnaHRJbnB1dCB7XG4gICAgQElucHV0KCkgc3BvdExpZ2h0UmVmID0gaW5qZWN0Tmd0UmVmPFRIUkVFLlNwb3RMaWdodD4oKTtcblxuICAgIEBJbnB1dCgpIHNldCB2b2x1bWV0cmljKHZvbHVtZXRyaWM6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5zZXQoeyB2b2x1bWV0cmljIH0pO1xuICAgIH1cblxuICAgIG92ZXJyaWRlIGluaXRpYWxpemUoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLmluaXRpYWxpemUoKTtcbiAgICAgICAgdGhpcy5zZXQoe1xuICAgICAgICAgICAgb3BhY2l0eTogMSxcbiAgICAgICAgICAgIGNvbG9yOiAnd2hpdGUnLFxuICAgICAgICAgICAgZGlzdGFuY2U6IDUsXG4gICAgICAgICAgICBhbmdsZTogMC4xNSxcbiAgICAgICAgICAgIGF0dGVudWF0aW9uOiA1LFxuICAgICAgICAgICAgYW5nbGVQb3dlcjogNSxcbiAgICAgICAgICAgIHZvbHVtZXRyaWM6IHRydWUsXG4gICAgICAgICAgICBkZWJ1ZzogZmFsc2UsXG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,85 +0,0 @@
1
- import { Component, CUSTOM_ELEMENTS_SCHEMA, inject } from '@angular/core';
2
- import { extend, injectBeforeRender, injectNgtRef, NgtArgs, NgtStore, startWithUndefined } from 'angular-three';
3
- import { SpotLightMaterial } from 'angular-three-soba/shaders';
4
- import { combineLatest, map } from 'rxjs';
5
- import * as THREE from 'three';
6
- import { Mesh } from 'three';
7
- import { NgtsSpotLightInput } from './spot-light-input';
8
- import * as i0 from "@angular/core";
9
- extend({ Mesh });
10
- export class NgtsVolumetricMesh extends NgtsSpotLightInput {
11
- initialize() {
12
- super.initialize();
13
- this.set({ opacity: 1, color: 'white', distance: 5, angle: 0.15, attenuation: 5, anglePower: 5 });
14
- }
15
- constructor() {
16
- super();
17
- this.mesh = injectNgtRef();
18
- this.material = new SpotLightMaterial();
19
- this.nullRaycast = () => null;
20
- this.vec = new THREE.Vector3();
21
- this.store = inject(NgtStore);
22
- this.connect('normalizedRadiusTop', this.select('radiusTop').pipe(startWithUndefined(), map((radiusTop) => (radiusTop === undefined ? 0.1 : radiusTop))));
23
- this.connect('normalizedRadiusBottom', combineLatest([this.select('radiusBottom').pipe(startWithUndefined()), this.select('angle')]).pipe(map(([radiusBottom, angle]) => (radiusBottom === undefined ? angle * 7 : radiusBottom))));
24
- this.connect('geometry', combineLatest([
25
- this.select('normalizedRadiusTop'),
26
- this.select('normalizedRadiusBottom'),
27
- this.select('distance'),
28
- ]).pipe(map(([radiusTop, radiusBottom, distance]) => {
29
- const geometry = new THREE.CylinderGeometry(radiusTop, radiusBottom, distance, 128, 64, true);
30
- geometry.applyMatrix4(new THREE.Matrix4().makeTranslation(0, -distance / 2, 0));
31
- geometry.applyMatrix4(new THREE.Matrix4().makeRotationX(-Math.PI / 2));
32
- return geometry;
33
- })));
34
- this.connect('cameraNear', this.store.select('camera').pipe(map((camera) => camera.near)));
35
- this.connect('cameraFar', this.store.select('camera').pipe(map((camera) => camera.far)));
36
- this.connect('resolution', combineLatest([
37
- this.select('depthBuffer').pipe(startWithUndefined()),
38
- this.store.select('size'),
39
- this.store.select('viewport', 'dpr'),
40
- ]).pipe(map(([depthBuffer, size, dpr]) => (depthBuffer ? [size.width * dpr, size.height * dpr] : [0, 0]))));
41
- injectBeforeRender(() => {
42
- this.material.uniforms['spotPosition'].value.copy(this.mesh.nativeElement.getWorldPosition(this.vec));
43
- this.mesh.nativeElement.lookAt(this.mesh.nativeElement.parent.target.getWorldPosition(this.vec));
44
- });
45
- }
46
- }
47
- NgtsVolumetricMesh.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: NgtsVolumetricMesh, deps: [], target: i0.ɵɵFactoryTarget.Component });
48
- NgtsVolumetricMesh.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.5", type: NgtsVolumetricMesh, isStandalone: true, selector: "ngts-volumetric-mesh", usesInheritance: true, ngImport: i0, template: `
49
- <ngt-mesh [ref]="mesh" [geometry]="get('geometry')" [raycast]="nullRaycast">
50
- <ngt-primitive *args="[material]" attach="material">
51
- <ngt-value [rawValue]="get('opacity')" attach="uniforms.opacity.value" />
52
- <ngt-value [rawValue]="get('color')" attach="uniforms.lightColor.value" />
53
- <ngt-value [rawValue]="get('attenuation')" attach="uniforms.attenuation.value" />
54
- <ngt-value [rawValue]="get('anglePower')" attach="uniforms.anglePower.value" />
55
- <ngt-value [rawvalue]="get('depthBuffer')" attach="uniforms.depth.value" />
56
- <ngt-value [rawvalue]="get('cameraNear')" attach="uniforms.cameraNear.value" />
57
- <ngt-value [rawvalue]="get('cameraFar')" attach="uniforms.cameraFar.value" />
58
- <ngt-value [rawvalue]="get('resolution')" attach="uniforms.resolution.value" />
59
- </ngt-primitive>
60
- </ngt-mesh>
61
- `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "[args]", inputs: ["args"] }] });
62
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: NgtsVolumetricMesh, decorators: [{
63
- type: Component,
64
- args: [{
65
- selector: 'ngts-volumetric-mesh',
66
- standalone: true,
67
- template: `
68
- <ngt-mesh [ref]="mesh" [geometry]="get('geometry')" [raycast]="nullRaycast">
69
- <ngt-primitive *args="[material]" attach="material">
70
- <ngt-value [rawValue]="get('opacity')" attach="uniforms.opacity.value" />
71
- <ngt-value [rawValue]="get('color')" attach="uniforms.lightColor.value" />
72
- <ngt-value [rawValue]="get('attenuation')" attach="uniforms.attenuation.value" />
73
- <ngt-value [rawValue]="get('anglePower')" attach="uniforms.anglePower.value" />
74
- <ngt-value [rawvalue]="get('depthBuffer')" attach="uniforms.depth.value" />
75
- <ngt-value [rawvalue]="get('cameraNear')" attach="uniforms.cameraNear.value" />
76
- <ngt-value [rawvalue]="get('cameraFar')" attach="uniforms.cameraFar.value" />
77
- <ngt-value [rawvalue]="get('resolution')" attach="uniforms.resolution.value" />
78
- </ngt-primitive>
79
- </ngt-mesh>
80
- `,
81
- imports: [NgtArgs],
82
- schemas: [CUSTOM_ELEMENTS_SCHEMA],
83
- }]
84
- }], ctorParameters: function () { return []; } });
85
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidm9sdW1ldHJpYy1tZXNoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXRocmVlLXNvYmEvc3RhZ2luZy9zcmMvbGliL3Nwb3QtbGlnaHQvdm9sdW1ldHJpYy1tZXNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsa0JBQWtCLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEgsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUMsT0FBTyxLQUFLLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDL0IsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUM3QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7QUFFeEQsTUFBTSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztBQXNCakIsTUFBTSxPQUFPLGtCQUFtQixTQUFRLGtCQUFrQjtJQVE3QyxVQUFVO1FBQ2YsS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxDQUFDLEVBQUUsVUFBVSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDdEcsQ0FBQztJQUVEO1FBQ0ksS0FBSyxFQUFFLENBQUM7UUFiSCxTQUFJLEdBQUcsWUFBWSxFQUFjLENBQUM7UUFDbEMsYUFBUSxHQUFHLElBQUksaUJBQWlCLEVBQUUsQ0FBQztRQUNuQyxnQkFBVyxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQztRQUVqQixRQUFHLEdBQUcsSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDMUIsVUFBSyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQVN0QyxJQUFJLENBQUMsT0FBTyxDQUNSLHFCQUFxQixFQUNyQixJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FDekIsa0JBQWtCLEVBQUUsRUFDcEIsR0FBRyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFNBQVMsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FDbEUsQ0FDSixDQUFDO1FBQ0YsSUFBSSxDQUFDLE9BQU8sQ0FDUix3QkFBd0IsRUFDeEIsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDOUYsR0FBRyxDQUFDLENBQUMsQ0FBQyxZQUFZLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsWUFBWSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FDMUYsQ0FDSixDQUFDO1FBRUYsSUFBSSxDQUFDLE9BQU8sQ0FDUixVQUFVLEVBQ1YsYUFBYSxDQUFDO1lBQ1YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQztZQUNsQyxJQUFJLENBQUMsTUFBTSxDQUFDLHdCQUF3QixDQUFDO1lBQ3JDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDO1NBQzFCLENBQUMsQ0FBQyxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUU7WUFDeEMsTUFBTSxRQUFRLEdBQUcsSUFBSSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUM5RixRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLGVBQWUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDaEYsUUFBUSxDQUFDLFlBQVksQ0FBQyxJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdkUsT0FBTyxRQUFRLENBQUM7UUFDcEIsQ0FBQyxDQUFDLENBQ0wsQ0FDSixDQUFDO1FBRUYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMzRixJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3pGLElBQUksQ0FBQyxPQUFPLENBQ1IsWUFBWSxFQUNaLGFBQWEsQ0FBQztZQUNWLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7WUFDckQsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUM7U0FDdkMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsR0FBRyxFQUFFLElBQUksQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUM3RyxDQUFDO1FBRUYsa0JBQWtCLENBQUMsR0FBRyxFQUFFO1lBQ3BCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDdEcsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUN6QixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUEwQixDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQ3hGLENBQUM7UUFDTixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7OytHQTlEUSxrQkFBa0I7bUdBQWxCLGtCQUFrQix1R0FqQmpCOzs7Ozs7Ozs7Ozs7O0tBYVQsNERBQ1MsT0FBTzsyRkFHUixrQkFBa0I7a0JBcEI5QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxzQkFBc0I7b0JBQ2hDLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7S0FhVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUM7b0JBQ2xCLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO2lCQUNwQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBleHRlbmQsIGluamVjdEJlZm9yZVJlbmRlciwgaW5qZWN0Tmd0UmVmLCBOZ3RBcmdzLCBOZ3RTdG9yZSwgc3RhcnRXaXRoVW5kZWZpbmVkIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBTcG90TGlnaHRNYXRlcmlhbCB9IGZyb20gJ2FuZ3VsYXItdGhyZWUtc29iYS9zaGFkZXJzJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIG1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0ICogYXMgVEhSRUUgZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgTWVzaCB9IGZyb20gJ3RocmVlJztcbmltcG9ydCB7IE5ndHNTcG90TGlnaHRJbnB1dCB9IGZyb20gJy4vc3BvdC1saWdodC1pbnB1dCc7XG5cbmV4dGVuZCh7IE1lc2ggfSk7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmd0cy12b2x1bWV0cmljLW1lc2gnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPG5ndC1tZXNoIFtyZWZdPVwibWVzaFwiIFtnZW9tZXRyeV09XCJnZXQoJ2dlb21ldHJ5JylcIiBbcmF5Y2FzdF09XCJudWxsUmF5Y2FzdFwiPlxuICAgICAgICAgICAgPG5ndC1wcmltaXRpdmUgKmFyZ3M9XCJbbWF0ZXJpYWxdXCIgYXR0YWNoPVwibWF0ZXJpYWxcIj5cbiAgICAgICAgICAgICAgICA8bmd0LXZhbHVlIFtyYXdWYWx1ZV09XCJnZXQoJ29wYWNpdHknKVwiIGF0dGFjaD1cInVuaWZvcm1zLm9wYWNpdHkudmFsdWVcIiAvPlxuICAgICAgICAgICAgICAgIDxuZ3QtdmFsdWUgW3Jhd1ZhbHVlXT1cImdldCgnY29sb3InKVwiIGF0dGFjaD1cInVuaWZvcm1zLmxpZ2h0Q29sb3IudmFsdWVcIiAvPlxuICAgICAgICAgICAgICAgIDxuZ3QtdmFsdWUgW3Jhd1ZhbHVlXT1cImdldCgnYXR0ZW51YXRpb24nKVwiIGF0dGFjaD1cInVuaWZvcm1zLmF0dGVudWF0aW9uLnZhbHVlXCIgLz5cbiAgICAgICAgICAgICAgICA8bmd0LXZhbHVlIFtyYXdWYWx1ZV09XCJnZXQoJ2FuZ2xlUG93ZXInKVwiIGF0dGFjaD1cInVuaWZvcm1zLmFuZ2xlUG93ZXIudmFsdWVcIiAvPlxuICAgICAgICAgICAgICAgIDxuZ3QtdmFsdWUgW3Jhd3ZhbHVlXT1cImdldCgnZGVwdGhCdWZmZXInKVwiIGF0dGFjaD1cInVuaWZvcm1zLmRlcHRoLnZhbHVlXCIgLz5cbiAgICAgICAgICAgICAgICA8bmd0LXZhbHVlIFtyYXd2YWx1ZV09XCJnZXQoJ2NhbWVyYU5lYXInKVwiIGF0dGFjaD1cInVuaWZvcm1zLmNhbWVyYU5lYXIudmFsdWVcIiAvPlxuICAgICAgICAgICAgICAgIDxuZ3QtdmFsdWUgW3Jhd3ZhbHVlXT1cImdldCgnY2FtZXJhRmFyJylcIiBhdHRhY2g9XCJ1bmlmb3Jtcy5jYW1lcmFGYXIudmFsdWVcIiAvPlxuICAgICAgICAgICAgICAgIDxuZ3QtdmFsdWUgW3Jhd3ZhbHVlXT1cImdldCgncmVzb2x1dGlvbicpXCIgYXR0YWNoPVwidW5pZm9ybXMucmVzb2x1dGlvbi52YWx1ZVwiIC8+XG4gICAgICAgICAgICA8L25ndC1wcmltaXRpdmU+XG4gICAgICAgIDwvbmd0LW1lc2g+XG4gICAgYCxcbiAgICBpbXBvcnRzOiBbTmd0QXJnc10sXG4gICAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RzVm9sdW1ldHJpY01lc2ggZXh0ZW5kcyBOZ3RzU3BvdExpZ2h0SW5wdXQge1xuICAgIHJlYWRvbmx5IG1lc2ggPSBpbmplY3ROZ3RSZWY8VEhSRUUuTWVzaD4oKTtcbiAgICByZWFkb25seSBtYXRlcmlhbCA9IG5ldyBTcG90TGlnaHRNYXRlcmlhbCgpO1xuICAgIHJlYWRvbmx5IG51bGxSYXljYXN0ID0gKCkgPT4gbnVsbDtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgdmVjID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN0b3JlID0gaW5qZWN0KE5ndFN0b3JlKTtcblxuICAgIG92ZXJyaWRlIGluaXRpYWxpemUoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLmluaXRpYWxpemUoKTtcbiAgICAgICAgdGhpcy5zZXQoeyBvcGFjaXR5OiAxLCBjb2xvcjogJ3doaXRlJywgZGlzdGFuY2U6IDUsIGFuZ2xlOiAwLjE1LCBhdHRlbnVhdGlvbjogNSwgYW5nbGVQb3dlcjogNSB9KTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5jb25uZWN0KFxuICAgICAgICAgICAgJ25vcm1hbGl6ZWRSYWRpdXNUb3AnLFxuICAgICAgICAgICAgdGhpcy5zZWxlY3QoJ3JhZGl1c1RvcCcpLnBpcGUoXG4gICAgICAgICAgICAgICAgc3RhcnRXaXRoVW5kZWZpbmVkKCksXG4gICAgICAgICAgICAgICAgbWFwKChyYWRpdXNUb3ApID0+IChyYWRpdXNUb3AgPT09IHVuZGVmaW5lZCA/IDAuMSA6IHJhZGl1c1RvcCkpXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuY29ubmVjdChcbiAgICAgICAgICAgICdub3JtYWxpemVkUmFkaXVzQm90dG9tJyxcbiAgICAgICAgICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMuc2VsZWN0KCdyYWRpdXNCb3R0b20nKS5waXBlKHN0YXJ0V2l0aFVuZGVmaW5lZCgpKSwgdGhpcy5zZWxlY3QoJ2FuZ2xlJyldKS5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCgoW3JhZGl1c0JvdHRvbSwgYW5nbGVdKSA9PiAocmFkaXVzQm90dG9tID09PSB1bmRlZmluZWQgPyBhbmdsZSAqIDcgOiByYWRpdXNCb3R0b20pKVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuY29ubmVjdChcbiAgICAgICAgICAgICdnZW9tZXRyeScsXG4gICAgICAgICAgICBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdCgnbm9ybWFsaXplZFJhZGl1c1RvcCcpLFxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0KCdub3JtYWxpemVkUmFkaXVzQm90dG9tJyksXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3QoJ2Rpc3RhbmNlJyksXG4gICAgICAgICAgICBdKS5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCgoW3JhZGl1c1RvcCwgcmFkaXVzQm90dG9tLCBkaXN0YW5jZV0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2VvbWV0cnkgPSBuZXcgVEhSRUUuQ3lsaW5kZXJHZW9tZXRyeShyYWRpdXNUb3AsIHJhZGl1c0JvdHRvbSwgZGlzdGFuY2UsIDEyOCwgNjQsIHRydWUpO1xuICAgICAgICAgICAgICAgICAgICBnZW9tZXRyeS5hcHBseU1hdHJpeDQobmV3IFRIUkVFLk1hdHJpeDQoKS5tYWtlVHJhbnNsYXRpb24oMCwgLWRpc3RhbmNlIC8gMiwgMCkpO1xuICAgICAgICAgICAgICAgICAgICBnZW9tZXRyeS5hcHBseU1hdHJpeDQobmV3IFRIUkVFLk1hdHJpeDQoKS5tYWtlUm90YXRpb25YKC1NYXRoLlBJIC8gMikpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZ2VvbWV0cnk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLmNvbm5lY3QoJ2NhbWVyYU5lYXInLCB0aGlzLnN0b3JlLnNlbGVjdCgnY2FtZXJhJykucGlwZShtYXAoKGNhbWVyYSkgPT4gY2FtZXJhLm5lYXIpKSk7XG4gICAgICAgIHRoaXMuY29ubmVjdCgnY2FtZXJhRmFyJywgdGhpcy5zdG9yZS5zZWxlY3QoJ2NhbWVyYScpLnBpcGUobWFwKChjYW1lcmEpID0+IGNhbWVyYS5mYXIpKSk7XG4gICAgICAgIHRoaXMuY29ubmVjdChcbiAgICAgICAgICAgICdyZXNvbHV0aW9uJyxcbiAgICAgICAgICAgIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0KCdkZXB0aEJ1ZmZlcicpLnBpcGUoc3RhcnRXaXRoVW5kZWZpbmVkKCkpLFxuICAgICAgICAgICAgICAgIHRoaXMuc3RvcmUuc2VsZWN0KCdzaXplJyksXG4gICAgICAgICAgICAgICAgdGhpcy5zdG9yZS5zZWxlY3QoJ3ZpZXdwb3J0JywgJ2RwcicpLFxuICAgICAgICAgICAgXSkucGlwZShtYXAoKFtkZXB0aEJ1ZmZlciwgc2l6ZSwgZHByXSkgPT4gKGRlcHRoQnVmZmVyID8gW3NpemUud2lkdGggKiBkcHIsIHNpemUuaGVpZ2h0ICogZHByXSA6IFswLCAwXSkpKVxuICAgICAgICApO1xuXG4gICAgICAgIGluamVjdEJlZm9yZVJlbmRlcigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLm1hdGVyaWFsLnVuaWZvcm1zWydzcG90UG9zaXRpb24nXS52YWx1ZS5jb3B5KHRoaXMubWVzaC5uYXRpdmVFbGVtZW50LmdldFdvcmxkUG9zaXRpb24odGhpcy52ZWMpKTtcbiAgICAgICAgICAgIHRoaXMubWVzaC5uYXRpdmVFbGVtZW50Lmxvb2tBdChcbiAgICAgICAgICAgICAgICAodGhpcy5tZXNoLm5hdGl2ZUVsZW1lbnQucGFyZW50IGFzIFRIUkVFLlNwb3RMaWdodCkudGFyZ2V0LmdldFdvcmxkUG9zaXRpb24odGhpcy52ZWMpXG4gICAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=
@@ -1,139 +0,0 @@
1
- import { Component, CUSTOM_ELEMENTS_SCHEMA, Input } from '@angular/core';
2
- import { extend, injectBeforeRender, injectNgtRef, NgtArgs, NgtRxStore } from 'angular-three';
3
- import { StarFieldMaterial } from 'angular-three-soba/shaders';
4
- import * as THREE from 'three';
5
- import { BufferAttribute, BufferGeometry, Color, Points, Spherical, Vector3 } from 'three';
6
- import * as i0 from "@angular/core";
7
- extend({ Points, BufferGeometry, BufferAttribute });
8
- const genStar = (r) => {
9
- return new Vector3().setFromSpherical(new Spherical(r, Math.acos(1 - Math.random() * 2), Math.random() * 2 * Math.PI));
10
- };
11
- export class NgtsStars extends NgtRxStore {
12
- set radius(radius) {
13
- this.set({ radius });
14
- }
15
- set depth(depth) {
16
- this.set({ depth });
17
- }
18
- set count(count) {
19
- this.set({ count });
20
- }
21
- set factor(factor) {
22
- this.set({ factor });
23
- }
24
- set saturation(saturation) {
25
- this.set({ saturation });
26
- }
27
- set fade(fade) {
28
- this.set({ fade });
29
- }
30
- set speed(speed) {
31
- this.set({ speed });
32
- }
33
- initialize() {
34
- super.initialize();
35
- this.set({
36
- radius: 100,
37
- depth: 50,
38
- count: 5000,
39
- saturation: 0,
40
- factor: 4,
41
- fade: false,
42
- speed: 1,
43
- });
44
- this.connect('bufferAttributes', this.select(['count', 'depth', 'factor', 'radius', 'saturation'], ({ count, depth, factor, radius, saturation }) => {
45
- const positions = [];
46
- const colors = [];
47
- const sizes = Array.from({ length: count }, () => (0.5 + 0.5 * Math.random()) * factor);
48
- const color = new Color();
49
- let r = radius + depth;
50
- const increment = depth / count;
51
- for (let i = 0; i < count; i++) {
52
- r -= increment * Math.random();
53
- positions.push(...genStar(r).toArray());
54
- color.setHSL(i / count, saturation, 0.9);
55
- colors.push(color.r, color.g, color.b);
56
- }
57
- return {
58
- positions: new Float32Array(positions),
59
- colors: new Float32Array(colors),
60
- sizes: new Float32Array(sizes),
61
- };
62
- }));
63
- }
64
- constructor() {
65
- super();
66
- this.AdditiveBlending = THREE.AdditiveBlending;
67
- this.material = new StarFieldMaterial();
68
- this.starsRef = injectNgtRef();
69
- injectBeforeRender(this.onBeforeRender.bind(this));
70
- }
71
- onBeforeRender({ clock }) {
72
- this.material.uniforms['time'].value = clock.getElapsedTime() * this.get('speed');
73
- }
74
- }
75
- NgtsStars.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: NgtsStars, deps: [], target: i0.ɵɵFactoryTarget.Component });
76
- NgtsStars.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.5", type: NgtsStars, isStandalone: true, selector: "ngts-stars", inputs: { starsRef: "starsRef", radius: "radius", depth: "depth", count: "count", factor: "factor", saturation: "saturation", fade: "fade", speed: "speed" }, usesInheritance: true, ngImport: i0, template: `
77
- <ngt-points [ref]="starsRef">
78
- <ngt-buffer-geometry>
79
- <ngt-buffer-attribute attach="attributes.position" *args="[get('bufferAttributes').positions, 3]" />
80
- <ngt-buffer-attribute attach="attributes.color" *args="[get('bufferAttributes').colors, 3]" />
81
- <ngt-buffer-attribute attach="attributes.size" *args="[get('bufferAttributes').sizes, 1]" />
82
- </ngt-buffer-geometry>
83
- <ngt-primitive
84
- *args="[material]"
85
- attach="material"
86
- [blending]="AdditiveBlending"
87
- [depthWrite]="false"
88
- [transparent]="true"
89
- [vertexColors]="true"
90
- >
91
- <ngt-value attach="uniforms.fade.value" [rawValue]="get('fade')" />
92
- </ngt-primitive>
93
- </ngt-points>
94
- `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "[args]", inputs: ["args"] }] });
95
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: NgtsStars, decorators: [{
96
- type: Component,
97
- args: [{
98
- selector: 'ngts-stars',
99
- standalone: true,
100
- template: `
101
- <ngt-points [ref]="starsRef">
102
- <ngt-buffer-geometry>
103
- <ngt-buffer-attribute attach="attributes.position" *args="[get('bufferAttributes').positions, 3]" />
104
- <ngt-buffer-attribute attach="attributes.color" *args="[get('bufferAttributes').colors, 3]" />
105
- <ngt-buffer-attribute attach="attributes.size" *args="[get('bufferAttributes').sizes, 1]" />
106
- </ngt-buffer-geometry>
107
- <ngt-primitive
108
- *args="[material]"
109
- attach="material"
110
- [blending]="AdditiveBlending"
111
- [depthWrite]="false"
112
- [transparent]="true"
113
- [vertexColors]="true"
114
- >
115
- <ngt-value attach="uniforms.fade.value" [rawValue]="get('fade')" />
116
- </ngt-primitive>
117
- </ngt-points>
118
- `,
119
- imports: [NgtArgs],
120
- schemas: [CUSTOM_ELEMENTS_SCHEMA],
121
- }]
122
- }], ctorParameters: function () { return []; }, propDecorators: { starsRef: [{
123
- type: Input
124
- }], radius: [{
125
- type: Input
126
- }], depth: [{
127
- type: Input
128
- }], count: [{
129
- type: Input
130
- }], factor: [{
131
- type: Input
132
- }], saturation: [{
133
- type: Input
134
- }], fade: [{
135
- type: Input
136
- }], speed: [{
137
- type: Input
138
- }] } });
139
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdGhyZWUtc29iYS9zdGFnaW5nL3NyYy9saWIvc3RhcnMvc3RhcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxzQkFBc0IsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekUsT0FBTyxFQUFFLE1BQU0sRUFBRSxrQkFBa0IsRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFrQixVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxLQUFLLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDL0IsT0FBTyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE1BQU0sT0FBTyxDQUFDOztBQUUzRixNQUFNLENBQUMsRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLGVBQWUsRUFBRSxDQUFDLENBQUM7QUFFcEQsTUFBTSxPQUFPLEdBQUcsQ0FBQyxDQUFTLEVBQUUsRUFBRTtJQUMxQixPQUFPLElBQUksT0FBTyxFQUFFLENBQUMsZ0JBQWdCLENBQ2pDLElBQUksU0FBUyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQ2xGLENBQUM7QUFDTixDQUFDLENBQUM7QUEyQkYsTUFBTSxPQUFPLFNBQVUsU0FBUSxVQUFVO0lBTXJDLElBQWEsTUFBTSxDQUFDLE1BQWM7UUFDOUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sRUFBRSxD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T01fRUxFTUVOVFNfU0NIRU1BLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZXh0ZW5kLCBpbmplY3RCZWZvcmVSZW5kZXIsIGluamVjdE5ndFJlZiwgTmd0QXJncywgTmd0UmVuZGVyU3RhdGUsIE5ndFJ4U3RvcmUgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IFN0YXJGaWVsZE1hdGVyaWFsIH0gZnJvbSAnYW5ndWxhci10aHJlZS1zb2JhL3NoYWRlcnMnO1xuaW1wb3J0ICogYXMgVEhSRUUgZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgQnVmZmVyQXR0cmlidXRlLCBCdWZmZXJHZW9tZXRyeSwgQ29sb3IsIFBvaW50cywgU3BoZXJpY2FsLCBWZWN0b3IzIH0gZnJvbSAndGhyZWUnO1xuXG5leHRlbmQoeyBQb2ludHMsIEJ1ZmZlckdlb21ldHJ5LCBCdWZmZXJBdHRyaWJ1dGUgfSk7XG5cbmNvbnN0IGdlblN0YXIgPSAocjogbnVtYmVyKSA9PiB7XG4gICAgcmV0dXJuIG5ldyBWZWN0b3IzKCkuc2V0RnJvbVNwaGVyaWNhbChcbiAgICAgICAgbmV3IFNwaGVyaWNhbChyLCBNYXRoLmFjb3MoMSAtIE1hdGgucmFuZG9tKCkgKiAyKSwgTWF0aC5yYW5kb20oKSAqIDIgKiBNYXRoLlBJKVxuICAgICk7XG59O1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25ndHMtc3RhcnMnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPG5ndC1wb2ludHMgW3JlZl09XCJzdGFyc1JlZlwiPlxuICAgICAgICAgICAgPG5ndC1idWZmZXItZ2VvbWV0cnk+XG4gICAgICAgICAgICAgICAgPG5ndC1idWZmZXItYXR0cmlidXRlIGF0dGFjaD1cImF0dHJpYnV0ZXMucG9zaXRpb25cIiAqYXJncz1cIltnZXQoJ2J1ZmZlckF0dHJpYnV0ZXMnKS5wb3NpdGlvbnMsIDNdXCIgLz5cbiAgICAgICAgICAgICAgICA8bmd0LWJ1ZmZlci1hdHRyaWJ1dGUgYXR0YWNoPVwiYXR0cmlidXRlcy5jb2xvclwiICphcmdzPVwiW2dldCgnYnVmZmVyQXR0cmlidXRlcycpLmNvbG9ycywgM11cIiAvPlxuICAgICAgICAgICAgICAgIDxuZ3QtYnVmZmVyLWF0dHJpYnV0ZSBhdHRhY2g9XCJhdHRyaWJ1dGVzLnNpemVcIiAqYXJncz1cIltnZXQoJ2J1ZmZlckF0dHJpYnV0ZXMnKS5zaXplcywgMV1cIiAvPlxuICAgICAgICAgICAgPC9uZ3QtYnVmZmVyLWdlb21ldHJ5PlxuICAgICAgICAgICAgPG5ndC1wcmltaXRpdmVcbiAgICAgICAgICAgICAgICAqYXJncz1cIlttYXRlcmlhbF1cIlxuICAgICAgICAgICAgICAgIGF0dGFjaD1cIm1hdGVyaWFsXCJcbiAgICAgICAgICAgICAgICBbYmxlbmRpbmddPVwiQWRkaXRpdmVCbGVuZGluZ1wiXG4gICAgICAgICAgICAgICAgW2RlcHRoV3JpdGVdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgIFt0cmFuc3BhcmVudF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBbdmVydGV4Q29sb3JzXT1cInRydWVcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxuZ3QtdmFsdWUgYXR0YWNoPVwidW5pZm9ybXMuZmFkZS52YWx1ZVwiIFtyYXdWYWx1ZV09XCJnZXQoJ2ZhZGUnKVwiIC8+XG4gICAgICAgICAgICA8L25ndC1wcmltaXRpdmU+XG4gICAgICAgIDwvbmd0LXBvaW50cz5cbiAgICBgLFxuICAgIGltcG9ydHM6IFtOZ3RBcmdzXSxcbiAgICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHNTdGFycyBleHRlbmRzIE5ndFJ4U3RvcmUge1xuICAgIHJlYWRvbmx5IEFkZGl0aXZlQmxlbmRpbmcgPSBUSFJFRS5BZGRpdGl2ZUJsZW5kaW5nO1xuICAgIHJlYWRvbmx5IG1hdGVyaWFsID0gbmV3IFN0YXJGaWVsZE1hdGVyaWFsKCk7XG5cbiAgICBASW5wdXQoKSBzdGFyc1JlZiA9IGluamVjdE5ndFJlZjxQb2ludHM+KCk7XG5cbiAgICBASW5wdXQoKSBzZXQgcmFkaXVzKHJhZGl1czogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgcmFkaXVzIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBkZXB0aChkZXB0aDogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgZGVwdGggfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGNvdW50KGNvdW50OiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBjb3VudCB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgZmFjdG9yKGZhY3RvcjogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgZmFjdG9yIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBzYXR1cmF0aW9uKHNhdHVyYXRpb246IG51bWJlcikge1xuICAgICAgICB0aGlzLnNldCh7IHNhdHVyYXRpb24gfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGZhZGUoZmFkZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnNldCh7IGZhZGUgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IHNwZWVkKHNwZWVkOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBzcGVlZCB9KTtcbiAgICB9XG5cbiAgICBvdmVycmlkZSBpbml0aWFsaXplKCk6IHZvaWQge1xuICAgICAgICBzdXBlci5pbml0aWFsaXplKCk7XG4gICAgICAgIHRoaXMuc2V0KHtcbiAgICAgICAgICAgIHJhZGl1czogMTAwLFxuICAgICAgICAgICAgZGVwdGg6IDUwLFxuICAgICAgICAgICAgY291bnQ6IDUwMDAsXG4gICAgICAgICAgICBzYXR1cmF0aW9uOiAwLFxuICAgICAgICAgICAgZmFjdG9yOiA0LFxuICAgICAgICAgICAgZmFkZTogZmFsc2UsXG4gICAgICAgICAgICBzcGVlZDogMSxcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuY29ubmVjdChcbiAgICAgICAgICAgICdidWZmZXJBdHRyaWJ1dGVzJyxcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0KFxuICAgICAgICAgICAgICAgIFsnY291bnQnLCAnZGVwdGgnLCAnZmFjdG9yJywgJ3JhZGl1cycsICdzYXR1cmF0aW9uJ10sXG4gICAgICAgICAgICAgICAgKHsgY291bnQsIGRlcHRoLCBmYWN0b3IsIHJhZGl1cywgc2F0dXJhdGlvbiB9KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHBvc2l0aW9uczogYW55W10gPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29sb3JzOiBhbnlbXSA9IFtdO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzaXplcyA9IEFycmF5LmZyb20oeyBsZW5ndGg6IGNvdW50IH0sICgpID0+ICgwLjUgKyAwLjUgKiBNYXRoLnJhbmRvbSgpKSAqIGZhY3Rvcik7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbG9yID0gbmV3IENvbG9yKCk7XG4gICAgICAgICAgICAgICAgICAgIGxldCByID0gcmFkaXVzICsgZGVwdGg7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGluY3JlbWVudCA9IGRlcHRoIC8gY291bnQ7XG4gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY291bnQ7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICAgICAgciAtPSBpbmNyZW1lbnQgKiBNYXRoLnJhbmRvbSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb25zLnB1c2goLi4uZ2VuU3RhcihyKS50b0FycmF5KCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3Iuc2V0SFNMKGkgLyBjb3VudCwgc2F0dXJhdGlvbiwgMC45KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9ycy5wdXNoKGNvbG9yLnIsIGNvbG9yLmcsIGNvbG9yLmIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbnM6IG5ldyBGbG9hdDMyQXJyYXkocG9zaXRpb25zKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yczogbmV3IEZsb2F0MzJBcnJheShjb2xvcnMpLFxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZXM6IG5ldyBGbG9hdDMyQXJyYXkoc2l6ZXMpLFxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgaW5qZWN0QmVmb3JlUmVuZGVyKHRoaXMub25CZWZvcmVSZW5kZXIuYmluZCh0aGlzKSk7XG4gICAgfVxuXG4gICAgb25CZWZvcmVSZW5kZXIoeyBjbG9jayB9OiBOZ3RSZW5kZXJTdGF0ZSkge1xuICAgICAgICB0aGlzLm1hdGVyaWFsLnVuaWZvcm1zWyd0aW1lJ10udmFsdWUgPSBjbG9jay5nZXRFbGFwc2VkVGltZSgpICogdGhpcy5nZXQoJ3NwZWVkJyk7XG4gICAgfVxufVxuIl19