@3driseai/3drise-viewer 0.1.28 → 0.1.30

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 (804) hide show
  1. package/dist/animationsV2/ClipPlayer.d.ts.map +1 -1
  2. package/dist/animationsV2/ClipPlayer.js +13 -9
  3. package/dist/animationsV2/ClipsRuntime.d.ts +48 -3
  4. package/dist/animationsV2/ClipsRuntime.d.ts.map +1 -1
  5. package/dist/animationsV2/ClipsRuntime.js +239 -57
  6. package/dist/animationsV2/appliers.d.ts.map +1 -1
  7. package/dist/animationsV2/appliers.js +21 -5
  8. package/dist/animationsV2/clipUtils.js +1 -1
  9. package/dist/animationsV2/index.d.ts +1 -1
  10. package/dist/animationsV2/index.d.ts.map +1 -1
  11. package/dist/animationsV2/normalize.d.ts.map +1 -1
  12. package/dist/animationsV2/normalize.js +7 -3
  13. package/dist/animationsV2/sequenceUtils.d.ts +49 -6
  14. package/dist/animationsV2/sequenceUtils.d.ts.map +1 -1
  15. package/dist/animationsV2/sequenceUtils.js +68 -12
  16. package/dist/animationsV2/types.d.ts +28 -12
  17. package/dist/animationsV2/types.d.ts.map +1 -1
  18. package/dist/api/sceneHandle.d.ts +35 -1
  19. package/dist/api/sceneHandle.d.ts.map +1 -1
  20. package/dist/api/sceneHandle.js +88 -17
  21. package/dist/components/AdvancedGrid.d.ts +1 -5
  22. package/dist/components/AdvancedGrid.d.ts.map +1 -1
  23. package/dist/components/AdvancedGrid.js +6 -35
  24. package/dist/components/AnimatedObject.d.ts.map +1 -1
  25. package/dist/components/AnimatedObject.js +9 -4
  26. package/dist/components/ApollonianGrid.d.ts +1 -1
  27. package/dist/components/ApollonianGrid.d.ts.map +1 -1
  28. package/dist/components/ApollonianGrid.js +3 -28
  29. package/dist/components/ChladniGrid.d.ts +1 -1
  30. package/dist/components/ChladniGrid.d.ts.map +1 -1
  31. package/dist/components/ChladniGrid.js +6 -35
  32. package/dist/components/CircuitGrid.d.ts +1 -1
  33. package/dist/components/CircuitGrid.d.ts.map +1 -1
  34. package/dist/components/CircuitGrid.js +6 -34
  35. package/dist/components/ConformalGrid.d.ts +1 -1
  36. package/dist/components/ConformalGrid.d.ts.map +1 -1
  37. package/dist/components/ConformalGrid.js +3 -34
  38. package/dist/components/ContourGrid.d.ts +1 -1
  39. package/dist/components/ContourGrid.d.ts.map +1 -1
  40. package/dist/components/ContourGrid.js +6 -34
  41. package/dist/components/CustomPrimitive.js +1 -1
  42. package/dist/components/EffectsGenerator.d.ts.map +1 -1
  43. package/dist/components/EffectsGenerator.js +43 -38
  44. package/dist/components/EnvironmentObject.d.ts.map +1 -1
  45. package/dist/components/EnvironmentObject.js +9 -7
  46. package/dist/components/FlowNetGrid.d.ts +1 -1
  47. package/dist/components/FlowNetGrid.d.ts.map +1 -1
  48. package/dist/components/FlowNetGrid.js +6 -34
  49. package/dist/components/FractalGrid.d.ts +1 -1
  50. package/dist/components/FractalGrid.d.ts.map +1 -1
  51. package/dist/components/FractalGrid.js +6 -37
  52. package/dist/components/Galaxy.d.ts.map +1 -1
  53. package/dist/components/Galaxy.js +9 -23
  54. package/dist/components/GeometryShape.d.ts.map +1 -1
  55. package/dist/components/GeometryShape.js +22 -2
  56. package/dist/components/GirihGrid.d.ts +1 -1
  57. package/dist/components/GirihGrid.d.ts.map +1 -1
  58. package/dist/components/GirihGrid.js +6 -35
  59. package/dist/components/GravWaveGrid.d.ts +1 -1
  60. package/dist/components/GravWaveGrid.d.ts.map +1 -1
  61. package/dist/components/GravWaveGrid.js +6 -35
  62. package/dist/components/HexGrid.d.ts +1 -5
  63. package/dist/components/HexGrid.d.ts.map +1 -1
  64. package/dist/components/HexGrid.js +6 -36
  65. package/dist/components/HilbertGrid.d.ts +1 -1
  66. package/dist/components/HilbertGrid.d.ts.map +1 -1
  67. package/dist/components/HilbertGrid.js +3 -30
  68. package/dist/components/HyperbolicGrid.d.ts +1 -1
  69. package/dist/components/HyperbolicGrid.d.ts.map +1 -1
  70. package/dist/components/HyperbolicGrid.js +6 -34
  71. package/dist/components/LandObject.d.ts +9 -0
  72. package/dist/components/LandObject.d.ts.map +1 -0
  73. package/dist/components/LandObject.js +15 -0
  74. package/dist/components/LensingGrid.d.ts +1 -1
  75. package/dist/components/LensingGrid.d.ts.map +1 -1
  76. package/dist/components/LensingGrid.js +3 -29
  77. package/dist/components/LightsManager.d.ts.map +1 -1
  78. package/dist/components/LightsManager.js +8 -0
  79. package/dist/components/ModelBoundary.d.ts +2 -0
  80. package/dist/components/ModelBoundary.d.ts.map +1 -1
  81. package/dist/components/ModelBoundary.js +3 -0
  82. package/dist/components/ModelPrimitive.d.ts.map +1 -1
  83. package/dist/components/ModelPrimitive.js +6 -0
  84. package/dist/components/MoireGrid.d.ts +1 -1
  85. package/dist/components/MoireGrid.d.ts.map +1 -1
  86. package/dist/components/MoireGrid.js +6 -35
  87. package/dist/components/MoonDisc.d.ts +11 -0
  88. package/dist/components/MoonDisc.d.ts.map +1 -0
  89. package/dist/components/MoonDisc.js +128 -0
  90. package/dist/components/ObjectNode.d.ts.map +1 -1
  91. package/dist/components/ObjectNode.js +10 -10
  92. package/dist/components/ObjectsRenderer.d.ts.map +1 -1
  93. package/dist/components/ObjectsRenderer.js +7 -5
  94. package/dist/components/OceanBuilder.d.ts.map +1 -1
  95. package/dist/components/OceanBuilder.js +2 -0
  96. package/dist/components/ParastichyGrid.d.ts +1 -1
  97. package/dist/components/ParastichyGrid.d.ts.map +1 -1
  98. package/dist/components/ParastichyGrid.js +3 -30
  99. package/dist/components/ParticlesGenerator.d.ts.map +1 -1
  100. package/dist/components/ParticlesGenerator.js +44 -24
  101. package/dist/components/PhyllotaxisGrid.d.ts +1 -1
  102. package/dist/components/PhyllotaxisGrid.d.ts.map +1 -1
  103. package/dist/components/PhyllotaxisGrid.js +3 -32
  104. package/dist/components/PickVolume.d.ts +17 -0
  105. package/dist/components/PickVolume.d.ts.map +1 -0
  106. package/dist/components/PickVolume.js +20 -0
  107. package/dist/components/ProjectLoader.d.ts +5 -3
  108. package/dist/components/ProjectLoader.d.ts.map +1 -1
  109. package/dist/components/ProjectLoader.js +6 -3
  110. package/dist/components/QuasiGrid.d.ts +1 -1
  111. package/dist/components/QuasiGrid.d.ts.map +1 -1
  112. package/dist/components/QuasiGrid.js +6 -33
  113. package/dist/components/RadarGrid.d.ts +1 -1
  114. package/dist/components/RadarGrid.d.ts.map +1 -1
  115. package/dist/components/RadarGrid.js +6 -34
  116. package/dist/components/ReactionDiffusionGrid.d.ts +1 -1
  117. package/dist/components/ReactionDiffusionGrid.d.ts.map +1 -1
  118. package/dist/components/ReactionDiffusionGrid.js +6 -35
  119. package/dist/components/SceneBuilder.d.ts +25 -3
  120. package/dist/components/SceneBuilder.d.ts.map +1 -1
  121. package/dist/components/SceneBuilder.js +68 -38
  122. package/dist/components/SkyController.d.ts +25 -1
  123. package/dist/components/SkyController.d.ts.map +1 -1
  124. package/dist/components/SkyController.js +189 -130
  125. package/dist/components/SkyMesh.d.ts.map +1 -1
  126. package/dist/components/SkyMesh.js +26 -1
  127. package/dist/components/SkyStars.d.ts +11 -0
  128. package/dist/components/SkyStars.d.ts.map +1 -0
  129. package/dist/components/SkyStars.js +268 -0
  130. package/dist/components/SkySystem.d.ts +3 -3
  131. package/dist/components/SkySystem.d.ts.map +1 -1
  132. package/dist/components/SkySystem.js +8 -2
  133. package/dist/components/Sun.d.ts +15 -1
  134. package/dist/components/Sun.d.ts.map +1 -1
  135. package/dist/components/Sun.js +64 -3
  136. package/dist/components/SunLight.d.ts +6 -1
  137. package/dist/components/SunLight.d.ts.map +1 -1
  138. package/dist/components/SunLight.js +96 -44
  139. package/dist/components/TerrainBuilder.d.ts.map +1 -1
  140. package/dist/components/TerrainBuilder.js +2 -0
  141. package/dist/components/TextGenerator.d.ts +9 -0
  142. package/dist/components/TextGenerator.d.ts.map +1 -0
  143. package/dist/components/TextGenerator.js +30 -0
  144. package/dist/components/TruchetGrid.d.ts +1 -1
  145. package/dist/components/TruchetGrid.d.ts.map +1 -1
  146. package/dist/components/TruchetGrid.js +3 -30
  147. package/dist/components/VoronoiGrid.d.ts +1 -1
  148. package/dist/components/VoronoiGrid.d.ts.map +1 -1
  149. package/dist/components/VoronoiGrid.js +6 -33
  150. package/dist/components/WallpaperGrid.d.ts +1 -1
  151. package/dist/components/WallpaperGrid.d.ts.map +1 -1
  152. package/dist/components/WallpaperGrid.js +6 -35
  153. package/dist/components/environment/Rain.d.ts +15 -0
  154. package/dist/components/environment/Rain.d.ts.map +1 -0
  155. package/dist/components/environment/Rain.js +110 -0
  156. package/dist/components/environment/Rainbow.d.ts +20 -0
  157. package/dist/components/environment/Rainbow.d.ts.map +1 -0
  158. package/dist/components/environment/Rainbow.js +974 -0
  159. package/dist/components/environment/Sandstorm.d.ts +20 -0
  160. package/dist/components/environment/Sandstorm.d.ts.map +1 -0
  161. package/dist/components/environment/Sandstorm.js +776 -0
  162. package/dist/components/environment/Snow.d.ts +20 -0
  163. package/dist/components/environment/Snow.d.ts.map +1 -0
  164. package/dist/components/environment/Snow.js +609 -0
  165. package/dist/components/environment/Thunderstorm.d.ts +20 -0
  166. package/dist/components/environment/Thunderstorm.d.ts.map +1 -0
  167. package/dist/components/environment/Thunderstorm.js +731 -0
  168. package/dist/components/environment/Tornado.d.ts +20 -0
  169. package/dist/components/environment/Tornado.d.ts.map +1 -0
  170. package/dist/components/environment/Tornado.js +762 -0
  171. package/dist/components/environment/index.d.ts +13 -0
  172. package/dist/components/environment/index.d.ts.map +1 -0
  173. package/dist/components/environment/index.js +7 -0
  174. package/dist/components/index.d.ts +11 -18
  175. package/dist/components/index.d.ts.map +1 -1
  176. package/dist/components/index.js +9 -10
  177. package/dist/components/land/LandPatch.d.ts +15 -0
  178. package/dist/components/land/LandPatch.d.ts.map +1 -0
  179. package/dist/components/land/LandPatch.js +170 -0
  180. package/dist/components/land/index.d.ts +3 -0
  181. package/dist/components/land/index.d.ts.map +1 -0
  182. package/dist/components/land/index.js +1 -0
  183. package/dist/components/particles/BioluminescentWakeParticles.d.ts +5 -0
  184. package/dist/components/particles/BioluminescentWakeParticles.d.ts.map +1 -1
  185. package/dist/components/particles/BioluminescentWakeParticles.js +2 -1
  186. package/dist/components/particles/BrownianDustParticles.d.ts +5 -0
  187. package/dist/components/particles/BrownianDustParticles.d.ts.map +1 -1
  188. package/dist/components/particles/BrownianDustParticles.js +2 -0
  189. package/dist/components/particles/ChladniSandParticles.d.ts +5 -0
  190. package/dist/components/particles/ChladniSandParticles.d.ts.map +1 -1
  191. package/dist/components/particles/ChladniSandParticles.js +2 -1
  192. package/dist/components/particles/ElectronOrbitalsParticles.d.ts +5 -0
  193. package/dist/components/particles/ElectronOrbitalsParticles.d.ts.map +1 -1
  194. package/dist/components/particles/ElectronOrbitalsParticles.js +2 -1
  195. package/dist/components/particles/FaradayPowderParticles.d.ts +5 -0
  196. package/dist/components/particles/FaradayPowderParticles.d.ts.map +1 -1
  197. package/dist/components/particles/FaradayPowderParticles.js +2 -1
  198. package/dist/components/particles/GrinderSparksParticles.d.ts +5 -0
  199. package/dist/components/particles/GrinderSparksParticles.d.ts.map +1 -1
  200. package/dist/components/particles/GrinderSparksParticles.js +2 -1
  201. package/dist/components/particles/MagneticBottleParticles.d.ts +5 -0
  202. package/dist/components/particles/MagneticBottleParticles.d.ts.map +1 -1
  203. package/dist/components/particles/MagneticBottleParticles.js +2 -1
  204. package/dist/components/particles/NeonRainParticles.d.ts +5 -0
  205. package/dist/components/particles/NeonRainParticles.d.ts.map +1 -1
  206. package/dist/components/particles/NeonRainParticles.js +2 -1
  207. package/dist/components/particles/ShapeBurstParticles.d.ts +5 -0
  208. package/dist/components/particles/ShapeBurstParticles.d.ts.map +1 -1
  209. package/dist/components/particles/ShapeBurstParticles.js +2 -1
  210. package/dist/components/particles/ShapeFlowParticles.d.ts +5 -0
  211. package/dist/components/particles/ShapeFlowParticles.d.ts.map +1 -1
  212. package/dist/components/particles/ShapeFlowParticles.js +2 -1
  213. package/dist/components/particles/TidalStreamParticles.d.ts +5 -0
  214. package/dist/components/particles/TidalStreamParticles.d.ts.map +1 -1
  215. package/dist/components/particles/TidalStreamParticles.js +2 -0
  216. package/dist/components/space/Earth.d.ts +16 -0
  217. package/dist/components/space/Earth.d.ts.map +1 -0
  218. package/dist/components/space/Earth.js +75 -0
  219. package/dist/components/space/ShootingStar.d.ts +21 -0
  220. package/dist/components/space/ShootingStar.d.ts.map +1 -0
  221. package/dist/components/space/ShootingStar.js +101 -0
  222. package/dist/components/space/ShootingStars.d.ts +16 -0
  223. package/dist/components/space/ShootingStars.d.ts.map +1 -0
  224. package/dist/components/space/ShootingStars.js +71 -0
  225. package/dist/components/space/SolarSystem.d.ts +16 -0
  226. package/dist/components/space/SolarSystem.d.ts.map +1 -0
  227. package/dist/components/space/SolarSystem.js +141 -0
  228. package/dist/components/space/Stars.d.ts +20 -0
  229. package/dist/components/space/Stars.d.ts.map +1 -0
  230. package/dist/components/space/Stars.js +160 -0
  231. package/dist/components/space/index.d.ts +11 -0
  232. package/dist/components/space/index.d.ts.map +1 -0
  233. package/dist/components/space/index.js +8 -0
  234. package/dist/components/terrain/TerrainSurface.d.ts.map +1 -1
  235. package/dist/components/terrain/TerrainSurface.js +27 -3
  236. package/dist/components/terrain/types.d.ts +5 -1
  237. package/dist/components/terrain/types.d.ts.map +1 -1
  238. package/dist/components/text/BurnAwayText.d.ts +15 -0
  239. package/dist/components/text/BurnAwayText.d.ts.map +1 -0
  240. package/dist/components/text/BurnAwayText.js +4 -0
  241. package/dist/components/text/ChalkboardText.d.ts +15 -0
  242. package/dist/components/text/ChalkboardText.d.ts.map +1 -0
  243. package/dist/components/text/ChalkboardText.js +4 -0
  244. package/dist/components/text/ConstellationText.d.ts +15 -0
  245. package/dist/components/text/ConstellationText.d.ts.map +1 -0
  246. package/dist/components/text/ConstellationText.js +4 -0
  247. package/dist/components/text/EmbroideryText.d.ts +15 -0
  248. package/dist/components/text/EmbroideryText.d.ts.map +1 -0
  249. package/dist/components/text/EmbroideryText.js +4 -0
  250. package/dist/components/text/FourierSketchText.d.ts +15 -0
  251. package/dist/components/text/FourierSketchText.d.ts.map +1 -0
  252. package/dist/components/text/FourierSketchText.js +4 -0
  253. package/dist/components/text/FrostGrowthText.d.ts +15 -0
  254. package/dist/components/text/FrostGrowthText.d.ts.map +1 -0
  255. package/dist/components/text/FrostGrowthText.js +4 -0
  256. package/dist/components/text/HandwritingText.d.ts +15 -0
  257. package/dist/components/text/HandwritingText.d.ts.map +1 -0
  258. package/dist/components/text/HandwritingText.js +4 -0
  259. package/dist/components/text/InkBleedText.d.ts +15 -0
  260. package/dist/components/text/InkBleedText.d.ts.map +1 -0
  261. package/dist/components/text/InkBleedText.js +4 -0
  262. package/dist/components/text/LightPaintingText.d.ts +15 -0
  263. package/dist/components/text/LightPaintingText.d.ts.map +1 -0
  264. package/dist/components/text/LightPaintingText.js +4 -0
  265. package/dist/components/text/LiquidMetalText.d.ts +15 -0
  266. package/dist/components/text/LiquidMetalText.d.ts.map +1 -0
  267. package/dist/components/text/LiquidMetalText.js +4 -0
  268. package/dist/components/text/NeonTubeText.d.ts +15 -0
  269. package/dist/components/text/NeonTubeText.d.ts.map +1 -0
  270. package/dist/components/text/NeonTubeText.js +4 -0
  271. package/dist/components/text/PlainText.d.ts +15 -0
  272. package/dist/components/text/PlainText.d.ts.map +1 -0
  273. package/dist/components/text/PlainText.js +4 -0
  274. package/dist/components/text/PlasmaDischargeText.d.ts +15 -0
  275. package/dist/components/text/PlasmaDischargeText.d.ts.map +1 -0
  276. package/dist/components/text/PlasmaDischargeText.js +4 -0
  277. package/dist/components/text/TextObjectView.d.ts +14 -0
  278. package/dist/components/text/TextObjectView.d.ts.map +1 -0
  279. package/dist/components/text/TextObjectView.js +17 -0
  280. package/dist/components/text/engine/fieldkit.d.ts +24 -0
  281. package/dist/components/text/engine/fieldkit.d.ts.map +1 -0
  282. package/dist/components/text/engine/fieldkit.js +201 -0
  283. package/dist/components/text/engine/glyphs.d.ts +19 -0
  284. package/dist/components/text/engine/glyphs.d.ts.map +1 -0
  285. package/dist/components/text/engine/glyphs.js +269 -0
  286. package/dist/components/text/engine/looks/burnAway.d.ts +144 -0
  287. package/dist/components/text/engine/looks/burnAway.d.ts.map +1 -0
  288. package/dist/components/text/engine/looks/burnAway.js +593 -0
  289. package/dist/components/text/engine/looks/chalkboard.d.ts +135 -0
  290. package/dist/components/text/engine/looks/chalkboard.d.ts.map +1 -0
  291. package/dist/components/text/engine/looks/chalkboard.js +426 -0
  292. package/dist/components/text/engine/looks/constellation.d.ts +111 -0
  293. package/dist/components/text/engine/looks/constellation.d.ts.map +1 -0
  294. package/dist/components/text/engine/looks/constellation.js +496 -0
  295. package/dist/components/text/engine/looks/embroidery.d.ts +165 -0
  296. package/dist/components/text/engine/looks/embroidery.d.ts.map +1 -0
  297. package/dist/components/text/engine/looks/embroidery.js +645 -0
  298. package/dist/components/text/engine/looks/frostGrowth.d.ts +109 -0
  299. package/dist/components/text/engine/looks/frostGrowth.d.ts.map +1 -0
  300. package/dist/components/text/engine/looks/frostGrowth.js +727 -0
  301. package/dist/components/text/engine/looks/index.d.ts +2 -0
  302. package/dist/components/text/engine/looks/index.d.ts.map +1 -0
  303. package/dist/components/text/engine/looks/index.js +49 -0
  304. package/dist/components/text/engine/looks/inkBleed.d.ts +103 -0
  305. package/dist/components/text/engine/looks/inkBleed.d.ts.map +1 -0
  306. package/dist/components/text/engine/looks/inkBleed.js +590 -0
  307. package/dist/components/text/engine/looks/lightPainting.d.ts +132 -0
  308. package/dist/components/text/engine/looks/lightPainting.d.ts.map +1 -0
  309. package/dist/components/text/engine/looks/lightPainting.js +567 -0
  310. package/dist/components/text/engine/looks/liquidMetal.d.ts +135 -0
  311. package/dist/components/text/engine/looks/liquidMetal.d.ts.map +1 -0
  312. package/dist/components/text/engine/looks/liquidMetal.js +655 -0
  313. package/dist/components/text/engine/looks/plain.d.ts +146 -0
  314. package/dist/components/text/engine/looks/plain.d.ts.map +1 -0
  315. package/dist/components/text/engine/looks/plain.js +104 -0
  316. package/dist/components/text/engine/looks/plasmaDischarge.d.ts +126 -0
  317. package/dist/components/text/engine/looks/plasmaDischarge.d.ts.map +1 -0
  318. package/dist/components/text/engine/looks/plasmaDischarge.js +763 -0
  319. package/dist/components/text/engine/methods.d.ts +19 -0
  320. package/dist/components/text/engine/methods.d.ts.map +1 -0
  321. package/dist/components/text/engine/methods.js +126 -0
  322. package/dist/components/text/engine/playback.d.ts +40 -0
  323. package/dist/components/text/engine/playback.d.ts.map +1 -0
  324. package/dist/components/text/engine/playback.js +114 -0
  325. package/dist/components/text/engine/ribbon.d.ts +58 -0
  326. package/dist/components/text/engine/ribbon.d.ts.map +1 -0
  327. package/dist/components/text/engine/ribbon.js +250 -0
  328. package/dist/components/text/engine/variants.d.ts +159 -0
  329. package/dist/components/text/engine/variants.d.ts.map +1 -0
  330. package/dist/components/text/engine/variants.js +378 -0
  331. package/dist/components/text/fonts/architects-daughter.outline.d.ts +3 -0
  332. package/dist/components/text/fonts/architects-daughter.outline.d.ts.map +1 -0
  333. package/dist/components/text/fonts/architects-daughter.outline.js +4 -0
  334. package/dist/components/text/fonts/architects-daughter.strokes.d.ts +3 -0
  335. package/dist/components/text/fonts/architects-daughter.strokes.d.ts.map +1 -0
  336. package/dist/components/text/fonts/architects-daughter.strokes.js +4 -0
  337. package/dist/components/text/fonts/bebas-neue.outline.d.ts +3 -0
  338. package/dist/components/text/fonts/bebas-neue.outline.d.ts.map +1 -0
  339. package/dist/components/text/fonts/bebas-neue.outline.js +4 -0
  340. package/dist/components/text/fonts/bebas-neue.strokes.d.ts +3 -0
  341. package/dist/components/text/fonts/bebas-neue.strokes.d.ts.map +1 -0
  342. package/dist/components/text/fonts/bebas-neue.strokes.js +4 -0
  343. package/dist/components/text/fonts/caveat.outline.d.ts +3 -0
  344. package/dist/components/text/fonts/caveat.outline.d.ts.map +1 -0
  345. package/dist/components/text/fonts/caveat.outline.js +4 -0
  346. package/dist/components/text/fonts/caveat.strokes.d.ts +3 -0
  347. package/dist/components/text/fonts/caveat.strokes.d.ts.map +1 -0
  348. package/dist/components/text/fonts/caveat.strokes.js +4 -0
  349. package/dist/components/text/fonts/courgette.outline.d.ts +3 -0
  350. package/dist/components/text/fonts/courgette.outline.d.ts.map +1 -0
  351. package/dist/components/text/fonts/courgette.outline.js +4 -0
  352. package/dist/components/text/fonts/courgette.strokes.d.ts +3 -0
  353. package/dist/components/text/fonts/courgette.strokes.d.ts.map +1 -0
  354. package/dist/components/text/fonts/courgette.strokes.js +4 -0
  355. package/dist/components/text/fonts/dancing-script.outline.d.ts +3 -0
  356. package/dist/components/text/fonts/dancing-script.outline.d.ts.map +1 -0
  357. package/dist/components/text/fonts/dancing-script.outline.js +4 -0
  358. package/dist/components/text/fonts/dancing-script.strokes.d.ts +3 -0
  359. package/dist/components/text/fonts/dancing-script.strokes.d.ts.map +1 -0
  360. package/dist/components/text/fonts/dancing-script.strokes.js +4 -0
  361. package/dist/components/text/fonts/gochi-hand.outline.d.ts +3 -0
  362. package/dist/components/text/fonts/gochi-hand.outline.d.ts.map +1 -0
  363. package/dist/components/text/fonts/gochi-hand.outline.js +4 -0
  364. package/dist/components/text/fonts/gochi-hand.strokes.d.ts +3 -0
  365. package/dist/components/text/fonts/gochi-hand.strokes.d.ts.map +1 -0
  366. package/dist/components/text/fonts/gochi-hand.strokes.js +4 -0
  367. package/dist/components/text/fonts/handlee.outline.d.ts +3 -0
  368. package/dist/components/text/fonts/handlee.outline.d.ts.map +1 -0
  369. package/dist/components/text/fonts/handlee.outline.js +4 -0
  370. package/dist/components/text/fonts/handlee.strokes.d.ts +3 -0
  371. package/dist/components/text/fonts/handlee.strokes.d.ts.map +1 -0
  372. package/dist/components/text/fonts/handlee.strokes.js +4 -0
  373. package/dist/components/text/fonts/index.d.ts +5 -0
  374. package/dist/components/text/fonts/index.d.ts.map +1 -0
  375. package/dist/components/text/fonts/index.js +58 -0
  376. package/dist/components/text/fonts/indie-flower.outline.d.ts +3 -0
  377. package/dist/components/text/fonts/indie-flower.outline.d.ts.map +1 -0
  378. package/dist/components/text/fonts/indie-flower.outline.js +4 -0
  379. package/dist/components/text/fonts/indie-flower.strokes.d.ts +3 -0
  380. package/dist/components/text/fonts/indie-flower.strokes.d.ts.map +1 -0
  381. package/dist/components/text/fonts/indie-flower.strokes.js +4 -0
  382. package/dist/components/text/fonts/inter.outline.d.ts +3 -0
  383. package/dist/components/text/fonts/inter.outline.d.ts.map +1 -0
  384. package/dist/components/text/fonts/inter.outline.js +4 -0
  385. package/dist/components/text/fonts/inter.strokes.d.ts +3 -0
  386. package/dist/components/text/fonts/inter.strokes.d.ts.map +1 -0
  387. package/dist/components/text/fonts/inter.strokes.js +4 -0
  388. package/dist/components/text/fonts/kalam.outline.d.ts +3 -0
  389. package/dist/components/text/fonts/kalam.outline.d.ts.map +1 -0
  390. package/dist/components/text/fonts/kalam.outline.js +4 -0
  391. package/dist/components/text/fonts/kalam.strokes.d.ts +3 -0
  392. package/dist/components/text/fonts/kalam.strokes.d.ts.map +1 -0
  393. package/dist/components/text/fonts/kalam.strokes.js +4 -0
  394. package/dist/components/text/fonts/kaushan-script.outline.d.ts +3 -0
  395. package/dist/components/text/fonts/kaushan-script.outline.d.ts.map +1 -0
  396. package/dist/components/text/fonts/kaushan-script.outline.js +4 -0
  397. package/dist/components/text/fonts/kaushan-script.strokes.d.ts +3 -0
  398. package/dist/components/text/fonts/kaushan-script.strokes.d.ts.map +1 -0
  399. package/dist/components/text/fonts/kaushan-script.strokes.js +4 -0
  400. package/dist/components/text/fonts/lora.outline.d.ts +3 -0
  401. package/dist/components/text/fonts/lora.outline.d.ts.map +1 -0
  402. package/dist/components/text/fonts/lora.outline.js +4 -0
  403. package/dist/components/text/fonts/lora.strokes.d.ts +3 -0
  404. package/dist/components/text/fonts/lora.strokes.d.ts.map +1 -0
  405. package/dist/components/text/fonts/lora.strokes.js +4 -0
  406. package/dist/components/text/fonts/montserrat.outline.d.ts +3 -0
  407. package/dist/components/text/fonts/montserrat.outline.d.ts.map +1 -0
  408. package/dist/components/text/fonts/montserrat.outline.js +4 -0
  409. package/dist/components/text/fonts/montserrat.strokes.d.ts +3 -0
  410. package/dist/components/text/fonts/montserrat.strokes.d.ts.map +1 -0
  411. package/dist/components/text/fonts/montserrat.strokes.js +4 -0
  412. package/dist/components/text/fonts/mynerve.outline.d.ts +3 -0
  413. package/dist/components/text/fonts/mynerve.outline.d.ts.map +1 -0
  414. package/dist/components/text/fonts/mynerve.outline.js +4 -0
  415. package/dist/components/text/fonts/mynerve.strokes.d.ts +3 -0
  416. package/dist/components/text/fonts/mynerve.strokes.d.ts.map +1 -0
  417. package/dist/components/text/fonts/mynerve.strokes.js +4 -0
  418. package/dist/components/text/fonts/nanum-pen-script.outline.d.ts +3 -0
  419. package/dist/components/text/fonts/nanum-pen-script.outline.d.ts.map +1 -0
  420. package/dist/components/text/fonts/nanum-pen-script.outline.js +4 -0
  421. package/dist/components/text/fonts/nanum-pen-script.strokes.d.ts +3 -0
  422. package/dist/components/text/fonts/nanum-pen-script.strokes.d.ts.map +1 -0
  423. package/dist/components/text/fonts/nanum-pen-script.strokes.js +4 -0
  424. package/dist/components/text/fonts/oswald.outline.d.ts +3 -0
  425. package/dist/components/text/fonts/oswald.outline.d.ts.map +1 -0
  426. package/dist/components/text/fonts/oswald.outline.js +4 -0
  427. package/dist/components/text/fonts/oswald.strokes.d.ts +3 -0
  428. package/dist/components/text/fonts/oswald.strokes.d.ts.map +1 -0
  429. package/dist/components/text/fonts/oswald.strokes.js +4 -0
  430. package/dist/components/text/fonts/pacifico.outline.d.ts +3 -0
  431. package/dist/components/text/fonts/pacifico.outline.d.ts.map +1 -0
  432. package/dist/components/text/fonts/pacifico.outline.js +4 -0
  433. package/dist/components/text/fonts/pacifico.strokes.d.ts +3 -0
  434. package/dist/components/text/fonts/pacifico.strokes.d.ts.map +1 -0
  435. package/dist/components/text/fonts/pacifico.strokes.js +4 -0
  436. package/dist/components/text/fonts/patrick-hand.outline.d.ts +3 -0
  437. package/dist/components/text/fonts/patrick-hand.outline.d.ts.map +1 -0
  438. package/dist/components/text/fonts/patrick-hand.outline.js +4 -0
  439. package/dist/components/text/fonts/patrick-hand.strokes.d.ts +3 -0
  440. package/dist/components/text/fonts/patrick-hand.strokes.d.ts.map +1 -0
  441. package/dist/components/text/fonts/patrick-hand.strokes.js +4 -0
  442. package/dist/components/text/fonts/playfair-display.outline.d.ts +3 -0
  443. package/dist/components/text/fonts/playfair-display.outline.d.ts.map +1 -0
  444. package/dist/components/text/fonts/playfair-display.outline.js +4 -0
  445. package/dist/components/text/fonts/playfair-display.strokes.d.ts +3 -0
  446. package/dist/components/text/fonts/playfair-display.strokes.d.ts.map +1 -0
  447. package/dist/components/text/fonts/playfair-display.strokes.js +4 -0
  448. package/dist/components/text/fonts/poppins.outline.d.ts +3 -0
  449. package/dist/components/text/fonts/poppins.outline.d.ts.map +1 -0
  450. package/dist/components/text/fonts/poppins.outline.js +4 -0
  451. package/dist/components/text/fonts/poppins.strokes.d.ts +3 -0
  452. package/dist/components/text/fonts/poppins.strokes.d.ts.map +1 -0
  453. package/dist/components/text/fonts/poppins.strokes.js +4 -0
  454. package/dist/components/text/fonts/roboto.outline.d.ts +3 -0
  455. package/dist/components/text/fonts/roboto.outline.d.ts.map +1 -0
  456. package/dist/components/text/fonts/roboto.outline.js +4 -0
  457. package/dist/components/text/fonts/roboto.strokes.d.ts +3 -0
  458. package/dist/components/text/fonts/roboto.strokes.d.ts.map +1 -0
  459. package/dist/components/text/fonts/roboto.strokes.js +4 -0
  460. package/dist/components/text/fonts/satisfy.outline.d.ts +3 -0
  461. package/dist/components/text/fonts/satisfy.outline.d.ts.map +1 -0
  462. package/dist/components/text/fonts/satisfy.outline.js +4 -0
  463. package/dist/components/text/fonts/satisfy.strokes.d.ts +3 -0
  464. package/dist/components/text/fonts/satisfy.strokes.d.ts.map +1 -0
  465. package/dist/components/text/fonts/satisfy.strokes.js +4 -0
  466. package/dist/components/text/fonts/sriracha.outline.d.ts +3 -0
  467. package/dist/components/text/fonts/sriracha.outline.d.ts.map +1 -0
  468. package/dist/components/text/fonts/sriracha.outline.js +4 -0
  469. package/dist/components/text/fonts/sriracha.strokes.d.ts +3 -0
  470. package/dist/components/text/fonts/sriracha.strokes.d.ts.map +1 -0
  471. package/dist/components/text/fonts/sriracha.strokes.js +4 -0
  472. package/dist/components/text/index.d.ts +29 -0
  473. package/dist/components/text/index.d.ts.map +1 -0
  474. package/dist/components/text/index.js +14 -0
  475. package/dist/components/text/useTextObject.d.ts +22 -0
  476. package/dist/components/text/useTextObject.d.ts.map +1 -0
  477. package/dist/components/text/useTextObject.js +130 -0
  478. package/dist/components/water/OceanSurface.d.ts.map +1 -1
  479. package/dist/components/water/OceanSurface.js +3 -1
  480. package/dist/components/water/WaterBody.d.ts.map +1 -1
  481. package/dist/components/water/WaterBody.js +3 -1
  482. package/dist/components/water/types.d.ts +5 -1
  483. package/dist/components/water/types.d.ts.map +1 -1
  484. package/dist/constants.d.ts.map +1 -1
  485. package/dist/constants.js +6 -0
  486. package/dist/hooks/index.d.ts +2 -0
  487. package/dist/hooks/index.d.ts.map +1 -1
  488. package/dist/hooks/index.js +1 -0
  489. package/dist/hooks/useCloudSun.d.ts +9 -4
  490. package/dist/hooks/useCloudSun.d.ts.map +1 -1
  491. package/dist/hooks/useCloudSun.js +17 -7
  492. package/dist/hooks/useConfigLive.d.ts +3 -2
  493. package/dist/hooks/useConfigLive.d.ts.map +1 -1
  494. package/dist/hooks/useContinuousEffects.d.ts.map +1 -1
  495. package/dist/hooks/useContinuousEffects.js +4 -10
  496. package/dist/hooks/useEnvironmentProbe.d.ts +3 -22
  497. package/dist/hooks/useEnvironmentProbe.d.ts.map +1 -1
  498. package/dist/hooks/useEnvironmentProbe.js +47 -8
  499. package/dist/hooks/useGridSurface.d.ts +3 -10
  500. package/dist/hooks/useGridSurface.d.ts.map +1 -1
  501. package/dist/hooks/useGridSurface.js +5 -31
  502. package/dist/hooks/useInteraction.d.ts.map +1 -1
  503. package/dist/hooks/useInteraction.js +19 -72
  504. package/dist/hooks/useLightConfig.d.ts +2 -1
  505. package/dist/hooks/useLightConfig.d.ts.map +1 -1
  506. package/dist/hooks/useOceanMaterial.d.ts +6 -2
  507. package/dist/hooks/useOceanMaterial.d.ts.map +1 -1
  508. package/dist/hooks/useOceanMaterial.js +37 -2
  509. package/dist/hooks/useSkyLive.d.ts +23 -0
  510. package/dist/hooks/useSkyLive.d.ts.map +1 -0
  511. package/dist/hooks/useSkyLive.js +30 -0
  512. package/dist/hooks/useSkyUniforms.d.ts.map +1 -1
  513. package/dist/hooks/useSkyUniforms.js +2 -10
  514. package/dist/hooks/useTerrainLive.d.ts +3 -1
  515. package/dist/hooks/useTerrainLive.d.ts.map +1 -1
  516. package/dist/hooks/useTerrainTextures.d.ts +38 -0
  517. package/dist/hooks/useTerrainTextures.d.ts.map +1 -0
  518. package/dist/hooks/useTerrainTextures.js +149 -0
  519. package/dist/index.d.ts +12 -3
  520. package/dist/index.d.ts.map +1 -1
  521. package/dist/index.js +9 -2
  522. package/dist/operations/catalogue/blastOff.d.ts +3 -0
  523. package/dist/operations/catalogue/blastOff.d.ts.map +1 -0
  524. package/dist/operations/catalogue/blastOff.js +118 -0
  525. package/dist/operations/catalogue/bounce.d.ts +3 -0
  526. package/dist/operations/catalogue/bounce.d.ts.map +1 -0
  527. package/dist/operations/catalogue/bounce.js +34 -0
  528. package/dist/operations/catalogue/curlSmoke.d.ts.map +1 -1
  529. package/dist/operations/catalogue/curlSmoke.js +3 -1
  530. package/dist/operations/catalogue/dissolve.d.ts.map +1 -1
  531. package/dist/operations/catalogue/dissolve.js +2 -1
  532. package/dist/operations/catalogue/driftUp.d.ts +3 -0
  533. package/dist/operations/catalogue/driftUp.d.ts.map +1 -0
  534. package/dist/operations/catalogue/driftUp.js +57 -0
  535. package/dist/operations/catalogue/emberAsh.d.ts.map +1 -1
  536. package/dist/operations/catalogue/emberAsh.js +2 -1
  537. package/dist/operations/catalogue/flip.d.ts.map +1 -1
  538. package/dist/operations/catalogue/flip.js +19 -9
  539. package/dist/operations/catalogue/float.d.ts +3 -0
  540. package/dist/operations/catalogue/float.d.ts.map +1 -0
  541. package/dist/operations/catalogue/float.js +39 -0
  542. package/dist/operations/catalogue/flock.d.ts.map +1 -1
  543. package/dist/operations/catalogue/flock.js +44 -9
  544. package/dist/operations/catalogue/flyBy.d.ts +3 -0
  545. package/dist/operations/catalogue/flyBy.d.ts.map +1 -0
  546. package/dist/operations/catalogue/flyBy.js +79 -0
  547. package/dist/operations/catalogue/frost.d.ts.map +1 -1
  548. package/dist/operations/catalogue/frost.js +10 -3
  549. package/dist/operations/catalogue/grow.d.ts +3 -0
  550. package/dist/operations/catalogue/grow.d.ts.map +1 -0
  551. package/dist/operations/catalogue/grow.js +19 -0
  552. package/dist/operations/catalogue/hologram.d.ts.map +1 -1
  553. package/dist/operations/catalogue/hologram.js +11 -5
  554. package/dist/operations/catalogue/inkBloom.d.ts.map +1 -1
  555. package/dist/operations/catalogue/inkBloom.js +46 -9
  556. package/dist/operations/catalogue/jelly.d.ts.map +1 -1
  557. package/dist/operations/catalogue/jelly.js +18 -8
  558. package/dist/operations/catalogue/knockAway.d.ts +3 -0
  559. package/dist/operations/catalogue/knockAway.d.ts.map +1 -0
  560. package/dist/operations/catalogue/knockAway.js +74 -0
  561. package/dist/operations/catalogue/leafFall.d.ts +3 -0
  562. package/dist/operations/catalogue/leafFall.d.ts.map +1 -0
  563. package/dist/operations/catalogue/leafFall.js +74 -0
  564. package/dist/operations/catalogue/lidarScan.d.ts.map +1 -1
  565. package/dist/operations/catalogue/lidarScan.js +4 -1
  566. package/dist/operations/catalogue/liquidMetal.d.ts.map +1 -1
  567. package/dist/operations/catalogue/liquidMetal.js +41 -12
  568. package/dist/operations/catalogue/metalize.d.ts.map +1 -1
  569. package/dist/operations/catalogue/metalize.js +8 -2
  570. package/dist/operations/catalogue/motionTrail.d.ts +6 -0
  571. package/dist/operations/catalogue/motionTrail.d.ts.map +1 -0
  572. package/dist/operations/catalogue/motionTrail.js +221 -0
  573. package/dist/operations/catalogue/particleSwarm.d.ts.map +1 -1
  574. package/dist/operations/catalogue/particleSwarm.js +29 -9
  575. package/dist/operations/catalogue/petalPeel.d.ts.map +1 -1
  576. package/dist/operations/catalogue/petalPeel.js +33 -9
  577. package/dist/operations/catalogue/petrify.d.ts.map +1 -1
  578. package/dist/operations/catalogue/petrify.js +9 -3
  579. package/dist/operations/catalogue/physicalExit.d.ts +55 -0
  580. package/dist/operations/catalogue/physicalExit.d.ts.map +1 -0
  581. package/dist/operations/catalogue/physicalExit.js +165 -0
  582. package/dist/operations/catalogue/physicalHeld.d.ts +41 -0
  583. package/dist/operations/catalogue/physicalHeld.d.ts.map +1 -0
  584. package/dist/operations/catalogue/physicalHeld.js +78 -0
  585. package/dist/operations/catalogue/physicalMix.d.ts +45 -0
  586. package/dist/operations/catalogue/physicalMix.d.ts.map +1 -0
  587. package/dist/operations/catalogue/physicalMix.js +144 -0
  588. package/dist/operations/catalogue/pop.d.ts +3 -0
  589. package/dist/operations/catalogue/pop.d.ts.map +1 -0
  590. package/dist/operations/catalogue/pop.js +44 -0
  591. package/dist/operations/catalogue/portal.d.ts.map +1 -1
  592. package/dist/operations/catalogue/portal.js +33 -11
  593. package/dist/operations/catalogue/print3d.d.ts.map +1 -1
  594. package/dist/operations/catalogue/print3d.js +5 -1
  595. package/dist/operations/catalogue/pulse.d.ts +3 -0
  596. package/dist/operations/catalogue/pulse.d.ts.map +1 -0
  597. package/dist/operations/catalogue/pulse.js +29 -0
  598. package/dist/operations/catalogue/restPose.d.ts +5 -7
  599. package/dist/operations/catalogue/restPose.d.ts.map +1 -1
  600. package/dist/operations/catalogue/restPose.js +18 -48
  601. package/dist/operations/catalogue/rotate.d.ts +3 -0
  602. package/dist/operations/catalogue/rotate.d.ts.map +1 -0
  603. package/dist/operations/catalogue/rotate.js +49 -0
  604. package/dist/operations/catalogue/sandErosion.d.ts.map +1 -1
  605. package/dist/operations/catalogue/sandErosion.js +36 -14
  606. package/dist/operations/catalogue/shake.d.ts +3 -0
  607. package/dist/operations/catalogue/shake.d.ts.map +1 -0
  608. package/dist/operations/catalogue/shake.js +31 -0
  609. package/dist/operations/catalogue/shatter.d.ts.map +1 -1
  610. package/dist/operations/catalogue/shatter.js +5 -1
  611. package/dist/operations/catalogue/slam.d.ts +3 -0
  612. package/dist/operations/catalogue/slam.d.ts.map +1 -0
  613. package/dist/operations/catalogue/slam.js +89 -0
  614. package/dist/operations/catalogue/slingshot.d.ts +3 -0
  615. package/dist/operations/catalogue/slingshot.d.ts.map +1 -0
  616. package/dist/operations/catalogue/slingshot.js +88 -0
  617. package/dist/operations/catalogue/spin.d.ts.map +1 -1
  618. package/dist/operations/catalogue/spin.js +24 -13
  619. package/dist/operations/catalogue/sway.d.ts +3 -0
  620. package/dist/operations/catalogue/sway.d.ts.map +1 -0
  621. package/dist/operations/catalogue/sway.js +23 -0
  622. package/dist/operations/catalogue/swirl.d.ts.map +1 -1
  623. package/dist/operations/catalogue/swirl.js +6 -5
  624. package/dist/operations/catalogue/teleport.d.ts.map +1 -1
  625. package/dist/operations/catalogue/teleport.js +43 -12
  626. package/dist/operations/catalogue/trailCore.d.ts +89 -0
  627. package/dist/operations/catalogue/trailCore.d.ts.map +1 -0
  628. package/dist/operations/catalogue/trailCore.js +190 -0
  629. package/dist/operations/catalogue/trailGhosts.d.ts +5 -0
  630. package/dist/operations/catalogue/trailGhosts.d.ts.map +1 -0
  631. package/dist/operations/catalogue/trailGhosts.js +179 -0
  632. package/dist/operations/catalogue/trailStampStyles.d.ts +11 -0
  633. package/dist/operations/catalogue/trailStampStyles.d.ts.map +1 -0
  634. package/dist/operations/catalogue/trailStampStyles.js +479 -0
  635. package/dist/operations/catalogue/trailStamps.d.ts +57 -0
  636. package/dist/operations/catalogue/trailStamps.d.ts.map +1 -0
  637. package/dist/operations/catalogue/trailStamps.js +349 -0
  638. package/dist/operations/catalogue/trailStreaks.d.ts +3 -0
  639. package/dist/operations/catalogue/trailStreaks.d.ts.map +1 -0
  640. package/dist/operations/catalogue/trailStreaks.js +147 -0
  641. package/dist/operations/catalogue/transitionField.d.ts +30 -0
  642. package/dist/operations/catalogue/transitionField.d.ts.map +1 -1
  643. package/dist/operations/catalogue/transitionField.js +21 -0
  644. package/dist/operations/catalogue/turnAway.d.ts +3 -0
  645. package/dist/operations/catalogue/turnAway.d.ts.map +1 -0
  646. package/dist/operations/catalogue/turnAway.js +54 -0
  647. package/dist/operations/catalogue/unweave.d.ts.map +1 -1
  648. package/dist/operations/catalogue/unweave.js +34 -15
  649. package/dist/operations/catalogue/vortexDrain.d.ts +3 -0
  650. package/dist/operations/catalogue/vortexDrain.d.ts.map +1 -0
  651. package/dist/operations/catalogue/vortexDrain.js +68 -0
  652. package/dist/operations/catalogue/voxelize.d.ts.map +1 -1
  653. package/dist/operations/catalogue/voxelize.js +37 -10
  654. package/dist/operations/catalogue/warp.d.ts +3 -0
  655. package/dist/operations/catalogue/warp.d.ts.map +1 -0
  656. package/dist/operations/catalogue/warp.js +73 -0
  657. package/dist/operations/catalogue/whoosh.d.ts +3 -0
  658. package/dist/operations/catalogue/whoosh.d.ts.map +1 -0
  659. package/dist/operations/catalogue/whoosh.js +84 -0
  660. package/dist/operations/catalogue/wobble.d.ts +3 -0
  661. package/dist/operations/catalogue/wobble.d.ts.map +1 -0
  662. package/dist/operations/catalogue/wobble.js +23 -0
  663. package/dist/operations/clipPreview.d.ts +3 -0
  664. package/dist/operations/clipPreview.d.ts.map +1 -0
  665. package/dist/operations/clipPreview.js +20 -0
  666. package/dist/operations/groupFanout.d.ts +96 -0
  667. package/dist/operations/groupFanout.d.ts.map +1 -0
  668. package/dist/operations/groupFanout.js +365 -0
  669. package/dist/operations/groups.d.ts +20 -0
  670. package/dist/operations/groups.d.ts.map +1 -0
  671. package/dist/operations/groups.js +66 -0
  672. package/dist/operations/index.d.ts +5 -2
  673. package/dist/operations/index.d.ts.map +1 -1
  674. package/dist/operations/index.js +5 -2
  675. package/dist/operations/objectEffects.d.ts +161 -6
  676. package/dist/operations/objectEffects.d.ts.map +1 -1
  677. package/dist/operations/objectEffects.js +1091 -17
  678. package/dist/operations/registry.d.ts.map +1 -1
  679. package/dist/operations/registry.js +24 -2
  680. package/dist/operations/runtime.d.ts +57 -2
  681. package/dist/operations/runtime.d.ts.map +1 -1
  682. package/dist/operations/runtime.js +161 -18
  683. package/dist/operations/types.d.ts +60 -3
  684. package/dist/operations/types.d.ts.map +1 -1
  685. package/dist/operations/types.js +5 -1
  686. package/dist/operations/useObjectEffectLayers.d.ts +2 -2
  687. package/dist/operations/useObjectEffectLayers.d.ts.map +1 -1
  688. package/dist/operations/useObjectEffectLayers.js +31 -10
  689. package/dist/operations/usePresentedVisibility.d.ts +10 -0
  690. package/dist/operations/usePresentedVisibility.d.ts.map +1 -0
  691. package/dist/operations/usePresentedVisibility.js +53 -0
  692. package/dist/presets/terrainBiomes.d.ts +67 -0
  693. package/dist/presets/terrainBiomes.d.ts.map +1 -0
  694. package/dist/presets/terrainBiomes.js +294 -0
  695. package/dist/presets/terrainPresets.d.ts +6 -0
  696. package/dist/presets/terrainPresets.d.ts.map +1 -1
  697. package/dist/presets/terrainPresets.js +26 -38
  698. package/dist/shaders/glsl/oceanCore.glsl.d.ts +2 -2
  699. package/dist/shaders/glsl/oceanCore.glsl.d.ts.map +1 -1
  700. package/dist/shaders/glsl/oceanCore.glsl.js +17 -0
  701. package/dist/shaders/glsl/surfaceCore.glsl.d.ts +21 -0
  702. package/dist/shaders/glsl/surfaceCore.glsl.d.ts.map +1 -0
  703. package/dist/shaders/glsl/surfaceCore.glsl.js +120 -0
  704. package/dist/shaders/glsl/terrainCore.glsl.d.ts +16 -3
  705. package/dist/shaders/glsl/terrainCore.glsl.d.ts.map +1 -1
  706. package/dist/shaders/glsl/terrainCore.glsl.js +266 -20
  707. package/dist/shaders/ocean/OceanSurfaceMaterial.d.ts +2 -0
  708. package/dist/shaders/ocean/OceanSurfaceMaterial.d.ts.map +1 -1
  709. package/dist/shaders/ocean/OceanSurfaceMaterial.js +3 -0
  710. package/dist/shaders/terrain/TerrainMaterial.d.ts +17 -0
  711. package/dist/shaders/terrain/TerrainMaterial.d.ts.map +1 -1
  712. package/dist/shaders/terrain/TerrainMaterial.js +107 -8
  713. package/dist/triggers/engine.d.ts +44 -0
  714. package/dist/triggers/engine.d.ts.map +1 -0
  715. package/dist/triggers/engine.js +168 -0
  716. package/dist/triggers/hosts/actions.d.ts +8 -0
  717. package/dist/triggers/hosts/actions.d.ts.map +1 -0
  718. package/dist/triggers/hosts/actions.js +22 -0
  719. package/dist/triggers/hosts/interactions.d.ts +6 -0
  720. package/dist/triggers/hosts/interactions.d.ts.map +1 -0
  721. package/dist/triggers/hosts/interactions.js +4 -0
  722. package/dist/triggers/hosts/timelineCues.d.ts +2 -0
  723. package/dist/triggers/hosts/timelineCues.d.ts.map +1 -0
  724. package/dist/triggers/hosts/timelineCues.js +22 -0
  725. package/dist/triggers/index.d.ts +13 -0
  726. package/dist/triggers/index.d.ts.map +1 -0
  727. package/dist/triggers/index.js +9 -0
  728. package/dist/triggers/kinds/action.d.ts +2 -0
  729. package/dist/triggers/kinds/action.d.ts.map +1 -0
  730. package/dist/triggers/kinds/action.js +31 -0
  731. package/dist/triggers/kinds/animations.d.ts +2 -0
  732. package/dist/triggers/kinds/animations.d.ts.map +1 -0
  733. package/dist/triggers/kinds/animations.js +75 -0
  734. package/dist/triggers/kinds/effects.d.ts +2 -0
  735. package/dist/triggers/kinds/effects.d.ts.map +1 -0
  736. package/dist/triggers/kinds/effects.js +27 -0
  737. package/dist/triggers/kinds/index.d.ts +4 -0
  738. package/dist/triggers/kinds/index.d.ts.map +1 -0
  739. package/dist/triggers/kinds/index.js +4 -0
  740. package/dist/triggers/log.d.ts +21 -0
  741. package/dist/triggers/log.d.ts.map +1 -0
  742. package/dist/triggers/log.js +43 -0
  743. package/dist/triggers/readiness.d.ts +40 -0
  744. package/dist/triggers/readiness.d.ts.map +1 -0
  745. package/dist/triggers/readiness.js +158 -0
  746. package/dist/triggers/registry.d.ts +41 -0
  747. package/dist/triggers/registry.d.ts.map +1 -0
  748. package/dist/triggers/registry.js +7 -0
  749. package/dist/types/gridConfigs.d.ts +18 -23
  750. package/dist/types/gridConfigs.d.ts.map +1 -1
  751. package/dist/ui/UiAnchorUpdater.d.ts +10 -0
  752. package/dist/ui/UiAnchorUpdater.d.ts.map +1 -0
  753. package/dist/ui/UiAnchorUpdater.js +111 -0
  754. package/dist/ui/UiLayers.d.ts +20 -0
  755. package/dist/ui/UiLayers.d.ts.map +1 -0
  756. package/dist/ui/UiLayers.js +57 -0
  757. package/dist/ui/index.d.ts +9 -0
  758. package/dist/ui/index.d.ts.map +1 -0
  759. package/dist/ui/index.js +6 -0
  760. package/dist/ui/uiAnchors.d.ts +21 -0
  761. package/dist/ui/uiAnchors.d.ts.map +1 -0
  762. package/dist/ui/uiAnchors.js +22 -0
  763. package/dist/ui/uiBaseStyles.d.ts +2 -0
  764. package/dist/ui/uiBaseStyles.d.ts.map +1 -0
  765. package/dist/ui/uiBaseStyles.js +100 -0
  766. package/dist/ui/uiBinder.d.ts +30 -0
  767. package/dist/ui/uiBinder.d.ts.map +1 -0
  768. package/dist/ui/uiBinder.js +344 -0
  769. package/dist/utils/configAnimations.d.ts.map +1 -1
  770. package/dist/utils/configAnimations.js +5 -1
  771. package/dist/utils/gridConfig.d.ts +1 -1
  772. package/dist/utils/gridConfig.d.ts.map +1 -1
  773. package/dist/utils/gridConfig.js +1 -1
  774. package/dist/utils/landPatch.d.ts +33 -0
  775. package/dist/utils/landPatch.d.ts.map +1 -0
  776. package/dist/utils/landPatch.js +114 -0
  777. package/dist/utils/pickProxy.d.ts +11 -0
  778. package/dist/utils/pickProxy.d.ts.map +1 -0
  779. package/dist/utils/pickProxy.js +36 -0
  780. package/dist/utils/renderedSky.d.ts +32 -0
  781. package/dist/utils/renderedSky.d.ts.map +1 -0
  782. package/dist/utils/renderedSky.js +57 -0
  783. package/dist/utils/shapes.d.ts +4 -0
  784. package/dist/utils/shapes.d.ts.map +1 -1
  785. package/dist/utils/shapes.js +4 -1
  786. package/dist/utils/skyMoon.d.ts +35 -0
  787. package/dist/utils/skyMoon.d.ts.map +1 -0
  788. package/dist/utils/skyMoon.js +41 -0
  789. package/dist/utils/terrainHeight.d.ts +4 -0
  790. package/dist/utils/terrainHeight.d.ts.map +1 -0
  791. package/dist/utils/terrainHeight.js +150 -0
  792. package/dist/utils/terrainTextureResolver.d.ts +18 -0
  793. package/dist/utils/terrainTextureResolver.d.ts.map +1 -0
  794. package/dist/utils/terrainTextureResolver.js +17 -0
  795. package/dist/utils/terrainUniforms.d.ts +17 -0
  796. package/dist/utils/terrainUniforms.d.ts.map +1 -1
  797. package/dist/utils/terrainUniforms.js +84 -0
  798. package/dist/utils/textShape.d.ts +24 -0
  799. package/dist/utils/textShape.d.ts.map +1 -0
  800. package/dist/utils/textShape.js +102 -0
  801. package/dist/utils/textureArrays.d.ts +29 -0
  802. package/dist/utils/textureArrays.d.ts.map +1 -0
  803. package/dist/utils/textureArrays.js +140 -0
  804. package/package.json +2 -2
