@3driseai/3drise-viewer 0.1.27 → 0.1.29

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 (690) 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 +44 -3
  4. package/dist/animationsV2/ClipsRuntime.d.ts.map +1 -1
  5. package/dist/animationsV2/ClipsRuntime.js +173 -55
  6. package/dist/animationsV2/appliers.d.ts.map +1 -1
  7. package/dist/animationsV2/appliers.js +21 -5
  8. package/dist/animationsV2/index.d.ts +1 -1
  9. package/dist/animationsV2/index.d.ts.map +1 -1
  10. package/dist/animationsV2/normalize.d.ts.map +1 -1
  11. package/dist/animationsV2/normalize.js +7 -3
  12. package/dist/animationsV2/sequenceUtils.d.ts +44 -6
  13. package/dist/animationsV2/sequenceUtils.d.ts.map +1 -1
  14. package/dist/animationsV2/sequenceUtils.js +58 -12
  15. package/dist/animationsV2/types.d.ts +22 -12
  16. package/dist/animationsV2/types.d.ts.map +1 -1
  17. package/dist/api/sceneHandle.d.ts +35 -1
  18. package/dist/api/sceneHandle.d.ts.map +1 -1
  19. package/dist/api/sceneHandle.js +88 -17
  20. package/dist/components/AdvancedGrid.d.ts +1 -5
  21. package/dist/components/AdvancedGrid.d.ts.map +1 -1
  22. package/dist/components/AdvancedGrid.js +6 -35
  23. package/dist/components/AnimatedObject.d.ts.map +1 -1
  24. package/dist/components/AnimatedObject.js +9 -4
  25. package/dist/components/ApollonianGrid.d.ts +25 -0
  26. package/dist/components/ApollonianGrid.d.ts.map +1 -0
  27. package/dist/components/ApollonianGrid.js +55 -0
  28. package/dist/components/ChladniGrid.d.ts +1 -1
  29. package/dist/components/ChladniGrid.d.ts.map +1 -1
  30. package/dist/components/ChladniGrid.js +6 -35
  31. package/dist/components/CircuitGrid.d.ts +1 -1
  32. package/dist/components/CircuitGrid.d.ts.map +1 -1
  33. package/dist/components/CircuitGrid.js +6 -34
  34. package/dist/components/ConformalGrid.d.ts +25 -0
  35. package/dist/components/ConformalGrid.d.ts.map +1 -0
  36. package/dist/components/ConformalGrid.js +66 -0
  37. package/dist/components/ContourGrid.d.ts +1 -1
  38. package/dist/components/ContourGrid.d.ts.map +1 -1
  39. package/dist/components/ContourGrid.js +6 -34
  40. package/dist/components/CustomPrimitive.js +1 -1
  41. package/dist/components/EnvironmentObject.d.ts.map +1 -1
  42. package/dist/components/EnvironmentObject.js +9 -7
  43. package/dist/components/FlowNetGrid.d.ts +1 -1
  44. package/dist/components/FlowNetGrid.d.ts.map +1 -1
  45. package/dist/components/FlowNetGrid.js +6 -34
  46. package/dist/components/FractalGrid.d.ts +1 -1
  47. package/dist/components/FractalGrid.d.ts.map +1 -1
  48. package/dist/components/FractalGrid.js +6 -37
  49. package/dist/components/Galaxy.d.ts.map +1 -1
  50. package/dist/components/Galaxy.js +9 -23
  51. package/dist/components/GirihGrid.d.ts +1 -1
  52. package/dist/components/GirihGrid.d.ts.map +1 -1
  53. package/dist/components/GirihGrid.js +6 -35
  54. package/dist/components/GravWaveGrid.d.ts +1 -1
  55. package/dist/components/GravWaveGrid.d.ts.map +1 -1
  56. package/dist/components/GravWaveGrid.js +6 -35
  57. package/dist/components/GridsGenerator.d.ts +2 -2
  58. package/dist/components/GridsGenerator.d.ts.map +1 -1
  59. package/dist/components/GridsGenerator.js +21 -0
  60. package/dist/components/HexGrid.d.ts +1 -5
  61. package/dist/components/HexGrid.d.ts.map +1 -1
  62. package/dist/components/HexGrid.js +6 -36
  63. package/dist/components/HilbertGrid.d.ts +25 -0
  64. package/dist/components/HilbertGrid.d.ts.map +1 -0
  65. package/dist/components/HilbertGrid.js +66 -0
  66. package/dist/components/HyperbolicGrid.d.ts +1 -1
  67. package/dist/components/HyperbolicGrid.d.ts.map +1 -1
  68. package/dist/components/HyperbolicGrid.js +6 -34
  69. package/dist/components/LandObject.d.ts +9 -0
  70. package/dist/components/LandObject.d.ts.map +1 -0
  71. package/dist/components/LandObject.js +15 -0
  72. package/dist/components/LensingGrid.d.ts +25 -0
  73. package/dist/components/LensingGrid.d.ts.map +1 -0
  74. package/dist/components/LensingGrid.js +55 -0
  75. package/dist/components/LightsManager.d.ts.map +1 -1
  76. package/dist/components/LightsManager.js +8 -0
  77. package/dist/components/ModelBoundary.d.ts +2 -0
  78. package/dist/components/ModelBoundary.d.ts.map +1 -1
  79. package/dist/components/ModelBoundary.js +3 -0
  80. package/dist/components/ModelPrimitive.d.ts.map +1 -1
  81. package/dist/components/ModelPrimitive.js +6 -0
  82. package/dist/components/MoireGrid.d.ts +1 -1
  83. package/dist/components/MoireGrid.d.ts.map +1 -1
  84. package/dist/components/MoireGrid.js +6 -35
  85. package/dist/components/MoonDisc.d.ts +11 -0
  86. package/dist/components/MoonDisc.d.ts.map +1 -0
  87. package/dist/components/MoonDisc.js +128 -0
  88. package/dist/components/ObjectNode.d.ts.map +1 -1
  89. package/dist/components/ObjectNode.js +15 -4
  90. package/dist/components/ObjectsRenderer.d.ts.map +1 -1
  91. package/dist/components/ObjectsRenderer.js +7 -5
  92. package/dist/components/OceanBuilder.d.ts.map +1 -1
  93. package/dist/components/OceanBuilder.js +2 -0
  94. package/dist/components/ParastichyGrid.d.ts +25 -0
  95. package/dist/components/ParastichyGrid.d.ts.map +1 -0
  96. package/dist/components/ParastichyGrid.js +55 -0
  97. package/dist/components/PhyllotaxisGrid.d.ts +25 -0
  98. package/dist/components/PhyllotaxisGrid.d.ts.map +1 -0
  99. package/dist/components/PhyllotaxisGrid.js +66 -0
  100. package/dist/components/ProjectLoader.d.ts +5 -3
  101. package/dist/components/ProjectLoader.d.ts.map +1 -1
  102. package/dist/components/ProjectLoader.js +6 -3
  103. package/dist/components/QuasiGrid.d.ts +1 -1
  104. package/dist/components/QuasiGrid.d.ts.map +1 -1
  105. package/dist/components/QuasiGrid.js +6 -33
  106. package/dist/components/RadarGrid.d.ts +1 -1
  107. package/dist/components/RadarGrid.d.ts.map +1 -1
  108. package/dist/components/RadarGrid.js +6 -34
  109. package/dist/components/ReactionDiffusionGrid.d.ts +1 -1
  110. package/dist/components/ReactionDiffusionGrid.d.ts.map +1 -1
  111. package/dist/components/ReactionDiffusionGrid.js +6 -35
  112. package/dist/components/SceneBuilder.d.ts +25 -3
  113. package/dist/components/SceneBuilder.d.ts.map +1 -1
  114. package/dist/components/SceneBuilder.js +68 -38
  115. package/dist/components/SkyController.d.ts +25 -1
  116. package/dist/components/SkyController.d.ts.map +1 -1
  117. package/dist/components/SkyController.js +189 -130
  118. package/dist/components/SkyMesh.d.ts.map +1 -1
  119. package/dist/components/SkyMesh.js +26 -1
  120. package/dist/components/SkyStars.d.ts +11 -0
  121. package/dist/components/SkyStars.d.ts.map +1 -0
  122. package/dist/components/SkyStars.js +187 -0
  123. package/dist/components/SkySystem.d.ts +3 -3
  124. package/dist/components/SkySystem.d.ts.map +1 -1
  125. package/dist/components/SkySystem.js +8 -2
  126. package/dist/components/Sun.d.ts +15 -1
  127. package/dist/components/Sun.d.ts.map +1 -1
  128. package/dist/components/Sun.js +64 -3
  129. package/dist/components/SunLight.d.ts +6 -1
  130. package/dist/components/SunLight.d.ts.map +1 -1
  131. package/dist/components/SunLight.js +96 -44
  132. package/dist/components/TerrainBuilder.d.ts.map +1 -1
  133. package/dist/components/TerrainBuilder.js +2 -0
  134. package/dist/components/TextGenerator.d.ts +9 -0
  135. package/dist/components/TextGenerator.d.ts.map +1 -0
  136. package/dist/components/TextGenerator.js +29 -0
  137. package/dist/components/TruchetGrid.d.ts +25 -0
  138. package/dist/components/TruchetGrid.d.ts.map +1 -0
  139. package/dist/components/TruchetGrid.js +55 -0
  140. package/dist/components/VoronoiGrid.d.ts +1 -1
  141. package/dist/components/VoronoiGrid.d.ts.map +1 -1
  142. package/dist/components/VoronoiGrid.js +6 -33
  143. package/dist/components/WallpaperGrid.d.ts +1 -1
  144. package/dist/components/WallpaperGrid.d.ts.map +1 -1
  145. package/dist/components/WallpaperGrid.js +6 -35
  146. package/dist/components/environment/Rain.d.ts +15 -0
  147. package/dist/components/environment/Rain.d.ts.map +1 -0
  148. package/dist/components/environment/Rain.js +110 -0
  149. package/dist/components/environment/Rainbow.d.ts +20 -0
  150. package/dist/components/environment/Rainbow.d.ts.map +1 -0
  151. package/dist/components/environment/Rainbow.js +974 -0
  152. package/dist/components/environment/Sandstorm.d.ts +20 -0
  153. package/dist/components/environment/Sandstorm.d.ts.map +1 -0
  154. package/dist/components/environment/Sandstorm.js +776 -0
  155. package/dist/components/environment/Snow.d.ts +20 -0
  156. package/dist/components/environment/Snow.d.ts.map +1 -0
  157. package/dist/components/environment/Snow.js +609 -0
  158. package/dist/components/environment/Thunderstorm.d.ts +20 -0
  159. package/dist/components/environment/Thunderstorm.d.ts.map +1 -0
  160. package/dist/components/environment/Thunderstorm.js +731 -0
  161. package/dist/components/environment/Tornado.d.ts +20 -0
  162. package/dist/components/environment/Tornado.d.ts.map +1 -0
  163. package/dist/components/environment/Tornado.js +762 -0
  164. package/dist/components/environment/index.d.ts +13 -0
  165. package/dist/components/environment/index.d.ts.map +1 -0
  166. package/dist/components/environment/index.js +7 -0
  167. package/dist/components/index.d.ts +24 -10
  168. package/dist/components/index.d.ts.map +1 -1
  169. package/dist/components/index.js +15 -6
  170. package/dist/components/land/LandPatch.d.ts +15 -0
  171. package/dist/components/land/LandPatch.d.ts.map +1 -0
  172. package/dist/components/land/LandPatch.js +170 -0
  173. package/dist/components/land/index.d.ts +3 -0
  174. package/dist/components/land/index.d.ts.map +1 -0
  175. package/dist/components/land/index.js +1 -0
  176. package/dist/components/space/Earth.d.ts +16 -0
  177. package/dist/components/space/Earth.d.ts.map +1 -0
  178. package/dist/components/space/Earth.js +75 -0
  179. package/dist/components/space/ShootingStar.d.ts +21 -0
  180. package/dist/components/space/ShootingStar.d.ts.map +1 -0
  181. package/dist/components/space/ShootingStar.js +101 -0
  182. package/dist/components/space/ShootingStars.d.ts +16 -0
  183. package/dist/components/space/ShootingStars.d.ts.map +1 -0
  184. package/dist/components/space/ShootingStars.js +71 -0
  185. package/dist/components/space/SolarSystem.d.ts +16 -0
  186. package/dist/components/space/SolarSystem.d.ts.map +1 -0
  187. package/dist/components/space/SolarSystem.js +141 -0
  188. package/dist/components/space/Stars.d.ts +20 -0
  189. package/dist/components/space/Stars.d.ts.map +1 -0
  190. package/dist/components/space/Stars.js +160 -0
  191. package/dist/components/space/index.d.ts +11 -0
  192. package/dist/components/space/index.d.ts.map +1 -0
  193. package/dist/components/space/index.js +8 -0
  194. package/dist/components/terrain/TerrainSurface.d.ts.map +1 -1
  195. package/dist/components/terrain/TerrainSurface.js +27 -3
  196. package/dist/components/terrain/types.d.ts +5 -1
  197. package/dist/components/terrain/types.d.ts.map +1 -1
  198. package/dist/components/text/BurnAwayText.d.ts +15 -0
  199. package/dist/components/text/BurnAwayText.d.ts.map +1 -0
  200. package/dist/components/text/BurnAwayText.js +4 -0
  201. package/dist/components/text/ChalkboardText.d.ts +15 -0
  202. package/dist/components/text/ChalkboardText.d.ts.map +1 -0
  203. package/dist/components/text/ChalkboardText.js +4 -0
  204. package/dist/components/text/ConstellationText.d.ts +15 -0
  205. package/dist/components/text/ConstellationText.d.ts.map +1 -0
  206. package/dist/components/text/ConstellationText.js +4 -0
  207. package/dist/components/text/EmbroideryText.d.ts +15 -0
  208. package/dist/components/text/EmbroideryText.d.ts.map +1 -0
  209. package/dist/components/text/EmbroideryText.js +4 -0
  210. package/dist/components/text/FourierSketchText.d.ts +15 -0
  211. package/dist/components/text/FourierSketchText.d.ts.map +1 -0
  212. package/dist/components/text/FourierSketchText.js +4 -0
  213. package/dist/components/text/FrostGrowthText.d.ts +15 -0
  214. package/dist/components/text/FrostGrowthText.d.ts.map +1 -0
  215. package/dist/components/text/FrostGrowthText.js +4 -0
  216. package/dist/components/text/HandwritingText.d.ts +15 -0
  217. package/dist/components/text/HandwritingText.d.ts.map +1 -0
  218. package/dist/components/text/HandwritingText.js +4 -0
  219. package/dist/components/text/InkBleedText.d.ts +15 -0
  220. package/dist/components/text/InkBleedText.d.ts.map +1 -0
  221. package/dist/components/text/InkBleedText.js +4 -0
  222. package/dist/components/text/LightPaintingText.d.ts +15 -0
  223. package/dist/components/text/LightPaintingText.d.ts.map +1 -0
  224. package/dist/components/text/LightPaintingText.js +4 -0
  225. package/dist/components/text/LiquidMetalText.d.ts +15 -0
  226. package/dist/components/text/LiquidMetalText.d.ts.map +1 -0
  227. package/dist/components/text/LiquidMetalText.js +4 -0
  228. package/dist/components/text/NeonTubeText.d.ts +15 -0
  229. package/dist/components/text/NeonTubeText.d.ts.map +1 -0
  230. package/dist/components/text/NeonTubeText.js +4 -0
  231. package/dist/components/text/PlasmaDischargeText.d.ts +15 -0
  232. package/dist/components/text/PlasmaDischargeText.d.ts.map +1 -0
  233. package/dist/components/text/PlasmaDischargeText.js +4 -0
  234. package/dist/components/text/TextObjectView.d.ts +12 -0
  235. package/dist/components/text/TextObjectView.d.ts.map +1 -0
  236. package/dist/components/text/TextObjectView.js +11 -0
  237. package/dist/components/text/engine/fieldkit.d.ts +24 -0
  238. package/dist/components/text/engine/fieldkit.d.ts.map +1 -0
  239. package/dist/components/text/engine/fieldkit.js +201 -0
  240. package/dist/components/text/engine/glyphs.d.ts +19 -0
  241. package/dist/components/text/engine/glyphs.d.ts.map +1 -0
  242. package/dist/components/text/engine/glyphs.js +269 -0
  243. package/dist/components/text/engine/looks/burnAway.d.ts +144 -0
  244. package/dist/components/text/engine/looks/burnAway.d.ts.map +1 -0
  245. package/dist/components/text/engine/looks/burnAway.js +593 -0
  246. package/dist/components/text/engine/looks/chalkboard.d.ts +135 -0
  247. package/dist/components/text/engine/looks/chalkboard.d.ts.map +1 -0
  248. package/dist/components/text/engine/looks/chalkboard.js +426 -0
  249. package/dist/components/text/engine/looks/constellation.d.ts +111 -0
  250. package/dist/components/text/engine/looks/constellation.d.ts.map +1 -0
  251. package/dist/components/text/engine/looks/constellation.js +496 -0
  252. package/dist/components/text/engine/looks/embroidery.d.ts +165 -0
  253. package/dist/components/text/engine/looks/embroidery.d.ts.map +1 -0
  254. package/dist/components/text/engine/looks/embroidery.js +645 -0
  255. package/dist/components/text/engine/looks/frostGrowth.d.ts +109 -0
  256. package/dist/components/text/engine/looks/frostGrowth.d.ts.map +1 -0
  257. package/dist/components/text/engine/looks/frostGrowth.js +727 -0
  258. package/dist/components/text/engine/looks/index.d.ts +2 -0
  259. package/dist/components/text/engine/looks/index.d.ts.map +1 -0
  260. package/dist/components/text/engine/looks/index.js +48 -0
  261. package/dist/components/text/engine/looks/inkBleed.d.ts +103 -0
  262. package/dist/components/text/engine/looks/inkBleed.d.ts.map +1 -0
  263. package/dist/components/text/engine/looks/inkBleed.js +590 -0
  264. package/dist/components/text/engine/looks/lightPainting.d.ts +132 -0
  265. package/dist/components/text/engine/looks/lightPainting.d.ts.map +1 -0
  266. package/dist/components/text/engine/looks/lightPainting.js +567 -0
  267. package/dist/components/text/engine/looks/liquidMetal.d.ts +135 -0
  268. package/dist/components/text/engine/looks/liquidMetal.d.ts.map +1 -0
  269. package/dist/components/text/engine/looks/liquidMetal.js +655 -0
  270. package/dist/components/text/engine/looks/plasmaDischarge.d.ts +126 -0
  271. package/dist/components/text/engine/looks/plasmaDischarge.d.ts.map +1 -0
  272. package/dist/components/text/engine/looks/plasmaDischarge.js +763 -0
  273. package/dist/components/text/engine/methods.d.ts +19 -0
  274. package/dist/components/text/engine/methods.d.ts.map +1 -0
  275. package/dist/components/text/engine/methods.js +126 -0
  276. package/dist/components/text/engine/playback.d.ts +40 -0
  277. package/dist/components/text/engine/playback.d.ts.map +1 -0
  278. package/dist/components/text/engine/playback.js +114 -0
  279. package/dist/components/text/engine/ribbon.d.ts +58 -0
  280. package/dist/components/text/engine/ribbon.d.ts.map +1 -0
  281. package/dist/components/text/engine/ribbon.js +250 -0
  282. package/dist/components/text/engine/variants.d.ts +159 -0
  283. package/dist/components/text/engine/variants.d.ts.map +1 -0
  284. package/dist/components/text/engine/variants.js +378 -0
  285. package/dist/components/text/fonts/architects-daughter.outline.d.ts +3 -0
  286. package/dist/components/text/fonts/architects-daughter.outline.d.ts.map +1 -0
  287. package/dist/components/text/fonts/architects-daughter.outline.js +4 -0
  288. package/dist/components/text/fonts/architects-daughter.strokes.d.ts +3 -0
  289. package/dist/components/text/fonts/architects-daughter.strokes.d.ts.map +1 -0
  290. package/dist/components/text/fonts/architects-daughter.strokes.js +4 -0
  291. package/dist/components/text/fonts/caveat.outline.d.ts +3 -0
  292. package/dist/components/text/fonts/caveat.outline.d.ts.map +1 -0
  293. package/dist/components/text/fonts/caveat.outline.js +4 -0
  294. package/dist/components/text/fonts/caveat.strokes.d.ts +3 -0
  295. package/dist/components/text/fonts/caveat.strokes.d.ts.map +1 -0
  296. package/dist/components/text/fonts/caveat.strokes.js +4 -0
  297. package/dist/components/text/fonts/courgette.outline.d.ts +3 -0
  298. package/dist/components/text/fonts/courgette.outline.d.ts.map +1 -0
  299. package/dist/components/text/fonts/courgette.outline.js +4 -0
  300. package/dist/components/text/fonts/courgette.strokes.d.ts +3 -0
  301. package/dist/components/text/fonts/courgette.strokes.d.ts.map +1 -0
  302. package/dist/components/text/fonts/courgette.strokes.js +4 -0
  303. package/dist/components/text/fonts/dancing-script.outline.d.ts +3 -0
  304. package/dist/components/text/fonts/dancing-script.outline.d.ts.map +1 -0
  305. package/dist/components/text/fonts/dancing-script.outline.js +4 -0
  306. package/dist/components/text/fonts/dancing-script.strokes.d.ts +3 -0
  307. package/dist/components/text/fonts/dancing-script.strokes.d.ts.map +1 -0
  308. package/dist/components/text/fonts/dancing-script.strokes.js +4 -0
  309. package/dist/components/text/fonts/gochi-hand.outline.d.ts +3 -0
  310. package/dist/components/text/fonts/gochi-hand.outline.d.ts.map +1 -0
  311. package/dist/components/text/fonts/gochi-hand.outline.js +4 -0
  312. package/dist/components/text/fonts/gochi-hand.strokes.d.ts +3 -0
  313. package/dist/components/text/fonts/gochi-hand.strokes.d.ts.map +1 -0
  314. package/dist/components/text/fonts/gochi-hand.strokes.js +4 -0
  315. package/dist/components/text/fonts/handlee.outline.d.ts +3 -0
  316. package/dist/components/text/fonts/handlee.outline.d.ts.map +1 -0
  317. package/dist/components/text/fonts/handlee.outline.js +4 -0
  318. package/dist/components/text/fonts/handlee.strokes.d.ts +3 -0
  319. package/dist/components/text/fonts/handlee.strokes.d.ts.map +1 -0
  320. package/dist/components/text/fonts/handlee.strokes.js +4 -0
  321. package/dist/components/text/fonts/index.d.ts +5 -0
  322. package/dist/components/text/fonts/index.d.ts.map +1 -0
  323. package/dist/components/text/fonts/index.js +44 -0
  324. package/dist/components/text/fonts/indie-flower.outline.d.ts +3 -0
  325. package/dist/components/text/fonts/indie-flower.outline.d.ts.map +1 -0
  326. package/dist/components/text/fonts/indie-flower.outline.js +4 -0
  327. package/dist/components/text/fonts/indie-flower.strokes.d.ts +3 -0
  328. package/dist/components/text/fonts/indie-flower.strokes.d.ts.map +1 -0
  329. package/dist/components/text/fonts/indie-flower.strokes.js +4 -0
  330. package/dist/components/text/fonts/kalam.outline.d.ts +3 -0
  331. package/dist/components/text/fonts/kalam.outline.d.ts.map +1 -0
  332. package/dist/components/text/fonts/kalam.outline.js +4 -0
  333. package/dist/components/text/fonts/kalam.strokes.d.ts +3 -0
  334. package/dist/components/text/fonts/kalam.strokes.d.ts.map +1 -0
  335. package/dist/components/text/fonts/kalam.strokes.js +4 -0
  336. package/dist/components/text/fonts/kaushan-script.outline.d.ts +3 -0
  337. package/dist/components/text/fonts/kaushan-script.outline.d.ts.map +1 -0
  338. package/dist/components/text/fonts/kaushan-script.outline.js +4 -0
  339. package/dist/components/text/fonts/kaushan-script.strokes.d.ts +3 -0
  340. package/dist/components/text/fonts/kaushan-script.strokes.d.ts.map +1 -0
  341. package/dist/components/text/fonts/kaushan-script.strokes.js +4 -0
  342. package/dist/components/text/fonts/mynerve.outline.d.ts +3 -0
  343. package/dist/components/text/fonts/mynerve.outline.d.ts.map +1 -0
  344. package/dist/components/text/fonts/mynerve.outline.js +4 -0
  345. package/dist/components/text/fonts/mynerve.strokes.d.ts +3 -0
  346. package/dist/components/text/fonts/mynerve.strokes.d.ts.map +1 -0
  347. package/dist/components/text/fonts/mynerve.strokes.js +4 -0
  348. package/dist/components/text/fonts/nanum-pen-script.outline.d.ts +3 -0
  349. package/dist/components/text/fonts/nanum-pen-script.outline.d.ts.map +1 -0
  350. package/dist/components/text/fonts/nanum-pen-script.outline.js +4 -0
  351. package/dist/components/text/fonts/nanum-pen-script.strokes.d.ts +3 -0
  352. package/dist/components/text/fonts/nanum-pen-script.strokes.d.ts.map +1 -0
  353. package/dist/components/text/fonts/nanum-pen-script.strokes.js +4 -0
  354. package/dist/components/text/fonts/pacifico.outline.d.ts +3 -0
  355. package/dist/components/text/fonts/pacifico.outline.d.ts.map +1 -0
  356. package/dist/components/text/fonts/pacifico.outline.js +4 -0
  357. package/dist/components/text/fonts/pacifico.strokes.d.ts +3 -0
  358. package/dist/components/text/fonts/pacifico.strokes.d.ts.map +1 -0
  359. package/dist/components/text/fonts/pacifico.strokes.js +4 -0
  360. package/dist/components/text/fonts/patrick-hand.outline.d.ts +3 -0
  361. package/dist/components/text/fonts/patrick-hand.outline.d.ts.map +1 -0
  362. package/dist/components/text/fonts/patrick-hand.outline.js +4 -0
  363. package/dist/components/text/fonts/patrick-hand.strokes.d.ts +3 -0
  364. package/dist/components/text/fonts/patrick-hand.strokes.d.ts.map +1 -0
  365. package/dist/components/text/fonts/patrick-hand.strokes.js +4 -0
  366. package/dist/components/text/fonts/poppins.outline.d.ts +3 -0
  367. package/dist/components/text/fonts/poppins.outline.d.ts.map +1 -0
  368. package/dist/components/text/fonts/poppins.outline.js +4 -0
  369. package/dist/components/text/fonts/poppins.strokes.d.ts +3 -0
  370. package/dist/components/text/fonts/poppins.strokes.d.ts.map +1 -0
  371. package/dist/components/text/fonts/poppins.strokes.js +4 -0
  372. package/dist/components/text/fonts/satisfy.outline.d.ts +3 -0
  373. package/dist/components/text/fonts/satisfy.outline.d.ts.map +1 -0
  374. package/dist/components/text/fonts/satisfy.outline.js +4 -0
  375. package/dist/components/text/fonts/satisfy.strokes.d.ts +3 -0
  376. package/dist/components/text/fonts/satisfy.strokes.d.ts.map +1 -0
  377. package/dist/components/text/fonts/satisfy.strokes.js +4 -0
  378. package/dist/components/text/fonts/sriracha.outline.d.ts +3 -0
  379. package/dist/components/text/fonts/sriracha.outline.d.ts.map +1 -0
  380. package/dist/components/text/fonts/sriracha.outline.js +4 -0
  381. package/dist/components/text/fonts/sriracha.strokes.d.ts +3 -0
  382. package/dist/components/text/fonts/sriracha.strokes.d.ts.map +1 -0
  383. package/dist/components/text/fonts/sriracha.strokes.js +4 -0
  384. package/dist/components/text/index.d.ts +27 -0
  385. package/dist/components/text/index.d.ts.map +1 -0
  386. package/dist/components/text/index.js +13 -0
  387. package/dist/components/text/useTextObject.d.ts +21 -0
  388. package/dist/components/text/useTextObject.d.ts.map +1 -0
  389. package/dist/components/text/useTextObject.js +118 -0
  390. package/dist/components/water/OceanSurface.d.ts.map +1 -1
  391. package/dist/components/water/OceanSurface.js +3 -1
  392. package/dist/components/water/WaterBody.d.ts.map +1 -1
  393. package/dist/components/water/WaterBody.js +3 -1
  394. package/dist/components/water/types.d.ts +5 -1
  395. package/dist/components/water/types.d.ts.map +1 -1
  396. package/dist/constants.d.ts +1 -1
  397. package/dist/constants.d.ts.map +1 -1
  398. package/dist/constants.js +5 -1
  399. package/dist/hooks/index.d.ts +2 -0
  400. package/dist/hooks/index.d.ts.map +1 -1
  401. package/dist/hooks/index.js +1 -0
  402. package/dist/hooks/useCloudSun.d.ts +9 -4
  403. package/dist/hooks/useCloudSun.d.ts.map +1 -1
  404. package/dist/hooks/useCloudSun.js +17 -7
  405. package/dist/hooks/useConfigLive.d.ts +3 -2
  406. package/dist/hooks/useConfigLive.d.ts.map +1 -1
  407. package/dist/hooks/useContinuousEffects.d.ts.map +1 -1
  408. package/dist/hooks/useContinuousEffects.js +4 -10
  409. package/dist/hooks/useEnvironmentProbe.d.ts +3 -22
  410. package/dist/hooks/useEnvironmentProbe.d.ts.map +1 -1
  411. package/dist/hooks/useEnvironmentProbe.js +47 -8
  412. package/dist/hooks/useGridSurface.d.ts +3 -10
  413. package/dist/hooks/useGridSurface.d.ts.map +1 -1
  414. package/dist/hooks/useGridSurface.js +5 -31
  415. package/dist/hooks/useInteraction.d.ts.map +1 -1
  416. package/dist/hooks/useInteraction.js +19 -72
  417. package/dist/hooks/useLightConfig.d.ts +2 -1
  418. package/dist/hooks/useLightConfig.d.ts.map +1 -1
  419. package/dist/hooks/useOceanMaterial.d.ts +6 -2
  420. package/dist/hooks/useOceanMaterial.d.ts.map +1 -1
  421. package/dist/hooks/useOceanMaterial.js +37 -2
  422. package/dist/hooks/useSkyLive.d.ts +23 -0
  423. package/dist/hooks/useSkyLive.d.ts.map +1 -0
  424. package/dist/hooks/useSkyLive.js +30 -0
  425. package/dist/hooks/useSkyUniforms.d.ts.map +1 -1
  426. package/dist/hooks/useSkyUniforms.js +2 -10
  427. package/dist/hooks/useTerrainLive.d.ts +3 -1
  428. package/dist/hooks/useTerrainLive.d.ts.map +1 -1
  429. package/dist/hooks/useTerrainTextures.d.ts +38 -0
  430. package/dist/hooks/useTerrainTextures.d.ts.map +1 -0
  431. package/dist/hooks/useTerrainTextures.js +149 -0
  432. package/dist/index.d.ts +11 -2
  433. package/dist/index.d.ts.map +1 -1
  434. package/dist/index.js +8 -1
  435. package/dist/operations/catalogue/blastOff.d.ts +3 -0
  436. package/dist/operations/catalogue/blastOff.d.ts.map +1 -0
  437. package/dist/operations/catalogue/blastOff.js +118 -0
  438. package/dist/operations/catalogue/bounce.d.ts +3 -0
  439. package/dist/operations/catalogue/bounce.d.ts.map +1 -0
  440. package/dist/operations/catalogue/bounce.js +34 -0
  441. package/dist/operations/catalogue/curlSmoke.d.ts.map +1 -1
  442. package/dist/operations/catalogue/curlSmoke.js +3 -1
  443. package/dist/operations/catalogue/dissolve.d.ts.map +1 -1
  444. package/dist/operations/catalogue/dissolve.js +2 -1
  445. package/dist/operations/catalogue/driftUp.d.ts +3 -0
  446. package/dist/operations/catalogue/driftUp.d.ts.map +1 -0
  447. package/dist/operations/catalogue/driftUp.js +57 -0
  448. package/dist/operations/catalogue/emberAsh.d.ts.map +1 -1
  449. package/dist/operations/catalogue/emberAsh.js +2 -1
  450. package/dist/operations/catalogue/flip.d.ts.map +1 -1
  451. package/dist/operations/catalogue/flip.js +19 -9
  452. package/dist/operations/catalogue/float.d.ts +3 -0
  453. package/dist/operations/catalogue/float.d.ts.map +1 -0
  454. package/dist/operations/catalogue/float.js +39 -0
  455. package/dist/operations/catalogue/flyBy.d.ts +3 -0
  456. package/dist/operations/catalogue/flyBy.d.ts.map +1 -0
  457. package/dist/operations/catalogue/flyBy.js +79 -0
  458. package/dist/operations/catalogue/frost.d.ts.map +1 -1
  459. package/dist/operations/catalogue/frost.js +10 -3
  460. package/dist/operations/catalogue/grow.d.ts +3 -0
  461. package/dist/operations/catalogue/grow.d.ts.map +1 -0
  462. package/dist/operations/catalogue/grow.js +19 -0
  463. package/dist/operations/catalogue/hologram.d.ts.map +1 -1
  464. package/dist/operations/catalogue/hologram.js +11 -5
  465. package/dist/operations/catalogue/jelly.d.ts.map +1 -1
  466. package/dist/operations/catalogue/jelly.js +18 -8
  467. package/dist/operations/catalogue/knockAway.d.ts +3 -0
  468. package/dist/operations/catalogue/knockAway.d.ts.map +1 -0
  469. package/dist/operations/catalogue/knockAway.js +74 -0
  470. package/dist/operations/catalogue/leafFall.d.ts +3 -0
  471. package/dist/operations/catalogue/leafFall.d.ts.map +1 -0
  472. package/dist/operations/catalogue/leafFall.js +74 -0
  473. package/dist/operations/catalogue/lidarScan.d.ts.map +1 -1
  474. package/dist/operations/catalogue/lidarScan.js +4 -1
  475. package/dist/operations/catalogue/metalize.d.ts.map +1 -1
  476. package/dist/operations/catalogue/metalize.js +8 -2
  477. package/dist/operations/catalogue/motionTrail.d.ts +6 -0
  478. package/dist/operations/catalogue/motionTrail.d.ts.map +1 -0
  479. package/dist/operations/catalogue/motionTrail.js +221 -0
  480. package/dist/operations/catalogue/petrify.d.ts.map +1 -1
  481. package/dist/operations/catalogue/petrify.js +9 -3
  482. package/dist/operations/catalogue/physicalExit.d.ts +55 -0
  483. package/dist/operations/catalogue/physicalExit.d.ts.map +1 -0
  484. package/dist/operations/catalogue/physicalExit.js +165 -0
  485. package/dist/operations/catalogue/physicalHeld.d.ts +41 -0
  486. package/dist/operations/catalogue/physicalHeld.d.ts.map +1 -0
  487. package/dist/operations/catalogue/physicalHeld.js +78 -0
  488. package/dist/operations/catalogue/physicalMix.d.ts +45 -0
  489. package/dist/operations/catalogue/physicalMix.d.ts.map +1 -0
  490. package/dist/operations/catalogue/physicalMix.js +144 -0
  491. package/dist/operations/catalogue/pop.d.ts +3 -0
  492. package/dist/operations/catalogue/pop.d.ts.map +1 -0
  493. package/dist/operations/catalogue/pop.js +44 -0
  494. package/dist/operations/catalogue/print3d.d.ts.map +1 -1
  495. package/dist/operations/catalogue/print3d.js +5 -1
  496. package/dist/operations/catalogue/pulse.d.ts +3 -0
  497. package/dist/operations/catalogue/pulse.d.ts.map +1 -0
  498. package/dist/operations/catalogue/pulse.js +29 -0
  499. package/dist/operations/catalogue/restPose.d.ts +5 -7
  500. package/dist/operations/catalogue/restPose.d.ts.map +1 -1
  501. package/dist/operations/catalogue/restPose.js +18 -48
  502. package/dist/operations/catalogue/rotate.d.ts +3 -0
  503. package/dist/operations/catalogue/rotate.d.ts.map +1 -0
  504. package/dist/operations/catalogue/rotate.js +49 -0
  505. package/dist/operations/catalogue/shake.d.ts +3 -0
  506. package/dist/operations/catalogue/shake.d.ts.map +1 -0
  507. package/dist/operations/catalogue/shake.js +31 -0
  508. package/dist/operations/catalogue/shatter.d.ts.map +1 -1
  509. package/dist/operations/catalogue/shatter.js +5 -1
  510. package/dist/operations/catalogue/slam.d.ts +3 -0
  511. package/dist/operations/catalogue/slam.d.ts.map +1 -0
  512. package/dist/operations/catalogue/slam.js +89 -0
  513. package/dist/operations/catalogue/slingshot.d.ts +3 -0
  514. package/dist/operations/catalogue/slingshot.d.ts.map +1 -0
  515. package/dist/operations/catalogue/slingshot.js +88 -0
  516. package/dist/operations/catalogue/spin.d.ts.map +1 -1
  517. package/dist/operations/catalogue/spin.js +24 -13
  518. package/dist/operations/catalogue/sway.d.ts +3 -0
  519. package/dist/operations/catalogue/sway.d.ts.map +1 -0
  520. package/dist/operations/catalogue/sway.js +23 -0
  521. package/dist/operations/catalogue/swirl.d.ts.map +1 -1
  522. package/dist/operations/catalogue/swirl.js +6 -5
  523. package/dist/operations/catalogue/trailCore.d.ts +89 -0
  524. package/dist/operations/catalogue/trailCore.d.ts.map +1 -0
  525. package/dist/operations/catalogue/trailCore.js +190 -0
  526. package/dist/operations/catalogue/trailGhosts.d.ts +5 -0
  527. package/dist/operations/catalogue/trailGhosts.d.ts.map +1 -0
  528. package/dist/operations/catalogue/trailGhosts.js +179 -0
  529. package/dist/operations/catalogue/trailStampStyles.d.ts +11 -0
  530. package/dist/operations/catalogue/trailStampStyles.d.ts.map +1 -0
  531. package/dist/operations/catalogue/trailStampStyles.js +479 -0
  532. package/dist/operations/catalogue/trailStamps.d.ts +57 -0
  533. package/dist/operations/catalogue/trailStamps.d.ts.map +1 -0
  534. package/dist/operations/catalogue/trailStamps.js +349 -0
  535. package/dist/operations/catalogue/trailStreaks.d.ts +3 -0
  536. package/dist/operations/catalogue/trailStreaks.d.ts.map +1 -0
  537. package/dist/operations/catalogue/trailStreaks.js +147 -0
  538. package/dist/operations/catalogue/transitionField.d.ts +30 -0
  539. package/dist/operations/catalogue/transitionField.d.ts.map +1 -1
  540. package/dist/operations/catalogue/transitionField.js +21 -0
  541. package/dist/operations/catalogue/turnAway.d.ts +3 -0
  542. package/dist/operations/catalogue/turnAway.d.ts.map +1 -0
  543. package/dist/operations/catalogue/turnAway.js +54 -0
  544. package/dist/operations/catalogue/vortexDrain.d.ts +3 -0
  545. package/dist/operations/catalogue/vortexDrain.d.ts.map +1 -0
  546. package/dist/operations/catalogue/vortexDrain.js +68 -0
  547. package/dist/operations/catalogue/warp.d.ts +3 -0
  548. package/dist/operations/catalogue/warp.d.ts.map +1 -0
  549. package/dist/operations/catalogue/warp.js +73 -0
  550. package/dist/operations/catalogue/whoosh.d.ts +3 -0
  551. package/dist/operations/catalogue/whoosh.d.ts.map +1 -0
  552. package/dist/operations/catalogue/whoosh.js +84 -0
  553. package/dist/operations/catalogue/wobble.d.ts +3 -0
  554. package/dist/operations/catalogue/wobble.d.ts.map +1 -0
  555. package/dist/operations/catalogue/wobble.js +23 -0
  556. package/dist/operations/clipPreview.d.ts +3 -0
  557. package/dist/operations/clipPreview.d.ts.map +1 -0
  558. package/dist/operations/clipPreview.js +20 -0
  559. package/dist/operations/groupFanout.d.ts +96 -0
  560. package/dist/operations/groupFanout.d.ts.map +1 -0
  561. package/dist/operations/groupFanout.js +365 -0
  562. package/dist/operations/groups.d.ts +20 -0
  563. package/dist/operations/groups.d.ts.map +1 -0
  564. package/dist/operations/groups.js +66 -0
  565. package/dist/operations/index.d.ts +5 -2
  566. package/dist/operations/index.d.ts.map +1 -1
  567. package/dist/operations/index.js +5 -2
  568. package/dist/operations/objectEffects.d.ts +161 -6
  569. package/dist/operations/objectEffects.d.ts.map +1 -1
  570. package/dist/operations/objectEffects.js +1091 -17
  571. package/dist/operations/registry.d.ts.map +1 -1
  572. package/dist/operations/registry.js +24 -2
  573. package/dist/operations/runtime.d.ts +57 -2
  574. package/dist/operations/runtime.d.ts.map +1 -1
  575. package/dist/operations/runtime.js +161 -18
  576. package/dist/operations/types.d.ts +60 -3
  577. package/dist/operations/types.d.ts.map +1 -1
  578. package/dist/operations/types.js +5 -1
  579. package/dist/operations/useObjectEffectLayers.d.ts +2 -2
  580. package/dist/operations/useObjectEffectLayers.d.ts.map +1 -1
  581. package/dist/operations/useObjectEffectLayers.js +31 -10
  582. package/dist/operations/usePresentedVisibility.d.ts +10 -0
  583. package/dist/operations/usePresentedVisibility.d.ts.map +1 -0
  584. package/dist/operations/usePresentedVisibility.js +53 -0
  585. package/dist/presets/terrainBiomes.d.ts +67 -0
  586. package/dist/presets/terrainBiomes.d.ts.map +1 -0
  587. package/dist/presets/terrainBiomes.js +294 -0
  588. package/dist/presets/terrainPresets.d.ts +6 -0
  589. package/dist/presets/terrainPresets.d.ts.map +1 -1
  590. package/dist/presets/terrainPresets.js +26 -38
  591. package/dist/shaders/glsl/oceanCore.glsl.d.ts +2 -2
  592. package/dist/shaders/glsl/oceanCore.glsl.d.ts.map +1 -1
  593. package/dist/shaders/glsl/oceanCore.glsl.js +17 -0
  594. package/dist/shaders/glsl/surfaceCore.glsl.d.ts +21 -0
  595. package/dist/shaders/glsl/surfaceCore.glsl.d.ts.map +1 -0
  596. package/dist/shaders/glsl/surfaceCore.glsl.js +120 -0
  597. package/dist/shaders/glsl/terrainCore.glsl.d.ts +16 -3
  598. package/dist/shaders/glsl/terrainCore.glsl.d.ts.map +1 -1
  599. package/dist/shaders/glsl/terrainCore.glsl.js +266 -20
  600. package/dist/shaders/ocean/OceanSurfaceMaterial.d.ts +2 -0
  601. package/dist/shaders/ocean/OceanSurfaceMaterial.d.ts.map +1 -1
  602. package/dist/shaders/ocean/OceanSurfaceMaterial.js +3 -0
  603. package/dist/shaders/terrain/TerrainMaterial.d.ts +17 -0
  604. package/dist/shaders/terrain/TerrainMaterial.d.ts.map +1 -1
  605. package/dist/shaders/terrain/TerrainMaterial.js +107 -8
  606. package/dist/triggers/engine.d.ts +44 -0
  607. package/dist/triggers/engine.d.ts.map +1 -0
  608. package/dist/triggers/engine.js +165 -0
  609. package/dist/triggers/hosts/actions.d.ts +8 -0
  610. package/dist/triggers/hosts/actions.d.ts.map +1 -0
  611. package/dist/triggers/hosts/actions.js +22 -0
  612. package/dist/triggers/hosts/interactions.d.ts +6 -0
  613. package/dist/triggers/hosts/interactions.d.ts.map +1 -0
  614. package/dist/triggers/hosts/interactions.js +4 -0
  615. package/dist/triggers/hosts/timelineCues.d.ts +2 -0
  616. package/dist/triggers/hosts/timelineCues.d.ts.map +1 -0
  617. package/dist/triggers/hosts/timelineCues.js +22 -0
  618. package/dist/triggers/index.d.ts +13 -0
  619. package/dist/triggers/index.d.ts.map +1 -0
  620. package/dist/triggers/index.js +9 -0
  621. package/dist/triggers/kinds/action.d.ts +2 -0
  622. package/dist/triggers/kinds/action.d.ts.map +1 -0
  623. package/dist/triggers/kinds/action.js +31 -0
  624. package/dist/triggers/kinds/animations.d.ts +2 -0
  625. package/dist/triggers/kinds/animations.d.ts.map +1 -0
  626. package/dist/triggers/kinds/animations.js +75 -0
  627. package/dist/triggers/kinds/effects.d.ts +2 -0
  628. package/dist/triggers/kinds/effects.d.ts.map +1 -0
  629. package/dist/triggers/kinds/effects.js +27 -0
  630. package/dist/triggers/kinds/index.d.ts +4 -0
  631. package/dist/triggers/kinds/index.d.ts.map +1 -0
  632. package/dist/triggers/kinds/index.js +4 -0
  633. package/dist/triggers/log.d.ts +21 -0
  634. package/dist/triggers/log.d.ts.map +1 -0
  635. package/dist/triggers/log.js +43 -0
  636. package/dist/triggers/readiness.d.ts +40 -0
  637. package/dist/triggers/readiness.d.ts.map +1 -0
  638. package/dist/triggers/readiness.js +158 -0
  639. package/dist/triggers/registry.d.ts +41 -0
  640. package/dist/triggers/registry.d.ts.map +1 -0
  641. package/dist/triggers/registry.js +7 -0
  642. package/dist/types/gridConfigs.d.ts +117 -19
  643. package/dist/types/gridConfigs.d.ts.map +1 -1
  644. package/dist/types/index.d.ts +1 -1
  645. package/dist/types/index.d.ts.map +1 -1
  646. package/dist/ui/UiAnchorUpdater.d.ts +10 -0
  647. package/dist/ui/UiAnchorUpdater.d.ts.map +1 -0
  648. package/dist/ui/UiAnchorUpdater.js +111 -0
  649. package/dist/ui/UiLayers.d.ts +20 -0
  650. package/dist/ui/UiLayers.d.ts.map +1 -0
  651. package/dist/ui/UiLayers.js +57 -0
  652. package/dist/ui/index.d.ts +9 -0
  653. package/dist/ui/index.d.ts.map +1 -0
  654. package/dist/ui/index.js +6 -0
  655. package/dist/ui/uiAnchors.d.ts +21 -0
  656. package/dist/ui/uiAnchors.d.ts.map +1 -0
  657. package/dist/ui/uiAnchors.js +22 -0
  658. package/dist/ui/uiBaseStyles.d.ts +2 -0
  659. package/dist/ui/uiBaseStyles.d.ts.map +1 -0
  660. package/dist/ui/uiBaseStyles.js +100 -0
  661. package/dist/ui/uiBinder.d.ts +30 -0
  662. package/dist/ui/uiBinder.d.ts.map +1 -0
  663. package/dist/ui/uiBinder.js +344 -0
  664. package/dist/utils/configAnimations.d.ts.map +1 -1
  665. package/dist/utils/configAnimations.js +5 -1
  666. package/dist/utils/gridConfig.d.ts +1 -1
  667. package/dist/utils/gridConfig.d.ts.map +1 -1
  668. package/dist/utils/gridConfig.js +1 -1
  669. package/dist/utils/landPatch.d.ts +33 -0
  670. package/dist/utils/landPatch.d.ts.map +1 -0
  671. package/dist/utils/landPatch.js +114 -0
  672. package/dist/utils/renderedSky.d.ts +32 -0
  673. package/dist/utils/renderedSky.d.ts.map +1 -0
  674. package/dist/utils/renderedSky.js +57 -0
  675. package/dist/utils/skyMoon.d.ts +35 -0
  676. package/dist/utils/skyMoon.d.ts.map +1 -0
  677. package/dist/utils/skyMoon.js +41 -0
  678. package/dist/utils/terrainHeight.d.ts +4 -0
  679. package/dist/utils/terrainHeight.d.ts.map +1 -0
  680. package/dist/utils/terrainHeight.js +150 -0
  681. package/dist/utils/terrainTextureResolver.d.ts +18 -0
  682. package/dist/utils/terrainTextureResolver.d.ts.map +1 -0
  683. package/dist/utils/terrainTextureResolver.js +17 -0
  684. package/dist/utils/terrainUniforms.d.ts +17 -0
  685. package/dist/utils/terrainUniforms.d.ts.map +1 -1
  686. package/dist/utils/terrainUniforms.js +84 -0
  687. package/dist/utils/textureArrays.d.ts +29 -0
  688. package/dist/utils/textureArrays.d.ts.map +1 -0
  689. package/dist/utils/textureArrays.js +140 -0
  690. package/package.json +2 -2
