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.
Files changed (397) hide show
  1. package/README.md +62 -4
  2. package/abstractions/README.md +278 -2
  3. package/abstractions/index.d.ts +11 -6
  4. package/abstractions/lib/catmull-rom-line.d.ts +648 -0
  5. package/abstractions/lib/cubic-bezier-line.d.ts +19 -0
  6. package/abstractions/lib/edges.d.ts +850 -0
  7. package/abstractions/lib/gradient-texture.d.ts +24 -0
  8. package/abstractions/lib/grid.d.ts +339 -0
  9. package/abstractions/lib/helper.d.ts +25 -0
  10. package/abstractions/lib/line.d.ts +41 -0
  11. package/abstractions/lib/prism-geometry.d.ts +30 -0
  12. package/abstractions/lib/quadratic-bezier-line.d.ts +21 -0
  13. package/abstractions/lib/text-3d.d.ts +338 -0
  14. package/abstractions/lib/text.d.ts +55 -0
  15. package/cameras/README.md +91 -2
  16. package/cameras/index.d.ts +4 -4
  17. package/cameras/lib/camera-content.d.ts +10 -0
  18. package/cameras/lib/cube-camera.d.ts +38 -0
  19. package/cameras/lib/orthographic-camera.d.ts +40 -0
  20. package/cameras/lib/perspective-camera.d.ts +36 -0
  21. package/controls/README.md +95 -2
  22. package/controls/index.d.ts +2 -1
  23. package/controls/lib/camera-controls.d.ts +31 -0
  24. package/controls/lib/orbit-controls.d.ts +38 -0
  25. package/esm2022/abstractions/index.mjs +12 -7
  26. package/esm2022/abstractions/lib/catmull-rom-line.mjs +76 -0
  27. package/esm2022/abstractions/lib/cubic-bezier-line.mjs +51 -0
  28. package/esm2022/abstractions/lib/edges.mjs +70 -0
  29. package/esm2022/abstractions/lib/gradient-texture.mjs +91 -0
  30. package/esm2022/abstractions/lib/grid.mjs +103 -0
  31. package/esm2022/abstractions/lib/helper.mjs +80 -0
  32. package/esm2022/abstractions/lib/line.mjs +123 -0
  33. package/esm2022/abstractions/lib/prism-geometry.mjs +55 -0
  34. package/esm2022/abstractions/lib/quadratic-bezier-line.mjs +73 -0
  35. package/esm2022/abstractions/lib/text-3d.mjs +98 -0
  36. package/esm2022/abstractions/lib/text.mjs +92 -0
  37. package/esm2022/cameras/index.mjs +5 -5
  38. package/esm2022/cameras/lib/camera-content.mjs +14 -0
  39. package/esm2022/cameras/lib/cube-camera.mjs +111 -0
  40. package/esm2022/cameras/lib/orthographic-camera.mjs +131 -0
  41. package/esm2022/cameras/lib/perspective-camera.mjs +104 -0
  42. package/esm2022/controls/index.mjs +3 -2
  43. package/esm2022/controls/lib/camera-controls.mjs +127 -0
  44. package/esm2022/controls/lib/orbit-controls.mjs +126 -0
  45. package/esm2022/loaders/index.mjs +6 -5
  46. package/esm2022/loaders/lib/font-loader.mjs +49 -0
  47. package/esm2022/loaders/lib/gltf-loader.mjs +33 -0
  48. package/esm2022/loaders/lib/loader.mjs +109 -0
  49. package/esm2022/loaders/lib/progress.mjs +51 -0
  50. package/esm2022/loaders/lib/texture-loader.mjs +32 -0
  51. package/esm2022/materials/index.mjs +7 -7
  52. package/esm2022/materials/lib/custom-shader-material.mjs +71 -0
  53. package/esm2022/materials/lib/mesh-distort-material.mjs +42 -0
  54. package/esm2022/materials/lib/mesh-reflector-material.mjs +278 -0
  55. package/esm2022/materials/lib/mesh-refraction-material.mjs +144 -0
  56. package/esm2022/materials/lib/mesh-transmission-material.mjs +188 -0
  57. package/esm2022/materials/lib/mesh-wobble-material.mjs +42 -0
  58. package/esm2022/misc/index.mjs +10 -14
  59. package/esm2022/misc/lib/animations.mjs +74 -0
  60. package/esm2022/misc/lib/bake-shadows.mjs +26 -0
  61. package/esm2022/misc/lib/computed-attribute.mjs +56 -0
  62. package/esm2022/misc/lib/constants.mjs +5 -0
  63. package/esm2022/misc/lib/decal.mjs +135 -0
  64. package/esm2022/misc/lib/deprecated.mjs +15 -0
  65. package/esm2022/misc/lib/depth-buffer.mjs +39 -0
  66. package/esm2022/misc/lib/fbo.mjs +89 -0
  67. package/esm2022/misc/lib/sampler.mjs +121 -0
  68. package/esm2022/shaders/index.mjs +3 -18
  69. package/esm2022/shaders/lib/grid-material.mjs +81 -0
  70. package/esm2022/shaders/lib/mesh-refraction-material.mjs +163 -0
  71. package/esm2022/staging/index.mjs +19 -22
  72. package/esm2022/staging/lib/accumulative-shadows.mjs +182 -0
  73. package/esm2022/staging/lib/backdrop.mjs +73 -0
  74. package/esm2022/staging/lib/bb-anchor.mjs +58 -0
  75. package/esm2022/staging/lib/bounds.mjs +286 -0
  76. package/esm2022/staging/lib/camera-shake.mjs +69 -0
  77. package/esm2022/staging/lib/caustics.mjs +188 -0
  78. package/esm2022/staging/lib/center.mjs +113 -0
  79. package/esm2022/staging/lib/contact-shadows.mjs +201 -0
  80. package/esm2022/staging/lib/environment.mjs +465 -0
  81. package/esm2022/staging/lib/float.mjs +60 -0
  82. package/esm2022/staging/lib/lightformer.mjs +107 -0
  83. package/esm2022/staging/lib/matcap-texture.mjs +81 -0
  84. package/esm2022/staging/lib/normal-texture.mjs +85 -0
  85. package/esm2022/staging/lib/randomized-lights.mjs +104 -0
  86. package/esm2022/staging/lib/render-texture.mjs +213 -0
  87. package/esm2022/staging/lib/sky.mjs +86 -0
  88. package/esm2022/staging/lib/spot-light.mjs +450 -0
  89. package/esm2022/staging/lib/stage.mjs +236 -0
  90. package/esm2022/vanilla-exports/angular-three-soba-vanilla-exports.mjs +5 -0
  91. package/esm2022/vanilla-exports/index.mjs +3 -0
  92. package/fesm2022/angular-three-soba-abstractions.mjs +739 -718
  93. package/fesm2022/angular-three-soba-abstractions.mjs.map +1 -1
  94. package/fesm2022/angular-three-soba-cameras.mjs +260 -307
  95. package/fesm2022/angular-three-soba-cameras.mjs.map +1 -1
  96. package/fesm2022/angular-three-soba-controls.mjs +174 -110
  97. package/fesm2022/angular-three-soba-controls.mjs.map +1 -1
  98. package/fesm2022/angular-three-soba-loaders.mjs +151 -129
  99. package/fesm2022/angular-three-soba-loaders.mjs.map +1 -1
  100. package/fesm2022/angular-three-soba-materials.mjs +511 -764
  101. package/fesm2022/angular-three-soba-materials.mjs.map +1 -1
  102. package/fesm2022/angular-three-soba-misc.mjs +405 -2149
  103. package/fesm2022/angular-three-soba-misc.mjs.map +1 -1
  104. package/fesm2022/angular-three-soba-shaders.mjs +33 -1373
  105. package/fesm2022/angular-three-soba-shaders.mjs.map +1 -1
  106. package/fesm2022/angular-three-soba-staging.mjs +2329 -3538
  107. package/fesm2022/angular-three-soba-staging.mjs.map +1 -1
  108. package/fesm2022/angular-three-soba-vanilla-exports.mjs +6 -0
  109. package/fesm2022/angular-three-soba-vanilla-exports.mjs.map +1 -0
  110. package/loaders/README.md +130 -2
  111. package/loaders/index.d.ts +5 -4
  112. package/loaders/lib/font-loader.d.ts +27 -0
  113. package/loaders/lib/gltf-loader.d.ts +21 -0
  114. package/loaders/lib/loader.d.ts +29 -0
  115. package/loaders/lib/progress.d.ts +9 -0
  116. package/loaders/lib/texture-loader.d.ts +13 -0
  117. package/materials/README.md +160 -2
  118. package/materials/index.d.ts +6 -6
  119. package/materials/lib/custom-shader-material.d.ts +19 -0
  120. package/materials/lib/mesh-distort-material.d.ts +18 -0
  121. package/materials/lib/mesh-reflector-material.d.ts +50 -0
  122. package/materials/lib/mesh-refraction-material.d.ts +42 -0
  123. package/materials/lib/mesh-transmission-material.d.ts +77 -0
  124. package/materials/lib/mesh-wobble-material.d.ts +15 -0
  125. package/metadata.json +1 -1
  126. package/misc/README.md +217 -2
  127. package/misc/index.d.ts +9 -13
  128. package/misc/lib/animations.d.ts +14 -0
  129. package/misc/lib/computed-attribute.d.ts +69 -0
  130. package/misc/lib/constants.d.ts +1 -0
  131. package/misc/lib/decal.d.ts +27 -0
  132. package/misc/lib/deprecated.d.ts +14 -0
  133. package/misc/lib/depth-buffer.d.ts +8 -0
  134. package/misc/lib/fbo.d.ts +47 -0
  135. package/misc/lib/sampler.d.ts +73 -0
  136. package/package.json +60 -38
  137. package/shaders/index.d.ts +2 -17
  138. package/shaders/lib/grid-material.d.ts +69 -0
  139. package/shaders/lib/mesh-refraction-material.d.ts +11 -0
  140. package/staging/README.md +472 -2
  141. package/staging/index.d.ts +18 -21
  142. package/staging/lib/accumulative-shadows.d.ts +75 -0
  143. package/staging/lib/backdrop.d.ts +22 -0
  144. package/staging/lib/bb-anchor.d.ts +17 -0
  145. package/staging/lib/bounds.d.ts +47 -0
  146. package/staging/lib/camera-shake.d.ts +29 -0
  147. package/staging/lib/caustics.d.ts +53 -0
  148. package/staging/lib/center.d.ts +422 -0
  149. package/staging/lib/contact-shadows.d.ts +45 -0
  150. package/staging/lib/environment.d.ts +159 -0
  151. package/staging/lib/float.d.ts +19 -0
  152. package/staging/lib/lightformer.d.ts +334 -0
  153. package/staging/lib/matcap-texture.d.ts +32 -0
  154. package/staging/lib/normal-texture.d.ts +37 -0
  155. package/staging/lib/randomized-lights.d.ts +54 -0
  156. package/staging/lib/render-texture.d.ts +64 -0
  157. package/staging/lib/sky.d.ts +32 -0
  158. package/staging/lib/spot-light.d.ts +120 -0
  159. package/staging/lib/stage.d.ts +376 -0
  160. package/vanilla-exports/README.md +3 -0
  161. package/vanilla-exports/index.d.ts +27 -0
  162. package/web-types.json +1 -1
  163. package/abstractions/billboard/billboard.d.ts +0 -28
  164. package/abstractions/detailed/detailed.d.ts +0 -26
  165. package/abstractions/edges/edges.d.ts +0 -34
  166. package/abstractions/grid/grid.d.ts +0 -50
  167. package/abstractions/text/text.d.ts +0 -82
  168. package/abstractions/text-3d/text-3d.d.ts +0 -84
  169. package/assets/distort.vert.glsl +0 -1
  170. package/cameras/camera/camera-content.d.ts +0 -13
  171. package/cameras/camera/camera.d.ts +0 -26
  172. package/cameras/cube-camera/cube-camera.d.ts +0 -69
  173. package/cameras/orthographic-camera/orthographic-camera.d.ts +0 -37
  174. package/cameras/perspective-camera/perspective-camera.d.ts +0 -18
  175. package/controls/orbit-controls/orbit-controls.d.ts +0 -54
  176. package/esm2022/abstractions/billboard/billboard.mjs +0 -74
  177. package/esm2022/abstractions/detailed/detailed.mjs +0 -64
  178. package/esm2022/abstractions/edges/edges.mjs +0 -88
  179. package/esm2022/abstractions/grid/grid.mjs +0 -180
  180. package/esm2022/abstractions/text/text.mjs +0 -274
  181. package/esm2022/abstractions/text-3d/text-3d.mjs +0 -172
  182. package/esm2022/cameras/camera/camera-content.mjs +0 -21
  183. package/esm2022/cameras/camera/camera.mjs +0 -77
  184. package/esm2022/cameras/cube-camera/cube-camera.mjs +0 -161
  185. package/esm2022/cameras/orthographic-camera/orthographic-camera.mjs +0 -102
  186. package/esm2022/cameras/perspective-camera/perspective-camera.mjs +0 -46
  187. package/esm2022/controls/orbit-controls/orbit-controls.mjs +0 -185
  188. package/esm2022/gizmos/angular-three-soba-gizmos.mjs +0 -5
  189. package/esm2022/gizmos/gizmo-helper/gizmo-helper.mjs +0 -197
  190. package/esm2022/gizmos/gizmo-helper/gizmo-viewcube/constants.mjs +0 -31
  191. package/esm2022/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube-edge.mjs +0 -93
  192. package/esm2022/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube-face.mjs +0 -150
  193. package/esm2022/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube-input.mjs +0 -66
  194. package/esm2022/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube.mjs +0 -71
  195. package/esm2022/gizmos/gizmo-helper/gizmo-viewport/gizmo-viewport-axis.mjs +0 -195
  196. package/esm2022/gizmos/gizmo-helper/gizmo-viewport/gizmo-viewport.mjs +0 -272
  197. package/esm2022/gizmos/index.mjs +0 -4
  198. package/esm2022/loaders/gltf-loader/gltf-loader.mjs +0 -30
  199. package/esm2022/loaders/loader/loader.mjs +0 -138
  200. package/esm2022/loaders/progress/progress.mjs +0 -52
  201. package/esm2022/loaders/texture-loader/texture-loader.mjs +0 -28
  202. package/esm2022/materials/mesh-distort-material/mesh-distort-material.mjs +0 -82
  203. package/esm2022/materials/mesh-reflector-material/mesh-reflector-material.mjs +0 -367
  204. package/esm2022/materials/mesh-refraction-material/mesh-refraction-material.mjs +0 -171
  205. package/esm2022/materials/mesh-transmission-material/mesh-transmission-material.mjs +0 -278
  206. package/esm2022/materials/mesh-wobble-material/mesh-wobble-material.mjs +0 -68
  207. package/esm2022/materials/point-material/point-material.mjs +0 -50
  208. package/esm2022/misc/animations/animations.mjs +0 -59
  209. package/esm2022/misc/bake-shadows/bake-shadows.mjs +0 -24
  210. package/esm2022/misc/caustics/caustics.mjs +0 -387
  211. package/esm2022/misc/decal/decal.mjs +0 -187
  212. package/esm2022/misc/depth-buffer/depth-buffer.mjs +0 -44
  213. package/esm2022/misc/example/example.mjs +0 -160
  214. package/esm2022/misc/fbo/fbo.mjs +0 -47
  215. package/esm2022/misc/html/html-wrapper.mjs +0 -478
  216. package/esm2022/misc/html/html.mjs +0 -304
  217. package/esm2022/misc/sampler/sampler.mjs +0 -142
  218. package/esm2022/misc/shadow/shadow.mjs +0 -111
  219. package/esm2022/misc/stats-gl/stats-gl.mjs +0 -61
  220. package/esm2022/misc/trail/trail.mjs +0 -209
  221. package/esm2022/misc/trail-texture/inject-trail-texture.mjs +0 -17
  222. package/esm2022/misc/trail-texture/trail-texture.mjs +0 -106
  223. package/esm2022/modifiers/angular-three-soba-modifiers.mjs +0 -5
  224. package/esm2022/modifiers/curve-modifier/curve-modifier.mjs +0 -64
  225. package/esm2022/modifiers/index.mjs +0 -2
  226. package/esm2022/performances/adaptive-dpr/adaptive-dpr.mjs +0 -44
  227. package/esm2022/performances/adaptive-events/adaptive-events.mjs +0 -27
  228. package/esm2022/performances/angular-three-soba-performances.mjs +0 -5
  229. package/esm2022/performances/index.mjs +0 -8
  230. package/esm2022/performances/instances/instances.mjs +0 -220
  231. package/esm2022/performances/instances/position-mesh.mjs +0 -52
  232. package/esm2022/performances/points/points-input.mjs +0 -64
  233. package/esm2022/performances/points/points.mjs +0 -326
  234. package/esm2022/performances/points/position-point.mjs +0 -54
  235. package/esm2022/performances/segments/segment-object.mjs +0 -9
  236. package/esm2022/performances/segments/segments.mjs +0 -182
  237. package/esm2022/shaders/blur-pass/blur-pass.mjs +0 -61
  238. package/esm2022/shaders/caustics/caustics-material.mjs +0 -130
  239. package/esm2022/shaders/caustics/caustics-projection-material.mjs +0 -31
  240. package/esm2022/shaders/convolution-material/convolution-material.mjs +0 -94
  241. package/esm2022/shaders/discard-material/discard-material.mjs +0 -3
  242. package/esm2022/shaders/grid-material/grid-material.mjs +0 -77
  243. package/esm2022/shaders/mesh-distort-material/mesh-distort-material.mjs +0 -56
  244. package/esm2022/shaders/mesh-reflector-material/mesh-reflector-material.mjs +0 -223
  245. package/esm2022/shaders/mesh-refraction-material/mesh-refraction-material.mjs +0 -170
  246. package/esm2022/shaders/mesh-transmission-material/mesh-transmission-material.mjs +0 -268
  247. package/esm2022/shaders/mesh-wobble-material/mesh-wobble-material.mjs +0 -37
  248. package/esm2022/shaders/shader-material/shader-material.mjs +0 -34
  249. package/esm2022/shaders/soft-shadow-material/soft-shadow-material.mjs +0 -25
  250. package/esm2022/shaders/sparkles-material/sparkles-material.mjs +0 -33
  251. package/esm2022/shaders/spot-light-material/spot-light-material.mjs +0 -86
  252. package/esm2022/shaders/star-field-material/star-field-material.mjs +0 -33
  253. package/esm2022/shaders/wireframe-material/wireframe-material.mjs +0 -247
  254. package/esm2022/staging/accumulative-shadows/accumulative-shadows.mjs +0 -267
  255. package/esm2022/staging/accumulative-shadows/progressive-light-map.mjs +0 -108
  256. package/esm2022/staging/accumulative-shadows/randomized-lights.mjs +0 -206
  257. package/esm2022/staging/backdrop/backdrop.mjs +0 -77
  258. package/esm2022/staging/bb-anchor/bb-anchor.mjs +0 -69
  259. package/esm2022/staging/bounds/bounds.mjs +0 -308
  260. package/esm2022/staging/camera-shake/camera-shake.mjs +0 -123
  261. package/esm2022/staging/center/center.mjs +0 -165
  262. package/esm2022/staging/cloud/cloud.mjs +0 -158
  263. package/esm2022/staging/contact-shadows/contact-shadows.mjs +0 -246
  264. package/esm2022/staging/environment/assets.mjs +0 -13
  265. package/esm2022/staging/environment/environment-cube.mjs +0 -47
  266. package/esm2022/staging/environment/environment-ground.mjs +0 -41
  267. package/esm2022/staging/environment/environment-input.mjs +0 -119
  268. package/esm2022/staging/environment/environment-map.mjs +0 -53
  269. package/esm2022/staging/environment/environment-portal.mjs +0 -113
  270. package/esm2022/staging/environment/environment.mjs +0 -61
  271. package/esm2022/staging/environment/utils.mjs +0 -106
  272. package/esm2022/staging/float/float.mjs +0 -94
  273. package/esm2022/staging/matcap-texture/matcap-texture.mjs +0 -64
  274. package/esm2022/staging/normal-texture/normal-texture.mjs +0 -53
  275. package/esm2022/staging/sky/sky.mjs +0 -119
  276. package/esm2022/staging/sparkles/sparkles.mjs +0 -164
  277. package/esm2022/staging/spot-light/shadow-mesh-input.mjs +0 -63
  278. package/esm2022/staging/spot-light/shadow-mesh.mjs +0 -266
  279. package/esm2022/staging/spot-light/spot-light-input.mjs +0 -84
  280. package/esm2022/staging/spot-light/spot-light.mjs +0 -81
  281. package/esm2022/staging/spot-light/volumetric-mesh.mjs +0 -98
  282. package/esm2022/staging/stage/stage.mjs +0 -389
  283. package/esm2022/staging/stars/stars.mjs +0 -147
  284. package/esm2022/staging/wireframe/wireframe-input.mjs +0 -191
  285. package/esm2022/staging/wireframe/wireframe.mjs +0 -228
  286. package/esm2022/utils/angular-three-soba-utils.mjs +0 -5
  287. package/esm2022/utils/content/content.mjs +0 -15
  288. package/esm2022/utils/index.mjs +0 -2
  289. package/fesm2022/angular-three-soba-gizmos.mjs +0 -1043
  290. package/fesm2022/angular-three-soba-gizmos.mjs.map +0 -1
  291. package/fesm2022/angular-three-soba-modifiers.mjs +0 -71
  292. package/fesm2022/angular-three-soba-modifiers.mjs.map +0 -1
  293. package/fesm2022/angular-three-soba-performances.mjs +0 -956
  294. package/fesm2022/angular-three-soba-performances.mjs.map +0 -1
  295. package/fesm2022/angular-three-soba-utils.mjs +0 -22
  296. package/fesm2022/angular-three-soba-utils.mjs.map +0 -1
  297. package/gizmos/README.md +0 -3
  298. package/gizmos/gizmo-helper/gizmo-helper.d.ts +0 -69
  299. package/gizmos/gizmo-helper/gizmo-viewcube/constants.d.ts +0 -12
  300. package/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube-edge.d.ts +0 -22
  301. package/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube-face.d.ts +0 -29
  302. package/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube-input.d.ts +0 -33
  303. package/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube.d.ts +0 -10
  304. package/gizmos/gizmo-helper/gizmo-viewport/gizmo-viewport-axis.d.ts +0 -40
  305. package/gizmos/gizmo-helper/gizmo-viewport/gizmo-viewport.d.ts +0 -30
  306. package/gizmos/index.d.ts +0 -3
  307. package/loaders/gltf-loader/gltf-loader.d.ts +0 -10
  308. package/loaders/loader/loader.d.ts +0 -33
  309. package/loaders/progress/progress.d.ts +0 -9
  310. package/loaders/texture-loader/texture-loader.d.ts +0 -7
  311. package/materials/mesh-distort-material/mesh-distort-material.d.ts +0 -40
  312. package/materials/mesh-reflector-material/mesh-reflector-material.d.ts +0 -99
  313. package/materials/mesh-refraction-material/mesh-refraction-material.d.ts +0 -62
  314. package/materials/mesh-transmission-material/mesh-transmission-material.d.ts +0 -107
  315. package/materials/mesh-wobble-material/mesh-wobble-material.d.ts +0 -29
  316. package/materials/point-material/point-material.d.ts +0 -24
  317. package/misc/animations/animations.d.ts +0 -15
  318. package/misc/caustics/caustics.d.ts +0 -87
  319. package/misc/decal/decal.d.ts +0 -49
  320. package/misc/depth-buffer/depth-buffer.d.ts +0 -9
  321. package/misc/example/example.d.ts +0 -81
  322. package/misc/fbo/fbo.d.ts +0 -17
  323. package/misc/html/html-wrapper.d.ts +0 -559
  324. package/misc/html/html.d.ts +0 -214
  325. package/misc/sampler/sampler.d.ts +0 -67
  326. package/misc/shadow/shadow.d.ts +0 -37
  327. package/misc/stats-gl/stats-gl.d.ts +0 -24
  328. package/misc/trail/trail.d.ts +0 -57
  329. package/misc/trail-texture/inject-trail-texture.d.ts +0 -9
  330. package/misc/trail-texture/trail-texture.d.ts +0 -50
  331. package/modifiers/README.md +0 -3
  332. package/modifiers/curve-modifier/curve-modifier.d.ts +0 -23
  333. package/modifiers/index.d.ts +0 -1
  334. package/performances/README.md +0 -3
  335. package/performances/adaptive-dpr/adaptive-dpr.d.ts +0 -14
  336. package/performances/adaptive-events/adaptive-events.d.ts +0 -9
  337. package/performances/index.d.ts +0 -7
  338. package/performances/instances/instances.d.ts +0 -79
  339. package/performances/instances/position-mesh.d.ts +0 -10
  340. package/performances/points/points-input.d.ts +0 -32
  341. package/performances/points/points.d.ts +0 -92
  342. package/performances/points/position-point.d.ts +0 -11
  343. package/performances/segments/segment-object.d.ts +0 -7
  344. package/performances/segments/segments.d.ts +0 -124
  345. package/shaders/blur-pass/blur-pass.d.ts +0 -23
  346. package/shaders/caustics/caustics-material.d.ts +0 -4
  347. package/shaders/caustics/caustics-projection-material.d.ts +0 -4
  348. package/shaders/convolution-material/convolution-material.d.ts +0 -7
  349. package/shaders/discard-material/discard-material.d.ts +0 -3
  350. package/shaders/grid-material/grid-material.d.ts +0 -37
  351. package/shaders/mesh-distort-material/mesh-distort-material.d.ts +0 -295
  352. package/shaders/mesh-reflector-material/mesh-reflector-material.d.ts +0 -50
  353. package/shaders/mesh-refraction-material/mesh-refraction-material.d.ts +0 -4
  354. package/shaders/mesh-transmission-material/mesh-transmission-material.d.ts +0 -25
  355. package/shaders/mesh-wobble-material/mesh-wobble-material.d.ts +0 -16
  356. package/shaders/shader-material/shader-material.d.ts +0 -6
  357. package/shaders/soft-shadow-material/soft-shadow-material.d.ts +0 -19
  358. package/shaders/sparkles-material/sparkles-material.d.ts +0 -17
  359. package/shaders/spot-light-material/spot-light-material.d.ts +0 -13
  360. package/shaders/star-field-material/star-field-material.d.ts +0 -13
  361. package/shaders/wireframe-material/wireframe-material.d.ts +0 -58
  362. package/staging/accumulative-shadows/accumulative-shadows.d.ts +0 -146
  363. package/staging/accumulative-shadows/progressive-light-map.d.ts +0 -34
  364. package/staging/accumulative-shadows/randomized-lights.d.ts +0 -90
  365. package/staging/backdrop/backdrop.d.ts +0 -30
  366. package/staging/bb-anchor/bb-anchor.d.ts +0 -27
  367. package/staging/bounds/bounds.d.ts +0 -134
  368. package/staging/camera-shake/camera-shake.d.ts +0 -43
  369. package/staging/center/center.d.ts +0 -70
  370. package/staging/cloud/cloud.d.ts +0 -51
  371. package/staging/contact-shadows/contact-shadows.d.ts +0 -70
  372. package/staging/environment/assets.d.ts +0 -13
  373. package/staging/environment/environment-cube.d.ts +0 -15
  374. package/staging/environment/environment-ground.d.ts +0 -13
  375. package/staging/environment/environment-input.d.ts +0 -68
  376. package/staging/environment/environment-map.d.ts +0 -16
  377. package/staging/environment/environment-portal.d.ts +0 -18
  378. package/staging/environment/environment.d.ts +0 -8
  379. package/staging/environment/utils.d.ts +0 -7
  380. package/staging/float/float.d.ts +0 -31
  381. package/staging/matcap-texture/matcap-texture.d.ts +0 -13
  382. package/staging/normal-texture/normal-texture.d.ts +0 -16
  383. package/staging/sky/sky.d.ts +0 -48
  384. package/staging/sparkles/sparkles.d.ts +0 -63
  385. package/staging/spot-light/shadow-mesh-input.d.ts +0 -29
  386. package/staging/spot-light/shadow-mesh.d.ts +0 -37
  387. package/staging/spot-light/spot-light-input.d.ts +0 -38
  388. package/staging/spot-light/spot-light.d.ts +0 -39
  389. package/staging/spot-light/volumetric-mesh.d.ts +0 -24
  390. package/staging/stage/stage.d.ts +0 -130
  391. package/staging/stars/stars.d.ts +0 -45
  392. package/staging/wireframe/wireframe-input.d.ts +0 -65
  393. package/staging/wireframe/wireframe.d.ts +0 -28
  394. package/utils/README.md +0 -3
  395. package/utils/content/content.d.ts +0 -8
  396. package/utils/index.d.ts +0 -1
  397. /package/misc/{bake-shadows → lib}/bake-shadows.d.ts +0 -0