@@ -0,0 +1,344 @@
1
+ // =============================================================================
2
+ // UI binder — turns a layer's data attributes into SceneHandle calls
3
+ // =============================================================================
4
+ //
5
+ // Pure DOM + SceneHandle: no three.js and no React, so it runs (and is tested) on
6
+ // its own. One binder per rendered layer. It
7
+ // - runs data-click / data-hover-in / data-hover-out commands,
8
+ // - scrubs data-bind ranges and keeps them in step with a playing sequence,
9
+ // - reflects scene state (data-state → data-on, data-show-when → hidden),
10
+ // - writes data-set controls (sliders, colour pickers, switches, preset buttons) to live
11
+ // scene properties and keeps them in step with the scene,
12
+ // - registers data-anchor elements with the anchor registry (positioned by
13
+ // UiAnchorUpdater inside the canvas, through refs — never React state).
14
+ //
15
+ // State is refreshed on SceneHandle events plus a slow poll, because a reset or an
16
+ // object click can change state without an event this layer subscribes to.
17
+ //
18
+ import { UI_ATTR, UI_TRIGGER_ATTRS, collectUiBindings, resolveUiRef, } from '@3driseai/3drise-core';
19
+ import { uiAnchors } from './uiAnchors.js';
20
+ const NATIVE_INTERACTIVE = new Set(['button', 'a', 'input', 'select', 'textarea', 'summary']);
21
+ const GROUPS = { sequence: 'sequences', clip: 'clips' };
22
+ export function bindUiLayer(root, scene, options = {}) {
23
+ const warn = options.onWarn ?? (() => { });
24
+ const anchors = options.anchors ?? uiAnchors;
25
+ const cleanups = [];
26
+ const toggled = new Set(); // sequence / clip refs whose last toggle went forward
27
+ const listen = (el, type, fn) => {
28
+ el.addEventListener(type, fn);
29
+ cleanups.push(() => el.removeEventListener(type, fn));
30
+ };
31
+ const uses = collectUiBindings(root);
32
+ for (const use of uses)
33
+ for (const e of use.errors)
34
+ warn(`${use.label}: ${e}`);
35
+ // ----- ref resolution (for inspect and warnings) --------------------------------
36
+ const listOf = (kind) => (kind === 'action' ? scene.actions.list() : kind === 'clip' ? scene.clips.list() : scene.sequences.list());
37
+ const exists = (kind, ref) => !!resolveUiRef(listOf(kind), ref);
38
+ const layerEl = (ref) => root.querySelector(ref); // '#id'
39
+ // ----- commands -------------------------------------------------------------------
40
+ function run(c, source) {
41
+ if (c.kind === 'ui') {
42
+ const el = layerEl(c.ref);
43
+ if (!el) {
44
+ warn(`${source}: no element ${c.ref} in this layer.`);
45
+ return;
46
+ }
47
+ if (c.verb === 'show')
48
+ el.hidden = false;
49
+ else if (c.verb === 'hide')
50
+ el.hidden = true;
51
+ else
52
+ el.hidden = !el.hidden;
53
+ refresh();
54
+ return;
55
+ }
56
+ if (c.kind === 'action') {
57
+ const a = scene.actions;
58
+ const ok = c.verb === 'apply' ? a.apply(c.ref) : c.verb === 'revert' ? a.revert(c.ref) : (a.toggle(c.ref), exists('action', c.ref));
59
+ if (!ok)
60
+ warn(`${source}: no action "${c.ref}".`);
61
+ return;
62
+ }
63
+ const g = scene[GROUPS[c.kind]];
64
+ let ok = true;
65
+ switch (c.verb) {
66
+ case 'play':
67
+ ok = g.play(c.ref);
68
+ break;
69
+ case 'reverse':
70
+ ok = g.play(c.ref, { reverse: true });
71
+ break;
72
+ case 'pause':
73
+ ok = g.pause(c.ref);
74
+ break;
75
+ case 'resume':
76
+ ok = g.resume(c.ref);
77
+ break;
78
+ case 'stop':
79
+ ok = g.stop(c.ref);
80
+ break;
81
+ case 'toggle': {
82
+ const key = `${c.kind}:${c.ref}`;
83
+ const back = toggled.has(key);
84
+ if (back)
85
+ toggled.delete(key);
86
+ else
87
+ toggled.add(key);
88
+ ok = g.play(c.ref, { reverse: back });
89
+ break;
90
+ }
91
+ }
92
+ if (!ok)
93
+ warn(`${source}: no ${c.kind} "${c.ref}".`);
94
+ }
95
+ function wireTriggers(use) {
96
+ const el = use.el;
97
+ for (const group of use.commands) {
98
+ if (!group.items.length)
99
+ continue;
100
+ const source = `${use.label} ${UI_TRIGGER_ATTRS[group.trigger]}`;
101
+ const fire = () => { for (const c of group.items)
102
+ run(c, source); };
103
+ if (group.trigger === 'click') {
104
+ listen(el, 'click', (e) => { if (el.localName !== 'a')
105
+ e.preventDefault(); fire(); });
106
+ if (!NATIVE_INTERACTIVE.has(el.localName)) {
107
+ if (!el.hasAttribute('tabindex'))
108
+ el.setAttribute('tabindex', '0');
109
+ if (!el.hasAttribute('role'))
110
+ el.setAttribute('role', 'button');
111
+ listen(el, 'keydown', (e) => { if (e.key === 'Enter' || e.key === ' ') {
112
+ e.preventDefault();
113
+ fire();
114
+ } });
115
+ }
116
+ }
117
+ else {
118
+ // Hover is for pointers; on touch a tap must go through data-click.
119
+ const type = group.trigger === 'hoverIn' ? 'pointerenter' : 'pointerleave';
120
+ listen(el, type, (e) => { if (e.pointerType !== 'touch')
121
+ fire(); });
122
+ }
123
+ }
124
+ }
125
+ // ----- scene state → DOM ----------------------------------------------------------
126
+ function holds(c) {
127
+ let on = false;
128
+ if (c.kind === 'action')
129
+ on = scene.actions.isApplied(c.ref);
130
+ else if (c.kind === 'sequence')
131
+ on = scene.sequences.isPlaying(c.ref);
132
+ else if (c.kind === 'clip')
133
+ on = scene.clips.isPlaying(c.ref);
134
+ else {
135
+ const el = layerEl(c.ref);
136
+ on = !!el && !el.hidden;
137
+ }
138
+ return c.negate ? !on : on;
139
+ }
140
+ function refresh() {
141
+ for (const use of uses) {
142
+ if (use.state.length)
143
+ use.el.setAttribute('data-on', String(use.state.every(holds)));
144
+ if (use.showWhen.length)
145
+ use.el.hidden = !use.showWhen.every(holds);
146
+ if (use.set)
147
+ syncSet(use);
148
+ }
149
+ }
150
+ // ----- data-set: controls that write live scene properties ---------------------------
151
+ const targetOf = (use) => `${use.set.target}${use.set.node ? '/' + use.set.node : ''}`;
152
+ const active = (el) => root.activeElement === el;
153
+ const dragging = new Set();
154
+ const warned = new Set();
155
+ const same = (a, b) => {
156
+ if (typeof a === 'number' && typeof b === 'number')
157
+ return Math.abs(a - b) < 1e-6 * Math.max(1, Math.abs(a), Math.abs(b));
158
+ if (Array.isArray(a) && Array.isArray(b))
159
+ return a.length === b.length && a.every((v, i) => same(v, b[i]));
160
+ if (typeof a === 'string' && typeof b === 'string')
161
+ return a.toLowerCase() === b.toLowerCase();
162
+ return a === b;
163
+ };
164
+ function write(use, value) {
165
+ const ok = scene.values.set(targetOf(use), use.set.path, value);
166
+ if (!ok && !warned.has(use.el)) {
167
+ warned.add(use.el);
168
+ warn(`${use.label} ${UI_ATTR.set}: cannot write ${use.set.path} on ${targetOf(use)}${scene.values.check(targetOf(use), use.set.path) ? ' — ' + scene.values.check(targetOf(use), use.set.path) : ''}.`);
169
+ }
170
+ refresh();
171
+ }
172
+ function syncSet(use) {
173
+ const el = use.el;
174
+ const current = scene.values.get(targetOf(use), use.set.path);
175
+ if (use.setValue !== undefined) {
176
+ el.setAttribute('data-on', String(current !== undefined && same(current, use.setValue)));
177
+ return;
178
+ }
179
+ if (current === undefined || dragging.has(el) || active(el))
180
+ return;
181
+ if (el.localName === 'select') {
182
+ el.value = String(current);
183
+ return;
184
+ }
185
+ if (el.localName !== 'input')
186
+ return;
187
+ if (el.type === 'checkbox')
188
+ el.checked = !!current;
189
+ else if (el.type === 'color') {
190
+ if (typeof current === 'string' && /^#[0-9a-f]{6}$/i.test(current))
191
+ el.value = current.toLowerCase();
192
+ }
193
+ else if (typeof current === 'number' || typeof current === 'string')
194
+ el.value = String(current);
195
+ }
196
+ for (const use of uses) {
197
+ if (!use.set)
198
+ continue;
199
+ const el = use.el;
200
+ if (use.setValue !== undefined) {
201
+ listen(el, 'click', (e) => { e.preventDefault(); write(use, use.setValue); });
202
+ if (!NATIVE_INTERACTIVE.has(el.localName)) {
203
+ if (!el.hasAttribute('tabindex'))
204
+ el.setAttribute('tabindex', '0');
205
+ if (!el.hasAttribute('role'))
206
+ el.setAttribute('role', 'button');
207
+ listen(el, 'keydown', (e) => { if (e.key === 'Enter' || e.key === ' ') {
208
+ e.preventDefault();
209
+ write(use, use.setValue);
210
+ } });
211
+ }
212
+ }
213
+ else if (el.localName === 'select') {
214
+ listen(el, 'change', () => {
215
+ const raw = el.value;
216
+ const current = scene.values.get(targetOf(use), use.set.path);
217
+ write(use, typeof current === 'number' && raw.trim() !== '' && Number.isFinite(Number(raw)) ? Number(raw) : raw);
218
+ });
219
+ }
220
+ else if (el.localName === 'input') {
221
+ if (el.type === 'checkbox')
222
+ listen(el, 'change', () => write(use, el.checked));
223
+ else if (el.type === 'range' || el.type === 'number') {
224
+ listen(el, 'input', () => { if (el.value !== '' && Number.isFinite(Number(el.value)))
225
+ write(use, Number(el.value)); });
226
+ listen(el, 'pointerdown', () => { dragging.add(el); });
227
+ const up = () => { dragging.delete(el); };
228
+ window.addEventListener('pointerup', up);
229
+ cleanups.push(() => window.removeEventListener('pointerup', up));
230
+ }
231
+ else
232
+ listen(el, 'input', () => write(use, el.value)); // color, text
233
+ }
234
+ }
235
+ // ----- data-bind ranges -------------------------------------------------------------
236
+ const followed = [];
237
+ for (const use of uses) {
238
+ if (!use.bind)
239
+ continue;
240
+ const input = use.el;
241
+ if (input.localName !== 'input' || input.type !== 'range')
242
+ continue;
243
+ const { kind, ref } = use.bind;
244
+ const span = () => { const lo = Number(input.min || 0); const hi = Number(input.max || 1); return { lo, hi: hi === lo ? lo + 1 : hi }; };
245
+ const f = { input, ref, dragging: false };
246
+ listen(input, 'input', () => {
247
+ const { lo, hi } = span();
248
+ const p = Math.min(1, Math.max(0, (Number(input.value) - lo) / (hi - lo)));
249
+ const ok = kind === 'sequence' ? scene.sequences.setProgress(ref, p) : scene.clips.seek(ref, p);
250
+ if (!ok)
251
+ warn(`${use.label}: no ${kind} "${ref}".`);
252
+ });
253
+ if (kind === 'sequence') {
254
+ listen(input, 'pointerdown', () => { f.dragging = true; });
255
+ const up = () => { f.dragging = false; };
256
+ window.addEventListener('pointerup', up);
257
+ cleanups.push(() => window.removeEventListener('pointerup', up));
258
+ followed.push(f);
259
+ }
260
+ }
261
+ let raf = 0;
262
+ const follow = () => {
263
+ for (const f of followed) {
264
+ if (f.dragging || !scene.sequences.isPlaying(f.ref))
265
+ continue;
266
+ const lo = Number(f.input.min || 0);
267
+ const hi = Number(f.input.max || 1);
268
+ f.input.value = String(lo + (hi - lo) * scene.sequences.getProgress(f.ref));
269
+ }
270
+ raf = requestAnimationFrame(follow);
271
+ };
272
+ if (followed.length) {
273
+ raf = requestAnimationFrame(follow);
274
+ cleanups.push(() => cancelAnimationFrame(raf));
275
+ }
276
+ // ----- anchors ------------------------------------------------------------------------
277
+ for (const use of uses) {
278
+ if (!use.anchor)
279
+ continue;
280
+ const el = use.el;
281
+ el.style.position = 'absolute';
282
+ el.style.left = '0';
283
+ el.style.top = '0';
284
+ el.style.willChange = 'transform';
285
+ el.setAttribute('data-offscreen', ''); // hidden until the first projection places it
286
+ const entry = { el, object: use.anchor.object, node: use.anchor.node, occlude: use.anchorOcclude, offset: use.anchorOffset ?? [0, 0] };
287
+ cleanups.push(anchors.register(entry));
288
+ }
289
+ // ----- wire up ---------------------------------------------------------------------------
290
+ for (const use of uses)
291
+ wireTriggers(use);
292
+ refresh();
293
+ for (const type of ['actionApplied', 'actionReverted', 'animationStart', 'animationEnd']) {
294
+ cleanups.push(scene.on(type, () => { refresh(); requestAnimationFrame(refresh); }));
295
+ }
296
+ const poll = options.pollMs ?? 250;
297
+ if (poll > 0 && uses.some(u => u.state.length || u.showWhen.length || u.set)) {
298
+ const id = setInterval(refresh, poll);
299
+ cleanups.push(() => clearInterval(id));
300
+ }
301
+ return {
302
+ dispose() { while (cleanups.length)
303
+ cleanups.pop()(); },
304
+ refresh,
305
+ inspect() {
306
+ const rows = [];
307
+ const resolvedUi = (ref) => !!layerEl(ref);
308
+ const push = (use, trigger, kind, text, ref) => rows.push({
309
+ element: use.label, trigger, command: text,
310
+ resolved: kind === 'ui' ? resolvedUi(ref) : exists(kind, ref),
311
+ });
312
+ for (const use of uses) {
313
+ for (const g of use.commands)
314
+ for (const c of g.items)
315
+ push(use, g.trigger, c.kind, `${c.kind}.${c.verb}:${c.ref}`, c.ref);
316
+ for (const c of use.state)
317
+ push(use, UI_ATTR.state, c.kind, `${c.negate ? '!' : ''}${c.kind}:${c.ref}`, c.ref);
318
+ for (const c of use.showWhen)
319
+ push(use, UI_ATTR.showWhen, c.kind, `${c.negate ? '!' : ''}${c.kind}:${c.ref}`, c.ref);
320
+ if (use.bind)
321
+ push(use, UI_ATTR.bind, use.bind.kind, `${use.bind.kind}:${use.bind.ref}`, use.bind.ref);
322
+ if (use.set)
323
+ rows.push({
324
+ element: use.label, trigger: UI_ATTR.set,
325
+ command: `${targetOf(use)}:${use.set.path}${use.setValue !== undefined ? ' = ' + JSON.stringify(use.setValue) : ''}`,
326
+ resolved: !scene.values.check(targetOf(use), use.set.path),
327
+ });
328
+ if (use.anchor)
329
+ rows.push({ element: use.label, trigger: UI_ATTR.anchor, command: `object:${use.anchor.object}${use.anchor.node ? '/' + use.anchor.node : ''}`, resolved: true });
330
+ }
331
+ return rows;
332
+ },
333
+ press(selector, trigger = 'click') {
334
+ const el = root.querySelector(selector);
335
+ if (!el)
336
+ return false;
337
+ if (trigger === 'click')
338
+ el.click();
339
+ else
340
+ el.dispatchEvent(new PointerEvent(trigger === 'hoverIn' ? 'pointerenter' : 'pointerleave', { pointerType: 'mouse', bubbles: false }));
341
+ return true;
342
+ },
343
+ };
344
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"configAnimations.d.ts","sourceRoot":"","sources":["../../src/utils/configAnimations.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAEjF;;;;;;;;;;;;;;;;;GAiBG;AAEH,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;AAE7D,yFAAyF;AACzF,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;AAEhE;;;;;;;;;GASG;AACH,wBAAgB,6BAA6B,CACzC,UAAU,EAAE,gBAAgB,EAAE,GAAG,SAAS,EAC1C,WAAW,EAAE,iBAAiB,EAC9B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,QAAQ,EAAE,cAAc,EACxB,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,GAC9B,IAAI,CAqBN;AAED,mFAAmF;AACnF,wBAAgB,oBAAoB,CAChC,UAAU,EAAE,iBAAiB,EAAE,GAAG,SAAS,EAC3C,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,QAAQ,EAAE,cAAc,EACxB,OAAO,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,EACjC,OAAO,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,GAC9B,IAAI,CAYN;AAED,oDAAoD;AACpD,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAGpE;AAED,wFAAwF;AACxF,wBAAgB,aAAa,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,SAAS,EAAE,CAAC,cAAc,GAAG,SAAS,CAAC,EAAE,GAAG,CAAC,CAK1G;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,SAAS,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAMvH"}
1
+ {"version":3,"file":"configAnimations.d.ts","sourceRoot":"","sources":["../../src/utils/configAnimations.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAGjF;;;;;;;;;;;;;;;;;GAiBG;AAEH,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;AAE7D,yFAAyF;AACzF,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;AAEhE;;;;;;;;;GASG;AACH,wBAAgB,6BAA6B,CACzC,UAAU,EAAE,gBAAgB,EAAE,GAAG,SAAS,EAC1C,WAAW,EAAE,iBAAiB,EAC9B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,QAAQ,EAAE,cAAc,EACxB,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,GAC9B,IAAI,CAqBN;AAED,mFAAmF;AACnF,wBAAgB,oBAAoB,CAChC,UAAU,EAAE,iBAAiB,EAAE,GAAG,SAAS,EAC3C,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,QAAQ,EAAE,cAAc,EACxB,OAAO,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,EACjC,OAAO,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,GAC9B,IAAI,CAeN;AAED,oDAAoD;AACpD,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAGpE;AAED,wFAAwF;AACxF,wBAAgB,aAAa,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,SAAS,EAAE,CAAC,cAAc,GAAG,SAAS,CAAC,EAAE,GAAG,CAAC,CAK1G;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,SAAS,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAMvH"}
@@ -1,4 +1,5 @@
1
1
  import { calculateTimeProgress, applyEasing, gsapEasingMap, interpolateValue, interpolateMouseMoveProperty } from '@3driseai/3drise-core';
2
+ import { Color } from 'three';
2
3
  /**
3
4
  * @param elapsedMs Milliseconds since this animation set started — NOT `Date.now()`,
4
5
  * and not seconds. `calculateTimeProgress` divides by `duration`, so a wall
@@ -49,7 +50,10 @@ export function applyConfigMouseMove(properties, config, override, pointer, allo
49
50
  const base = override[property] ?? config[property];
50
51
  if (base === undefined)
51
52
  continue;
52
- override[property] = interpolateMouseMoveProperty(base, min, max, pointer, axis, sensitivity, inverted);
53
+ const value = interpolateMouseMoveProperty(base, min, max, pointer, axis, sensitivity, inverted);
54
+ // A colour binding comes back as a THREE.Color; configs store hex, and some
55
+ // appliers (terrain's setStyle) only take a string.
56
+ override[property] = value instanceof Color ? `#${value.getHexString()}` : value;
53
57
  }
54
58
  }
55
59
  /** True when anything is currently being driven. */
@@ -8,7 +8,7 @@ export declare const GRID_SURFACE_COLORS: readonly ["lineColor", "sectionColor",
8
8
  * is here because the plane is only subdivided when it is > 0 at commit time, and
9
9
  * `sectionSize` because it is a whole number of cells per accent group.
10
10
  */
11
- export declare const GRID_STRUCTURAL: readonly ["size", "flat", "segments", "displace", "lineMode", "cellMode", "sectionSize"];
11
+ export declare const GRID_STRUCTURAL: readonly ["size", "segments", "displace", "lineMode", "cellMode", "sectionSize"];
12
12
  /** A uniform computed from the config (a clamp, a rounding, an enum index, a bool as 0/1). */
13
13
  export type GridDerive = Readonly<Record<string, (c: Record<string, any>) => number>>;
14
14
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"gridConfig.d.ts","sourceRoot":"","sources":["../../src/utils/gridConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAkBpC,+DAA+D;AAC/D,eAAO,MAAM,oBAAoB,+KAGvB,CAAC;AAEX,oEAAoE;AACpE,eAAO,MAAM,mBAAmB,6EAA8E,CAAC;AAE/G;;;;GAIG;AACH,eAAO,MAAM,eAAe,0FAA2F,CAAC;AAIxH,8FAA8F;AAC9F,MAAM,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC;AAEtF;;;GAGG;AACH,wBAAgB,eAAe,CAC3B,QAAQ,EAAE,KAAK,CAAC,cAAc,GAAG,IAAI,GAAG,SAAS,EACjD,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACtB,OAAO,EAAE,SAAS,MAAM,EAAE,EAC1B,MAAM,GAAE,UAAe,GACxB,IAAI,CASN"}
1
+ {"version":3,"file":"gridConfig.d.ts","sourceRoot":"","sources":["../../src/utils/gridConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAkBpC,+DAA+D;AAC/D,eAAO,MAAM,oBAAoB,+KAGvB,CAAC;AAEX,oEAAoE;AACpE,eAAO,MAAM,mBAAmB,6EAA8E,CAAC;AAE/G;;;;GAIG;AACH,eAAO,MAAM,eAAe,kFAAmF,CAAC;AAIhH,8FAA8F;AAC9F,MAAM,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC;AAEtF;;;GAGG;AACH,wBAAgB,eAAe,CAC3B,QAAQ,EAAE,KAAK,CAAC,cAAc,GAAG,IAAI,GAAG,SAAS,EACjD,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACtB,OAAO,EAAE,SAAS,MAAM,EAAE,EAC1B,MAAM,GAAE,UAAe,GACxB,IAAI,CASN"}
@@ -25,7 +25,7 @@ export const GRID_SURFACE_COLORS = ['lineColor', 'sectionColor', 'cellColor', 'g
25
25
  * is here because the plane is only subdivided when it is > 0 at commit time, and
26
26
  * `sectionSize` because it is a whole number of cells per accent group.
27
27
  */
28
- export const GRID_STRUCTURAL = ['size', 'flat', 'segments', 'displace', 'lineMode', 'cellMode', 'sectionSize'];
28
+ export const GRID_STRUCTURAL = ['size', 'segments', 'displace', 'lineMode', 'cellMode', 'sectionSize'];
29
29
  /**
30
30
  * @param variant the grid's own numeric knobs, each pushed as-is to u_<key>
31
31
  * @param derive the grid's computed uniforms: u_<key> = derive[key](config)
@@ -0,0 +1,33 @@
1
+ import * as THREE from 'three';
2
+ import type { LandObjectConfig, LandQuality, TerrainConfig, TerrainQualityConfig } from '@3driseai/3drise-core';
3
+ export declare const LAND_SEGMENTS: Record<LandQuality, number>;
4
+ /** The seed's offset into the field, in metres. Deterministic, far apart. */
5
+ export declare function landSeedOffset(seed: number, out?: THREE.Vector2): THREE.Vector2;
6
+ /** The land object's config as the shared terrain renderer reads it. Base 0: the
7
+ * object's position is the base. */
8
+ export declare function landToTerrainConfig(cfg: LandObjectConfig): TerrainConfig;
9
+ /** The renderer's quality block for a patch: no clipmap, no curvature. */
10
+ export declare function landQuality(cfg: LandObjectConfig): TerrainQualityConfig;
11
+ /** The object's world transform, split the way the patch needs it. */
12
+ export interface LandFrame {
13
+ position: THREE.Vector3;
14
+ quaternion: THREE.Quaternion;
15
+ scale: THREE.Vector3;
16
+ inverseQuaternion: THREE.Quaternion;
17
+ }
18
+ export declare function landFrame(object: THREE.Object3D, out?: LandFrame): LandFrame;
19
+ /**
20
+ * The per-object uniforms: footprint, seed offset, edge band, height scale, and
21
+ * the camera and sun brought into terrain space. Call after applyTerrainUniforms
22
+ * and applySunUniforms (both of which write world-space or unscaled values).
23
+ */
24
+ export declare function applyLandPatchUniforms(material: THREE.ShaderMaterial, cfg: LandObjectConfig, frame: LandFrame, camera: THREE.Camera): void;
25
+ /**
26
+ * Height of the land above the object's base, in terrain metres, at terrain-space
27
+ * (tx, tz) measured from the object's centre (before rotation). Multiply nothing:
28
+ * scale.y is already in (elevation x scale.y).
29
+ */
30
+ export declare function landHeightAt(cfg: LandObjectConfig, scale: THREE.Vector3, tx: number, tz: number, lodCell?: number): number;
31
+ /** World-space height of a land object's surface under world (x, z), or null off the patch. */
32
+ export declare function landWorldHeightAt(object: THREE.Object3D, cfg: LandObjectConfig, x: number, z: number): number | null;
33
+ //# sourceMappingURL=landPatch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"landPatch.d.ts","sourceRoot":"","sources":["../../src/utils/landPatch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAgBhH,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAAwC,CAAC;AAE/F,6EAA6E;AAC7E,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,gBAAsB,GAAG,KAAK,CAAC,OAAO,CAKrF;AAED;qCACqC;AACrC,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,gBAAgB,GAAG,aAAa,CAExE;AAED,0EAA0E;AAC1E,wBAAgB,WAAW,CAAC,GAAG,EAAE,gBAAgB,GAAG,oBAAoB,CAevE;AAED,sEAAsE;AACtE,MAAM,WAAW,SAAS;IACtB,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC;IACxB,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC;IAC7B,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC;IACrB,iBAAiB,EAAE,KAAK,CAAC,UAAU,CAAC;CACvC;AAED,wBAAgB,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,SAAS,GAAG,SAAS,CAM5E;AAKD;;;;GAIG;AACH,wBAAgB,sBAAsB,CAClC,QAAQ,EAAE,KAAK,CAAC,cAAc,EAC9B,GAAG,EAAE,gBAAgB,EACrB,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,KAAK,CAAC,MAAM,GACrB,IAAI,CAiBN;AAaD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,gBAAgB,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,SAAI,GAAG,MAAM,CAOrH;AAED,+FAA+F;AAC/F,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,EAAE,GAAG,EAAE,gBAAgB,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAWpH"}
@@ -0,0 +1,114 @@
1
+ import * as THREE from 'three';
2
+ import { terrainHeightAt } from './terrainHeight.js';
3
+ // =============================================================================
4
+ // Land objects — a bounded patch of the terrain height field
5
+ // =============================================================================
6
+ //
7
+ // The patch is a unit grid on XZ that the object's transform places, rotates and
8
+ // sizes. The field is sampled in TERRAIN SPACE: metres from the object's origin,
9
+ // unrotated, plus the seed's offset into the endless field. So:
10
+ // footprint = scale.x / scale.z (metres) — a window: wider shows more land
11
+ // height = elevation x scale.y, above the object's base (position.y)
12
+ // The GPU side is TerrainMaterial's TERRAIN_PATCH path; the CPU side below is the
13
+ // same maths, for picking and placing things on the land.
14
+ //
15
+ export const LAND_SEGMENTS = { low: 128, medium: 256, high: 384 };
16
+ /** The seed's offset into the field, in metres. Deterministic, far apart. */
17
+ export function landSeedOffset(seed, out = new THREE.Vector2()) {
18
+ const s = Math.max(1, Math.round(seed || 1));
19
+ const fx = Math.sin(s * 12.9898) * 43758.5453;
20
+ const fz = Math.sin(s * 78.233) * 12345.6789;
21
+ return out.set((fx - Math.floor(fx) - 0.5) * 80000, (fz - Math.floor(fz) - 0.5) * 80000);
22
+ }
23
+ /** The land object's config as the shared terrain renderer reads it. Base 0: the
24
+ * object's position is the base. */
25
+ export function landToTerrainConfig(cfg) {
26
+ return { ...cfg, type: 'terrain', terrainType: cfg.type, seaLevel: 0 };
27
+ }
28
+ /** The renderer's quality block for a patch: no clipmap, no curvature. */
29
+ export function landQuality(cfg) {
30
+ return {
31
+ levels: 1,
32
+ segments: LAND_SEGMENTS[cfg.quality] ?? 256,
33
+ // The fragment's shading floor. The patch's own cell (u_patchCell, scaled to
34
+ // the footprint) is what limits detail; a fixed 1 m floor would blur a 5 m patch.
35
+ cellSize: 0.001,
36
+ curvature: 0,
37
+ shadowSteps: 12,
38
+ shadowDistance: 5000,
39
+ detailFadeDistance: 1200,
40
+ receiveShadows: true,
41
+ exposure: 1,
42
+ wireframe: false,
43
+ };
44
+ }
45
+ export function landFrame(object, out) {
46
+ const f = out ?? { position: new THREE.Vector3(), quaternion: new THREE.Quaternion(), scale: new THREE.Vector3(), inverseQuaternion: new THREE.Quaternion() };
47
+ object.matrixWorld.decompose(f.position, f.quaternion, f.scale);
48
+ f.scale.set(Math.max(Math.abs(f.scale.x), 1e-3), Math.max(Math.abs(f.scale.y), 1e-4), Math.max(Math.abs(f.scale.z), 1e-3));
49
+ f.inverseQuaternion.copy(f.quaternion).invert();
50
+ return f;
51
+ }
52
+ const _v = new THREE.Vector3();
53
+ const _off = new THREE.Vector2();
54
+ /**
55
+ * The per-object uniforms: footprint, seed offset, edge band, height scale, and
56
+ * the camera and sun brought into terrain space. Call after applyTerrainUniforms
57
+ * and applySunUniforms (both of which write world-space or unscaled values).
58
+ */
59
+ export function applyLandPatchUniforms(material, cfg, frame, camera) {
60
+ const u = material.uniforms;
61
+ const { scale } = frame;
62
+ landSeedOffset(cfg.seed, _off);
63
+ u.u_patchSize.value.set(scale.x, scale.z);
64
+ u.u_patchOffset.value.copy(_off);
65
+ u.u_edgeWidth.value = Math.max(0, cfg.edgeFade ?? 0) * Math.min(scale.x, scale.z);
66
+ u.u_scaleY.value = scale.y;
67
+ u.u_elevation.value = Math.max(cfg.elevation, 0.01) * scale.y;
68
+ u.u_seaLevel.value = 0;
69
+ u.u_patchCell.value = Math.max(scale.x, scale.z) / (LAND_SEGMENTS[cfg.quality] ?? 256);
70
+ camera.getWorldPosition(_v).sub(frame.position).applyQuaternion(frame.inverseQuaternion);
71
+ u.u_camTerrain.value.set(_v.x + _off.x, _v.y, _v.z + _off.y);
72
+ // World sun -> terrain space. A tilted patch is lit as tilted ground.
73
+ u.u_sunDir.value.applyQuaternion(frame.inverseQuaternion).normalize();
74
+ }
75
+ /** The edge band, exactly as terrainPatchMask in the shader. */
76
+ function patchMask(tx, tz, sizeX, sizeZ, edge) {
77
+ const dx = (0.5 - Math.abs(tx / sizeX)) * sizeX;
78
+ const dz = (0.5 - Math.abs(tz / sizeZ)) * sizeZ;
79
+ const d = Math.min(dx, dz);
80
+ if (d <= 0)
81
+ return 0;
82
+ if (edge <= 1e-3)
83
+ return 1;
84
+ const x = Math.min(Math.max(d / edge, 0), 1);
85
+ return x * x * (3 - 2 * x);
86
+ }
87
+ /**
88
+ * Height of the land above the object's base, in terrain metres, at terrain-space
89
+ * (tx, tz) measured from the object's centre (before rotation). Multiply nothing:
90
+ * scale.y is already in (elevation x scale.y).
91
+ */
92
+ export function landHeightAt(cfg, scale, tx, tz, lodCell = 2) {
93
+ const m = patchMask(tx, tz, scale.x, scale.z, Math.max(0, cfg.edgeFade ?? 0) * Math.min(scale.x, scale.z));
94
+ if (m <= 0)
95
+ return 0;
96
+ const off = landSeedOffset(cfg.seed, _off);
97
+ const t = landToTerrainConfig(cfg);
98
+ t.elevation = Math.max(cfg.elevation, 0.01) * scale.y;
99
+ return terrainHeightAt(t, tx + off.x, tz + off.y, lodCell) * m;
100
+ }
101
+ /** World-space height of a land object's surface under world (x, z), or null off the patch. */
102
+ export function landWorldHeightAt(object, cfg, x, z) {
103
+ object.updateWorldMatrix(true, false);
104
+ const f = landFrame(object);
105
+ // A vertical line through (x, z) in terrain space: assume the patch is not
106
+ // tilted (the common case); for a tilted patch this is the nearest reading.
107
+ _v.set(x, f.position.y, z).sub(f.position).applyQuaternion(f.inverseQuaternion);
108
+ if (Math.abs(_v.x) > f.scale.x / 2 || Math.abs(_v.z) > f.scale.z / 2)
109
+ return null;
110
+ const h = landHeightAt(cfg, f.scale, _v.x, _v.z);
111
+ _v.y = h;
112
+ _v.applyQuaternion(f.quaternion).add(f.position);
113
+ return _v.y;
114
+ }
@@ -0,0 +1,11 @@
1
+ import * as THREE from 'three';
2
+ export declare const PICK_PROXY_NAME = "pickProxy";
3
+ export declare function pickMaterial(side?: THREE.Side): THREE.MeshBasicMaterial;
4
+ /** A unit plane proxy (scale it to the object's extent). */
5
+ export declare function pickPlane(): THREE.Mesh;
6
+ /** A unit sphere proxy (scale it to the object's radius). Front faces only: one hit per ray from outside. */
7
+ export declare function pickSphere(): THREE.Mesh;
8
+ export declare const NO_RAYCAST: () => any;
9
+ /** Takes every object under `root` out of raycasting (the proxy is the hit target). Idempotent and cheap: safe per frame. */
10
+ export declare function stopRaycast(root: THREE.Object3D): void;
11
+ //# sourceMappingURL=pickProxy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pickProxy.d.ts","sourceRoot":"","sources":["../../src/utils/pickProxy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAY/B,eAAO,MAAM,eAAe,cAAc,CAAC;AAE3C,wBAAgB,YAAY,CAAC,IAAI,GAAE,KAAK,CAAC,IAAuB,GAAG,KAAK,CAAC,iBAAiB,CAEzF;AAED,4DAA4D;AAC5D,wBAAgB,SAAS,IAAI,KAAK,CAAC,IAAI,CAItC;AAED,6GAA6G;AAC7G,wBAAgB,UAAU,IAAI,KAAK,CAAC,IAAI,CAIvC;AAED,eAAO,MAAM,UAAU,WAAa,CAAC;AACrC,6HAA6H;AAC7H,wBAAgB,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,GAAG,IAAI,CAEtD"}
@@ -0,0 +1,36 @@
1
+ import * as THREE from 'three';
2
+ // =============================================================================
3
+ // Pick proxy — one invisible hit shape per object, so hover / click (the Actions tab's triggers, selection)
4
+ // react to the object as a whole instead of to whatever its shaders happen to draw: a text hits on its box,
5
+ // not letter by letter; a particle cloud on its volume, not on one sprite.
6
+ //
7
+ // The proxy is a real mesh that draws nothing (colorWrite / depthWrite off) — not `visible: false`, which the
8
+ // event layer skips. The object's own drawing meshes opt out of raycasting (`stopRaycast`) so the proxy is the
9
+ // only thing the pointer can land on. Its geometry also gives the selection gizmo a true bounding box.
10
+ // =============================================================================
11
+ export const PICK_PROXY_NAME = 'pickProxy';
12
+ export function pickMaterial(side = THREE.DoubleSide) {
13
+ return new THREE.MeshBasicMaterial({ colorWrite: false, depthWrite: false, side });
14
+ }
15
+ /** A unit plane proxy (scale it to the object's extent). */
16
+ export function pickPlane() {
17
+ const m = new THREE.Mesh(new THREE.PlaneGeometry(1, 1), pickMaterial());
18
+ m.name = PICK_PROXY_NAME;
19
+ m.frustumCulled = false;
20
+ m.renderOrder = -1000;
21
+ return m;
22
+ }
23
+ /** A unit sphere proxy (scale it to the object's radius). Front faces only: one hit per ray from outside. */
24
+ export function pickSphere() {
25
+ const m = new THREE.Mesh(new THREE.SphereGeometry(1, 12, 8), pickMaterial(THREE.FrontSide));
26
+ m.name = PICK_PROXY_NAME;
27
+ m.frustumCulled = false;
28
+ m.renderOrder = -1000;
29
+ return m;
30
+ }
31
+ export const NO_RAYCAST = () => null;
32
+ /** Takes every object under `root` out of raycasting (the proxy is the hit target). Idempotent and cheap: safe per frame. */
33
+ export function stopRaycast(root) {
34
+ root.traverse((o) => { if (o.raycast !== NO_RAYCAST)
35
+ o.raycast = NO_RAYCAST; });
36
+ }
@@ -0,0 +1,32 @@
1
+ import { Vector3 } from 'three';
2
+ import type { Object3D } from 'three';
3
+ /**
4
+ * The sky as it was actually drawn this frame — stored, time-driven, keyframed,
5
+ * clip-driven, pointer-driven or mid-drag, whichever won. This is the scene's
6
+ * shared sky state: everything lit by the sky (the key light, volumetric clouds,
7
+ * ocean, terrain — through useCloudSun) reads it before falling back to stored
8
+ * settings, so the sun that is drawn and the sun that lights cannot disagree.
9
+ *
10
+ * Keyed by the R3F scene, so a second canvas (market preview, thumbnail) never
11
+ * reads the editor's sky.
12
+ */
13
+ export interface RenderedSky {
14
+ turbidity: number;
15
+ rayleigh: number;
16
+ mieCoefficient: number;
17
+ mieDirectionalG: number;
18
+ elevation: number;
19
+ azimuth: number;
20
+ /** Unit vector toward the sun, derived from elevation/azimuth here and
21
+ * nowhere else (core sunUtils convention). Read-only for consumers. */
22
+ sunDirection: Vector3;
23
+ }
24
+ export type RenderedSkyValues = Omit<RenderedSky, 'sunDirection'>;
25
+ export declare function publishRenderedSky(scene: Object3D, values: RenderedSkyValues): void;
26
+ export declare function clearRenderedSky(scene: Object3D): void;
27
+ export declare function getRenderedSky(scene: Object3D): RenderedSky | undefined;
28
+ export declare function claimSceneSun(scene: Object3D): () => void;
29
+ export declare function skyOwnsSun(scene: Object3D): boolean;
30
+ /** The scene an object lives in (its top-most ancestor). */
31
+ export declare function sceneOf(object: Object3D): Object3D;
32
+ //# sourceMappingURL=renderedSky.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderedSky.d.ts","sourceRoot":"","sources":["../../src/utils/renderedSky.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAGtC;;;;;;;;;GASG;AACH,MAAM,WAAW,WAAW;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB;4EACwE;IACxE,YAAY,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;AAIlE,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAanF;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,CAEtD;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,QAAQ,GAAG,WAAW,GAAG,SAAS,CAEvE;AAaD,wBAAgB,aAAa,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,IAAI,CAUzD;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAEnD;AAED,4DAA4D;AAC5D,wBAAgB,OAAO,CAAC,MAAM,EAAE,QAAQ,GAAG,QAAQ,CAIlD"}