@@ -0,0 +1,19 @@
1
+ export declare const DRAW_METHODS: string[];
2
+ export declare const ERASE_METHODS: string[];
3
+ export declare const TIP_METHODS: string[];
4
+ export declare function prepare(strokes: any, mode: any): void;
5
+ export declare function extentOf(strokes: any): {
6
+ x0: number;
7
+ y0: number;
8
+ x1: number;
9
+ y1: number;
10
+ w: number;
11
+ h: number;
12
+ };
13
+ export declare function applyDraw(method: any, strokes: any, o: any, ctx: any): any;
14
+ export declare function applyErase(method: any, strokes: any, o: any, ctx: any): any;
15
+ export declare function applyAnim(strokes: any, anim: any, G: any): {
16
+ infoD: any;
17
+ infoE: any;
18
+ };
19
+ //# sourceMappingURL=methods.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"methods.d.ts","sourceRoot":"","sources":["../../../../src/components/text/engine/methods.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,YAAY,UAAwF,CAAC;AAClH,eAAO,MAAM,aAAa,UAAyG,CAAC;AACpI,eAAO,MAAM,WAAW,UAA+B,CAAC;AASxD,wBAAgB,OAAO,CAAC,OAAO,KAAA,EAAE,IAAI,KAAA,QAMpC;AACD,wBAAgB,QAAQ,CAAC,OAAO,KAAA;;;;;;;EAI/B;AA2CD,wBAAgB,SAAS,CAAC,MAAM,KAAA,EAAE,OAAO,KAAA,EAAE,CAAC,KAAA,EAAE,GAAG,KAAA,OAIhD;AACD,wBAAgB,UAAU,CAAC,MAAM,KAAA,EAAE,OAAO,KAAA,EAAE,CAAC,KAAA,EAAE,GAAG,KAAA,OASjD;AAED,wBAAgB,SAAS,CAAC,OAAO,KAAA,EAAE,IAAI,KAAA,EAAE,CAAC,KAAA;;;EAKzC"}
@@ -0,0 +1,126 @@
1
+ import { penTiming } from './glyphs.js';
2
+ // Draw / erase methods. A method only fills the schedule fields of each stroke:
3
+ // draw : s.seg (window in global progress) + s.t (per-point time inside the window)
4
+ // erase: s.segO + s.tO
5
+ // Methods are shared by every look. A few are look-native (epicycle). 'none' = no animation, 'cut' = instant erase.
6
+ export const DRAW_METHODS = ['pen', 'trace', 'bothEnds', 'wipe', 'radial', 'scatter', 'dissolve', 'fade', 'none'];
7
+ export const ERASE_METHODS = ['fade', 'undraw', 'wipe', 'radial', 'scatter', 'dissolve', 'trace', 'bothEnds', 'pen', 'cut', 'none'];
8
+ export const TIP_METHODS = ['pen', 'trace', 'epicycle']; // methods that have a visible pen / front
9
+ const hash = (a, b = 0) => { const x = Math.sin(a * 127.1 + b * 311.7) * 43758.5453; return x - Math.floor(x); };
10
+ const arcT = (s) => { const n = s.pts.length / 2, a = new Float32Array(n); for (let i = 0; i < n; i++)
11
+ a[i] = s.cum[i] / Math.max(1e-9, s.len); return a; };
12
+ const pathT = (s) => (s.pt ? Float32Array.from(s.pt) : arcT(s));
13
+ const fill = (n, v) => new Float32Array(n).fill(v);
14
+ const nOf = (s) => s.pts.length / 2;
15
+ // mode: 'hand' (pen timing from the 2/3 power law), 'outline' (time ~ length), 'keep' (stroke already has t)
16
+ export function prepare(strokes, mode) {
17
+ for (const s of strokes) {
18
+ if (mode === 'hand') {
19
+ penTiming(s);
20
+ s.pt = s.t;
21
+ s.ptime = s.time;
22
+ s.t = null;
23
+ }
24
+ else if (mode === 'keep') {
25
+ s.pt = s.t;
26
+ s.ptime = s.ptime || Math.max(s.len, 1e-3);
27
+ s.t = null;
28
+ }
29
+ else {
30
+ s.pt = null;
31
+ s.ptime = Math.max(s.len, 1e-3);
32
+ s.t = null;
33
+ }
34
+ }
35
+ }
36
+ export function extentOf(strokes) {
37
+ let x0 = 1e9, y0 = 1e9, x1 = -1e9, y1 = -1e9;
38
+ for (const s of strokes)
39
+ for (let i = 0; i < s.pts.length; i += 2) {
40
+ x0 = Math.min(x0, s.pts[i]);
41
+ x1 = Math.max(x1, s.pts[i]);
42
+ y0 = Math.min(y0, s.pts[i + 1]);
43
+ y1 = Math.max(y1, s.pts[i + 1]);
44
+ }
45
+ return { x0, y0, x1, y1, w: Math.max(1e-6, x1 - x0), h: Math.max(1e-6, y1 - y0) };
46
+ }
47
+ // returns { sched: [{seg, t}], info: {soft, fade, tip} }
48
+ const GEN = {
49
+ pen(strokes) {
50
+ const avg = strokes.reduce((a, s) => a + s.ptime, 0) / Math.max(1, strokes.length), gap = 0.2 * avg;
51
+ const sum = strokes.reduce((a, s) => a + s.ptime + gap, 0);
52
+ let c = 0;
53
+ return { sched: strokes.map((s) => { const r = { seg: [c / sum, (c + s.ptime) / sum], t: pathT(s) }; c += s.ptime + gap; return r; }), info: { soft: 0.004 } };
54
+ },
55
+ trace(strokes, o, ctx) {
56
+ const G = ctx.G, st = o.stagger / G, win = 1 - (G - 1) * st;
57
+ return { sched: strokes.map((s) => ({ seg: [s.glyph * st, s.glyph * st + win], t: pathT(s) })), info: { soft: 0.004 } };
58
+ },
59
+ epicycle(strokes, o, ctx) {
60
+ const G = ctx.G;
61
+ return { sched: strokes.map((s) => ({ seg: [s.glyph / G, (s.glyph + 1) / G], t: pathT(s) })), info: { soft: 0.004 } };
62
+ },
63
+ bothEnds(strokes, o, ctx) {
64
+ const G = ctx.G, st = o.stagger / G, win = 1 - (G - 1) * st;
65
+ return { sched: strokes.map((s) => { const u = arcT(s); const t = u.map((x) => 2 * Math.min(x, 1 - x)); return { seg: [s.glyph * st, s.glyph * st + win], t }; }), info: { soft: 0.02 } };
66
+ },
67
+ wipe(strokes, o, ctx) {
68
+ const a = ((o.angle || 0) * Math.PI) / 180, dx = Math.cos(a), dy = Math.sin(a);
69
+ const e = ctx.ext;
70
+ const proj = (x, y) => (x - e.x0) * dx + (y - e.y0) * dy;
71
+ const corners = [proj(e.x0, e.y0), proj(e.x1, e.y0), proj(e.x0, e.y1), proj(e.x1, e.y1)];
72
+ const lo = Math.min(...corners), hi = Math.max(...corners), span = Math.max(1e-6, hi - lo);
73
+ return { sched: strokes.map((s) => { const n = nOf(s), t = new Float32Array(n); for (let i = 0; i < n; i++)
74
+ t[i] = (proj(s.pts[2 * i], s.pts[2 * i + 1]) - lo) / span; return { seg: [0, 1], t }; }), info: { soft: 0.14 } };
75
+ },
76
+ radial(strokes, o, ctx) {
77
+ const e = ctx.ext, cx = (e.x0 + e.x1) / 2, cy = (e.y0 + e.y1) / 2;
78
+ let rm = 1e-6;
79
+ const R = (x, y) => Math.hypot(x - cx, (y - cy) * 2.0);
80
+ for (const s of strokes)
81
+ for (let i = 0; i < s.pts.length; i += 2)
82
+ rm = Math.max(rm, R(s.pts[i], s.pts[i + 1]));
83
+ return { sched: strokes.map((s) => { const n = nOf(s), t = new Float32Array(n); for (let i = 0; i < n; i++)
84
+ t[i] = R(s.pts[2 * i], s.pts[2 * i + 1]) / rm; return { seg: [0, 1], t }; }), info: { soft: 0.14 } };
85
+ },
86
+ scatter(strokes, o, ctx) {
87
+ return { sched: strokes.map((s) => { const h = hash(s.glyph, ctx.seed); return { seg: [h * 0.6, h * 0.6 + 0.4], t: pathT(s) }; }), info: { soft: 0.004 } };
88
+ },
89
+ dissolve(strokes, o, ctx) {
90
+ return { sched: strokes.map((s, si) => { const n = nOf(s), t = new Float32Array(n); for (let i = 0; i < n; i++)
91
+ t[i] = hash(Math.floor(s.cum[i] / 0.07), s.glyph * 7 + si + ctx.seed); return { seg: [0, 1], t }; }), info: { soft: 0.2 } };
92
+ },
93
+ fade(strokes) { return { sched: strokes.map((s) => ({ seg: [0, 1], t: fill(nOf(s), 0) })), info: { soft: 0.004, fade: true } }; },
94
+ };
95
+ GEN.none = GEN.fade;
96
+ GEN.cut = GEN.fade;
97
+ export function applyDraw(method, strokes, o, ctx) {
98
+ const g = (GEN[method] || GEN.fade)(strokes, o, { ...ctx, seed: 0 });
99
+ strokes.forEach((s, i) => { s.seg = g.sched[i].seg; s.t = g.sched[i].t; });
100
+ ctx.drawSched = g.sched;
101
+ return { soft: 0.004, tip: TIP_METHODS.includes(method), fade: false, ...g.info };
102
+ }
103
+ export function applyErase(method, strokes, o, ctx) {
104
+ let sched, info = { soft: 0.004 };
105
+ if (method === 'undraw') { // mirror of the draw: last drawn goes first, each stroke from its end
106
+ sched = ctx.drawSched.map((d) => ({ seg: [1 - d.seg[1], 1 - d.seg[0]], t: d.t.map((x) => 1 - x) }));
107
+ info = { soft: ctx.drawInfo ? ctx.drawInfo.soft : 0.004, fade: !!(ctx.drawInfo && ctx.drawInfo.fade) };
108
+ if (info.fade)
109
+ info.soft = 0.004;
110
+ }
111
+ else {
112
+ const g = (GEN[method] || GEN.fade)(strokes, o, { ...ctx, seed: 5 });
113
+ sched = g.sched;
114
+ info = { soft: 0.004, ...g.info };
115
+ }
116
+ strokes.forEach((s, i) => { s.segO = sched[i].seg; s.tO = sched[i].t; });
117
+ return { soft: 0.004, fade: false, ...info };
118
+ }
119
+ // convenience: set up both schedules, returns {infoD, infoE}
120
+ export function applyAnim(strokes, anim, G) {
121
+ const ctx = { G: Math.max(1, G), ext: extentOf(strokes) };
122
+ const infoD = applyDraw(anim.draw.method, strokes, anim.draw, ctx);
123
+ ctx.drawInfo = infoD;
124
+ const infoE = applyErase(anim.erase.method, strokes, anim.erase, ctx);
125
+ return { infoD, infoE };
126
+ }
@@ -0,0 +1,40 @@
1
+ export declare const EASES: {
2
+ linear: (t: any) => any;
3
+ easeInOut: (t: any) => number;
4
+ easeOut: (t: any) => number;
5
+ easeIn: (t: any) => number;
6
+ };
7
+ export declare const hasAnim: (m: any) => boolean;
8
+ export declare function cycleLength(cfg: any): number;
9
+ export declare function cycleAt(tau: any, cfg: any): {
10
+ d: number;
11
+ e: number;
12
+ since: number;
13
+ };
14
+ export declare function createPlayback(): {
15
+ S: {
16
+ d: number;
17
+ e: number;
18
+ since: number;
19
+ mode: string;
20
+ s: number;
21
+ clock: number;
22
+ paused: boolean;
23
+ };
24
+ hide(): void;
25
+ reset(cfg: any): void;
26
+ restart(cfg: any): void;
27
+ playDraw(cfg: any): void;
28
+ playErase(cfg: any): void;
29
+ seek(cfg: any, u: any): void;
30
+ step(dt: any, cfg: any): {
31
+ d: number;
32
+ e: number;
33
+ since: number;
34
+ mode: string;
35
+ s: number;
36
+ clock: number;
37
+ paused: boolean;
38
+ };
39
+ };
40
+ //# sourceMappingURL=playback.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"playback.d.ts","sourceRoot":"","sources":["../../../../src/components/text/engine/playback.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,KAAK;;;;;CAKjB,CAAC;AAEF,eAAO,MAAM,OAAO,GAAI,MAAC,YAAsB,CAAC;AAGhD,wBAAgB,WAAW,CAAC,GAAG,KAAA,UAE9B;AAED,wBAAgB,OAAO,CAAC,GAAG,KAAA,EAAE,GAAG,KAAA;;;;EAa/B;AAED,wBAAgB,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;EA6B7B"}
@@ -0,0 +1,114 @@
1
+ // Playback controller. The text is a normal running object (constant state: drawn, idle effects on real time).
2
+ // Draw and erase are optional animations layered on top. Output each frame: d (draw 0..1), e (erase 0..1),
3
+ // since (seconds since the draw finished, drives drying / settling).
4
+ //
5
+ // Cycle (loop): hidden gap -> draw -> hold -> erase -> hidden gap -> repeat.
6
+ // Yoyo: the whole cycle plays forward, then backward (erase reversed = re-appears, draw reversed = un-draws).
7
+ export const EASES = {
8
+ linear: (t) => t,
9
+ easeInOut: (t) => (t < 0.5 ? 4 * t * t * t : 1 - Math.pow(-2 * t + 2, 3) / 2),
10
+ easeOut: (t) => 1 - Math.pow(1 - t, 3),
11
+ easeIn: (t) => t * t * t,
12
+ };
13
+ const clamp01 = (x) => Math.max(0, Math.min(1, x));
14
+ export const hasAnim = (m) => m && m !== 'none';
15
+ const durOf = (c, isErase) => (!hasAnim(c.method) || (isErase && c.method === 'cut') ? 0 : Math.max(0, c.duration));
16
+ export function cycleLength(cfg) {
17
+ const g = cfg.play.hiddenTime;
18
+ return Math.max(0.01, g + durOf(cfg.draw, false) + cfg.play.holdTime + durOf(cfg.erase, true) + g);
19
+ }
20
+ // cycle clock tau -> state
21
+ export function cycleAt(tau, cfg) {
22
+ const g = cfg.play.hiddenTime, Dd = durOf(cfg.draw, false), H = cfg.play.holdTime, De = durOf(cfg.erase, true);
23
+ const ed = EASES[cfg.draw.ease] || EASES.easeInOut, ee = EASES[cfg.erase.ease] || EASES.easeInOut;
24
+ const hasErase = hasAnim(cfg.erase.method);
25
+ let d = 0, e = 0;
26
+ if (tau < g) {
27
+ d = 0;
28
+ e = 0;
29
+ }
30
+ else if (tau < g + Dd) {
31
+ d = ed((tau - g) / Dd);
32
+ }
33
+ else if (tau < g + Dd + H) {
34
+ d = 1;
35
+ }
36
+ else if (tau < g + Dd + H + De) {
37
+ d = 1;
38
+ e = ee((tau - g - Dd - H) / De);
39
+ }
40
+ else {
41
+ d = 1;
42
+ e = hasErase ? 1 : 0;
43
+ if (!hasErase)
44
+ d = 0;
45
+ } // no erase: cut back to hidden
46
+ if (Dd === 0 && tau >= g)
47
+ d = 1;
48
+ const since = Math.max(0, tau - g - Dd);
49
+ return { d, e, since };
50
+ }
51
+ export function createPlayback() {
52
+ const S = { d: 1, e: 0, since: 99, mode: 'idle', s: 0, clock: 0, paused: false };
53
+ const api = {
54
+ S,
55
+ hide() { S.mode = 'hidden'; S.d = 1; S.e = 1; S.paused = false; },
56
+ reset(cfg) { S.paused = false; S.clock = 0; S.s = 0; S.d = 1; S.e = 0; S.since = 99; S.mode = 'idle'; if (cfg.play.autoPlay)
57
+ api.restart(cfg); },
58
+ restart(cfg) { S.paused = false; S.clock = 0; if (cfg.play.loop) {
59
+ S.mode = 'cycle';
60
+ }
61
+ else
62
+ api.playDraw(cfg); },
63
+ playDraw(cfg) { S.paused = false; S.s = 0; S.d = 0; S.e = 0; S.since = 0; S.mode = hasAnim(cfg.draw.method) ? 'drawing' : 'idle'; if (S.mode === 'idle') {
64
+ S.d = 1;
65
+ } },
66
+ playErase(cfg) { S.paused = false; S.s = 0; S.d = 1; S.e = 0; S.mode = 'erasing'; if (durOf(cfg.erase, true) === 0) {
67
+ S.e = 1;
68
+ S.mode = 'hidden';
69
+ } },
70
+ seek(cfg, u) { S.mode = 'cycle'; S.paused = true; S.clock = u; api.step(0, cfg); },
71
+ step(dt, cfg) {
72
+ if (S.mode === 'cycle') {
73
+ const T = cycleLength(cfg);
74
+ if (!S.paused)
75
+ S.clock += dt;
76
+ let tau;
77
+ if (cfg.play.yoyo) {
78
+ const u = S.clock % (2 * T);
79
+ tau = u < T ? u : 2 * T - u;
80
+ }
81
+ else
82
+ tau = S.clock % T;
83
+ const r = cycleAt(tau, cfg);
84
+ S.d = r.d;
85
+ S.e = r.e;
86
+ S.since = r.since;
87
+ }
88
+ else if (S.mode === 'drawing') {
89
+ const D = durOf(cfg.draw, false);
90
+ S.s += dt / Math.max(D, 1e-4);
91
+ S.d = (EASES[cfg.draw.ease] || EASES.easeInOut)(clamp01(S.s));
92
+ S.since = 0;
93
+ if (S.s >= 1) {
94
+ S.mode = 'idle';
95
+ S.d = 1;
96
+ }
97
+ }
98
+ else if (S.mode === 'idle') {
99
+ S.since = Math.min(99, S.since + dt);
100
+ }
101
+ else if (S.mode === 'erasing') {
102
+ const D = durOf(cfg.erase, true);
103
+ S.s += dt / Math.max(D, 1e-4);
104
+ S.e = (EASES[cfg.erase.ease] || EASES.easeInOut)(clamp01(S.s));
105
+ if (S.s >= 1) {
106
+ S.mode = 'hidden';
107
+ S.e = 1;
108
+ }
109
+ }
110
+ return S;
111
+ },
112
+ };
113
+ return api;
114
+ }
@@ -0,0 +1,58 @@
1
+ import * as THREE from 'three';
2
+ export declare const REVEAL_UNIFORMS = "\nuniform float uD; uniform float uE; uniform float uHead; uniform float uErase; uniform float uFadeIn; uniform float uFadeOut;\nuniform float uSoftIn; uniform float uSoftOut; uniform float uSince; uniform float uDur; uniform float uTime;\nuniform float uIdle; uniform float uIdleSpeed; uniform vec2 uExt; uniform float uHalf;\n";
3
+ export declare const frag: (body: any, extraDecl?: string) => string;
4
+ export declare const uniformsBase: () => {
5
+ uHalf: {
6
+ value: number;
7
+ };
8
+ uD: {
9
+ value: number;
10
+ };
11
+ uE: {
12
+ value: number;
13
+ };
14
+ uHead: {
15
+ value: number;
16
+ };
17
+ uErase: {
18
+ value: number;
19
+ };
20
+ uFadeIn: {
21
+ value: number;
22
+ };
23
+ uFadeOut: {
24
+ value: number;
25
+ };
26
+ uSoftIn: {
27
+ value: number;
28
+ };
29
+ uSoftOut: {
30
+ value: number;
31
+ };
32
+ uSince: {
33
+ value: number;
34
+ };
35
+ uDur: {
36
+ value: number;
37
+ };
38
+ uTime: {
39
+ value: number;
40
+ };
41
+ uIdle: {
42
+ value: number;
43
+ };
44
+ uIdleSpeed: {
45
+ value: number;
46
+ };
47
+ uExt: {
48
+ value: THREE.Vector2;
49
+ };
50
+ };
51
+ export declare function setReveal(u: any, S: any, infoD: any, infoE: any, dur: any, time: any): void;
52
+ export declare function buildRibbon(strokes: any): THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>;
53
+ export declare function ribbonMaterial(fragSrc: any, uniforms: any, widthFn: any, additive: any): THREE.ShaderMaterial;
54
+ export declare function headPoint(s: any, head: any): any[];
55
+ export declare function tips(strokes: any, head: any, max: any): any[];
56
+ export declare function buildCapsules(strokes: any): THREE.InstancedBufferGeometry;
57
+ export declare function capsuleMaterial(fragBody: any, uniforms: any): THREE.ShaderMaterial;
58
+ //# sourceMappingURL=ribbon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ribbon.d.ts","sourceRoot":"","sources":["../../../../src/components/text/engine/ribbon.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAU/B,eAAO,MAAM,eAAe,6UAI3B,CAAC;AAWF,eAAO,MAAM,IAAI,GAAI,SAAI,EAAE,kBAAc,WAAwG,CAAC;AAElJ,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAIvB,CAAC;AAEH,wBAAgB,SAAS,CAAC,CAAC,KAAA,EAAE,CAAC,KAAA,EAAE,KAAK,KAAA,EAAE,KAAK,KAAA,EAAE,GAAG,KAAA,EAAE,IAAI,KAAA,QAMtD;AAGD,wBAAgB,WAAW,CAAC,OAAO,KAAA,oFAiClC;AAiBD,wBAAgB,cAAc,CAAC,OAAO,KAAA,EAAE,QAAQ,KAAA,EAAE,OAAO,KAAA,EAAE,QAAQ,KAAA,wBAQlE;AAGD,wBAAgB,SAAS,CAAC,CAAC,KAAA,EAAE,IAAI,KAAA,SAMhC;AACD,wBAAgB,IAAI,CAAC,OAAO,KAAA,EAAE,IAAI,KAAA,EAAE,GAAG,KAAA,SAGtC;AAKD,wBAAgB,aAAa,CAAC,OAAO,KAAA,iCAiBpC;AAkBD,wBAAgB,eAAe,CAAC,QAAQ,KAAA,EAAE,QAAQ,KAAA,wBAMjD"}
@@ -0,0 +1,250 @@
1
+ import * as THREE from 'three';
2
+ // ---------------------------------------------------------------------------------------------
3
+ // Two independent schedules per stroke:
4
+ // draw : seg [x, x+span] window in global draw progress, t[i] = when point i appears inside the window
5
+ // erase: segO window in global erase progress, tO[i] = when point i disappears inside the window
6
+ // A method (see methods.mjs) is just a way of filling those four fields. The shaders never know which method ran.
7
+ // Stroke fields: pts, cum, len, closed, t, seg, tO, segO, pressure (opt), glyphN (opt)
8
+ // ---------------------------------------------------------------------------------------------
9
+ export const REVEAL_UNIFORMS = /* glsl */ `
10
+ uniform float uD; uniform float uE; uniform float uHead; uniform float uErase; uniform float uFadeIn; uniform float uFadeOut;
11
+ uniform float uSoftIn; uniform float uSoftOut; uniform float uSince; uniform float uDur; uniform float uTime;
12
+ uniform float uIdle; uniform float uIdleSpeed; uniform vec2 uExt; uniform float uHalf;
13
+ `;
14
+ const VARYINGS = /* glsl */ `
15
+ varying float vSide; varying vec2 vUU; varying vec4 vTT; varying vec2 vLL; varying vec2 vSI; varying float vVar; varying float vGlyph; varying float vSeed; varying vec2 vPos;
16
+ `;
17
+ const REVEAL_FUNCS = /* glsl */ `
18
+ float h21(vec2 p){ return fract(sin(dot(p, vec2(12.9898, 78.233)))*43758.5453); }
19
+ float revealIn(float f){ float tI = mix(vTT.x, vTT.y, f); return uFadeIn > 0.5 ? uD : smoothstep(0.0, max(uSoftIn,1e-4), vLL.x - tI); }
20
+ float revealOut(float f){ float tO = mix(vTT.z, vTT.w, f); return uFadeOut > 0.5 ? 1.0 - uE : smoothstep(0.0, max(uSoftOut,1e-4), tO - vLL.y); }
21
+ float ageAt(float f){ float tI = mix(vTT.x, vTT.y, f); return max(0.0, uHead - (vSI.x + tI*vSI.y))*uDur + uSince; } // seconds since the pen / front passed here
22
+ float arcAt(float f){ return mix(vUU.x, vUU.y, f); }
23
+ `;
24
+ export const frag = (body, extraDecl = '') => /* glsl */ `precision highp float;\n${REVEAL_UNIFORMS}${VARYINGS}${extraDecl}${REVEAL_FUNCS}${body}`;
25
+ export const uniformsBase = () => ({
26
+ uHalf: { value: 0.02 }, uD: { value: 1 }, uE: { value: 0 }, uHead: { value: 0 }, uErase: { value: 0 }, uFadeIn: { value: 0 }, uFadeOut: { value: 0 },
27
+ uSoftIn: { value: 0.004 }, uSoftOut: { value: 0.004 }, uSince: { value: 99 }, uDur: { value: 5 }, uTime: { value: 0 },
28
+ uIdle: { value: 1 }, uIdleSpeed: { value: 1 }, uExt: { value: new THREE.Vector2(-3, 6) },
29
+ });
30
+ // per frame: playback state S = {d, e, since}; infoD / infoE = method info {soft, fade}
31
+ export function setReveal(u, S, infoD, infoE, dur, time) {
32
+ u.uD.value = S.d;
33
+ u.uE.value = S.e;
34
+ u.uFadeIn.value = infoD.fade ? 1 : 0;
35
+ u.uFadeOut.value = infoE.fade ? 1 : 0;
36
+ u.uSoftIn.value = infoD.soft;
37
+ u.uSoftOut.value = infoE.soft;
38
+ u.uHead.value = S.d * (1 + infoD.soft + 0.002);
39
+ u.uErase.value = -infoE.soft - 0.002 + S.e * (1 + 2 * infoE.soft + 0.004);
40
+ u.uSince.value = S.since;
41
+ u.uDur.value = Math.max(0.05, dur);
42
+ u.uTime.value = time;
43
+ }
44
+ // ---- Ribbon ------------------------------------------------------------------------------
45
+ export function buildRibbon(strokes) {
46
+ let nv = 0, ni = 0;
47
+ for (const s of strokes) {
48
+ const n = s.pts.length / 2;
49
+ nv += 2 * n;
50
+ ni += 6 * (n - 1);
51
+ }
52
+ const pos = new Float32Array(nv * 3), nor = new Float32Array(nv * 2), side = new Float32Array(nv), arc = new Float32Array(nv), len = new Float32Array(nv), tt = new Float32Array(nv), tto = new Float32Array(nv), seg = new Float32Array(nv * 2), sego = new Float32Array(nv * 2), vr = new Float32Array(nv * 2);
53
+ const idx = new Uint32Array(ni);
54
+ let v = 0, q = 0;
55
+ for (const s of strokes) {
56
+ const n = s.pts.length / 2;
57
+ const P = s.pts;
58
+ const sn = [];
59
+ for (let i = 0; i < n - 1; i++) {
60
+ const dx = P[2 * i + 2] - P[2 * i], dy = P[2 * i + 3] - P[2 * i + 1];
61
+ const l = Math.hypot(dx, dy) || 1;
62
+ sn.push([-dy / l, dx / l]);
63
+ }
64
+ const base = v;
65
+ for (let i = 0; i < n; i++) {
66
+ let a = sn[Math.max(0, i - 1)], b = sn[Math.min(n - 2, i)];
67
+ if (s.closed) {
68
+ if (i === 0 || i === n - 1) {
69
+ a = sn[n - 2];
70
+ b = sn[0];
71
+ }
72
+ }
73
+ let mx = a[0] + b[0], my = a[1] + b[1];
74
+ const ml = Math.hypot(mx, my);
75
+ if (ml < 1e-6) {
76
+ mx = b[0];
77
+ my = b[1];
78
+ }
79
+ else {
80
+ mx /= ml;
81
+ my /= ml;
82
+ }
83
+ const c = Math.max(0.8, mx * b[0] + my * b[1]);
84
+ mx /= c;
85
+ my /= c;
86
+ for (let sd = -1; sd <= 1; sd += 2) {
87
+ pos[3 * v] = P[2 * i];
88
+ pos[3 * v + 1] = P[2 * i + 1];
89
+ pos[3 * v + 2] = 0;
90
+ nor[2 * v] = mx;
91
+ nor[2 * v + 1] = my;
92
+ side[v] = sd;
93
+ arc[v] = s.cum[i];
94
+ len[v] = Math.max(1e-6, s.len);
95
+ tt[v] = s.t[i];
96
+ tto[v] = s.tO[i];
97
+ seg[2 * v] = s.seg[0];
98
+ seg[2 * v + 1] = s.seg[1];
99
+ sego[2 * v] = s.segO[0];
100
+ sego[2 * v + 1] = s.segO[1];
101
+ vr[2 * v] = s.pressure ? s.pressure[i] : 0;
102
+ vr[2 * v + 1] = s.glyphN || 0;
103
+ v++;
104
+ }
105
+ }
106
+ for (let i = 0; i < n - 1; i++) {
107
+ const a = base + 2 * i;
108
+ idx.set([a, a + 1, a + 2, a + 1, a + 3, a + 2], q);
109
+ q += 6;
110
+ }
111
+ }
112
+ const g = new THREE.BufferGeometry();
113
+ const set = (k, a, n) => g.setAttribute(k, new THREE.BufferAttribute(a, n));
114
+ set('position', pos, 3);
115
+ set('aNormal', nor, 2);
116
+ set('aSide', side, 1);
117
+ set('aArc', arc, 1);
118
+ set('aLen', len, 1);
119
+ set('aT', tt, 1);
120
+ set('aTO', tto, 1);
121
+ set('aSeg', seg, 2);
122
+ set('aSegO', sego, 2);
123
+ set('aVar', vr, 2);
124
+ g.setIndex(new THREE.BufferAttribute(idx, 1));
125
+ g.computeBoundingSphere();
126
+ return g;
127
+ }
128
+ const RIBBON_VERT = /* glsl */ `
129
+ attribute vec2 aNormal; attribute float aSide; attribute float aArc; attribute float aLen; attribute float aT; attribute float aTO;
130
+ attribute vec2 aSeg; attribute vec2 aSegO; attribute vec2 aVar;
131
+ ${REVEAL_UNIFORMS}${VARYINGS}
132
+ void main(){
133
+ float w = uHalf * WIDTH_FN;
134
+ vec3 p = position + vec3(aNormal * (aSide * w), 0.0);
135
+ gl_Position = projectionMatrix * modelViewMatrix * vec4(p, 1.0);
136
+ float sp = max(aSeg.y - aSeg.x, 1e-4), so = max(aSegO.y - aSegO.x, 1e-4);
137
+ vSide = aSide; vVar = aVar.x; vGlyph = aVar.y; vPos = p.xy;
138
+ vTT = vec4(aT, aT, aTO, aTO); vUU = vec2(aArc / aLen); vSI = vec2(aSeg.x, sp);
139
+ vLL = vec2((uHead - aSeg.x) / sp, (uErase - aSegO.x) / so);
140
+ vSeed = aSeg.x * 91.7 + aVar.y * 13.1;
141
+ }`;
142
+ export function ribbonMaterial(fragSrc, uniforms, widthFn, additive) {
143
+ return new THREE.ShaderMaterial({
144
+ uniforms: { ...uniformsBase(), ...uniforms },
145
+ vertexShader: RIBBON_VERT.replace('WIDTH_FN', widthFn || '1.0'), fragmentShader: fragSrc,
146
+ transparent: true, depthWrite: false, side: THREE.DoubleSide,
147
+ blending: additive ? THREE.AdditiveBlending : THREE.CustomBlending,
148
+ ...(additive ? {} : { blendEquation: THREE.AddEquation, blendSrc: THREE.OneFactor, blendDst: THREE.OneMinusSrcAlphaFactor }),
149
+ });
150
+ }
151
+ // ---- pen tips ------------------------------------------------------------------------------
152
+ export function headPoint(s, head) {
153
+ if (head < s.seg[0] || head > s.seg[1])
154
+ return null;
155
+ const u = (head - s.seg[0]) / Math.max(1e-6, s.seg[1] - s.seg[0]);
156
+ const n = s.pts.length / 2;
157
+ const T = s.t;
158
+ let lo = 0, hi = n - 1;
159
+ while (hi - lo > 1) {
160
+ const m = (lo + hi) >> 1;
161
+ if (T[m] <= u)
162
+ lo = m;
163
+ else
164
+ hi = m;
165
+ }
166
+ const f = Math.max(0, Math.min(1, (u - T[lo]) / Math.max(1e-9, T[hi] - T[lo])));
167
+ return [s.pts[2 * lo] + (s.pts[2 * hi] - s.pts[2 * lo]) * f, s.pts[2 * lo + 1] + (s.pts[2 * hi + 1] - s.pts[2 * lo + 1]) * f];
168
+ }
169
+ export function tips(strokes, head, max) {
170
+ // each tip fades in / out over the first / last 4% of its stroke window, so sparks never pop
171
+ const out = [];
172
+ for (const s of strokes) {
173
+ if (out.length >= max)
174
+ break;
175
+ const p = headPoint(s, head);
176
+ if (p) {
177
+ const u = (head - s.seg[0]) / Math.max(1e-6, s.seg[1] - s.seg[0]);
178
+ out.push([p[0], p[1], Math.min(1, u / 0.04, (1 - u) / 0.04)]);
179
+ }
180
+ }
181
+ return out;
182
+ }
183
+ // ---- Capsule field -------------------------------------------------------------------------
184
+ // One instanced quad per polyline segment, fragment = distance to that segment. Blended with MAX the result is exactly
185
+ // f(distance to the whole polyline): round joins and caps, no folded offsets however wide the glow.
186
+ export function buildCapsules(strokes) {
187
+ let n = 0;
188
+ for (const s of strokes)
189
+ n += s.pts.length / 2 - 1;
190
+ const A = new Float32Array(n * 2), B = new Float32Array(n * 2), T = new Float32Array(n * 2), TO = new Float32Array(n * 2), AR = new Float32Array(n * 2), LN = new Float32Array(n), SG = new Float32Array(n * 2), SO = new Float32Array(n * 2), VR = new Float32Array(n * 2);
191
+ let k = 0;
192
+ for (const s of strokes) {
193
+ const m = s.pts.length / 2;
194
+ for (let i = 0; i < m - 1; i++) {
195
+ A.set([s.pts[2 * i], s.pts[2 * i + 1]], 2 * k);
196
+ B.set([s.pts[2 * i + 2], s.pts[2 * i + 3]], 2 * k);
197
+ T[2 * k] = s.t[i];
198
+ T[2 * k + 1] = s.t[i + 1];
199
+ TO[2 * k] = s.tO[i];
200
+ TO[2 * k + 1] = s.tO[i + 1];
201
+ AR[2 * k] = s.cum[i];
202
+ AR[2 * k + 1] = s.cum[i + 1];
203
+ LN[k] = Math.max(1e-6, s.len);
204
+ SG.set(s.seg, 2 * k);
205
+ SO.set(s.segO, 2 * k);
206
+ VR.set([s.pressure ? s.pressure[i] : 0, s.glyphN || 0], 2 * k);
207
+ k++;
208
+ }
209
+ }
210
+ const g = new THREE.InstancedBufferGeometry();
211
+ g.setAttribute('aq', new THREE.BufferAttribute(new Float32Array([-1, -1, 1, -1, 1, 1, -1, 1]), 2));
212
+ g.setIndex([0, 1, 2, 0, 2, 3]);
213
+ const ia = (k2, a, c) => g.setAttribute(k2, new THREE.InstancedBufferAttribute(a, c));
214
+ ia('iA', A, 2);
215
+ ia('iB', B, 2);
216
+ ia('iT', T, 2);
217
+ ia('iTO', TO, 2);
218
+ ia('iArc', AR, 2);
219
+ ia('iLen', LN, 1);
220
+ ia('iSeg', SG, 2);
221
+ ia('iSegO', SO, 2);
222
+ ia('iVar', VR, 2);
223
+ g.instanceCount = n;
224
+ g.boundingSphere = new THREE.Sphere(new THREE.Vector3(), 1e3);
225
+ return g;
226
+ }
227
+ const CAP_VERT = /* glsl */ `
228
+ attribute vec2 aq; attribute vec2 iA; attribute vec2 iB; attribute vec2 iT; attribute vec2 iTO; attribute vec2 iArc; attribute float iLen;
229
+ attribute vec2 iSeg; attribute vec2 iSegO; attribute vec2 iVar;
230
+ ${REVEAL_UNIFORMS}${VARYINGS}
231
+ varying vec2 vXY; varying float vHL;
232
+ void main(){
233
+ vec2 d = iB - iA; float l = max(length(d), 1e-6); vec2 dir = d / l; vec2 perp = vec2(-dir.y, dir.x);
234
+ float hl = 0.5*l; float R = uHalf;
235
+ vec2 loc = vec2(aq.x*(hl + R), aq.y*R);
236
+ vec2 w = 0.5*(iA + iB) + dir*loc.x + perp*loc.y;
237
+ gl_Position = projectionMatrix*modelViewMatrix*vec4(w, 0.0, 1.0);
238
+ float sp = max(iSeg.y - iSeg.x, 1e-4), so = max(iSegO.y - iSegO.x, 1e-4);
239
+ vXY = loc; vHL = hl; vSide = 0.0; vVar = iVar.x; vGlyph = iVar.y; vPos = w;
240
+ vTT = vec4(iT, iTO); vUU = iArc / iLen; vSI = vec2(iSeg.x, sp);
241
+ vLL = vec2((uHead - iSeg.x)/sp, (uErase - iSegO.x)/so);
242
+ vSeed = iSeg.x*91.7 + iVar.y*13.1;
243
+ }`;
244
+ export function capsuleMaterial(fragBody, uniforms) {
245
+ return new THREE.ShaderMaterial({
246
+ uniforms: { ...uniformsBase(), uHalf: { value: 0.06 }, ...uniforms },
247
+ vertexShader: CAP_VERT, fragmentShader: frag(fragBody, 'varying vec2 vXY; varying float vHL;\n'), transparent: true, depthWrite: false, side: THREE.DoubleSide,
248
+ blending: THREE.CustomBlending, blendEquation: THREE.MaxEquation, blendSrc: THREE.OneFactor, blendDst: THREE.OneFactor,
249
+ });
250
+ }