@@ -1,113 +0,0 @@
1
- import { NgIf } from '@angular/common';
2
- import { Component, computed, CUSTOM_ELEMENTS_SCHEMA, effect, inject } from '@angular/core';
3
- import { extend, injectBeforeRender, injectNgtRef, injectNgtStore, NgtArgs, NgtPortal, NgtPortalContent, prepare, } from 'angular-three';
4
- import * as THREE from 'three';
5
- import { CubeCamera } from 'three';
6
- import { NgtsEnvironmentCube } from './environment-cube';
7
- import { NgtsEnvironmentInput } from './environment-input';
8
- import { NgtsEnvironmentMap } from './environment-map';
9
- import { setEnvProps } from './utils';
10
- import * as i0 from "@angular/core";
11
- extend({ CubeCamera });
12
- export class NgtsEnvironmentPortal {
13
- constructor() {
14
- this.environmentInput = inject(NgtsEnvironmentInput);
15
- this.store = injectNgtStore();
16
- this.gl = this.store.select('gl');
17
- this.scene = this.store.select('scene');
18
- this.virtualSceneRef = injectNgtRef(prepare(new THREE.Scene()));
19
- this.cubeCameraRef = injectNgtRef();
20
- this.fbo = computed(() => {
21
- const fbo = new THREE.WebGLCubeRenderTarget(this.environmentInput.resolution());
22
- fbo.texture.type = THREE.HalfFloatType;
23
- return fbo;
24
- });
25
- this.cameraArgs = computed(() => [this.environmentInput.near(), this.environmentInput.far(), this.fbo()]);
26
- effect(() => {
27
- this.environmentInput.inputs.patch({
28
- near: 1,
29
- far: 1000,
30
- resolution: 256,
31
- frames: 1,
32
- background: false,
33
- preset: undefined,
34
- });
35
- });
36
- this.setEnvProps();
37
- this.beforeRender();
38
- }
39
- setEnvProps() {
40
- effect((onCleanup) => {
41
- const [virtualScene, blur, frames, background, scene, fbo, defaultScene, gl, cubeCamera] = [
42
- this.virtualSceneRef.nativeElement,
43
- this.environmentInput.blur(),
44
- this.environmentInput.frames(),
45
- this.environmentInput.background(),
46
- this.environmentInput.scene(),
47
- this.fbo(),
48
- this.scene(),
49
- this.gl(),
50
- this.cubeCameraRef.nativeElement,
51
- ];
52
- if (!cubeCamera || !virtualScene)
53
- return;
54
- if (frames === 1)
55
- cubeCamera.update(gl, virtualScene);
56
- const cleanUp = setEnvProps(background, scene, defaultScene, fbo.texture, blur);
57
- onCleanup(cleanUp);
58
- });
59
- }
60
- beforeRender() {
61
- let count = 1;
62
- injectBeforeRender(({ gl }) => {
63
- const { frames } = this.environmentInput.inputs.get();
64
- if (frames === Infinity || count < frames) {
65
- const camera = this.cubeCameraRef.nativeElement;
66
- const virtualScene = this.virtualSceneRef.nativeElement;
67
- if (camera && virtualScene) {
68
- camera.update(gl, virtualScene);
69
- count++;
70
- }
71
- }
72
- });
73
- }
74
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: NgtsEnvironmentPortal, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
75
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: NgtsEnvironmentPortal, isStandalone: true, selector: "ngts-environment-portal", ngImport: i0, template: `
76
- <ngt-portal [container]="virtualSceneRef">
77
- <ng-template ngtPortalContent>
78
- <ng-content />
79
- <ngt-cube-camera *args="cameraArgs()" [ref]="cubeCameraRef" />
80
- <ng-container *ngIf="environmentInput.files() || environmentInput.preset(); else environmentMap">
81
- <ngts-environment-cube [background]="true" />
82
- </ng-container>
83
- <ng-template #environmentMap>
84
- <ngts-environment-map *ngIf="environmentInput.map() as map" [background]="true" [map]="map" />
85
- </ng-template>
86
- </ng-template>
87
- </ngt-portal>
88
- `, isInline: true, dependencies: [{ kind: "component", type: NgtPortal, selector: "ngt-portal", inputs: ["container", "state", "autoRender", "autoRenderPriority"], outputs: ["beforeRender"] }, { kind: "directive", type: NgtPortalContent, selector: "ng-template[ngtPortalContent]" }, { kind: "directive", type: NgtsEnvironmentMap, selector: "ngts-environment-map", inputs: ["map", "background"] }, { kind: "directive", type: NgtsEnvironmentCube, selector: "ngts-environment-cube", inputs: ["background"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }] }); }
89
- }
90
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: NgtsEnvironmentPortal, decorators: [{
91
- type: Component,
92
- args: [{
93
- selector: 'ngts-environment-portal',
94
- standalone: true,
95
- template: `
96
- <ngt-portal [container]="virtualSceneRef">
97
- <ng-template ngtPortalContent>
98
- <ng-content />
99
- <ngt-cube-camera *args="cameraArgs()" [ref]="cubeCameraRef" />
100
- <ng-container *ngIf="environmentInput.files() || environmentInput.preset(); else environmentMap">
101
- <ngts-environment-cube [background]="true" />
102
- </ng-container>
103
- <ng-template #environmentMap>
104
- <ngts-environment-map *ngIf="environmentInput.map() as map" [background]="true" [map]="map" />
105
- </ng-template>
106
- </ng-template>
107
- </ngt-portal>
108
- `,
109
- imports: [NgtPortal, NgtPortalContent, NgtsEnvironmentMap, NgtsEnvironmentCube, NgIf, NgtArgs],
110
- schemas: [CUSTOM_ELEMENTS_SCHEMA],
111
- }]
112
- }], ctorParameters: function () { return []; } });
113
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQtcG9ydGFsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zb2JhL3N0YWdpbmcvc3JjL2Vudmlyb25tZW50L2Vudmlyb25tZW50LXBvcnRhbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkMsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RixPQUFPLEVBQ04sTUFBTSxFQUNOLGtCQUFrQixFQUNsQixZQUFZLEVBQ1osY0FBYyxFQUNkLE9BQU8sRUFDUCxTQUFTLEVBQ1QsZ0JBQWdCLEVBQ2hCLE9BQU8sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEtBQUssS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMvQixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQ25DLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzNELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxTQUFTLENBQUM7O0FBRXRDLE1BQU0sQ0FBQyxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7QUFzQnZCLE1BQU0sT0FBTyxxQkFBcUI7SUFnQmpDO1FBZkEscUJBQWdCLEdBQUcsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDeEMsVUFBSyxHQUFHLGNBQWMsRUFBRSxDQUFDO1FBQ3pCLE9BQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3QixVQUFLLEdBQUcsSUFBSSxDQUFD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M0MsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUM7Z0JBQ2hELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDO2dCQUN4RCxJQUFJLE1BQU0sSUFBSSxZQUFZLEVBQUU7b0JBQzNCLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLFlBQVksQ0FBQyxDQUFDO29CQUNoQyxLQUFLLEVBQUUsQ0FBQztpQkFDUjthQUNEO1FBQ0YsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDOzhHQWhFVyxxQkFBcUI7a0dBQXJCLHFCQUFxQixtRkFqQnZCOzs7Ozs7Ozs7Ozs7O0VBYVQsNERBQ1MsU0FBUyxzSkFBRSxnQkFBZ0IsMEVBQUUsa0JBQWtCLGdHQUFFLG1CQUFtQiwwRkFBRSxJQUFJLDZGQUFFLE9BQU87OzJGQUdqRixxQkFBcUI7a0JBcEJqQyxTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSx5QkFBeUI7b0JBQ25DLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7RUFhVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQUUsbUJBQW1CLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQztvQkFDOUYsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7aUJBQ2pDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBlZmZlY3QsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcblx0ZXh0ZW5kLFxuXHRpbmplY3RCZWZvcmVSZW5kZXIsXG5cdGluamVjdE5ndFJlZixcblx0aW5qZWN0Tmd0U3RvcmUsXG5cdE5ndEFyZ3MsXG5cdE5ndFBvcnRhbCxcblx0Tmd0UG9ydGFsQ29udGVudCxcblx0cHJlcGFyZSxcbn0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgKiBhcyBUSFJFRSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgeyBDdWJlQ2FtZXJhIH0gZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgTmd0c0Vudmlyb25tZW50Q3ViZSB9IGZyb20gJy4vZW52aXJvbm1lbnQtY3ViZSc7XG5pbXBvcnQgeyBOZ3RzRW52aXJvbm1lbnRJbnB1dCB9IGZyb20gJy4vZW52aXJvbm1lbnQtaW5wdXQnO1xuaW1wb3J0IHsgTmd0c0Vudmlyb25tZW50TWFwIH0gZnJvbSAnLi9lbnZpcm9ubWVudC1tYXAnO1xuaW1wb3J0IHsgc2V0RW52UHJvcHMgfSBmcm9tICcuL3V0aWxzJztcblxuZXh0ZW5kKHsgQ3ViZUNhbWVyYSB9KTtcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cy1lbnZpcm9ubWVudC1wb3J0YWwnLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3QtcG9ydGFsIFtjb250YWluZXJdPVwidmlydHVhbFNjZW5lUmVmXCI+XG5cdFx0XHQ8bmctdGVtcGxhdGUgbmd0UG9ydGFsQ29udGVudD5cblx0XHRcdFx0PG5nLWNvbnRlbnQgLz5cblx0XHRcdFx0PG5ndC1jdWJlLWNhbWVyYSAqYXJncz1cImNhbWVyYUFyZ3MoKVwiIFtyZWZdPVwiY3ViZUNhbWVyYVJlZlwiIC8+XG5cdFx0XHRcdDxuZy1jb250YWluZXIgKm5nSWY9XCJlbnZpcm9ubWVudElucHV0LmZpbGVzKCkgfHwgZW52aXJvbm1lbnRJbnB1dC5wcmVzZXQoKTsgZWxzZSBlbnZpcm9ubWVudE1hcFwiPlxuXHRcdFx0XHRcdDxuZ3RzLWVudmlyb25tZW50LWN1YmUgW2JhY2tncm91bmRdPVwidHJ1ZVwiIC8+XG5cdFx0XHRcdDwvbmctY29udGFpbmVyPlxuXHRcdFx0XHQ8bmctdGVtcGxhdGUgI2Vudmlyb25tZW50TWFwPlxuXHRcdFx0XHRcdDxuZ3RzLWVudmlyb25tZW50LW1hcCAqbmdJZj1cImVudmlyb25tZW50SW5wdXQubWFwKCkgYXMgbWFwXCIgW2JhY2tncm91bmRdPVwidHJ1ZVwiIFttYXBdPVwibWFwXCIgLz5cblx0XHRcdFx0PC9uZy10ZW1wbGF0ZT5cblx0XHRcdDwvbmctdGVtcGxhdGU+XG5cdFx0PC9uZ3QtcG9ydGFsPlxuXHRgLFxuXHRpbXBvcnRzOiBbTmd0UG9ydGFsLCBOZ3RQb3J0YWxDb250ZW50LCBOZ3RzRW52aXJvbm1lbnRNYXAsIE5ndHNFbnZpcm9ubWVudEN1YmUsIE5nSWYsIE5ndEFyZ3NdLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHNFbnZpcm9ubWVudFBvcnRhbCB7XG5cdGVudmlyb25tZW50SW5wdXQgPSBpbmplY3QoTmd0c0Vudmlyb25tZW50SW5wdXQpO1xuXHRwcml2YXRlIHN0b3JlID0gaW5qZWN0Tmd0U3RvcmUoKTtcblx0cHJpdmF0ZSBnbCA9IHRoaXMuc3RvcmUuc2VsZWN0KCdnbCcpO1xuXHRwcml2YXRlIHNjZW5lID0gdGhpcy5zdG9yZS5zZWxlY3QoJ3NjZW5lJyk7XG5cblx0dmlydHVhbFNjZW5lUmVmID0gaW5qZWN0Tmd0UmVmPFRIUkVFLlNjZW5lPihwcmVwYXJlKG5ldyBUSFJFRS5TY2VuZSgpKSk7XG5cdGN1YmVDYW1lcmFSZWYgPSBpbmplY3ROZ3RSZWY8VEhSRUUuQ3ViZUNhbWVyYT4oKTtcblxuXHRwcml2YXRlIGZibyA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRjb25zdCBmYm8gPSBuZXcgVEhSRUUuV2ViR0xDdWJlUmVuZGVyVGFyZ2V0KHRoaXMuZW52aXJvbm1lbnRJbnB1dC5yZXNvbHV0aW9uKCkpO1xuXHRcdGZiby50ZXh0dXJlLnR5cGUgPSBUSFJFRS5IYWxmRmxvYXRUeXBlO1xuXHRcdHJldHVybiBmYm87XG5cdH0pO1xuXHRjYW1lcmFBcmdzID0gY29tcHV0ZWQoKCkgPT4gW3RoaXMuZW52aXJvbm1lbnRJbnB1dC5uZWFyKCkhLCB0aGlzLmVudmlyb25tZW50SW5wdXQuZmFyKCkhLCB0aGlzLmZibygpXSk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0ZWZmZWN0KCgpID0+IHtcblx0XHRcdHRoaXMuZW52aXJvbm1lbnRJbnB1dC5pbnB1dHMucGF0Y2goe1xuXHRcdFx0XHRuZWFyOiAxLFxuXHRcdFx0XHRmYXI6IDEwMDAsXG5cdFx0XHRcdHJlc29sdXRpb246IDI1Nixcblx0XHRcdFx0ZnJhbWVzOiAxLFxuXHRcdFx0XHRiYWNrZ3JvdW5kOiBmYWxzZSxcblx0XHRcdFx0cHJlc2V0OiB1bmRlZmluZWQsXG5cdFx0XHR9KTtcblx0XHR9KTtcblx0XHR0aGlzLnNldEVudlByb3BzKCk7XG5cdFx0dGhpcy5iZWZvcmVSZW5kZXIoKTtcblx0fVxuXG5cdHByaXZhdGUgc2V0RW52UHJvcHMoKSB7XG5cdFx0ZWZmZWN0KChvbkNsZWFudXApID0+IHtcblx0XHRcdGNvbnN0IFt2aXJ0dWFsU2NlbmUsIGJsdXIsIGZyYW1lcywgYmFja2dyb3VuZCwgc2NlbmUsIGZibywgZGVmYXVsdFNjZW5lLCBnbCwgY3ViZUNhbWVyYV0gPSBbXG5cdFx0XHRcdHRoaXMudmlydHVhbFNjZW5lUmVmLm5hdGl2ZUVsZW1lbnQsXG5cdFx0XHRcdHRoaXMuZW52aXJvbm1lbnRJbnB1dC5ibHVyKCksXG5cdFx0XHRcdHRoaXMuZW52aXJvbm1lbnRJbnB1dC5mcmFtZXMoKSxcblx0XHRcdFx0dGhpcy5lbnZpcm9ubWVudElucHV0LmJhY2tncm91bmQoKSxcblx0XHRcdFx0dGhpcy5lbnZpcm9ubWVudElucHV0LnNjZW5lKCksXG5cdFx0XHRcdHRoaXMuZmJvKCksXG5cdFx0XHRcdHRoaXMuc2NlbmUoKSxcblx0XHRcdFx0dGhpcy5nbCgpLFxuXHRcdFx0XHR0aGlzLmN1YmVDYW1lcmFSZWYubmF0aXZlRWxlbWVudCxcblx0XHRcdF07XG5cdFx0XHRpZiAoIWN1YmVDYW1lcmEgfHwgIXZpcnR1YWxTY2VuZSkgcmV0dXJuO1xuXHRcdFx0aWYgKGZyYW1lcyA9PT0gMSkgY3ViZUNhbWVyYS51cGRhdGUoZ2wsIHZpcnR1YWxTY2VuZSk7XG5cdFx0XHRjb25zdCBjbGVhblVwID0gc2V0RW52UHJvcHMoYmFja2dyb3VuZCEsIHNjZW5lLCBkZWZhdWx0U2NlbmUsIGZiby50ZXh0dXJlLCBibHVyKTtcblx0XHRcdG9uQ2xlYW51cChjbGVhblVwKTtcblx0XHR9KTtcblx0fVxuXG5cdHByaXZhdGUgYmVmb3JlUmVuZGVyKCkge1xuXHRcdGxldCBjb3VudCA9IDE7XG5cdFx0aW5qZWN0QmVmb3JlUmVuZGVyKCh7IGdsIH0pID0+IHtcblx0XHRcdGNvbnN0IHsgZnJhbWVzIH0gPSB0aGlzLmVudmlyb25tZW50SW5wdXQuaW5wdXRzLmdldCgpO1xuXHRcdFx0aWYgKGZyYW1lcyA9PT0gSW5maW5pdHkgfHwgY291bnQgPCBmcmFtZXMhKSB7XG5cdFx0XHRcdGNvbnN0IGNhbWVyYSA9IHRoaXMuY3ViZUNhbWVyYVJlZi5uYXRpdmVFbGVtZW50O1xuXHRcdFx0XHRjb25zdCB2aXJ0dWFsU2NlbmUgPSB0aGlzLnZpcnR1YWxTY2VuZVJlZi5uYXRpdmVFbGVtZW50O1xuXHRcdFx0XHRpZiAoY2FtZXJhICYmIHZpcnR1YWxTY2VuZSkge1xuXHRcdFx0XHRcdGNhbWVyYS51cGRhdGUoZ2wsIHZpcnR1YWxTY2VuZSk7XG5cdFx0XHRcdFx0Y291bnQrKztcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG59XG4iXX0=
@@ -1,61 +0,0 @@
1
- import { NgIf, NgTemplateOutlet } from '@angular/common';
2
- import { CUSTOM_ELEMENTS_SCHEMA, Component, ContentChild, TemplateRef } from '@angular/core';
3
- import { NgtsSobaContent } from 'angular-three-soba/utils';
4
- import { NgtsEnvironmentCube } from './environment-cube';
5
- import { NgtsEnvironmentGround } from './environment-ground';
6
- import { NgtsEnvironmentInput } from './environment-input';
7
- import { NgtsEnvironmentMap } from './environment-map';
8
- import { NgtsEnvironmentPortal } from './environment-portal';
9
- import * as i0 from "@angular/core";
10
- export class NgtsEnvironment extends NgtsEnvironmentInput {
11
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: NgtsEnvironment, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
12
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: NgtsEnvironment, isStandalone: true, selector: "ngts-environment", providers: [{ provide: NgtsEnvironmentInput, useExisting: NgtsEnvironment }], queries: [{ propertyName: "content", first: true, predicate: NgtsSobaContent, descendants: true, read: TemplateRef }], usesInheritance: true, ngImport: i0, template: `
13
- <ngts-environment-ground *ngIf="ground(); else noGround" />
14
- <ng-template #noGround>
15
- <ngts-environment-map *ngIf="map() as map; else noMap" [map]="map" [background]="!!background()" />
16
- <ng-template #noMap>
17
- <ngts-environment-portal *ngIf="content; else noPortal">
18
- <ng-container *ngTemplateOutlet="content" />
19
- </ngts-environment-portal>
20
- <ng-template #noPortal>
21
- <ngts-environment-cube [background]="!!background()" />
22
- </ng-template>
23
- </ng-template>
24
- </ng-template>
25
- `, isInline: true, dependencies: [{ kind: "directive", type: NgtsEnvironmentMap, selector: "ngts-environment-map", inputs: ["map", "background"] }, { kind: "component", type: NgtsEnvironmentGround, selector: "ngts-environment-ground" }, { kind: "directive", type: NgtsEnvironmentCube, selector: "ngts-environment-cube", inputs: ["background"] }, { kind: "component", type: NgtsEnvironmentPortal, selector: "ngts-environment-portal" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
26
- }
27
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: NgtsEnvironment, decorators: [{
28
- type: Component,
29
- args: [{
30
- selector: 'ngts-environment',
31
- standalone: true,
32
- template: `
33
- <ngts-environment-ground *ngIf="ground(); else noGround" />
34
- <ng-template #noGround>
35
- <ngts-environment-map *ngIf="map() as map; else noMap" [map]="map" [background]="!!background()" />
36
- <ng-template #noMap>
37
- <ngts-environment-portal *ngIf="content; else noPortal">
38
- <ng-container *ngTemplateOutlet="content" />
39
- </ngts-environment-portal>
40
- <ng-template #noPortal>
41
- <ngts-environment-cube [background]="!!background()" />
42
- </ng-template>
43
- </ng-template>
44
- </ng-template>
45
- `,
46
- imports: [
47
- NgtsEnvironmentMap,
48
- NgtsEnvironmentGround,
49
- NgtsEnvironmentCube,
50
- NgtsEnvironmentPortal,
51
- NgIf,
52
- NgTemplateOutlet,
53
- ],
54
- providers: [{ provide: NgtsEnvironmentInput, useExisting: NgtsEnvironment }],
55
- schemas: [CUSTOM_ELEMENTS_SCHEMA],
56
- }]
57
- }], propDecorators: { content: [{
58
- type: ContentChild,
59
- args: [NgtsSobaContent, { read: TemplateRef }]
60
- }] } });
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvc3RhZ2luZy9zcmMvZW52aXJvbm1lbnQvZW52aXJvbm1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDekQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDN0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdkQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7O0FBOEI3RCxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxvQkFBb0I7OEdBQTVDLGVBQWU7a0dBQWYsZUFBZSwrREFIaEIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLENBQUMsK0RBSTlELGVBQWUsMkJBQVUsV0FBVyxvREExQnhDOzs7Ozs7Ozs7Ozs7O0VBYVQsNERBRUEsa0JBQWtCLGdHQUNsQixxQkFBcUIsb0VBQ3JCLG1CQUFtQiwwRkFDbkIscUJBQXFCLG9FQUNyQixJQUFJLDZGQUNKLGdCQUFnQjs7MkZBS0wsZUFBZTtrQkE1QjNCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7OztFQWFUO29CQUNELE9BQU8sRUFBRTt3QkFDUixrQkFBa0I7d0JBQ2xCLHFCQUFxQjt3QkFDckIsbUJBQW1CO3dCQUNuQixxQkFBcUI7d0JBQ3JCLElBQUk7d0JBQ0osZ0JBQWdCO3FCQUNoQjtvQkFDRCxTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxXQUFXLGlCQUFpQixFQUFFLENBQUM7b0JBQzVFLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO2lCQUNqQzs4QkFFc0QsT0FBTztzQkFBNUQsWUFBWTt1QkFBQyxlQUFlLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdJZiwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBDb21wb25lbnQsIENvbnRlbnRDaGlsZCwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5ndHNTb2JhQ29udGVudCB9IGZyb20gJ2FuZ3VsYXItdGhyZWUtc29iYS91dGlscyc7XG5pbXBvcnQgeyBOZ3RzRW52aXJvbm1lbnRDdWJlIH0gZnJvbSAnLi9lbnZpcm9ubWVudC1jdWJlJztcbmltcG9ydCB7IE5ndHNFbnZpcm9ubWVudEdyb3VuZCB9IGZyb20gJy4vZW52aXJvbm1lbnQtZ3JvdW5kJztcbmltcG9ydCB7IE5ndHNFbnZpcm9ubWVudElucHV0IH0gZnJvbSAnLi9lbnZpcm9ubWVudC1pbnB1dCc7XG5pbXBvcnQgeyBOZ3RzRW52aXJvbm1lbnRNYXAgfSBmcm9tICcuL2Vudmlyb25tZW50LW1hcCc7XG5pbXBvcnQgeyBOZ3RzRW52aXJvbm1lbnRQb3J0YWwgfSBmcm9tICcuL2Vudmlyb25tZW50LXBvcnRhbCc7XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHMtZW52aXJvbm1lbnQnLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3RzLWVudmlyb25tZW50LWdyb3VuZCAqbmdJZj1cImdyb3VuZCgpOyBlbHNlIG5vR3JvdW5kXCIgLz5cblx0XHQ8bmctdGVtcGxhdGUgI25vR3JvdW5kPlxuXHRcdFx0PG5ndHMtZW52aXJvbm1lbnQtbWFwICpuZ0lmPVwibWFwKCkgYXMgbWFwOyBlbHNlIG5vTWFwXCIgW21hcF09XCJtYXBcIiBbYmFja2dyb3VuZF09XCIhIWJhY2tncm91bmQoKVwiIC8+XG5cdFx0XHQ8bmctdGVtcGxhdGUgI25vTWFwPlxuXHRcdFx0XHQ8bmd0cy1lbnZpcm9ubWVudC1wb3J0YWwgKm5nSWY9XCJjb250ZW50OyBlbHNlIG5vUG9ydGFsXCI+XG5cdFx0XHRcdFx0PG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRcIiAvPlxuXHRcdFx0XHQ8L25ndHMtZW52aXJvbm1lbnQtcG9ydGFsPlxuXHRcdFx0XHQ8bmctdGVtcGxhdGUgI25vUG9ydGFsPlxuXHRcdFx0XHRcdDxuZ3RzLWVudmlyb25tZW50LWN1YmUgW2JhY2tncm91bmRdPVwiISFiYWNrZ3JvdW5kKClcIiAvPlxuXHRcdFx0XHQ8L25nLXRlbXBsYXRlPlxuXHRcdFx0PC9uZy10ZW1wbGF0ZT5cblx0XHQ8L25nLXRlbXBsYXRlPlxuXHRgLFxuXHRpbXBvcnRzOiBbXG5cdFx0Tmd0c0Vudmlyb25tZW50TWFwLFxuXHRcdE5ndHNFbnZpcm9ubWVudEdyb3VuZCxcblx0XHROZ3RzRW52aXJvbm1lbnRDdWJlLFxuXHRcdE5ndHNFbnZpcm9ubWVudFBvcnRhbCxcblx0XHROZ0lmLFxuXHRcdE5nVGVtcGxhdGVPdXRsZXQsXG5cdF0sXG5cdHByb3ZpZGVyczogW3sgcHJvdmlkZTogTmd0c0Vudmlyb25tZW50SW5wdXQsIHVzZUV4aXN0aW5nOiBOZ3RzRW52aXJvbm1lbnQgfV0sXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0c0Vudmlyb25tZW50IGV4dGVuZHMgTmd0c0Vudmlyb25tZW50SW5wdXQge1xuXHRAQ29udGVudENoaWxkKE5ndHNTb2JhQ29udGVudCwgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KSBjb250ZW50PzogVGVtcGxhdGVSZWY8dW5rbm93bj47XG59XG4iXX0=
@@ -1,106 +0,0 @@
1
- import { ChangeDetectorRef, DestroyRef, ElementRef, Injector, computed, effect, inject, runInInjectionContext, } from '@angular/core';
2
- import { assertInjectionContext, injectNgtLoader, injectNgtRef, is, safeDetectChanges } from 'angular-three';
3
- import { CubeReflectionMapping, CubeTexture, CubeTextureLoader, EquirectangularReflectionMapping } from 'three';
4
- import { EXRLoader, RGBELoader } from 'three-stdlib';
5
- import { ENVIRONMENT_PRESETS } from './assets';
6
- import {} from './environment-input';
7
- function resolveScene(scene) {
8
- return is.ref(scene) ? scene.nativeElement : scene;
9
- }
10
- export function setEnvProps(background, scene, defaultScene, texture, blur = 0) {
11
- const target = resolveScene(scene || defaultScene);
12
- const oldbg = target.background;
13
- const oldenv = target.environment;
14
- const oldBlur = target.backgroundBlurriness || 0;
15
- if (background !== 'only')
16
- target.environment = texture;
17
- if (background)
18
- target.background = texture;
19
- if (background && target.backgroundBlurriness !== undefined)
20
- target.backgroundBlurriness = blur;
21
- return () => {
22
- if (background !== 'only')
23
- target.environment = oldenv;
24
- if (background)
25
- target.background = oldbg;
26
- if (background && target.backgroundBlurriness !== undefined)
27
- target.backgroundBlurriness = oldBlur;
28
- };
29
- }
30
- const CUBEMAP_ROOT = 'https://raw.githack.com/pmndrs/drei-assets/456060a26bbeb8fdf79326f224b6d99b8bcce736/hdri/';
31
- export function injectNgtsEnvironment(paramsFactory, injector) {
32
- injector = assertInjectionContext(injectNgtsEnvironment, injector);
33
- return runInInjectionContext(injector, () => {
34
- const textureRef = injectNgtRef();
35
- const cdr = inject(ChangeDetectorRef);
36
- inject(DestroyRef).onDestroy(() => {
37
- textureRef.nativeElement.dispose();
38
- });
39
- const params = computed(() => {
40
- let { files, preset, encoding, path, extensions } = paramsFactory();
41
- if (files == null) {
42
- files = ['/px.png', '/nx.png', '/py.png', '/ny.png', '/pz.png', '/nz.png'];
43
- }
44
- if (path == null) {
45
- path = '';
46
- }
47
- if (preset) {
48
- if (!(preset in ENVIRONMENT_PRESETS))
49
- throw new Error('Preset must be one of: ' + Object.keys(ENVIRONMENT_PRESETS).join(', '));
50
- files = ENVIRONMENT_PRESETS[preset];
51
- path = CUBEMAP_ROOT;
52
- }
53
- return { files, preset, encoding, path, extensions };
54
- });
55
- const loaderResult = injectNgtLoader(
56
- // @ts-expect-error
57
- () => {
58
- const { files = '' } = params();
59
- const isCubeMap = Array.isArray(files);
60
- const extension = Array.isArray(files)
61
- ? 'cube'
62
- : files.startsWith('data:application/exr')
63
- ? 'exr'
64
- : files.startsWith('data:application/hdr')
65
- ? 'hdr'
66
- : files.split('.').pop()?.split('?')?.shift()?.toLowerCase();
67
- return isCubeMap
68
- ? CubeTextureLoader
69
- : extension === 'hdr'
70
- ? RGBELoader
71
- : extension === 'exr'
72
- ? EXRLoader
73
- : null;
74
- }, () => {
75
- const { files } = params();
76
- return Array.isArray(files) ? [files] : files;
77
- }, {
78
- extensions: (loader) => {
79
- const { path, extensions } = params();
80
- loader.setPath(path);
81
- if (extensions)
82
- extensions(loader);
83
- },
84
- });
85
- const sRGBEncoding = 3001;
86
- const LinearEncoding = 3000;
87
- effect(() => {
88
- const result = loaderResult();
89
- if (!result)
90
- return;
91
- const { files, encoding } = params();
92
- const texture = Array.isArray(files) ? result[0] : result;
93
- texture.mapping = Array.isArray(files) ? CubeReflectionMapping : EquirectangularReflectionMapping;
94
- if ('colorSpace' in texture) {
95
- texture.colorSpace = encoding ?? Array.isArray(files) ? 'srgb' : 'srgb-linear';
96
- }
97
- else {
98
- texture.encoding = encoding ?? Array.isArray(files) ? sRGBEncoding : LinearEncoding;
99
- }
100
- textureRef.nativeElement = texture;
101
- safeDetectChanges(cdr);
102
- });
103
- return textureRef;
104
- });
105
- }
106
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvc3RhZ2luZy9zcmMvZW52aXJvbm1lbnQvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNOLGlCQUFpQixFQUNqQixVQUFVLEVBQ1YsVUFBVSxFQUNWLFFBQVEsRUFDUixRQUFRLEVBQ1IsTUFBTSxFQUNOLE1BQU0sRUFDTixxQkFBcUIsR0FDckIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLHNCQUFzQixFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsRUFBRSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDaEgsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDckQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQy9DLE9BQU8sRUFBa0MsTUFBTSxxQkFBcUIsQ0FBQztBQUVyRSxTQUFTLFlBQVksQ0FBQyxLQUE0QztJQUNqRSxPQUFPLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztBQUNwRCxDQUFDO0FBRUQsTUFBTSxVQUFVLFdBQVcsQ0FDMUIsVUFBNEIsRUFDNUIsS0FBd0QsRUFDeEQsWUFBeUIsRUFDekIsT0FBc0IsRUFDdEIsSUFBSSxHQUFHLENBQUM7SUFFUixNQUFNLE1BQU0sR0FBRyxZQUFZLENBQUMsS0FBSyxJQUFJLFlBQVksQ0FBQyxDQUFDO0lBQ25ELE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUM7SUFDaEMsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFD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LEVBQUUsQ0FBQztZQUM5QixJQUFJLENBQUMsTUFBTTtnQkFBRSxPQUFPO1lBQ3BCLE1BQU0sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEdBQUcsTUFBTSxFQUFFLENBQUM7WUFDckMsTUFBTSxPQUFPLEdBQXNDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO1lBQzdGLE9BQU8sQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLGdDQUFnQyxDQUFDO1lBQ2xHLElBQUksWUFBWSxJQUFJLE9BQU8sRUFBRTtnQkFDNUIsT0FBTyxDQUFDLFVBQVUsR0FBRyxRQUFRLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUM7YUFDL0U7aUJBQU07Z0JBQ0wsT0FBZSxDQUFDLFFBQVEsR0FBRyxRQUFRLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUM7YUFDN0Y7WUFFRCxVQUFVLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQztZQUNuQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN4QixDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sVUFBVSxDQUFDO0lBQ25CLENBQUMsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdENoYW5nZURldGVjdG9yUmVmLFxuXHREZXN0cm95UmVmLFxuXHRFbGVtZW50UmVmLFxuXHRJbmplY3Rvcixcblx0Y29tcHV0ZWQsXG5cdGVmZmVjdCxcblx0aW5qZWN0LFxuXHRydW5JbkluamVjdGlvbkNvbnRleHQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgYXNzZXJ0SW5qZWN0aW9uQ29udGV4dCwgaW5qZWN0Tmd0TG9hZGVyLCBpbmplY3ROZ3RSZWYsIGlzLCBzYWZlRGV0ZWN0Q2hhbmdlcyB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgQ3ViZVJlZmxlY3Rpb25NYXBwaW5nLCBDdWJlVGV4dHVyZSwgQ3ViZVRleHR1cmVMb2FkZXIsIEVxdWlyZWN0YW5ndWxhclJlZmxlY3Rpb25NYXBwaW5nIH0gZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgRVhSTG9hZGVyLCBSR0JFTG9hZGVyIH0gZnJvbSAndGhyZWUtc3RkbGliJztcbmltcG9ydCB7IEVOVklST05NRU5UX1BSRVNFVFMgfSBmcm9tICcuL2Fzc2V0cyc7XG5pbXBvcnQgeyB0eXBlIE5ndHNFbnZpcm9ubWVudElucHV0U3RhdGUgfSBmcm9tICcuL2Vudmlyb25tZW50LWlucHV0JztcblxuZnVuY3Rpb24gcmVzb2x2ZVNjZW5lKHNjZW5lOiBUSFJFRS5TY2VuZSB8IEVsZW1lbnRSZWY8VEhSRUUuU2NlbmU+KSB7XG5cdHJldHVybiBpcy5yZWYoc2NlbmUpID8gc2NlbmUubmF0aXZlRWxlbWVudCA6IHNjZW5lO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0RW52UHJvcHMoXG5cdGJhY2tncm91bmQ6IGJvb2xlYW4gfCAnb25seScsXG5cdHNjZW5lOiBUSFJFRS5TY2VuZSB8IEVsZW1lbnRSZWY8VEhSRUUuU2NlbmU+IHwgdW5kZWZpbmVkLFxuXHRkZWZhdWx0U2NlbmU6IFRIUkVFLlNjZW5lLFxuXHR0ZXh0dXJlOiBUSFJFRS5UZXh0dXJlLFxuXHRibHVyID0gMCxcbikge1xuXHRjb25zdCB0YXJnZXQgPSByZXNvbHZlU2NlbmUoc2NlbmUgfHwgZGVmYXVsdFNjZW5lKTtcblx0Y29uc3Qgb2xkYmcgPSB0YXJnZXQuYmFja2dyb3VuZDtcblx0Y29uc3Qgb2xkZW52ID0gdGFyZ2V0LmVudmlyb25tZW50O1xuXHRjb25zdCBvbGRCbHVyID0gdGFyZ2V0LmJhY2tncm91bmRCbHVycmluZXNzIHx8IDA7XG5cblx0aWYgKGJhY2tncm91bmQgIT09ICdvbmx5JykgdGFyZ2V0LmVudmlyb25tZW50ID0gdGV4dHVyZTtcblx0aWYgKGJhY2tncm91bmQpIHRhcmdldC5iYWNrZ3JvdW5kID0gdGV4dHVyZTtcblx0aWYgKGJhY2tncm91bmQgJiYgdGFyZ2V0LmJhY2tncm91bmRCbHVycmluZXNzICE9PSB1bmRlZmluZWQpIHRhcmdldC5iYWNrZ3JvdW5kQmx1cnJpbmVzcyA9IGJsdXI7XG5cblx0cmV0dXJuICgpID0+IHtcblx0XHRpZiAoYmFja2dyb3VuZCAhPT0gJ29ubHknKSB0YXJnZXQuZW52aXJvbm1lbnQgPSBvbGRlbnY7XG5cdFx0aWYgKGJhY2tncm91bmQpIHRhcmdldC5iYWNrZ3JvdW5kID0gb2xkYmc7XG5cdFx0aWYgKGJhY2tncm91bmQgJiYgdGFyZ2V0LmJhY2tncm91bmRCbHVycmluZXNzICE9PSB1bmRlZmluZWQpIHRhcmdldC5iYWNrZ3JvdW5kQmx1cnJpbmVzcyA9IG9sZEJsdXI7XG5cdH07XG59XG5cbnR5cGUgTmd0c0luamVjdEVudmlyb25tZW50UGFyYW1zID0gUGFydGlhbDxcblx0UGljazxOZ3RzRW52aXJvbm1lbnRJbnB1dFN0YXRlLCAnZmlsZXMnIHwgJ3BhdGgnIHwgJ3ByZXNldCcgfCAnZXh0ZW5zaW9ucycgfCAnZW5jb2RpbmcnPlxuPjtcblxuY29uc3QgQ1VCRU1BUF9ST09UID0gJ2h0dHBzOi8vcmF3LmdpdGhhY2suY29tL3BtbmRycy9kcmVpLWFzc2V0cy80NTYwNjBhMjZiYmViOGZkZjc5MzI2ZjIyNGI2ZDk5YjhiY2NlNzM2L2hkcmkvJztcblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdE5ndHNFbnZpcm9ubWVudChwYXJhbXNGYWN0b3J5OiAoKSA9PiBQYXJ0aWFsPE5ndHNJbmplY3RFbnZpcm9ubWVudFBhcmFtcz4sIGluamVjdG9yPzogSW5qZWN0b3IpIHtcblx0aW5qZWN0b3IgPSBhc3NlcnRJbmplY3Rpb25Db250ZXh0KGluamVjdE5ndHNFbnZpcm9ubWVudCwgaW5qZWN0b3IpO1xuXHRyZXR1cm4gcnVuSW5JbmplY3Rpb25Db250ZXh0KGluamVjdG9yLCAoKSA9PiB7XG5cdFx0Y29uc3QgdGV4dHVyZVJlZiA9IGluamVjdE5ndFJlZjxUSFJFRS5UZXh0dXJlIHwgQ3ViZVRleHR1cmU+KCk7XG5cdFx0Y29uc3QgY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcblxuXHRcdGluamVjdChEZXN0cm95UmVmKS5vbkRlc3Ryb3koKCkgPT4ge1xuXHRcdFx0dGV4dHVyZVJlZi5uYXRpdmVFbGVtZW50LmRpc3Bvc2UoKTtcblx0XHR9KTtcblxuXHRcdGNvbnN0IHBhcmFtcyA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRcdGxldCB7IGZpbGVzLCBwcmVzZXQsIGVuY29kaW5nLCBwYXRoLCBleHRlbnNpb25zIH0gPSBwYXJhbXNGYWN0b3J5KCkgYXMgTmd0c0luamVjdEVudmlyb25tZW50UGFyYW1zO1xuXG5cdFx0XHRpZiAoZmlsZXMgPT0gbnVsbCkge1xuXHRcdFx0XHRmaWxlcyA9IFsnL3B4LnBuZycsICcvbngucG5nJywgJy9weS5wbmcnLCAnL255LnBuZycsICcvcHoucG5nJywgJy9uei5wbmcnXTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKHBhdGggPT0gbnVsbCkge1xuXHRcdFx0XHRwYXRoID0gJyc7XG5cdFx0XHR9XG5cblx0XHRcdGlmIChwcmVzZXQpIHtcblx0XHRcdFx0aWYgKCEocHJlc2V0IGluIEVOVklST05NRU5UX1BSRVNFVFMpKVxuXHRcdFx0XHRcdHRocm93IG5ldyBFcnJvcignUHJlc2V0IG11c3QgYmUgb25lIG9mOiAnICsgT2JqZWN0LmtleXMoRU5WSVJPTk1FTlRfUFJFU0VUUykuam9pbignLCAnKSk7XG5cdFx0XHRcdGZpbGVzID0gRU5WSVJPTk1FTlRfUFJFU0VUU1twcmVzZXRdO1xuXHRcdFx0XHRwYXRoID0gQ1VCRU1BUF9ST09UO1xuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4geyBmaWxlcywgcHJlc2V0LCBlbmNvZGluZywgcGF0aCwgZXh0ZW5zaW9ucyB9IGFzIE5ndHNJbmplY3RFbnZpcm9ubWVudFBhcmFtcztcblx0XHR9KTtcblxuXHRcdGNvbnN0IGxvYWRlclJlc3VsdCA9IGluamVjdE5ndExvYWRlcihcblx0XHRcdC8vIEB0cy1leHBlY3QtZXJyb3Jcblx0XHRcdCgpID0+IHtcblx0XHRcdFx0Y29uc3QgeyBmaWxlcyA9ICcnIH0gPSBwYXJhbXMoKTtcblxuXHRcdFx0XHRjb25zdCBpc0N1YmVNYXAgPSBBcnJheS5pc0FycmF5KGZpbGVzKTtcblx0XHRcdFx0Y29uc3QgZXh0ZW5zaW9uID0gQXJyYXkuaXNBcnJheShmaWxlcylcblx0XHRcdFx0XHQ/ICdjdWJlJ1xuXHRcdFx0XHRcdDogZmlsZXMuc3RhcnRzV2l0aCgnZGF0YTphcHBsaWNhdGlvbi9leHInKVxuXHRcdFx0XHRcdD8gJ2V4cidcblx0XHRcdFx0XHQ6IGZpbGVzLnN0YXJ0c1dpdGgoJ2RhdGE6YXBwbGljYXRpb24vaGRyJylcblx0XHRcdFx0XHQ/ICdoZHInXG5cdFx0XHRcdFx0OiBmaWxlcy5zcGxpdCgnLicpLnBvcCgpPy5zcGxpdCgnPycpPy5zaGlmdCgpPy50b0xvd2VyQ2FzZSgpO1xuXHRcdFx0XHRyZXR1cm4gaXNDdWJlTWFwXG5cdFx0XHRcdFx0PyBDdWJlVGV4dHVyZUxvYWRlclxuXHRcdFx0XHRcdDogZXh0ZW5zaW9uID09PSAnaGRyJ1xuXHRcdFx0XHRcdD8gUkdCRUxvYWRlclxuXHRcdFx0XHRcdDogZXh0ZW5zaW9uID09PSAnZXhyJ1xuXHRcdFx0XHRcdD8gRVhSTG9hZGVyXG5cdFx0XHRcdFx0OiBudWxsO1xuXHRcdFx0fSxcblx0XHRcdCgpID0+IHtcblx0XHRcdFx0Y29uc3QgeyBmaWxlcyB9ID0gcGFyYW1zKCk7XG5cdFx0XHRcdHJldHVybiBBcnJheS5pc0FycmF5KGZpbGVzKSA/IFtmaWxlc10gOiBmaWxlcztcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGV4dGVuc2lvbnM6IChsb2FkZXIpID0+IHtcblx0XHRcdFx0XHRjb25zdCB7IHBhdGgsIGV4dGVuc2lvbnMgfSA9IHBhcmFtcygpO1xuXHRcdFx0XHRcdGxvYWRlci5zZXRQYXRoKHBhdGgpO1xuXHRcdFx0XHRcdGlmIChleHRlbnNpb25zKSBleHRlbnNpb25zKGxvYWRlcik7XG5cdFx0XHRcdH0sXG5cdFx0XHR9LFxuXHRcdCk7XG5cblx0XHRjb25zdCBzUkdCRW5jb2RpbmcgPSAzMDAxO1xuXHRcdGNvbnN0IExpbmVhckVuY29kaW5nID0gMzAwMDtcblxuXHRcdGVmZmVjdCgoKSA9PiB7XG5cdFx0XHRjb25zdCByZXN1bHQgPSBsb2FkZXJSZXN1bHQoKTtcblx0XHRcdGlmICghcmVzdWx0KSByZXR1cm47XG5cdFx0XHRjb25zdCB7IGZpbGVzLCBlbmNvZGluZyB9ID0gcGFyYW1zKCk7XG5cdFx0XHRjb25zdCB0ZXh0dXJlOiBUSFJFRS5UZXh0dXJlIHwgVEhSRUUuQ3ViZVRleHR1cmUgPSBBcnJheS5pc0FycmF5KGZpbGVzKSA/IHJlc3VsdFswXSA6IHJlc3VsdDtcblx0XHRcdHRleHR1cmUubWFwcGluZyA9IEFycmF5LmlzQXJyYXkoZmlsZXMpID8gQ3ViZVJlZmxlY3Rpb25NYXBwaW5nIDogRXF1aXJlY3Rhbmd1bGFyUmVmbGVjdGlvbk1hcHBpbmc7XG5cdFx0XHRpZiAoJ2NvbG9yU3BhY2UnIGluIHRleHR1cmUpIHtcblx0XHRcdFx0dGV4dHVyZS5jb2xvclNwYWNlID0gZW5jb2RpbmcgPz8gQXJyYXkuaXNBcnJheShmaWxlcykgPyAnc3JnYicgOiAnc3JnYi1saW5lYXInO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0KHRleHR1cmUgYXMgYW55KS5lbmNvZGluZyA9IGVuY29kaW5nID8/IEFycmF5LmlzQXJyYXkoZmlsZXMpID8gc1JHQkVuY29kaW5nIDogTGluZWFyRW5jb2Rpbmc7XG5cdFx0XHR9XG5cblx0XHRcdHRleHR1cmVSZWYubmF0aXZlRWxlbWVudCA9IHRleHR1cmU7XG5cdFx0XHRzYWZlRGV0ZWN0Q2hhbmdlcyhjZHIpO1xuXHRcdH0pO1xuXG5cdFx0cmV0dXJuIHRleHR1cmVSZWY7XG5cdH0pO1xufVxuIl19
@@ -1,94 +0,0 @@
1
- import { CUSTOM_ELEMENTS_SCHEMA, Component, Input } from '@angular/core';
2
- import { extend, injectBeforeRender, injectNgtRef, signalStore } from 'angular-three';
3
- import * as THREE from 'three';
4
- import { Group } from 'three';
5
- import * as i0 from "@angular/core";
6
- extend({ Group });
7
- export class NgtsFloat {
8
- set _enabled(enabled) {
9
- this.inputs.set({ enabled });
10
- }
11
- set _speed(speed) {
12
- this.inputs.set({ speed });
13
- }
14
- set _rotationIntensity(rotationIntensity) {
15
- this.inputs.set({ rotationIntensity });
16
- }
17
- set _floatIntensity(floatIntensity) {
18
- this.inputs.set({ floatIntensity });
19
- }
20
- set _floatingRange(floatingRange) {
21
- this.inputs.set({ floatingRange });
22
- }
23
- constructor() {
24
- this.inputs = signalStore({
25
- enabled: true,
26
- speed: 1,
27
- rotationIntensity: 1,
28
- floatIntensity: 1,
29
- floatingRange: [-0.1, 0.1],
30
- });
31
- this.floatRef = injectNgtRef();
32
- this.beforeRender();
33
- }
34
- beforeRender() {
35
- const offset = Math.random() * 10000;
36
- injectBeforeRender(({ clock }) => {
37
- const float = this.floatRef.nativeElement;
38
- if (!float)
39
- return;
40
- const { enabled, speed, rotationIntensity, floatingRange, floatIntensity } = this.inputs.get();
41
- if (!enabled || speed === 0)
42
- return;
43
- const t = offset + clock.getElapsedTime();
44
- float.rotation.x = (Math.cos((t / 4) * speed) / 8) * rotationIntensity;
45
- float.rotation.y = (Math.sin((t / 4) * speed) / 8) * rotationIntensity;
46
- float.rotation.z = (Math.sin((t / 4) * speed) / 20) * rotationIntensity;
47
- let yPosition = Math.sin((t / 4) * speed) / 10;
48
- yPosition = THREE.MathUtils.mapLinear(yPosition, -0.1, 0.1, floatingRange?.[0] ?? -0.1, floatingRange?.[1] ?? 0.1);
49
- float.position.y = yPosition * floatIntensity;
50
- float.updateMatrix();
51
- });
52
- }
53
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: NgtsFloat, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
54
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: NgtsFloat, isStandalone: true, selector: "ngts-float", inputs: { floatRef: "floatRef", _enabled: ["enabled", "_enabled"], _speed: ["speed", "_speed"], _rotationIntensity: ["rotationIntensity", "_rotationIntensity"], _floatIntensity: ["floatIntensity", "_floatIntensity"], _floatingRange: ["floatingRange", "_floatingRange"] }, ngImport: i0, template: `
55
- <ngt-group ngtCompound>
56
- <ngt-group [ref]="floatRef" [matrixAutoUpdate]="false">
57
- <ng-content />
58
- </ngt-group>
59
- </ngt-group>
60
- `, isInline: true }); }
61
- }
62
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: NgtsFloat, decorators: [{
63
- type: Component,
64
- args: [{
65
- selector: 'ngts-float',
66
- standalone: true,
67
- template: `
68
- <ngt-group ngtCompound>
69
- <ngt-group [ref]="floatRef" [matrixAutoUpdate]="false">
70
- <ng-content />
71
- </ngt-group>
72
- </ngt-group>
73
- `,
74
- schemas: [CUSTOM_ELEMENTS_SCHEMA],
75
- }]
76
- }], ctorParameters: function () { return []; }, propDecorators: { floatRef: [{
77
- type: Input
78
- }], _enabled: [{
79
- type: Input,
80
- args: [{ alias: 'enabled' }]
81
- }], _speed: [{
82
- type: Input,
83
- args: [{ alias: 'speed' }]
84
- }], _rotationIntensity: [{
85
- type: Input,
86
- args: [{ alias: 'rotationIntensity' }]
87
- }], _floatIntensity: [{
88
- type: Input,
89
- args: [{ alias: 'floatIntensity' }]
90
- }], _floatingRange: [{
91
- type: Input,
92
- args: [{ alias: 'floatingRange' }]
93
- }] } });
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvYXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvc3RhZ2luZy9zcmMvZmxvYXQvZmxvYXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekUsT0FBTyxFQUFFLE1BQU0sRUFBRSxrQkFBa0IsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNyRyxPQUFPLEtBQUssS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMvQixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sT0FBTyxDQUFDOztBQUU5QixNQUFNLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0FBK0JsQixNQUFNLE9BQU8sU0FBUztJQVVyQixJQUFpQyxRQUFRLENBQUMsT0FBZ0I7UUFDekQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxJQUErQixNQUFNLENBQUMsS0FBYTtRQUNsRCxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQTJDLGtCQUFrQixDQUFDLGlCQUF5QjtRQUN0RixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLGlCQUFpQixFQUFFLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsSUFBd0MsZUFBZSxDQUFDLGNBQXNCO1FBQzdFLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsY0FBYyxFQUFFLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsSUFBdUMsY0FBYyxDQUFDLGFBQWlDO1FBQ3RGLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsYUFBYSxFQUFFLENBQUMs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QUs7dUJBQUMsRUFBRSxLQUFLLEVBQUUsbUJBQW1CLEVBQUU7Z0JBSUcsZUFBZTtzQkFBdEQsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxnQkFBZ0IsRUFBRTtnQkFJSyxjQUFjO3NCQUFwRCxLQUFLO3VCQUFDLEVBQUUsS0FBSyxFQUFFLGVBQWUsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGV4dGVuZCwgaW5qZWN0QmVmb3JlUmVuZGVyLCBpbmplY3ROZ3RSZWYsIHNpZ25hbFN0b3JlLCB0eXBlIE5ndEdyb3VwIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgKiBhcyBUSFJFRSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgeyBHcm91cCB9IGZyb20gJ3RocmVlJztcblxuZXh0ZW5kKHsgR3JvdXAgfSk7XG5cbmV4cG9ydCB0eXBlIE5ndHNGbG9hdFN0YXRlID0ge1xuXHRlbmFibGVkOiBib29sZWFuO1xuXHRzcGVlZDogbnVtYmVyO1xuXHRyb3RhdGlvbkludGVuc2l0eTogbnVtYmVyO1xuXHRmbG9hdEludGVuc2l0eTogbnVtYmVyO1xuXHRmbG9hdGluZ1JhbmdlOiBbbnVtYmVyPywgbnVtYmVyP107XG59O1xuXG5kZWNsYXJlIGdsb2JhbCB7XG5cdGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuXHRcdC8qKlxuXHRcdCAqIEBleHRlbmRzIG5ndC1ncm91cFxuXHRcdCAqL1xuXHRcdCduZ3RzLWZsb2F0JzogTmd0c0Zsb2F0U3RhdGUgJiBOZ3RHcm91cDtcblx0fVxufVxuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RzLWZsb2F0Jyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0LWdyb3VwIG5ndENvbXBvdW5kPlxuXHRcdFx0PG5ndC1ncm91cCBbcmVmXT1cImZsb2F0UmVmXCIgW21hdHJpeEF1dG9VcGRhdGVdPVwiZmFsc2VcIj5cblx0XHRcdFx0PG5nLWNvbnRlbnQgLz5cblx0XHRcdDwvbmd0LWdyb3VwPlxuXHRcdDwvbmd0LWdyb3VwPlxuXHRgLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHNGbG9hdCB7XG5cdHByaXZhdGUgaW5wdXRzID0gc2lnbmFsU3RvcmU8Tmd0c0Zsb2F0U3RhdGU+KHtcblx0XHRlbmFibGVkOiB0cnVlLFxuXHRcdHNwZWVkOiAxLFxuXHRcdHJvdGF0aW9uSW50ZW5zaXR5OiAxLFxuXHRcdGZsb2F0SW50ZW5zaXR5OiAxLFxuXHRcdGZsb2F0aW5nUmFuZ2U6IFstMC4xLCAwLjFdLFxuXHR9KTtcblxuXHRASW5wdXQoKSBmbG9hdFJlZiA9IGluamVjdE5ndFJlZjxHcm91cD4oKTtcblx0QElucHV0KHsgYWxpYXM6ICdlbmFibGVkJyB9KSBzZXQgX2VuYWJsZWQoZW5hYmxlZDogYm9vbGVhbikge1xuXHRcdHRoaXMuaW5wdXRzLnNldCh7IGVuYWJsZWQgfSk7XG5cdH1cblxuXHRASW5wdXQoeyBhbGlhczogJ3NwZWVkJyB9KSBzZXQgX3NwZWVkKHNwZWVkOiBudW1iZXIpIHtcblx0XHR0aGlzLmlucHV0cy5zZXQoeyBzcGVlZCB9KTtcblx0fVxuXG5cdEBJbnB1dCh7IGFsaWFzOiAncm90YXRpb25JbnRlbnNpdHknIH0pIHNldCBfcm90YXRpb25JbnRlbnNpdHkocm90YXRpb25JbnRlbnNpdHk6IG51bWJlcikge1xuXHRcdHRoaXMuaW5wdXRzLnNldCh7IHJvdGF0aW9uSW50ZW5zaXR5IH0pO1xuXHR9XG5cblx0QElucHV0KHsgYWxpYXM6ICdmbG9hdEludGVuc2l0eScgfSkgc2V0IF9mbG9hdEludGVuc2l0eShmbG9hdEludGVuc2l0eTogbnVtYmVyKSB7XG5cdFx0dGhpcy5pbnB1dHMuc2V0KHsgZmxvYXRJbnRlbnNpdHkgfSk7XG5cdH1cblxuXHRASW5wdXQoeyBhbGlhczogJ2Zsb2F0aW5nUmFuZ2UnIH0pIHNldCBfZmxvYXRpbmdSYW5nZShmbG9hdGluZ1JhbmdlOiBbbnVtYmVyPywgbnVtYmVyP10pIHtcblx0XHR0aGlzLmlucHV0cy5zZXQoeyBmbG9hdGluZ1JhbmdlIH0pO1xuXHR9XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0dGhpcy5iZWZvcmVSZW5kZXIoKTtcblx0fVxuXG5cdHByaXZhdGUgYmVmb3JlUmVuZGVyKCkge1xuXHRcdGNvbnN0IG9mZnNldCA9IE1hdGgucmFuZG9tKCkgKiAxMF8wMDA7XG5cdFx0aW5qZWN0QmVmb3JlUmVuZGVyKCh7IGNsb2NrIH0pID0+IHtcblx0XHRcdGNvbnN0IGZsb2F0ID0gdGhpcy5mbG9hdFJlZi5uYXRpdmVFbGVtZW50O1xuXHRcdFx0aWYgKCFmbG9hdCkgcmV0dXJuO1xuXG5cdFx0XHRjb25zdCB7IGVuYWJsZWQsIHNwZWVkLCByb3RhdGlvbkludGVuc2l0eSwgZmxvYXRpbmdSYW5nZSwgZmxvYXRJbnRlbnNpdHkgfSA9IHRoaXMuaW5wdXRzLmdldCgpO1xuXG5cdFx0XHRpZiAoIWVuYWJsZWQgfHwgc3BlZWQgPT09IDApIHJldHVybjtcblx0XHRcdGNvbnN0IHQgPSBvZmZzZXQgKyBjbG9jay5nZXRFbGFwc2VkVGltZSgpO1xuXHRcdFx0ZmxvYXQucm90YXRpb24ueCA9IChNYXRoLmNvcygodCAvIDQpICogc3BlZWQpIC8gOCkgKiByb3RhdGlvbkludGVuc2l0eTtcblx0XHRcdGZsb2F0LnJvdGF0aW9uLnkgPSAoTWF0aC5zaW4oKHQgLyA0KSAqIHNwZWVkKSAvIDgpICogcm90YXRpb25JbnRlbnNpdHk7XG5cdFx0XHRmbG9hdC5yb3RhdGlvbi56ID0gKE1hdGguc2luKCh0IC8gNCkgKiBzcGVlZCkgLyAyMCkgKiByb3RhdGlvbkludGVuc2l0eTtcblx0XHRcdGxldCB5UG9zaXRpb24gPSBNYXRoLnNpbigodCAvIDQpICogc3BlZWQpIC8gMTA7XG5cdFx0XHR5UG9zaXRpb24gPSBUSFJFRS5NYXRoVXRpbHMubWFwTGluZWFyKFxuXHRcdFx0XHR5UG9zaXRpb24sXG5cdFx0XHRcdC0wLjEsXG5cdFx0XHRcdDAuMSxcblx0XHRcdFx0ZmxvYXRpbmdSYW5nZT8uWzBdID8/IC0wLjEsXG5cdFx0XHRcdGZsb2F0aW5nUmFuZ2U/LlsxXSA/PyAwLjEsXG5cdFx0XHQpO1xuXHRcdFx0ZmxvYXQucG9zaXRpb24ueSA9IHlQb3NpdGlvbiAqIGZsb2F0SW50ZW5zaXR5O1xuXHRcdFx0ZmxvYXQudXBkYXRlTWF0cml4KCk7XG5cdFx0fSk7XG5cdH1cbn1cbiJdfQ==
@@ -1,64 +0,0 @@
1
- import { computed, effect, runInInjectionContext, signal, untracked } from '@angular/core';
2
- import { assertInjectionContext } from 'angular-three';
3
- import { injectNgtsTextureLoader } from 'angular-three-soba/loaders';
4
- function getFormatString(format) {
5
- switch (format) {
6
- case 64:
7
- return '-64px';
8
- case 128:
9
- return '-128px';
10
- case 256:
11
- return '-256px';
12
- case 512:
13
- return '-512px';
14
- default:
15
- return '';
16
- }
17
- }
18
- const LIST_URL = 'https://cdn.jsdelivr.net/gh/pmndrs/drei-assets@master/matcaps.json';
19
- const MATCAP_ROOT = 'https://rawcdn.githack.com/emmelleppi/matcaps/9b36ccaaf0a24881a39062d05566c9e92be4aa0d';
20
- const defaultState = {
21
- id: 0,
22
- format: 1024,
23
- };
24
- export function injectNgtsMatcapTexture(matcapTextureState, { injector } = {}) {
25
- injector = assertInjectionContext(injectNgtsMatcapTexture, injector);
26
- return runInInjectionContext(injector, () => {
27
- const state = computed(() => ({ ...defaultState, ...matcapTextureState() }));
28
- const matcapList = signal({});
29
- const DEFAULT_MATCAP = () => matcapList()[0];
30
- const numTot = () => Object.keys(matcapList()).length;
31
- effect(() => {
32
- if (!untracked(numTot)) {
33
- fetch(LIST_URL)
34
- .then((res) => res.json())
35
- .then((data) => {
36
- matcapList.set(data);
37
- });
38
- }
39
- });
40
- const fileHash = () => {
41
- const id = state().id;
42
- if (typeof id === 'string') {
43
- return id;
44
- }
45
- if (typeof id === 'number' && matcapList()[id]) {
46
- return matcapList()[id];
47
- }
48
- return null;
49
- };
50
- const fileName = () => `${fileHash() || DEFAULT_MATCAP()}${getFormatString(state().format)}.png`;
51
- const url = () => `${MATCAP_ROOT}/${state().format}/${fileName()}`;
52
- let texture;
53
- const matcapTexture = computed(() => {
54
- if (url().includes('undefined'))
55
- return null;
56
- if (!texture) {
57
- texture = injectNgtsTextureLoader(url, { onLoad: state().onLoad, injector });
58
- }
59
- return texture();
60
- });
61
- return { texture: matcapTexture, numTot, url };
62
- });
63
- }
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0Y2FwLXRleHR1cmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvc3RhZ2luZy9zcmMvbWF0Y2FwLXRleHR1cmUvbWF0Y2FwLXRleHR1cmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBOEIsTUFBTSxlQUFlLENBQUM7QUFDdkgsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXJFLFNBQVMsZUFBZSxDQUFDLE1BQWM7SUFDdEMsUUFBUSxNQUFNLEVBQUU7UUFDZixLQUFLLEVBQUU7WUFDTixPQUFPLE9BQU8sQ0FBQztRQUNoQixLQUFLLEdBQUc7WUFDUCxPQUFPLFFBQVEsQ0FBQztRQUNqQixLQUFLLEdBQUc7WUFDUCxPQUFPLFFBQVEsQ0FBQztRQUNqQixLQUFLLEdBQUc7WUFDUCxPQUFPLFFBQVEsQ0FBQztRQUNqQjtZQUNDLE9BQU8sRUFBRSxDQUFDO0tBQ1g7QUFDRixDQUFDO0FBRUQsTUFBTSxRQUFRLEdBQUcsb0VBQW9FLENBQUM7QUFDdEYsTUFBTSxXQUFXLEdBQUcsd0ZBQXdGLENBQUM7QUFRN0csTUFBTSxZQUFZLEdBQTJCO0lBQzVDLEVBQUUsRUFBRSxDQUFDO0lBQ0wsTUFBTSxFQUFFLElBQUk7Q0FDWixDQUFDO0FBRUYsTUFBTSxVQUFVLHVCQUF1QixDQUN0QyxrQkFBeUQsRUFDekQsRUFBRSxRQUFRLEtBQThCLEVBQUU7SUFFMUMsUUFBUSxHQUFHLHNCQUFzQixDQUFDLHVCQUF1QixFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3JFLE9BQU8scUJBQXFCLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRTtRQUMzQyxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsWUFBWSxFQUFFLEdBQUcsa0JBQWtCLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUU3RSxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQXlCLEVBQUUsQ0FBQyxDQUFDO1FBRXRELE1BQU0sY0FBYyxHQUFHLEdBQUcsRUFBRSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzdDLE1BQU0sTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFFdEQsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNYLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQ3ZCLEtBQUssQ0FBQyxRQUFRLENBQUM7cUJBQ2IsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7cUJBQ3pCLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO29CQUNkLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3RCLENBQUMsQ0FBQyxDQUFDO2FBQ0o7UUFDRixDQUFDLENBQUMsQ0FBQztRQUVILE1BQU0sUUFBUSxHQUFHLEdBQUcsRUFBRTtZQUNyQixNQUFNLEVBQUUsR0FBRyxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDdEIsSUFBSSxPQUFPLEVBQUUsS0FBSyxRQUFRLEVBQUU7Z0JBQzNCLE9BQU8sRUFBRSxDQUFDO2FBQ1Y7WUFFRCxJQUFJLE9BQU8sRUFBRSxLQUFLLFFBQVEsSUFBSSxVQUFVLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRTtnQkFDL0MsT0FBTyxVQUFVLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQzthQUN4QjtZQUVELE9BQU8sSUFBSSxDQUFDO1FBQ2IsQ0FBQyxDQUFDO1FBRUYsTUFBTSxRQUFRLEdBQUcsR0FBRyxFQUFFLENBQUMsR0FBRyxRQUFRLEVBQUUsSUFBSSxjQUFjLEVBQUUsR0FBRyxlQUFlLENBQUMsS0FBSyxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztRQUNqRyxNQUFNLEdBQUcsR0FBRyxHQUFHLEVBQUUsQ0FBQyxHQUFHLFdBQVcsSUFBSSxLQUFLLEVBQUUsQ0FBQyxNQUFNLElBQUksUUFBUSxFQUFFLEVBQUUsQ0FBQztRQUVuRSxJQUFJLE9BQXFDLENBQUM7UUFDMUMsTUFBTSxhQUFhLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUNuQyxJQUFJLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUM7Z0JBQUUsT0FBTyxJQUFJLENBQUM7WUFDN0MsSUFBSSxDQUFDLE9BQU8sRUFBRTtnQkFDYixPQUFPLEdBQUcsdUJBQXVCLENBQUMsR0FBRyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO2FBQzdFO1lBQ0QsT0FBTyxPQUFPLEVBQUUsQ0FBQztRQUNsQixDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQztJQUNoRCxDQUFDLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb21wdXRlZCwgZWZmZWN0LCBydW5JbkluamVjdGlvbkNvbnRleHQsIHNpZ25hbCwgdW50cmFja2VkLCB0eXBlIEluamVjdG9yLCB0eXBlIFNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgYXNzZXJ0SW5qZWN0aW9uQ29udGV4dCB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgaW5qZWN0Tmd0c1RleHR1cmVMb2FkZXIgfSBmcm9tICdhbmd1bGFyLXRocmVlLXNvYmEvbG9hZGVycyc7XG5cbmZ1bmN0aW9uIGdldEZvcm1hdFN0cmluZyhmb3JtYXQ6IG51bWJlcikge1xuXHRzd2l0Y2ggKGZvcm1hdCkge1xuXHRcdGNhc2UgNjQ6XG5cdFx0XHRyZXR1cm4gJy02NHB4Jztcblx0XHRjYXNlIDEyODpcblx0XHRcdHJldHVybiAnLTEyOHB4Jztcblx0XHRjYXNlIDI1Njpcblx0XHRcdHJldHVybiAnLTI1NnB4Jztcblx0XHRjYXNlIDUxMjpcblx0XHRcdHJldHVybiAnLTUxMnB4Jztcblx0XHRkZWZhdWx0OlxuXHRcdFx0cmV0dXJuICcnO1xuXHR9XG59XG5cbmNvbnN0IExJU1RfVVJMID0gJ2h0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9naC9wbW5kcnMvZHJlaS1hc3NldHNAbWFzdGVyL21hdGNhcHMuanNvbic7XG5jb25zdCBNQVRDQVBfUk9PVCA9ICdodHRwczovL3Jhd2Nkbi5naXRoYWNrLmNvbS9lbW1lbGxlcHBpL21hdGNhcHMvOWIzNmNjYWFmMGEyNDg4MWEzOTA2MmQwNTU2NmM5ZTkyYmU0YWEwZCc7XG5cbmV4cG9ydCB0eXBlIE5ndHNNYXRjYXBUZXh0dXJlU3RhdGUgPSB7XG5cdGlkOiBzdHJpbmcgfCBudW1iZXI7XG5cdGZvcm1hdDogbnVtYmVyO1xuXHRvbkxvYWQ/OiAodGV4dHVyZTogVEhSRUUuVGV4dHVyZSB8IFRIUkVFLlRleHR1cmVbXSkgPT4gdm9pZDtcbn07XG5cbmNvbnN0IGRlZmF1bHRTdGF0ZTogTmd0c01hdGNhcFRleHR1cmVTdGF0ZSA9IHtcblx0aWQ6IDAsXG5cdGZvcm1hdDogMTAyNCxcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3ROZ3RzTWF0Y2FwVGV4dHVyZShcblx0bWF0Y2FwVGV4dHVyZVN0YXRlOiAoKSA9PiBQYXJ0aWFsPE5ndHNNYXRjYXBUZXh0dXJlU3RhdGU+LFxuXHR7IGluamVjdG9yIH06IHsgaW5qZWN0b3I/OiBJbmplY3RvciB9ID0ge30sXG4pIHtcblx0aW5qZWN0b3IgPSBhc3NlcnRJbmplY3Rpb25Db250ZXh0KGluamVjdE5ndHNNYXRjYXBUZXh0dXJlLCBpbmplY3Rvcik7XG5cdHJldHVybiBydW5JbkluamVjdGlvbkNvbnRleHQoaW5qZWN0b3IsICgpID0+IHtcblx0XHRjb25zdCBzdGF0ZSA9IGNvbXB1dGVkKCgpID0+ICh7IC4uLmRlZmF1bHRTdGF0ZSwgLi4ubWF0Y2FwVGV4dHVyZVN0YXRlKCkgfSkpO1xuXG5cdFx0Y29uc3QgbWF0Y2FwTGlzdCA9IHNpZ25hbDxSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+Pih7fSk7XG5cblx0XHRjb25zdCBERUZBVUxUX01BVENBUCA9ICgpID0+IG1hdGNhcExpc3QoKVswXTtcblx0XHRjb25zdCBudW1Ub3QgPSAoKSA9PiBPYmplY3Qua2V5cyhtYXRjYXBMaXN0KCkpLmxlbmd0aDtcblxuXHRcdGVmZmVjdCgoKSA9PiB7XG5cdFx0XHRpZiAoIXVudHJhY2tlZChudW1Ub3QpKSB7XG5cdFx0XHRcdGZldGNoKExJU1RfVVJMKVxuXHRcdFx0XHRcdC50aGVuKChyZXMpID0+IHJlcy5qc29uKCkpXG5cdFx0XHRcdFx0LnRoZW4oKGRhdGEpID0+IHtcblx0XHRcdFx0XHRcdG1hdGNhcExpc3Quc2V0KGRhdGEpO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0fVxuXHRcdH0pO1xuXG5cdFx0Y29uc3QgZmlsZUhhc2ggPSAoKSA9PiB7XG5cdFx0XHRjb25zdCBpZCA9IHN0YXRlKCkuaWQ7XG5cdFx0XHRpZiAodHlwZW9mIGlkID09PSAnc3RyaW5nJykge1xuXHRcdFx0XHRyZXR1cm4gaWQ7XG5cdFx0XHR9XG5cblx0XHRcdGlmICh0eXBlb2YgaWQgPT09ICdudW1iZXInICYmIG1hdGNhcExpc3QoKVtpZF0pIHtcblx0XHRcdFx0cmV0dXJuIG1hdGNhcExpc3QoKVtpZF07XG5cdFx0XHR9XG5cblx0XHRcdHJldHVybiBudWxsO1xuXHRcdH07XG5cblx0XHRjb25zdCBmaWxlTmFtZSA9ICgpID0+IGAke2ZpbGVIYXNoKCkgfHwgREVGQVVMVF9NQVRDQVAoKX0ke2dldEZvcm1hdFN0cmluZyhzdGF0ZSgpLmZvcm1hdCl9LnBuZ2A7XG5cdFx0Y29uc3QgdXJsID0gKCkgPT4gYCR7TUFUQ0FQX1JPT1R9LyR7c3RhdGUoKS5mb3JtYXR9LyR7ZmlsZU5hbWUoKX1gO1xuXG5cdFx0bGV0IHRleHR1cmU6IFNpZ25hbDxUSFJFRS5UZXh0dXJlIHwgbnVsbD47XG5cdFx0Y29uc3QgbWF0Y2FwVGV4dHVyZSA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRcdGlmICh1cmwoKS5pbmNsdWRlcygndW5kZWZpbmVkJykpIHJldHVybiBudWxsO1xuXHRcdFx0aWYgKCF0ZXh0dXJlKSB7XG5cdFx0XHRcdHRleHR1cmUgPSBpbmplY3ROZ3RzVGV4dHVyZUxvYWRlcih1cmwsIHsgb25Mb2FkOiBzdGF0ZSgpLm9uTG9hZCwgaW5qZWN0b3IgfSk7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gdGV4dHVyZSgpO1xuXHRcdH0pO1xuXG5cdFx0cmV0dXJuIHsgdGV4dHVyZTogbWF0Y2FwVGV4dHVyZSwgbnVtVG90LCB1cmwgfTtcblx0fSk7XG59XG4iXX0=
@@ -1,53 +0,0 @@
1
- import { computed, effect, runInInjectionContext, signal, untracked } from '@angular/core';
2
- import { assertInjectionContext } from 'angular-three';
3
- import { injectNgtsTextureLoader } from 'angular-three-soba/loaders';
4
- import * as THREE from 'three';
5
- const NORMAL_ROOT = 'https://rawcdn.githack.com/pmndrs/drei-assets/7a3104997e1576f83472829815b00880d88b32fb';
6
- const LIST_URL = 'https://cdn.jsdelivr.net/gh/pmndrs/drei-assets@master/normals/normals.json';
7
- const defaultState = {
8
- id: 0,
9
- repeat: [1, 1],
10
- anisotropy: 1,
11
- offset: [0, 0],
12
- };
13
- export function injectNgtsNormalTexture(normalTextureState, { injector } = {}) {
14
- injector = assertInjectionContext(injectNgtsNormalTexture, injector);
15
- return runInInjectionContext(injector, () => {
16
- const state = computed(() => ({ ...defaultState, ...normalTextureState() }));
17
- const normalsList = signal({});
18
- const DEFAULT_NORMAL = () => normalsList()[0];
19
- const numTot = () => Object.keys(normalsList()).length;
20
- effect(() => {
21
- if (!untracked(numTot)) {
22
- fetch(LIST_URL)
23
- .then((res) => res.json())
24
- .then((data) => {
25
- normalsList.set(data);
26
- });
27
- }
28
- });
29
- const imageName = () => normalsList()[state().id] || DEFAULT_NORMAL();
30
- const url = () => `${NORMAL_ROOT}/normals/${imageName()}`;
31
- let texture;
32
- const normalTexture = computed(() => {
33
- if (url().includes('undefined'))
34
- return null;
35
- if (!texture) {
36
- texture = injectNgtsTextureLoader(url, { onLoad: state().onLoad, injector });
37
- }
38
- return texture();
39
- });
40
- effect(() => {
41
- const _texture = normalTexture();
42
- if (!_texture)
43
- return;
44
- const { repeat, offset, anisotropy } = state();
45
- _texture.wrapS = _texture.wrapT = THREE.RepeatWrapping;
46
- _texture.repeat = new THREE.Vector2(repeat[0], repeat[1]);
47
- _texture.offset = new THREE.Vector2(offset[0], offset[1]);
48
- _texture.anisotropy = anisotropy;
49
- });
50
- return { texture: normalTexture, numTot, url };
51
- });
52
- }
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9ybWFsLXRleHR1cmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvc3RhZ2luZy9zcmMvbm9ybWFsLXRleHR1cmUvbm9ybWFsLXRleHR1cmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBOEIsTUFBTSxlQUFlLENBQUM7QUFDdkgsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3JFLE9BQU8sS0FBSyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBRS9CLE1BQU0sV0FBVyxHQUFHLHdGQUF3RixDQUFDO0FBQzdHLE1BQU0sUUFBUSxHQUFHLDRFQUE0RSxDQUFDO0FBVTlGLE1BQU0sWUFBWSxHQUEyQjtJQUM1QyxFQUFFLEVBQUUsQ0FBQztJQUNMLE1BQU0sRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDZCxVQUFVLEVBQUUsQ0FBQztJQUNiLE1BQU0sRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7Q0FDZCxDQUFDO0FBRUYsTUFBTSxVQUFVLHVCQUF1QixDQUN0QyxrQkFBeUQsRUFDekQsRUFBRSxRQUFRLEtBQThCLEVBQUU7SUFFMUMsUUFBUSxHQUFHLHNCQUFzQixDQUFDLHVCQUF1QixFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3JFLE9BQU8scUJBQXFCLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRTtRQUMzQyxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsWUFBWSxFQUFFLEdBQUcsa0JBQWtCLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM3RSxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQXlCLEVBQUUsQ0FBQyxDQUFDO1FBRXZELE1BQU0sY0FBYyxHQUFHLEdBQUcsRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlDLE1BQU0sTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFFdkQsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNYLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQ3ZCLEtBQUssQ0FBQyxRQUFRLENBQUM7cUJBQ2IsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7cUJBQ3pCLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO29CQUNkLFdBQVcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3ZCLENBQUMsQ0FBQyxDQUFDO2FBQ0o7UUFDRixDQUFDLENBQUMsQ0FBQztRQUVILE1BQU0sU0FBUyxHQUFHLEdBQUcsRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLGNBQWMsRUFBRSxDQUFDO1FBQ3RFLE1BQU0sR0FBRyxHQUFHLEdBQUcsRUFBRSxDQUFDLEdBQUcsV0FBVyxZQUFZLFNBQVMsRUFBRSxFQUFFLENBQUM7UUFFMUQsSUFBSSxPQUFxQyxDQUFDO1FBQzFDLE1BQU0sYUFBYSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDbkMsSUFBSSxHQUFHLEVBQUUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDO2dCQUFFLE9BQU8sSUFBSSxDQUFDO1lBQzdDLElBQUksQ0FBQyxPQUFPLEVBQUU7Z0JBQ2IsT0FBTyxHQUFHLHVCQUF1QixDQUFDLEdBQUcsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQzthQUM3RTtZQUNELE9BQU8sT0FBTyxFQUFFLENBQUM7UUFDbEIsQ0FBQyxDQUFDLENBQUM7UUFFSCxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1gsTUFBTSxRQUFRLEdBQUcsYUFBYSxFQUFFLENBQUM7WUFDakMsSUFBSSxDQUFDLFFBQVE7Z0JBQUUsT0FBTztZQUV0QixNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsR0FBRyxLQUFLLEVBQUUsQ0FBQztZQUMvQyxRQUFRLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLGNBQWMsQ0FBQztZQUN2RCxRQUFRLENBQUMsTUFBTSxHQUFHLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDMUQsUUFBUSxDQUFDLE1BQU0sR0FBRyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzFELFFBQVEsQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQ2xDLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDO0lBQ2hELENBQUMsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbXB1dGVkLCBlZmZlY3QsIHJ1bkluSW5qZWN0aW9uQ29udGV4dCwgc2lnbmFsLCB1bnRyYWNrZWQsIHR5cGUgSW5qZWN0b3IsIHR5cGUgU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBhc3NlcnRJbmplY3Rpb25Db250ZXh0IH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBpbmplY3ROZ3RzVGV4dHVyZUxvYWRlciB9IGZyb20gJ2FuZ3VsYXItdGhyZWUtc29iYS9sb2FkZXJzJztcbmltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcblxuY29uc3QgTk9STUFMX1JPT1QgPSAnaHR0cHM6Ly9yYXdjZG4uZ2l0aGFjay5jb20vcG1uZHJzL2RyZWktYXNzZXRzLzdhMzEwNDk5N2UxNTc2ZjgzNDcyODI5ODE1YjAwODgwZDg4YjMyZmInO1xuY29uc3QgTElTVF9VUkwgPSAnaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L2doL3BtbmRycy9kcmVpLWFzc2V0c0BtYXN0ZXIvbm9ybWFscy9ub3JtYWxzLmpzb24nO1xuXG5leHBvcnQgdHlwZSBOZ3RzTm9ybWFsVGV4dHVyZVN0YXRlID0ge1xuXHRpZDogc3RyaW5nIHwgbnVtYmVyO1xuXHRyZXBlYXQ6IG51bWJlcltdO1xuXHRhbmlzb3Ryb3B5OiBudW1iZXI7XG5cdG9mZnNldDogbnVtYmVyW107XG5cdG9uTG9hZD86ICh0ZXh0dXJlOiBUSFJFRS5UZXh0dXJlIHwgVEhSRUUuVGV4dHVyZVtdKSA9PiB2b2lkO1xufTtcblxuY29uc3QgZGVmYXVsdFN0YXRlOiBOZ3RzTm9ybWFsVGV4dHVyZVN0YXRlID0ge1xuXHRpZDogMCxcblx0cmVwZWF0OiBbMSwgMV0sXG5cdGFuaXNvdHJvcHk6IDEsXG5cdG9mZnNldDogWzAsIDBdLFxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdE5ndHNOb3JtYWxUZXh0dXJlKFxuXHRub3JtYWxUZXh0dXJlU3RhdGU6ICgpID0+IFBhcnRpYWw8Tmd0c05vcm1hbFRleHR1cmVTdGF0ZT4sXG5cdHsgaW5qZWN0b3IgfTogeyBpbmplY3Rvcj86IEluamVjdG9yIH0gPSB7fSxcbikge1xuXHRpbmplY3RvciA9IGFzc2VydEluamVjdGlvbkNvbnRleHQoaW5qZWN0Tmd0c05vcm1hbFRleHR1cmUsIGluamVjdG9yKTtcblx0cmV0dXJuIHJ1bkluSW5qZWN0aW9uQ29udGV4dChpbmplY3RvciwgKCkgPT4ge1xuXHRcdGNvbnN0IHN0YXRlID0gY29tcHV0ZWQoKCkgPT4gKHsgLi4uZGVmYXVsdFN0YXRlLCAuLi5ub3JtYWxUZXh0dXJlU3RhdGUoKSB9KSk7XG5cdFx0Y29uc3Qgbm9ybWFsc0xpc3QgPSBzaWduYWw8UmVjb3JkPHN0cmluZywgc3RyaW5nPj4oe30pO1xuXG5cdFx0Y29uc3QgREVGQVVMVF9OT1JNQUwgPSAoKSA9PiBub3JtYWxzTGlzdCgpWzBdO1xuXHRcdGNvbnN0IG51bVRvdCA9ICgpID0+IE9iamVjdC5rZXlzKG5vcm1hbHNMaXN0KCkpLmxlbmd0aDtcblxuXHRcdGVmZmVjdCgoKSA9PiB7XG5cdFx0XHRpZiAoIXVudHJhY2tlZChudW1Ub3QpKSB7XG5cdFx0XHRcdGZldGNoKExJU1RfVVJMKVxuXHRcdFx0XHRcdC50aGVuKChyZXMpID0+IHJlcy5qc29uKCkpXG5cdFx0XHRcdFx0LnRoZW4oKGRhdGEpID0+IHtcblx0XHRcdFx0XHRcdG5vcm1hbHNMaXN0LnNldChkYXRhKTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdH1cblx0XHR9KTtcblxuXHRcdGNvbnN0IGltYWdlTmFtZSA9ICgpID0+IG5vcm1hbHNMaXN0KClbc3RhdGUoKS5pZF0gfHwgREVGQVVMVF9OT1JNQUwoKTtcblx0XHRjb25zdCB1cmwgPSAoKSA9PiBgJHtOT1JNQUxfUk9PVH0vbm9ybWFscy8ke2ltYWdlTmFtZSgpfWA7XG5cblx0XHRsZXQgdGV4dHVyZTogU2lnbmFsPFRIUkVFLlRleHR1cmUgfCBudWxsPjtcblx0XHRjb25zdCBub3JtYWxUZXh0dXJlID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdFx0aWYgKHVybCgpLmluY2x1ZGVzKCd1bmRlZmluZWQnKSkgcmV0dXJuIG51bGw7XG5cdFx0XHRpZiAoIXRleHR1cmUpIHtcblx0XHRcdFx0dGV4dHVyZSA9IGluamVjdE5ndHNUZXh0dXJlTG9hZGVyKHVybCwgeyBvbkxvYWQ6IHN0YXRlKCkub25Mb2FkLCBpbmplY3RvciB9KTtcblx0XHRcdH1cblx0XHRcdHJldHVybiB0ZXh0dXJlKCk7XG5cdFx0fSk7XG5cblx0XHRlZmZlY3QoKCkgPT4ge1xuXHRcdFx0Y29uc3QgX3RleHR1cmUgPSBub3JtYWxUZXh0dXJlKCk7XG5cdFx0XHRpZiAoIV90ZXh0dXJlKSByZXR1cm47XG5cblx0XHRcdGNvbnN0IHsgcmVwZWF0LCBvZmZzZXQsIGFuaXNvdHJvcHkgfSA9IHN0YXRlKCk7XG5cdFx0XHRfdGV4dHVyZS53cmFwUyA9IF90ZXh0dXJlLndyYXBUID0gVEhSRUUuUmVwZWF0V3JhcHBpbmc7XG5cdFx0XHRfdGV4dHVyZS5yZXBlYXQgPSBuZXcgVEhSRUUuVmVjdG9yMihyZXBlYXRbMF0sIHJlcGVhdFsxXSk7XG5cdFx0XHRfdGV4dHVyZS5vZmZzZXQgPSBuZXcgVEhSRUUuVmVjdG9yMihvZmZzZXRbMF0sIG9mZnNldFsxXSk7XG5cdFx0XHRfdGV4dHVyZS5hbmlzb3Ryb3B5ID0gYW5pc290cm9weTtcblx0XHR9KTtcblxuXHRcdHJldHVybiB7IHRleHR1cmU6IG5vcm1hbFRleHR1cmUsIG51bVRvdCwgdXJsIH07XG5cdH0pO1xufVxuIl19