angular-three-soba 2.0.0-beta.4 → 2.0.0-beta.41

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 (323) hide show
  1. package/abstractions/billboard/billboard.d.ts +12 -8
  2. package/abstractions/detailed/detailed.d.ts +26 -0
  3. package/abstractions/edges/edges.d.ts +24 -12
  4. package/abstractions/grid/grid.d.ts +42 -51
  5. package/abstractions/index.d.ts +1 -7
  6. package/abstractions/text/text.d.ts +10 -4
  7. package/abstractions/text-3d/text-3d.d.ts +51 -41
  8. package/cameras/camera/camera-content.d.ts +1 -1
  9. package/cameras/camera/camera.d.ts +16 -13
  10. package/cameras/cube-camera/cube-camera.d.ts +49 -23
  11. package/cameras/index.d.ts +0 -1
  12. package/cameras/orthographic-camera/orthographic-camera.d.ts +29 -18
  13. package/cameras/perspective-camera/perspective-camera.d.ts +10 -1
  14. package/controls/orbit-controls/orbit-controls.d.ts +34 -15
  15. package/esm2022/abstractions/billboard/billboard.mjs +36 -33
  16. package/esm2022/abstractions/detailed/detailed.mjs +64 -0
  17. package/esm2022/abstractions/edges/edges.mjs +58 -63
  18. package/esm2022/abstractions/grid/grid.mjs +140 -110
  19. package/esm2022/abstractions/index.mjs +2 -8
  20. package/esm2022/abstractions/text/text.mjs +123 -122
  21. package/esm2022/abstractions/text-3d/text-3d.mjs +120 -115
  22. package/esm2022/cameras/camera/camera-content.mjs +6 -6
  23. package/esm2022/cameras/camera/camera.mjs +48 -42
  24. package/esm2022/cameras/cube-camera/cube-camera.mjs +120 -100
  25. package/esm2022/cameras/index.mjs +1 -2
  26. package/esm2022/cameras/orthographic-camera/orthographic-camera.mjs +78 -75
  27. package/esm2022/cameras/perspective-camera/perspective-camera.mjs +25 -26
  28. package/esm2022/controls/orbit-controls/orbit-controls.mjs +109 -85
  29. package/esm2022/gizmos/angular-three-soba-gizmos.mjs +5 -0
  30. package/esm2022/gizmos/gizmo-helper/gizmo-helper.mjs +198 -0
  31. package/esm2022/gizmos/gizmo-helper/gizmo-viewcube/constants.mjs +31 -0
  32. package/esm2022/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube-edge.mjs +93 -0
  33. package/esm2022/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube-face.mjs +151 -0
  34. package/esm2022/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube-input.mjs +66 -0
  35. package/esm2022/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube.mjs +71 -0
  36. package/esm2022/gizmos/gizmo-helper/gizmo-viewport/gizmo-viewport-axis.mjs +195 -0
  37. package/esm2022/gizmos/gizmo-helper/gizmo-viewport/gizmo-viewport.mjs +272 -0
  38. package/esm2022/gizmos/index.mjs +4 -0
  39. package/esm2022/loaders/gltf-loader/gltf-loader.mjs +14 -9
  40. package/esm2022/loaders/loader/loader.mjs +92 -87
  41. package/esm2022/loaders/progress/progress.mjs +31 -30
  42. package/esm2022/loaders/texture-loader/texture-loader.mjs +20 -15
  43. package/esm2022/materials/index.mjs +2 -1
  44. package/esm2022/materials/mesh-distort-material/mesh-distort-material.mjs +60 -51
  45. package/esm2022/materials/mesh-reflector-material/mesh-reflector-material.mjs +239 -255
  46. package/esm2022/materials/mesh-refraction-material/mesh-refraction-material.mjs +99 -97
  47. package/esm2022/materials/mesh-transmission-material/mesh-transmission-material.mjs +164 -144
  48. package/esm2022/materials/mesh-wobble-material/mesh-wobble-material.mjs +44 -42
  49. package/esm2022/materials/point-material/point-material.mjs +50 -0
  50. package/esm2022/misc/animations/animations.mjs +28 -23
  51. package/esm2022/misc/bake-shadows/bake-shadows.mjs +13 -13
  52. package/esm2022/misc/caustics/caustics.mjs +387 -0
  53. package/esm2022/misc/decal/decal.mjs +187 -0
  54. package/esm2022/misc/depth-buffer/depth-buffer.mjs +41 -37
  55. package/esm2022/misc/example/example.mjs +161 -0
  56. package/esm2022/misc/fbo/fbo.mjs +42 -36
  57. package/esm2022/misc/html/html-wrapper.mjs +478 -0
  58. package/esm2022/misc/html/html.mjs +305 -0
  59. package/esm2022/misc/index.mjs +10 -1
  60. package/esm2022/misc/sampler/sampler.mjs +132 -0
  61. package/esm2022/misc/shadow/shadow.mjs +111 -0
  62. package/esm2022/misc/stats-gl/stats-gl.mjs +61 -0
  63. package/esm2022/misc/trail/trail.mjs +204 -0
  64. package/esm2022/misc/trail-texture/inject-trail-texture.mjs +17 -0
  65. package/esm2022/misc/trail-texture/trail-texture.mjs +106 -0
  66. package/esm2022/modifiers/angular-three-soba-modifiers.mjs +5 -0
  67. package/esm2022/modifiers/curve-modifier/curve-modifier.mjs +64 -0
  68. package/esm2022/modifiers/index.mjs +2 -0
  69. package/esm2022/performances/adaptive-dpr/adaptive-dpr.mjs +44 -0
  70. package/esm2022/performances/adaptive-events/adaptive-events.mjs +27 -0
  71. package/esm2022/performances/angular-three-soba-performances.mjs +5 -0
  72. package/esm2022/performances/index.mjs +8 -0
  73. package/esm2022/performances/instances/instances.mjs +221 -0
  74. package/esm2022/performances/instances/position-mesh.mjs +52 -0
  75. package/esm2022/performances/points/points-input.mjs +64 -0
  76. package/esm2022/performances/points/points.mjs +327 -0
  77. package/esm2022/performances/points/position-point.mjs +54 -0
  78. package/esm2022/performances/segments/segment-object.mjs +9 -0
  79. package/esm2022/performances/segments/segments.mjs +183 -0
  80. package/esm2022/shaders/blur-pass/blur-pass.mjs +2 -2
  81. package/esm2022/shaders/caustics/caustics-material.mjs +130 -0
  82. package/esm2022/shaders/caustics/caustics-projection-material.mjs +32 -0
  83. package/esm2022/shaders/convolution-material/convolution-material.mjs +3 -2
  84. package/esm2022/shaders/discard-material/discard-material.mjs +1 -1
  85. package/esm2022/shaders/grid-material/grid-material.mjs +30 -14
  86. package/esm2022/shaders/index.mjs +5 -3
  87. package/esm2022/shaders/mesh-distort-material/mesh-distort-material.mjs +42 -41
  88. package/esm2022/shaders/mesh-reflector-material/mesh-reflector-material.mjs +2 -2
  89. package/esm2022/shaders/mesh-refraction-material/mesh-refraction-material.mjs +3 -2
  90. package/esm2022/shaders/mesh-transmission-material/mesh-transmission-material.mjs +7 -4
  91. package/esm2022/shaders/mesh-wobble-material/mesh-wobble-material.mjs +1 -1
  92. package/esm2022/shaders/shader-material/shader-material.mjs +3 -5
  93. package/esm2022/shaders/soft-shadow-material/soft-shadow-material.mjs +18 -25
  94. package/esm2022/shaders/sparkles-material/sparkles-material.mjs +32 -46
  95. package/esm2022/shaders/spot-light-material/spot-light-material.mjs +8 -7
  96. package/esm2022/shaders/star-field-material/star-field-material.mjs +3 -2
  97. package/esm2022/shaders/wireframe-material/wireframe-material.mjs +247 -0
  98. package/esm2022/staging/accumulative-shadows/accumulative-shadows.mjs +161 -176
  99. package/esm2022/staging/accumulative-shadows/progressive-light-map.mjs +8 -8
  100. package/esm2022/staging/accumulative-shadows/randomized-lights.mjs +129 -129
  101. package/esm2022/staging/backdrop/backdrop.mjs +77 -0
  102. package/esm2022/staging/bb-anchor/bb-anchor.mjs +69 -0
  103. package/esm2022/staging/bounds/bounds.mjs +145 -143
  104. package/esm2022/staging/camera-shake/camera-shake.mjs +86 -80
  105. package/esm2022/staging/center/center.mjs +129 -112
  106. package/esm2022/staging/cloud/cloud.mjs +118 -124
  107. package/esm2022/staging/contact-shadows/contact-shadows.mjs +131 -136
  108. package/esm2022/staging/environment/assets.mjs +12 -12
  109. package/esm2022/staging/environment/environment-cube.mjs +28 -30
  110. package/esm2022/staging/environment/environment-ground.mjs +17 -19
  111. package/esm2022/staging/environment/environment-input.mjs +98 -85
  112. package/esm2022/staging/environment/environment-map.mjs +33 -33
  113. package/esm2022/staging/environment/environment-portal.mjs +75 -97
  114. package/esm2022/staging/environment/environment.mjs +34 -51
  115. package/esm2022/staging/environment/utils.mjs +40 -17
  116. package/esm2022/staging/float/float.mjs +70 -58
  117. package/esm2022/staging/index.mjs +7 -3
  118. package/esm2022/staging/matcap-texture/matcap-texture.mjs +64 -0
  119. package/esm2022/staging/normal-texture/normal-texture.mjs +53 -0
  120. package/esm2022/staging/sky/sky.mjs +85 -80
  121. package/esm2022/staging/sparkles/sparkles.mjs +108 -105
  122. package/esm2022/staging/spot-light/shadow-mesh-input.mjs +63 -0
  123. package/esm2022/staging/spot-light/shadow-mesh.mjs +267 -0
  124. package/esm2022/staging/spot-light/spot-light-input.mjs +67 -58
  125. package/esm2022/staging/spot-light/spot-light.mjs +51 -63
  126. package/esm2022/staging/spot-light/volumetric-mesh.mjs +67 -70
  127. package/esm2022/staging/stage/stage.mjs +305 -290
  128. package/esm2022/staging/stars/stars.mjs +101 -102
  129. package/esm2022/staging/wireframe/wireframe-input.mjs +191 -0
  130. package/esm2022/staging/wireframe/wireframe.mjs +228 -0
  131. package/esm2022/utils/angular-three-soba-utils.mjs +5 -0
  132. package/esm2022/utils/constants.mjs +3 -0
  133. package/esm2022/utils/content/content.mjs +15 -0
  134. package/esm2022/utils/index.mjs +3 -0
  135. package/fesm2022/angular-three-soba-abstractions.mjs +504 -2079
  136. package/fesm2022/angular-three-soba-abstractions.mjs.map +1 -1
  137. package/fesm2022/angular-three-soba-cameras.mjs +293 -260
  138. package/fesm2022/angular-three-soba-cameras.mjs.map +1 -1
  139. package/fesm2022/angular-three-soba-controls.mjs +108 -83
  140. package/fesm2022/angular-three-soba-controls.mjs.map +1 -1
  141. package/fesm2022/angular-three-soba-gizmos.mjs +1045 -0
  142. package/fesm2022/angular-three-soba-gizmos.mjs.map +1 -0
  143. package/fesm2022/angular-three-soba-loaders.mjs +148 -132
  144. package/fesm2022/angular-three-soba-loaders.mjs.map +1 -1
  145. package/fesm2022/angular-three-soba-materials.mjs +656 -588
  146. package/fesm2022/angular-three-soba-materials.mjs.map +1 -1
  147. package/fesm2022/angular-three-soba-misc.mjs +2202 -99
  148. package/fesm2022/angular-three-soba-misc.mjs.map +1 -1
  149. package/fesm2022/angular-three-soba-modifiers.mjs +71 -0
  150. package/fesm2022/angular-three-soba-modifiers.mjs.map +1 -0
  151. package/fesm2022/angular-three-soba-performances.mjs +957 -0
  152. package/fesm2022/angular-three-soba-performances.mjs.map +1 -0
  153. package/fesm2022/angular-three-soba-shaders.mjs +508 -269
  154. package/fesm2022/angular-three-soba-shaders.mjs.map +1 -1
  155. package/fesm2022/angular-three-soba-staging.mjs +2910 -2573
  156. package/fesm2022/angular-three-soba-staging.mjs.map +1 -1
  157. package/fesm2022/angular-three-soba-utils.mjs +25 -0
  158. package/fesm2022/angular-three-soba-utils.mjs.map +1 -0
  159. package/gizmos/README.md +3 -0
  160. package/gizmos/gizmo-helper/gizmo-helper.d.ts +73 -0
  161. package/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube-edge.d.ts +22 -0
  162. package/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube-face.d.ts +29 -0
  163. package/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube-input.d.ts +33 -0
  164. package/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube.d.ts +10 -0
  165. package/gizmos/gizmo-helper/gizmo-viewport/gizmo-viewport-axis.d.ts +40 -0
  166. package/gizmos/gizmo-helper/gizmo-viewport/gizmo-viewport.d.ts +30 -0
  167. package/gizmos/index.d.ts +3 -0
  168. package/loaders/gltf-loader/gltf-loader.d.ts +15 -4
  169. package/loaders/loader/loader.d.ts +19 -17
  170. package/loaders/progress/progress.d.ts +1 -1
  171. package/loaders/texture-loader/texture-loader.d.ts +8 -3
  172. package/materials/index.d.ts +1 -0
  173. package/materials/mesh-distort-material/mesh-distort-material.d.ts +25 -15
  174. package/materials/mesh-reflector-material/mesh-reflector-material.d.ts +74 -56
  175. package/materials/mesh-refraction-material/mesh-refraction-material.d.ts +33 -21
  176. package/materials/mesh-transmission-material/mesh-transmission-material.d.ts +55 -39
  177. package/materials/mesh-wobble-material/mesh-wobble-material.d.ts +19 -10
  178. package/materials/point-material/point-material.d.ts +24 -0
  179. package/metadata.json +1 -0
  180. package/misc/animations/animations.d.ts +6 -4
  181. package/misc/caustics/caustics.d.ts +87 -0
  182. package/misc/decal/decal.d.ts +49 -0
  183. package/misc/depth-buffer/depth-buffer.d.ts +2 -2
  184. package/misc/example/example.d.ts +85 -0
  185. package/misc/fbo/fbo.d.ts +2 -2
  186. package/misc/html/html-wrapper.d.ts +559 -0
  187. package/misc/html/html.d.ts +218 -0
  188. package/misc/index.d.ts +9 -0
  189. package/misc/sampler/sampler.d.ts +67 -0
  190. package/misc/shadow/shadow.d.ts +37 -0
  191. package/misc/stats-gl/stats-gl.d.ts +24 -0
  192. package/misc/trail/trail.d.ts +57 -0
  193. package/misc/trail-texture/inject-trail-texture.d.ts +9 -0
  194. package/misc/trail-texture/trail-texture.d.ts +50 -0
  195. package/modifiers/README.md +3 -0
  196. package/modifiers/curve-modifier/curve-modifier.d.ts +23 -0
  197. package/modifiers/index.d.ts +1 -0
  198. package/package.json +42 -24
  199. package/performances/README.md +3 -0
  200. package/performances/adaptive-dpr/adaptive-dpr.d.ts +14 -0
  201. package/{performance/adaptive → performances/adaptive-events}/adaptive-events.d.ts +3 -0
  202. package/performances/index.d.ts +7 -0
  203. package/performances/instances/instances.d.ts +83 -0
  204. package/{performance → performances}/instances/position-mesh.d.ts +1 -1
  205. package/performances/points/points-input.d.ts +32 -0
  206. package/performances/points/points.d.ts +96 -0
  207. package/performances/points/position-point.d.ts +11 -0
  208. package/performances/segments/segment-object.d.ts +7 -0
  209. package/performances/segments/segments.d.ts +128 -0
  210. package/shaders/grid-material/grid-material.d.ts +33 -0
  211. package/shaders/index.d.ts +4 -2
  212. package/shaders/mesh-distort-material/mesh-distort-material.d.ts +173 -6
  213. package/shaders/mesh-transmission-material/mesh-transmission-material.d.ts +1 -1
  214. package/shaders/shader-material/shader-material.d.ts +2 -2
  215. package/shaders/soft-shadow-material/soft-shadow-material.d.ts +10 -1
  216. package/shaders/sparkles-material/sparkles-material.d.ts +13 -0
  217. package/shaders/spot-light-material/spot-light-material.d.ts +11 -2
  218. package/shaders/star-field-material/star-field-material.d.ts +9 -0
  219. package/shaders/wireframe-material/wireframe-material.d.ts +58 -0
  220. package/staging/accumulative-shadows/accumulative-shadows.d.ts +93 -39
  221. package/staging/accumulative-shadows/randomized-lights.d.ts +41 -28
  222. package/staging/backdrop/backdrop.d.ts +30 -0
  223. package/staging/bb-anchor/bb-anchor.d.ts +27 -0
  224. package/staging/bounds/bounds.d.ts +105 -25
  225. package/staging/camera-shake/camera-shake.d.ts +30 -19
  226. package/staging/center/center.d.ts +43 -35
  227. package/staging/cloud/cloud.d.ts +27 -24
  228. package/staging/contact-shadows/contact-shadows.d.ts +43 -30
  229. package/staging/environment/assets.d.ts +9 -9
  230. package/staging/environment/environment-cube.d.ts +9 -5
  231. package/staging/environment/environment-ground.d.ts +7 -7
  232. package/staging/environment/environment-input.d.ts +38 -38
  233. package/staging/environment/environment-map.d.ts +10 -5
  234. package/staging/environment/environment-portal.d.ts +10 -5
  235. package/staging/environment/environment.d.ts +0 -4
  236. package/staging/environment/utils.d.ts +2 -2
  237. package/staging/float/float.d.ts +15 -11
  238. package/staging/index.d.ts +6 -2
  239. package/staging/matcap-texture/matcap-texture.d.ts +13 -0
  240. package/staging/normal-texture/normal-texture.d.ts +16 -0
  241. package/staging/sky/sky.d.ts +28 -21
  242. package/staging/sparkles/sparkles.d.ts +36 -22
  243. package/staging/spot-light/shadow-mesh-input.d.ts +29 -0
  244. package/staging/spot-light/shadow-mesh.d.ts +37 -0
  245. package/staging/spot-light/spot-light-input.d.ts +25 -25
  246. package/staging/spot-light/spot-light.d.ts +35 -15
  247. package/staging/spot-light/volumetric-mesh.d.ts +15 -9
  248. package/staging/stage/stage.d.ts +89 -65
  249. package/staging/stars/stars.d.ts +28 -17
  250. package/staging/wireframe/wireframe-input.d.ts +65 -0
  251. package/staging/wireframe/wireframe.d.ts +28 -0
  252. package/utils/README.md +3 -0
  253. package/utils/constants.d.ts +1 -0
  254. package/utils/content/content.d.ts +8 -0
  255. package/utils/index.d.ts +2 -0
  256. package/web-types.json +1 -0
  257. package/abstractions/catmull-rom-line/catmull-rom-line.d.ts +0 -25
  258. package/abstractions/cubic-bezier-line/cubic-bezier-line.d.ts +0 -25
  259. package/abstractions/gizmo-helper/gizmo-helper.d.ts +0 -34
  260. package/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-edge.d.ts +0 -22
  261. package/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-face.d.ts +0 -30
  262. package/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-inputs.d.ts +0 -32
  263. package/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube.d.ts +0 -14
  264. package/abstractions/gizmo-helper/gizmo-viewport/gizmo-viewport-axis.d.ts +0 -47
  265. package/abstractions/gizmo-helper/gizmo-viewport/gizmo-viewport.d.ts +0 -40
  266. package/abstractions/line/line-input.d.ts +0 -42
  267. package/abstractions/line/line.d.ts +0 -35
  268. package/abstractions/quadratic-bezier-line/quadratic-bezier-line.d.ts +0 -23
  269. package/esm2022/abstractions/catmull-rom-line/catmull-rom-line.mjs +0 -131
  270. package/esm2022/abstractions/cubic-bezier-line/cubic-bezier-line.mjs +0 -113
  271. package/esm2022/abstractions/gizmo-helper/gizmo-helper.mjs +0 -210
  272. package/esm2022/abstractions/gizmo-helper/gizmo-viewcube/constants.mjs +0 -31
  273. package/esm2022/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-edge.mjs +0 -95
  274. package/esm2022/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-face.mjs +0 -155
  275. package/esm2022/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-inputs.mjs +0 -62
  276. package/esm2022/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube.mjs +0 -80
  277. package/esm2022/abstractions/gizmo-helper/gizmo-viewport/gizmo-viewport-axis.mjs +0 -206
  278. package/esm2022/abstractions/gizmo-helper/gizmo-viewport/gizmo-viewport.mjs +0 -273
  279. package/esm2022/abstractions/line/line-input.mjs +0 -113
  280. package/esm2022/abstractions/line/line.mjs +0 -165
  281. package/esm2022/abstractions/quadratic-bezier-line/quadratic-bezier-line.mjs +0 -128
  282. package/esm2022/performance/adaptive/adaptive-dpr.mjs +0 -46
  283. package/esm2022/performance/adaptive/adaptive-events.mjs +0 -31
  284. package/esm2022/performance/angular-three-soba-performance.mjs +0 -5
  285. package/esm2022/performance/detailed/detailed.mjs +0 -61
  286. package/esm2022/performance/index.mjs +0 -7
  287. package/esm2022/performance/instances/instance.mjs +0 -48
  288. package/esm2022/performance/instances/instances.mjs +0 -189
  289. package/esm2022/performance/instances/position-mesh.mjs +0 -52
  290. package/esm2022/performance/stats/stats.mjs +0 -79
  291. package/esm2022/shaders/caustics-material/caustics-material.mjs +0 -128
  292. package/esm2022/shaders/caustics-material/caustics-projection-material.mjs +0 -33
  293. package/esm2022/staging/caustics/caustisc.mjs +0 -384
  294. package/esm2022/staging/spot-light/spot-light-shadow-mesh-input.mjs +0 -57
  295. package/esm2022/staging/spot-light/spot-light-shadow-mesh.mjs +0 -256
  296. package/fesm2022/angular-three-soba-performance.mjs +0 -487
  297. package/fesm2022/angular-three-soba-performance.mjs.map +0 -1
  298. package/performance/README.md +0 -3
  299. package/performance/adaptive/adaptive-dpr.d.ts +0 -8
  300. package/performance/detailed/detailed.d.ts +0 -20
  301. package/performance/index.d.ts +0 -6
  302. package/performance/instances/instance.d.ts +0 -9
  303. package/performance/instances/instances.d.ts +0 -35
  304. package/performance/stats/stats.d.ts +0 -18
  305. package/plugin/generators.json +0 -19
  306. package/plugin/libs/plugin/README.md +0 -11
  307. package/plugin/package.json +0 -9
  308. package/plugin/src/generators/init/compat.d.ts +0 -2
  309. package/plugin/src/generators/init/compat.js +0 -6
  310. package/plugin/src/generators/init/compat.js.map +0 -1
  311. package/plugin/src/generators/init/init.d.ts +0 -7
  312. package/plugin/src/generators/init/init.js +0 -28
  313. package/plugin/src/generators/init/init.js.map +0 -1
  314. package/plugin/src/generators/init/schema.json +0 -6
  315. package/plugin/src/index.d.ts +0 -1
  316. package/plugin/src/index.js +0 -6
  317. package/plugin/src/index.js.map +0 -1
  318. package/staging/caustics/caustisc.d.ts +0 -70
  319. package/staging/spot-light/spot-light-shadow-mesh-input.d.ts +0 -29
  320. package/staging/spot-light/spot-light-shadow-mesh.d.ts +0 -38
  321. /package/{abstractions → gizmos}/gizmo-helper/gizmo-viewcube/constants.d.ts +0 -0
  322. /package/shaders/{caustics-material → caustics}/caustics-material.d.ts +0 -0
  323. /package/shaders/{caustics-material → caustics}/caustics-projection-material.d.ts +0 -0
@@ -1,487 +0,0 @@
1
- import * as i0 from '@angular/core';
2
- import { signal, inject, effect, untracked, Directive, Input, computed, Component, CUSTOM_ELEMENTS_SCHEMA, InjectionToken, ElementRef } from '@angular/core';
3
- import { NgtStore, extend, NgtSignalStore, injectNgtRef, requestAnimationInInjectionContext, checkUpdate, injectBeforeRender, NgtArgs, is, addEffect, addAfterEffect } from 'angular-three';
4
- import * as THREE from 'three';
5
- import { LOD, InstancedMesh, InstancedBufferAttribute } from 'three';
6
- import { DOCUMENT } from '@angular/common';
7
- import * as Stats from 'stats.js';
8
-
9
- class NgtsAdaptiveDpr {
10
- #pixelated = signal(false);
11
- set pixelated(pixelated) {
12
- this.#pixelated.set(pixelated);
13
- }
14
- constructor() {
15
- const store = inject(NgtStore);
16
- effect((onCleanup) => {
17
- const domElement = store.get('gl', 'domElement');
18
- onCleanup(() => {
19
- const active = store.get('internal', 'active');
20
- const setDpr = store.get('setDpr');
21
- const initialDpr = store.get('viewport', 'initialDpr');
22
- if (active)
23
- setDpr(initialDpr);
24
- if (untracked(this.#pixelated) && domElement)
25
- domElement.style.imageRendering = 'auto';
26
- });
27
- }, { allowSignalWrites: true });
28
- const performanceCurrent = store.select('performance', 'current');
29
- // TODO: mousemove event doesn't seem to trigger change detection. investigate later
30
- effect(() => {
31
- const current = performanceCurrent();
32
- const { gl, viewport, setDpr } = store.get();
33
- setDpr(current * viewport.initialDpr);
34
- if (untracked(this.#pixelated) && gl.domElement)
35
- gl.domElement.style.imageRendering = current === 1 ? 'auto' : 'pixelated';
36
- }, { allowSignalWrites: true });
37
- }
38
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgtsAdaptiveDpr, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
39
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0", type: NgtsAdaptiveDpr, isStandalone: true, selector: "ngts-adaptive-dpr", inputs: { pixelated: "pixelated" }, ngImport: i0 }); }
40
- }
41
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgtsAdaptiveDpr, decorators: [{
42
- type: Directive,
43
- args: [{
44
- selector: 'ngts-adaptive-dpr',
45
- standalone: true,
46
- }]
47
- }], ctorParameters: function () { return []; }, propDecorators: { pixelated: [{
48
- type: Input
49
- }] } });
50
-
51
- class NgtsAdaptiveEvents {
52
- constructor() {
53
- const store = inject(NgtStore);
54
- effect((onCleanup) => {
55
- const enabled = store.get('events', 'enabled');
56
- onCleanup(() => {
57
- const setEvents = store.get('setEvents');
58
- setEvents({ enabled });
59
- });
60
- }, { allowSignalWrites: true });
61
- const performanceCurrent = store.select('performance', 'current');
62
- effect(() => {
63
- const setEvents = store.get('setEvents');
64
- setEvents({ enabled: performanceCurrent() === 1 });
65
- }, { allowSignalWrites: true });
66
- }
67
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgtsAdaptiveEvents, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
68
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0", type: NgtsAdaptiveEvents, isStandalone: true, selector: "ngts-adaptive-events", ngImport: i0 }); }
69
- }
70
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgtsAdaptiveEvents, decorators: [{
71
- type: Directive,
72
- args: [{
73
- selector: 'ngts-adaptive-events',
74
- standalone: true,
75
- }]
76
- }], ctorParameters: function () { return []; } });
77
-
78
- extend({ LOD });
79
- class NgtsDetailed extends NgtSignalStore {
80
- set distances(distances) {
81
- this.set({ distances });
82
- }
83
- constructor() {
84
- super();
85
- this.lodRef = injectNgtRef();
86
- this.#updateChildren();
87
- }
88
- onLODBeforeRender({ object, state }) {
89
- object.update(state.camera);
90
- }
91
- #updateChildren() {
92
- const distances = this.select('distances');
93
- const trigger = computed(() => {
94
- const children = this.lodRef.children();
95
- return { children: children(), distances: distances() };
96
- });
97
- effect(() => {
98
- const { children, distances } = trigger();
99
- const lod = this.lodRef.untracked;
100
- if (lod) {
101
- lod.levels.length = 0;
102
- children.forEach((child, index) => {
103
- lod.addLevel(child, distances[index]);
104
- });
105
- }
106
- });
107
- }
108
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgtsDetailed, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
109
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: NgtsDetailed, isStandalone: true, selector: "ngts-detailed", inputs: { lodRef: "lodRef", distances: "distances" }, usesInheritance: true, ngImport: i0, template: `
110
- <ngt-lOD ngtCompound [ref]="lodRef" (beforeRender)="onLODBeforeRender($event)">
111
- <ng-content />
112
- </ngt-lOD>
113
- `, isInline: true }); }
114
- }
115
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgtsDetailed, decorators: [{
116
- type: Component,
117
- args: [{
118
- selector: 'ngts-detailed',
119
- standalone: true,
120
- template: `
121
- <ngt-lOD ngtCompound [ref]="lodRef" (beforeRender)="onLODBeforeRender($event)">
122
- <ng-content />
123
- </ngt-lOD>
124
- `,
125
- schemas: [CUSTOM_ELEMENTS_SCHEMA],
126
- }]
127
- }], ctorParameters: function () { return []; }, propDecorators: { lodRef: [{
128
- type: Input
129
- }], distances: [{
130
- type: Input,
131
- args: [{ required: true }]
132
- }] } });
133
-
134
- extend({ InstancedMesh, InstancedBufferAttribute });
135
- const NGTS_INSTANCES_API = new InjectionToken('NgtsInstances API');
136
- class NgtsInstances extends NgtSignalStore {
137
- set range(range) {
138
- this.set({ range });
139
- }
140
- set limit(limit) {
141
- this.set({ limit });
142
- }
143
- set frames(frames) {
144
- this.set({ frames });
145
- }
146
- #parentMatrix;
147
- #instanceMatrix;
148
- #tempMatrix;
149
- #translation;
150
- #rotation;
151
- #scale;
152
- #limit;
153
- constructor() {
154
- super({ limit: 1000, frames: Infinity });
155
- this.nullRaycast = () => null;
156
- this.DynamicDrawUsage = THREE.DynamicDrawUsage;
157
- this.instancesRef = injectNgtRef();
158
- this.#parentMatrix = new THREE.Matrix4();
159
- this.#instanceMatrix = new THREE.Matrix4();
160
- this.#tempMatrix = new THREE.Matrix4();
161
- this.#translation = new THREE.Vector3();
162
- this.#rotation = new THREE.Quaternion();
163
- this.#scale = new THREE.Vector3();
164
- this.#limit = this.select('limit');
165
- this.matrices = computed(() => {
166
- const limit = this.#limit();
167
- const mArray = new Float32Array(limit * 16);
168
- for (let i = 0; i < limit; i++)
169
- this.#tempMatrix.identity().toArray(mArray, i * 16);
170
- return mArray;
171
- });
172
- this.colors = computed(() => {
173
- const limit = this.#limit();
174
- return new Float32Array([...new Array(limit * 3)].map(() => 1));
175
- });
176
- this.instances = signal([]);
177
- this.api = computed(() => ({
178
- getParent: () => this.instancesRef,
179
- subscribe: (ref) => {
180
- this.instances.update((prev) => [...prev, ref]);
181
- return () => this.instances.update((prev) => prev.filter((instance) => instance.nativeElement !== ref.nativeElement));
182
- },
183
- }));
184
- requestAnimationInInjectionContext(() => {
185
- this.#checkUpdate();
186
- this.#setBeforeRender();
187
- });
188
- }
189
- #checkUpdate() {
190
- effect(() => {
191
- const instances = this.instancesRef.nativeElement;
192
- if (!instances)
193
- return;
194
- checkUpdate(instances.instanceMatrix);
195
- });
196
- }
197
- #setBeforeRender() {
198
- let count = 0;
199
- let updateRange = 0;
200
- injectBeforeRender(() => {
201
- const instances = this.instancesRef.nativeElement;
202
- if (!instances)
203
- return;
204
- const { frames, range, limit } = this.get();
205
- const meshes = this.instances();
206
- const colors = this.colors();
207
- const matrices = this.matrices();
208
- if (frames === Infinity || count < frames) {
209
- instances.updateMatrix();
210
- instances.updateMatrixWorld();
211
- this.#parentMatrix.copy(instances.matrixWorld).invert();
212
- updateRange = Math.min(limit, range !== undefined ? range : limit, meshes.length);
213
- instances.count = updateRange;
214
- instances.instanceMatrix.updateRange.count = updateRange * 16;
215
- if (instances.instanceColor) {
216
- instances.instanceColor.updateRange.count = updateRange * 3;
217
- }
218
- for (let i = 0; i < meshes.length; i++) {
219
- const instance = meshes[i].nativeElement;
220
- // Multiply the inverse of the InstancedMesh world matrix or else
221
- // Instances will be double-transformed if <Instances> isn't at identity
222
- instance.matrixWorld.decompose(this.#translation, this.#rotation, this.#scale);
223
- this.#instanceMatrix
224
- .compose(this.#translation, this.#rotation, this.#scale)
225
- .premultiply(this.#parentMatrix);
226
- this.#instanceMatrix.toArray(matrices, i * 16);
227
- instances.instanceMatrix.needsUpdate = true;
228
- instance.color.toArray(colors, i * 3);
229
- if (instances.instanceColor) {
230
- checkUpdate(instances.instanceColor);
231
- }
232
- }
233
- count++;
234
- }
235
- });
236
- }
237
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgtsInstances, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
238
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: NgtsInstances, isStandalone: true, selector: "ngts-instances", inputs: { instancesRef: "instancesRef", range: "range", limit: "limit", frames: "frames" }, providers: [
239
- { provide: NGTS_INSTANCES_API, useFactory: (instances) => instances.api, deps: [NgtsInstances] },
240
- ], usesInheritance: true, ngImport: i0, template: `
241
- <ngt-instanced-mesh
242
- *args="[undefined, undefined, 0]"
243
- ngtCompound
244
- [ref]="instancesRef"
245
- [matrixAutoUpdate]="false"
246
- [raycast]="nullRaycast"
247
- [userData]="{ instances }"
248
- >
249
- <ngt-instanced-buffer-attribute
250
- attach="instanceMatrix"
251
- [count]="matrices().length / 16"
252
- [array]="matrices()"
253
- [itemSize]="16"
254
- [usage]="DynamicDrawUsage"
255
- />
256
- <ngt-instanced-buffer-attribute
257
- attach="instanceColor"
258
- [count]="colors().length / 3"
259
- [array]="colors()"
260
- [itemSize]="3"
261
- [usage]="DynamicDrawUsage"
262
- />
263
-
264
- <ng-content />
265
- </ngt-instanced-mesh>
266
- `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "[args]", inputs: ["args"] }] }); }
267
- }
268
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgtsInstances, decorators: [{
269
- type: Component,
270
- args: [{
271
- selector: 'ngts-instances',
272
- standalone: true,
273
- template: `
274
- <ngt-instanced-mesh
275
- *args="[undefined, undefined, 0]"
276
- ngtCompound
277
- [ref]="instancesRef"
278
- [matrixAutoUpdate]="false"
279
- [raycast]="nullRaycast"
280
- [userData]="{ instances }"
281
- >
282
- <ngt-instanced-buffer-attribute
283
- attach="instanceMatrix"
284
- [count]="matrices().length / 16"
285
- [array]="matrices()"
286
- [itemSize]="16"
287
- [usage]="DynamicDrawUsage"
288
- />
289
- <ngt-instanced-buffer-attribute
290
- attach="instanceColor"
291
- [count]="colors().length / 3"
292
- [array]="colors()"
293
- [itemSize]="3"
294
- [usage]="DynamicDrawUsage"
295
- />
296
-
297
- <ng-content />
298
- </ngt-instanced-mesh>
299
- `,
300
- imports: [NgtArgs],
301
- providers: [
302
- { provide: NGTS_INSTANCES_API, useFactory: (instances) => instances.api, deps: [NgtsInstances] },
303
- ],
304
- schemas: [CUSTOM_ELEMENTS_SCHEMA],
305
- }]
306
- }], ctorParameters: function () { return []; }, propDecorators: { instancesRef: [{
307
- type: Input
308
- }], range: [{
309
- type: Input,
310
- args: [{ required: true }]
311
- }], limit: [{
312
- type: Input
313
- }], frames: [{
314
- type: Input
315
- }] } });
316
-
317
- const _instanceLocalMatrix = /*@__PURE__*/ new THREE.Matrix4();
318
- const _instanceWorldMatrix = /*@__PURE__*/ new THREE.Matrix4();
319
- const _instanceIntersects = [];
320
- const _mesh = /*@__PURE__*/ new THREE.Mesh();
321
- class PositionMesh extends THREE.Group {
322
- constructor() {
323
- super();
324
- this.color = new THREE.Color('white');
325
- this.instance = new ElementRef(undefined);
326
- this.instanceKey = new ElementRef(undefined);
327
- }
328
- // This will allow the virtual instance have bounds
329
- get geometry() {
330
- return this.instance.nativeElement?.geometry;
331
- }
332
- // And this will allow the virtual instance to receive events
333
- raycast(raycaster, intersects) {
334
- const parent = this.instance.nativeElement;
335
- if (!parent)
336
- return;
337
- if (!parent.geometry || !parent.material)
338
- return;
339
- _mesh.geometry = parent.geometry;
340
- const matrixWorld = parent.matrixWorld;
341
- const instanceId = parent.userData['instances']().indexOf(this.instanceKey);
342
- // If the instance wasn't found or exceeds the parents draw range, bail out
343
- if (instanceId === -1 || instanceId > parent.count)
344
- return;
345
- // calculate the world matrix for each instance
346
- parent.getMatrixAt(instanceId, _instanceLocalMatrix);
347
- _instanceWorldMatrix.multiplyMatrices(matrixWorld, _instanceLocalMatrix);
348
- // the mesh represents this single instance
349
- _mesh.matrixWorld = _instanceWorldMatrix;
350
- // raycast side according to instance material
351
- if (parent.material instanceof THREE.Material)
352
- _mesh.material.side = parent.material.side;
353
- else
354
- _mesh.material.side = parent.material[0].side;
355
- _mesh.raycast(raycaster, _instanceIntersects);
356
- // process the result of raycast
357
- for (let i = 0, l = _instanceIntersects.length; i < l; i++) {
358
- const intersect = _instanceIntersects[i];
359
- intersect.instanceId = instanceId;
360
- intersect.object = this;
361
- intersects.push(intersect);
362
- }
363
- _instanceIntersects.length = 0;
364
- }
365
- }
366
-
367
- extend({ PositionMesh });
368
- class NgtsInstance {
369
- constructor() {
370
- this.positionMeshRef = injectNgtRef();
371
- this.instancesApi = inject(NGTS_INSTANCES_API);
372
- requestAnimationInInjectionContext(() => {
373
- effect((onCleanup) => {
374
- onCleanup(this.instancesApi().subscribe(this.positionMeshRef));
375
- });
376
- });
377
- }
378
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgtsInstance, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
379
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: NgtsInstance, isStandalone: true, selector: "ngts-instance", ngImport: i0, template: `
380
- <ngt-position-mesh
381
- ngtCompound
382
- [ref]="positionMeshRef"
383
- [instanceKey]="positionMeshRef"
384
- [instance]="instancesApi().getParent()"
385
- >
386
- <ng-content />
387
- </ngt-position-mesh>
388
- `, isInline: true }); }
389
- }
390
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgtsInstance, decorators: [{
391
- type: Component,
392
- args: [{
393
- selector: 'ngts-instance',
394
- standalone: true,
395
- template: `
396
- <ngt-position-mesh
397
- ngtCompound
398
- [ref]="positionMeshRef"
399
- [instanceKey]="positionMeshRef"
400
- [instance]="instancesApi().getParent()"
401
- >
402
- <ng-content />
403
- </ngt-position-mesh>
404
- `,
405
- schemas: [CUSTOM_ELEMENTS_SCHEMA],
406
- }]
407
- }], ctorParameters: function () { return []; } });
408
-
409
- class NgtsStats extends NgtSignalStore {
410
- set showPanel(showPanel) {
411
- this.set({ showPanel });
412
- }
413
- set parent(parent) {
414
- this.set({ parent: is.ref(parent) ? parent.nativeElement : parent });
415
- }
416
- set classes(classes) {
417
- this.set({ classes });
418
- }
419
- set right(right) {
420
- this.set({ right });
421
- }
422
- constructor() {
423
- super({ showPanel: 0, right: false });
424
- const document = inject(DOCUMENT);
425
- const stats = Stats['default']
426
- ? new Stats['default']()
427
- : new Stats();
428
- const showPanel = this.select('showPanel');
429
- const right = this.select('right');
430
- const parent = this.select('parent');
431
- const classes = this.select('classes');
432
- const trigger = computed(() => ({
433
- showPanel: showPanel(),
434
- right: right(),
435
- parent: parent(),
436
- classes: classes(),
437
- }));
438
- effect((onCleanup) => {
439
- const { showPanel, right, parent, classes } = trigger();
440
- const node = parent ?? document.body;
441
- stats.showPanel(showPanel);
442
- node.appendChild(stats.dom);
443
- if (classes) {
444
- stats.dom.classList.add(...classes.split(' ').filter((cls) => cls));
445
- }
446
- if (right) {
447
- stats.dom.style.right = '0px';
448
- stats.dom.style.left = 'inherit';
449
- }
450
- else {
451
- stats.dom.style.left = '0px';
452
- stats.dom.style.right = 'inherit';
453
- }
454
- const begin = addEffect(() => stats.begin());
455
- const end = addAfterEffect(() => stats.end());
456
- onCleanup(() => {
457
- node.removeChild(stats.dom);
458
- begin();
459
- end();
460
- });
461
- });
462
- }
463
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgtsStats, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
464
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0", type: NgtsStats, isStandalone: true, selector: "ngts-stats", inputs: { showPanel: "showPanel", parent: "parent", classes: "classes", right: "right" }, usesInheritance: true, ngImport: i0 }); }
465
- }
466
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgtsStats, decorators: [{
467
- type: Directive,
468
- args: [{
469
- selector: 'ngts-stats',
470
- standalone: true,
471
- }]
472
- }], ctorParameters: function () { return []; }, propDecorators: { showPanel: [{
473
- type: Input
474
- }], parent: [{
475
- type: Input
476
- }], classes: [{
477
- type: Input
478
- }], right: [{
479
- type: Input
480
- }] } });
481
-
482
- /**
483
- * Generated bundle index. Do not edit.
484
- */
485
-
486
- export { NGTS_INSTANCES_API, NgtsAdaptiveDpr, NgtsAdaptiveEvents, NgtsDetailed, NgtsInstance, NgtsInstances, NgtsStats };
487
- //# sourceMappingURL=angular-three-soba-performance.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"angular-three-soba-performance.mjs","sources":["../../../../libs/soba/performance/src/adaptive/adaptive-dpr.ts","../../../../libs/soba/performance/src/adaptive/adaptive-events.ts","../../../../libs/soba/performance/src/detailed/detailed.ts","../../../../libs/soba/performance/src/instances/instances.ts","../../../../libs/soba/performance/src/instances/position-mesh.ts","../../../../libs/soba/performance/src/instances/instance.ts","../../../../libs/soba/performance/src/stats/stats.ts","../../../../libs/soba/performance/src/angular-three-soba-performance.ts"],"sourcesContent":["import { Directive, effect, inject, Input, signal, untracked } from '@angular/core';\nimport { NgtStore } from 'angular-three';\n\n@Directive({\n selector: 'ngts-adaptive-dpr',\n standalone: true,\n})\nexport class NgtsAdaptiveDpr {\n #pixelated = signal(false);\n @Input() set pixelated(pixelated: boolean) {\n this.#pixelated.set(pixelated);\n }\n\n constructor() {\n const store = inject(NgtStore);\n effect(\n (onCleanup) => {\n const domElement = store.get('gl', 'domElement');\n onCleanup(() => {\n const active = store.get('internal', 'active');\n const setDpr = store.get('setDpr');\n const initialDpr = store.get('viewport', 'initialDpr');\n if (active) setDpr(initialDpr);\n if (untracked(this.#pixelated) && domElement) domElement.style.imageRendering = 'auto';\n });\n },\n { allowSignalWrites: true }\n );\n\n const performanceCurrent = store.select('performance', 'current');\n // TODO: mousemove event doesn't seem to trigger change detection. investigate later\n effect(\n () => {\n const current = performanceCurrent();\n const { gl, viewport, setDpr } = store.get();\n setDpr(current * viewport.initialDpr);\n if (untracked(this.#pixelated) && gl.domElement)\n gl.domElement.style.imageRendering = current === 1 ? 'auto' : 'pixelated';\n },\n { allowSignalWrites: true }\n );\n }\n}\n","import { Directive, effect, inject } from '@angular/core';\nimport { NgtStore } from 'angular-three';\n\n@Directive({\n selector: 'ngts-adaptive-events',\n standalone: true,\n})\nexport class NgtsAdaptiveEvents {\n constructor() {\n const store = inject(NgtStore);\n effect(\n (onCleanup) => {\n const enabled = store.get('events', 'enabled');\n onCleanup(() => {\n const setEvents = store.get('setEvents');\n setEvents({ enabled });\n });\n },\n { allowSignalWrites: true }\n );\n\n const performanceCurrent = store.select('performance', 'current');\n effect(\n () => {\n const setEvents = store.get('setEvents');\n setEvents({ enabled: performanceCurrent() === 1 });\n },\n { allowSignalWrites: true }\n );\n }\n}\n","import { Component, computed, CUSTOM_ELEMENTS_SCHEMA, effect, Input } from '@angular/core';\nimport { extend, injectNgtRef, NgtSignalStore, type NgtBeforeRenderEvent, type NgtLOD } from 'angular-three';\nimport { LOD } from 'three';\n\nextend({ LOD });\n\nexport interface NgtsDetailedState {\n distances: number[];\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ngts-detailed': NgtsDetailedState & NgtLOD;\n }\n}\n\n@Component({\n selector: 'ngts-detailed',\n standalone: true,\n template: `\n <ngt-lOD ngtCompound [ref]=\"lodRef\" (beforeRender)=\"onLODBeforeRender($event)\">\n <ng-content />\n </ngt-lOD>\n `,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtsDetailed extends NgtSignalStore<NgtsDetailedState> {\n @Input() lodRef = injectNgtRef<LOD>();\n\n @Input({ required: true }) set distances(distances: number[]) {\n this.set({ distances });\n }\n\n constructor() {\n super();\n this.#updateChildren();\n }\n\n onLODBeforeRender({ object, state }: NgtBeforeRenderEvent<THREE.LOD>) {\n object.update(state.camera);\n }\n\n #updateChildren() {\n const distances = this.select('distances');\n const trigger = computed(() => {\n const children = this.lodRef.children();\n return { children: children(), distances: distances() };\n });\n effect(() => {\n const { children, distances } = trigger();\n const lod = this.lodRef.untracked;\n if (lod) {\n lod.levels.length = 0;\n children.forEach((child, index) => {\n lod.addLevel(child, distances[index]);\n });\n }\n });\n }\n}\n","import {\n CUSTOM_ELEMENTS_SCHEMA,\n Component,\n ElementRef,\n InjectionToken,\n Input,\n Signal,\n computed,\n effect,\n signal,\n} from '@angular/core';\nimport {\n NgtArgs,\n NgtSignalStore,\n checkUpdate,\n extend,\n injectBeforeRender,\n injectNgtRef,\n requestAnimationInInjectionContext,\n} from 'angular-three';\nimport * as THREE from 'three';\nimport { InstancedBufferAttribute, InstancedMesh } from 'three';\nimport { PositionMesh } from './position-mesh';\n\nextend({ InstancedMesh, InstancedBufferAttribute });\n\nexport interface NgtsInstancesState {\n range: number;\n limit: number;\n frames: number;\n}\n\nexport interface NgtsInstancesApi {\n getParent: () => ElementRef<InstancedMesh>;\n subscribe: (ref: ElementRef<PositionMesh>) => () => void;\n}\n\nexport const NGTS_INSTANCES_API = new InjectionToken<Signal<NgtsInstancesApi>>('NgtsInstances API');\n\n@Component({\n selector: 'ngts-instances',\n standalone: true,\n template: `\n <ngt-instanced-mesh\n *args=\"[undefined, undefined, 0]\"\n ngtCompound\n [ref]=\"instancesRef\"\n [matrixAutoUpdate]=\"false\"\n [raycast]=\"nullRaycast\"\n [userData]=\"{ instances }\"\n >\n <ngt-instanced-buffer-attribute\n attach=\"instanceMatrix\"\n [count]=\"matrices().length / 16\"\n [array]=\"matrices()\"\n [itemSize]=\"16\"\n [usage]=\"DynamicDrawUsage\"\n />\n <ngt-instanced-buffer-attribute\n attach=\"instanceColor\"\n [count]=\"colors().length / 3\"\n [array]=\"colors()\"\n [itemSize]=\"3\"\n [usage]=\"DynamicDrawUsage\"\n />\n\n <ng-content />\n </ngt-instanced-mesh>\n `,\n imports: [NgtArgs],\n providers: [\n { provide: NGTS_INSTANCES_API, useFactory: (instances: NgtsInstances) => instances.api, deps: [NgtsInstances] },\n ],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtsInstances extends NgtSignalStore<NgtsInstancesState> {\n readonly nullRaycast = () => null;\n readonly DynamicDrawUsage = THREE.DynamicDrawUsage;\n\n @Input() instancesRef = injectNgtRef<THREE.InstancedMesh>();\n\n @Input({ required: true }) set range(range: number) {\n this.set({ range });\n }\n\n @Input() set limit(limit: number) {\n this.set({ limit });\n }\n\n @Input() set frames(frames: number) {\n this.set({ frames });\n }\n\n readonly #parentMatrix = new THREE.Matrix4();\n readonly #instanceMatrix = new THREE.Matrix4();\n readonly #tempMatrix = new THREE.Matrix4();\n readonly #translation = new THREE.Vector3();\n readonly #rotation = new THREE.Quaternion();\n readonly #scale = new THREE.Vector3();\n\n readonly #limit = this.select('limit');\n\n readonly matrices = computed(() => {\n const limit = this.#limit();\n const mArray = new Float32Array(limit * 16);\n for (let i = 0; i < limit; i++) this.#tempMatrix.identity().toArray(mArray, i * 16);\n return mArray;\n });\n readonly colors = computed(() => {\n const limit = this.#limit();\n return new Float32Array([...new Array(limit * 3)].map(() => 1));\n });\n\n readonly instances = signal<Array<ElementRef<PositionMesh>>>([]);\n\n readonly api = computed(() => ({\n getParent: () => this.instancesRef,\n subscribe: (ref: ElementRef<PositionMesh>) => {\n this.instances.update((prev) => [...prev, ref]);\n return () =>\n this.instances.update((prev) =>\n prev.filter((instance) => instance.nativeElement !== ref.nativeElement)\n );\n },\n }));\n\n constructor() {\n super({ limit: 1000, frames: Infinity });\n requestAnimationInInjectionContext(() => {\n this.#checkUpdate();\n this.#setBeforeRender();\n });\n }\n\n #checkUpdate() {\n effect(() => {\n const instances = this.instancesRef.nativeElement;\n if (!instances) return;\n checkUpdate(instances.instanceMatrix);\n });\n }\n\n #setBeforeRender() {\n let count = 0;\n let updateRange = 0;\n injectBeforeRender(() => {\n const instances = this.instancesRef.nativeElement;\n if (!instances) return;\n\n const { frames, range, limit } = this.get();\n const meshes = this.instances();\n const colors = this.colors();\n const matrices = this.matrices();\n if (frames === Infinity || count < frames) {\n instances.updateMatrix();\n instances.updateMatrixWorld();\n this.#parentMatrix.copy(instances.matrixWorld).invert();\n\n updateRange = Math.min(limit, range !== undefined ? range : limit, meshes.length);\n instances.count = updateRange;\n instances.instanceMatrix.updateRange.count = updateRange * 16;\n if (instances.instanceColor) {\n instances.instanceColor.updateRange.count = updateRange * 3;\n }\n\n for (let i = 0; i < meshes.length; i++) {\n const instance = meshes[i].nativeElement;\n // Multiply the inverse of the InstancedMesh world matrix or else\n // Instances will be double-transformed if <Instances> isn't at identity\n instance.matrixWorld.decompose(this.#translation, this.#rotation, this.#scale);\n this.#instanceMatrix\n .compose(this.#translation, this.#rotation, this.#scale)\n .premultiply(this.#parentMatrix);\n this.#instanceMatrix.toArray(matrices, i * 16);\n instances.instanceMatrix.needsUpdate = true;\n instance.color.toArray(colors, i * 3);\n if (instances.instanceColor) {\n checkUpdate(instances.instanceColor);\n }\n }\n count++;\n }\n });\n }\n}\n","import { ElementRef } from '@angular/core';\nimport * as THREE from 'three';\n\nconst _instanceLocalMatrix = /*@__PURE__*/ new THREE.Matrix4();\nconst _instanceWorldMatrix = /*@__PURE__*/ new THREE.Matrix4();\nconst _instanceIntersects: THREE.Intersection[] = /*@__PURE__*/ [];\nconst _mesh = /*@__PURE__*/ new THREE.Mesh<THREE.BufferGeometry, THREE.MeshBasicMaterial>();\n\nexport class PositionMesh extends THREE.Group {\n color: THREE.Color;\n instance: ElementRef<THREE.InstancedMesh | undefined>;\n instanceKey: ElementRef<PositionMesh | undefined>;\n\n constructor() {\n super();\n this.color = new THREE.Color('white');\n this.instance = new ElementRef(undefined);\n this.instanceKey = new ElementRef(undefined);\n }\n\n // This will allow the virtual instance have bounds\n get geometry() {\n return this.instance.nativeElement?.geometry;\n }\n\n // And this will allow the virtual instance to receive events\n override raycast(raycaster: THREE.Raycaster, intersects: THREE.Intersection[]) {\n const parent = this.instance.nativeElement;\n if (!parent) return;\n if (!parent.geometry || !parent.material) return;\n _mesh.geometry = parent.geometry;\n const matrixWorld = parent.matrixWorld;\n const instanceId = parent.userData['instances']().indexOf(this.instanceKey);\n // If the instance wasn't found or exceeds the parents draw range, bail out\n if (instanceId === -1 || instanceId > parent.count) return;\n // calculate the world matrix for each instance\n parent.getMatrixAt(instanceId, _instanceLocalMatrix);\n _instanceWorldMatrix.multiplyMatrices(matrixWorld, _instanceLocalMatrix);\n // the mesh represents this single instance\n _mesh.matrixWorld = _instanceWorldMatrix;\n // raycast side according to instance material\n if (parent.material instanceof THREE.Material) _mesh.material.side = parent.material.side;\n else _mesh.material.side = parent.material[0].side;\n _mesh.raycast(raycaster, _instanceIntersects);\n // process the result of raycast\n for (let i = 0, l = _instanceIntersects.length; i < l; i++) {\n const intersect = _instanceIntersects[i];\n intersect.instanceId = instanceId;\n intersect.object = this;\n intersects.push(intersect);\n }\n _instanceIntersects.length = 0;\n }\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, Component, effect, inject } from '@angular/core';\nimport { extend, injectNgtRef, requestAnimationInInjectionContext } from 'angular-three';\nimport { NGTS_INSTANCES_API } from './instances';\nimport { PositionMesh } from './position-mesh';\n\nextend({ PositionMesh });\n\n@Component({\n selector: 'ngts-instance',\n standalone: true,\n template: `\n <ngt-position-mesh\n ngtCompound\n [ref]=\"positionMeshRef\"\n [instanceKey]=\"positionMeshRef\"\n [instance]=\"instancesApi().getParent()\"\n >\n <ng-content />\n </ngt-position-mesh>\n `,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtsInstance {\n protected readonly positionMeshRef = injectNgtRef<PositionMesh>();\n protected readonly instancesApi = inject(NGTS_INSTANCES_API);\n\n constructor() {\n requestAnimationInInjectionContext(() => {\n effect((onCleanup) => {\n onCleanup(this.instancesApi().subscribe(this.positionMeshRef));\n });\n });\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { computed, Directive, effect, ElementRef, inject, Input } from '@angular/core';\nimport { addAfterEffect, addEffect, is, NgtAnyRecord, NgtSignalStore } from 'angular-three';\nimport * as Stats from 'stats.js';\n\nexport interface NgtsStatsState {\n showPanel: number;\n right: boolean;\n parent?: HTMLElement;\n classes?: string;\n}\n\n@Directive({\n selector: 'ngts-stats',\n standalone: true,\n})\nexport class NgtsStats extends NgtSignalStore<NgtsStatsState> {\n @Input() set showPanel(showPanel: number) {\n this.set({ showPanel });\n }\n\n @Input() set parent(parent: HTMLElement | ElementRef<HTMLElement>) {\n this.set({ parent: is.ref(parent) ? parent.nativeElement : parent });\n }\n\n @Input() set classes(classes: string) {\n this.set({ classes });\n }\n\n @Input() set right(right: boolean) {\n this.set({ right });\n }\n\n constructor() {\n super({ showPanel: 0, right: false });\n\n const document = inject(DOCUMENT);\n const stats: Stats = (Stats as NgtAnyRecord)['default']\n ? new (Stats as NgtAnyRecord)['default']()\n : new Stats();\n\n const showPanel = this.select('showPanel');\n const right = this.select('right');\n const parent = this.select('parent');\n const classes = this.select('classes');\n const trigger = computed(() => ({\n showPanel: showPanel(),\n right: right(),\n parent: parent(),\n classes: classes(),\n }));\n\n effect((onCleanup) => {\n const { showPanel, right, parent, classes } = trigger();\n\n const node = parent ?? document.body;\n stats.showPanel(showPanel);\n node.appendChild(stats.dom);\n if (classes) {\n stats.dom.classList.add(...classes.split(' ').filter((cls: string) => cls));\n }\n if (right) {\n stats.dom.style.right = '0px';\n stats.dom.style.left = 'inherit';\n } else {\n stats.dom.style.left = '0px';\n stats.dom.style.right = 'inherit';\n }\n const begin = addEffect(() => stats.begin());\n const end = addAfterEffect(() => stats.end());\n onCleanup(() => {\n node.removeChild(stats.dom);\n begin();\n end();\n });\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- # angular-three-soba/performance
2
-
3
- Secondary entry point of `angular-three-soba`. It can be used by importing from `angular-three-soba/performance`.
@@ -1,8 +0,0 @@
1
- import * as i0 from "@angular/core";
2
- export declare class NgtsAdaptiveDpr {
3
- #private;
4
- set pixelated(pixelated: boolean);
5
- constructor();
6
- static ɵfac: i0.ɵɵFactoryDeclaration<NgtsAdaptiveDpr, never>;
7
- static ɵdir: i0.ɵɵDirectiveDeclaration<NgtsAdaptiveDpr, "ngts-adaptive-dpr", never, { "pixelated": { "alias": "pixelated"; "required": false; }; }, {}, never, never, true, never>;
8
- }
@@ -1,20 +0,0 @@
1
- import { NgtSignalStore, type NgtBeforeRenderEvent, type NgtLOD } from 'angular-three';
2
- import { LOD } from 'three';
3
- import * as i0 from "@angular/core";
4
- export interface NgtsDetailedState {
5
- distances: number[];
6
- }
7
- declare global {
8
- interface HTMLElementTagNameMap {
9
- 'ngts-detailed': NgtsDetailedState & NgtLOD;
10
- }
11
- }
12
- export declare class NgtsDetailed extends NgtSignalStore<NgtsDetailedState> {
13
- #private;
14
- lodRef: import("angular-three").NgtInjectedRef<LOD>;
15
- set distances(distances: number[]);
16
- constructor();
17
- onLODBeforeRender({ object, state }: NgtBeforeRenderEvent<THREE.LOD>): void;
18
- static ɵfac: i0.ɵɵFactoryDeclaration<NgtsDetailed, never>;
19
- static ɵcmp: i0.ɵɵComponentDeclaration<NgtsDetailed, "ngts-detailed", never, { "lodRef": { "alias": "lodRef"; "required": false; }; "distances": { "alias": "distances"; "required": true; }; }, {}, never, ["*"], true, never>;
20
- }
@@ -1,6 +0,0 @@
1
- export * from './adaptive/adaptive-dpr';
2
- export * from './adaptive/adaptive-events';
3
- export * from './detailed/detailed';
4
- export * from './instances/instance';
5
- export * from './instances/instances';
6
- export * from './stats/stats';
@@ -1,9 +0,0 @@
1
- import { PositionMesh } from './position-mesh';
2
- import * as i0 from "@angular/core";
3
- export declare class NgtsInstance {
4
- protected readonly positionMeshRef: import("angular-three").NgtInjectedRef<PositionMesh>;
5
- protected readonly instancesApi: import("@angular/core").Signal<import("./instances").NgtsInstancesApi>;
6
- constructor();
7
- static ɵfac: i0.ɵɵFactoryDeclaration<NgtsInstance, never>;
8
- static ɵcmp: i0.ɵɵComponentDeclaration<NgtsInstance, "ngts-instance", never, {}, {}, never, ["*"], true, never>;
9
- }
@@ -1,35 +0,0 @@
1
- import { ElementRef, InjectionToken, Signal } from '@angular/core';
2
- import { NgtSignalStore } from 'angular-three';
3
- import * as THREE from 'three';
4
- import { InstancedMesh } from 'three';
5
- import { PositionMesh } from './position-mesh';
6
- import * as i0 from "@angular/core";
7
- export interface NgtsInstancesState {
8
- range: number;
9
- limit: number;
10
- frames: number;
11
- }
12
- export interface NgtsInstancesApi {
13
- getParent: () => ElementRef<InstancedMesh>;
14
- subscribe: (ref: ElementRef<PositionMesh>) => () => void;
15
- }
16
- export declare const NGTS_INSTANCES_API: InjectionToken<Signal<NgtsInstancesApi>>;
17
- export declare class NgtsInstances extends NgtSignalStore<NgtsInstancesState> {
18
- #private;
19
- readonly nullRaycast: () => null;
20
- readonly DynamicDrawUsage: 35048;
21
- instancesRef: import("angular-three").NgtInjectedRef<THREE.InstancedMesh<THREE.BufferGeometry, THREE.Material | THREE.Material[]>>;
22
- set range(range: number);
23
- set limit(limit: number);
24
- set frames(frames: number);
25
- readonly matrices: Signal<Float32Array>;
26
- readonly colors: Signal<Float32Array>;
27
- readonly instances: import("@angular/core").WritableSignal<ElementRef<PositionMesh>[]>;
28
- readonly api: Signal<{
29
- getParent: () => import("angular-three").NgtInjectedRef<THREE.InstancedMesh<THREE.BufferGeometry, THREE.Material | THREE.Material[]>>;
30
- subscribe: (ref: ElementRef<PositionMesh>) => () => void;
31
- }>;
32
- constructor();
33
- static ɵfac: i0.ɵɵFactoryDeclaration<NgtsInstances, never>;
34
- static ɵcmp: i0.ɵɵComponentDeclaration<NgtsInstances, "ngts-instances", never, { "instancesRef": { "alias": "instancesRef"; "required": false; }; "range": { "alias": "range"; "required": true; }; "limit": { "alias": "limit"; "required": false; }; "frames": { "alias": "frames"; "required": false; }; }, {}, never, ["*"], true, never>;
35
- }