@3driseai/3drise-viewer 0.1.41 → 0.1.43

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 (414) hide show
  1. package/dist/animationsV2/ClipsRuntime.d.ts +16 -1
  2. package/dist/animationsV2/ClipsRuntime.d.ts.map +1 -1
  3. package/dist/animationsV2/ClipsRuntime.js +144 -25
  4. package/dist/animationsV2/appliers.d.ts +9 -0
  5. package/dist/animationsV2/appliers.d.ts.map +1 -1
  6. package/dist/animationsV2/appliers.js +62 -2
  7. package/dist/animationsV2/clipUtils.d.ts +30 -0
  8. package/dist/animationsV2/clipUtils.d.ts.map +1 -1
  9. package/dist/animationsV2/clipUtils.js +163 -17
  10. package/dist/animationsV2/elementSettings.d.ts +5 -0
  11. package/dist/animationsV2/elementSettings.d.ts.map +1 -1
  12. package/dist/animationsV2/elementSettings.js +6 -3
  13. package/dist/animationsV2/sequenceUtils.js +4 -4
  14. package/dist/animationsV2/types.d.ts +23 -0
  15. package/dist/animationsV2/types.d.ts.map +1 -1
  16. package/dist/api/sceneHandle.js +2 -2
  17. package/dist/components/CreatedObject.d.ts +3 -0
  18. package/dist/components/CreatedObject.d.ts.map +1 -1
  19. package/dist/components/CreatedObject.js +6 -2
  20. package/dist/components/CustomPrimitive.d.ts.map +1 -1
  21. package/dist/components/CustomPrimitive.js +1 -10
  22. package/dist/components/EnvironmentManager.d.ts.map +1 -1
  23. package/dist/components/EnvironmentManager.js +11 -5
  24. package/dist/components/GeometryShape.d.ts +5 -2
  25. package/dist/components/GeometryShape.d.ts.map +1 -1
  26. package/dist/components/GeometryShape.js +71 -10
  27. package/dist/components/LandObject.d.ts.map +1 -1
  28. package/dist/components/LandObject.js +1 -1
  29. package/dist/components/LayoutInstances.d.ts +2 -1
  30. package/dist/components/LayoutInstances.d.ts.map +1 -1
  31. package/dist/components/LayoutInstances.js +39 -6
  32. package/dist/components/LightObject.d.ts.map +1 -1
  33. package/dist/components/LightObject.js +3 -0
  34. package/dist/components/ObjectNode.d.ts.map +1 -1
  35. package/dist/components/ObjectNode.js +62 -13
  36. package/dist/components/OceanBuilder.d.ts +2 -0
  37. package/dist/components/OceanBuilder.d.ts.map +1 -1
  38. package/dist/components/OceanBuilder.js +2 -1
  39. package/dist/components/RenderEffects.d.ts +8 -0
  40. package/dist/components/RenderEffects.d.ts.map +1 -0
  41. package/dist/components/RenderEffects.js +120 -0
  42. package/dist/components/SceneBuilder.d.ts.map +1 -1
  43. package/dist/components/SceneBuilder.js +18 -9
  44. package/dist/components/SportsObject.d.ts +9 -0
  45. package/dist/components/SportsObject.d.ts.map +1 -0
  46. package/dist/components/SportsObject.js +20 -0
  47. package/dist/components/UrbanObject.d.ts +9 -0
  48. package/dist/components/UrbanObject.d.ts.map +1 -0
  49. package/dist/components/UrbanObject.js +28 -0
  50. package/dist/components/VegetationObject.d.ts +9 -0
  51. package/dist/components/VegetationObject.d.ts.map +1 -0
  52. package/dist/components/VegetationObject.js +26 -0
  53. package/dist/components/WaterObject.d.ts +15 -0
  54. package/dist/components/WaterObject.d.ts.map +1 -0
  55. package/dist/components/WaterObject.js +29 -0
  56. package/dist/components/index.d.ts +7 -2
  57. package/dist/components/index.d.ts.map +1 -1
  58. package/dist/components/index.js +6 -1
  59. package/dist/components/land/LandPatch.d.ts +3 -1
  60. package/dist/components/land/LandPatch.d.ts.map +1 -1
  61. package/dist/components/land/LandPatch.js +80 -7
  62. package/dist/components/layout/InstancedLayout.d.ts +19 -0
  63. package/dist/components/layout/InstancedLayout.d.ts.map +1 -0
  64. package/dist/components/layout/InstancedLayout.js +154 -0
  65. package/dist/components/layout/LayoutGrounds.d.ts +19 -0
  66. package/dist/components/layout/LayoutGrounds.d.ts.map +1 -0
  67. package/dist/components/layout/LayoutGrounds.js +104 -0
  68. package/dist/components/layout/LinkProxies.d.ts +5 -0
  69. package/dist/components/layout/LinkProxies.d.ts.map +1 -0
  70. package/dist/components/layout/LinkProxies.js +51 -0
  71. package/dist/components/layout/LinkedSource.d.ts +14 -0
  72. package/dist/components/layout/LinkedSource.d.ts.map +1 -0
  73. package/dist/components/layout/LinkedSource.js +129 -0
  74. package/dist/components/projector/Projector.d.ts +14 -0
  75. package/dist/components/projector/Projector.d.ts.map +1 -0
  76. package/dist/components/projector/Projector.js +44 -0
  77. package/dist/components/projector/index.d.ts +4 -0
  78. package/dist/components/projector/index.d.ts.map +1 -0
  79. package/dist/components/projector/index.js +2 -0
  80. package/dist/components/projector/projectorCore.d.ts +19 -0
  81. package/dist/components/projector/projectorCore.d.ts.map +1 -0
  82. package/dist/components/projector/projectorCore.js +545 -0
  83. package/dist/components/sports/SportsBall.d.ts +9 -0
  84. package/dist/components/sports/SportsBall.d.ts.map +1 -0
  85. package/dist/components/sports/SportsBall.js +23 -0
  86. package/dist/components/sports/SportsCourt.d.ts +9 -0
  87. package/dist/components/sports/SportsCourt.d.ts.map +1 -0
  88. package/dist/components/sports/SportsCourt.js +23 -0
  89. package/dist/components/sports/SportsEquipment.d.ts +9 -0
  90. package/dist/components/sports/SportsEquipment.d.ts.map +1 -0
  91. package/dist/components/sports/SportsEquipment.js +23 -0
  92. package/dist/components/sports/SportsGoal.d.ts +9 -0
  93. package/dist/components/sports/SportsGoal.d.ts.map +1 -0
  94. package/dist/components/sports/SportsGoal.js +23 -0
  95. package/dist/components/sports/core/ball.d.ts +166 -0
  96. package/dist/components/sports/core/ball.d.ts.map +1 -0
  97. package/dist/components/sports/core/ball.js +402 -0
  98. package/dist/components/sports/core/court.d.ts +442 -0
  99. package/dist/components/sports/core/court.d.ts.map +1 -0
  100. package/dist/components/sports/core/court.js +658 -0
  101. package/dist/components/sports/core/equipment.d.ts +103 -0
  102. package/dist/components/sports/core/equipment.d.ts.map +1 -0
  103. package/dist/components/sports/core/equipment.js +403 -0
  104. package/dist/components/sports/core/goal.d.ts +98 -0
  105. package/dist/components/sports/core/goal.d.ts.map +1 -0
  106. package/dist/components/sports/core/goal.js +44 -0
  107. package/dist/components/sports/index.d.ts +11 -0
  108. package/dist/components/sports/index.d.ts.map +1 -0
  109. package/dist/components/sports/index.js +8 -0
  110. package/dist/components/sports/sportsCore.d.ts +195 -0
  111. package/dist/components/sports/sportsCore.d.ts.map +1 -0
  112. package/dist/components/sports/sportsCore.js +758 -0
  113. package/dist/components/sports/useSportsInstance.d.ts +35 -0
  114. package/dist/components/sports/useSportsInstance.d.ts.map +1 -0
  115. package/dist/components/sports/useSportsInstance.js +47 -0
  116. package/dist/components/terrain/TerrainSurface.d.ts.map +1 -1
  117. package/dist/components/terrain/TerrainSurface.js +14 -0
  118. package/dist/components/urban/UrbanBlock.d.ts +9 -0
  119. package/dist/components/urban/UrbanBlock.d.ts.map +1 -0
  120. package/dist/components/urban/UrbanBlock.js +23 -0
  121. package/dist/components/urban/UrbanBuilding.d.ts +9 -0
  122. package/dist/components/urban/UrbanBuilding.d.ts.map +1 -0
  123. package/dist/components/urban/UrbanBuilding.js +23 -0
  124. package/dist/components/urban/UrbanJunction.d.ts +9 -0
  125. package/dist/components/urban/UrbanJunction.d.ts.map +1 -0
  126. package/dist/components/urban/UrbanJunction.js +23 -0
  127. package/dist/components/urban/UrbanPark.d.ts +9 -0
  128. package/dist/components/urban/UrbanPark.d.ts.map +1 -0
  129. package/dist/components/urban/UrbanPark.js +23 -0
  130. package/dist/components/urban/UrbanParkingLot.d.ts +9 -0
  131. package/dist/components/urban/UrbanParkingLot.d.ts.map +1 -0
  132. package/dist/components/urban/UrbanParkingLot.js +23 -0
  133. package/dist/components/urban/UrbanPlaza.d.ts +9 -0
  134. package/dist/components/urban/UrbanPlaza.d.ts.map +1 -0
  135. package/dist/components/urban/UrbanPlaza.js +23 -0
  136. package/dist/components/urban/UrbanRoad.d.ts +9 -0
  137. package/dist/components/urban/UrbanRoad.d.ts.map +1 -0
  138. package/dist/components/urban/UrbanRoad.js +23 -0
  139. package/dist/components/urban/UrbanSignage.d.ts +9 -0
  140. package/dist/components/urban/UrbanSignage.d.ts.map +1 -0
  141. package/dist/components/urban/UrbanSignage.js +23 -0
  142. package/dist/components/urban/UrbanSkyline.d.ts +9 -0
  143. package/dist/components/urban/UrbanSkyline.d.ts.map +1 -0
  144. package/dist/components/urban/UrbanSkyline.js +23 -0
  145. package/dist/components/urban/UrbanStreetFurniture.d.ts +9 -0
  146. package/dist/components/urban/UrbanStreetFurniture.d.ts.map +1 -0
  147. package/dist/components/urban/UrbanStreetFurniture.js +23 -0
  148. package/dist/components/urban/UrbanStreetGrid.d.ts +9 -0
  149. package/dist/components/urban/UrbanStreetGrid.d.ts.map +1 -0
  150. package/dist/components/urban/UrbanStreetGrid.js +34 -0
  151. package/dist/components/urban/UrbanTraffic.d.ts +9 -0
  152. package/dist/components/urban/UrbanTraffic.d.ts.map +1 -0
  153. package/dist/components/urban/UrbanTraffic.js +23 -0
  154. package/dist/components/urban/core/block.d.ts +119 -0
  155. package/dist/components/urban/core/block.d.ts.map +1 -0
  156. package/dist/components/urban/core/block.js +266 -0
  157. package/dist/components/urban/core/building.d.ts +128 -0
  158. package/dist/components/urban/core/building.d.ts.map +1 -0
  159. package/dist/components/urban/core/building.js +741 -0
  160. package/dist/components/urban/core/junction.d.ts +152 -0
  161. package/dist/components/urban/core/junction.d.ts.map +1 -0
  162. package/dist/components/urban/core/junction.js +617 -0
  163. package/dist/components/urban/core/park.d.ts +67 -0
  164. package/dist/components/urban/core/park.d.ts.map +1 -0
  165. package/dist/components/urban/core/park.js +176 -0
  166. package/dist/components/urban/core/parkingLot.d.ts +82 -0
  167. package/dist/components/urban/core/parkingLot.d.ts.map +1 -0
  168. package/dist/components/urban/core/parkingLot.js +284 -0
  169. package/dist/components/urban/core/plaza.d.ts +24 -0
  170. package/dist/components/urban/core/plaza.d.ts.map +1 -0
  171. package/dist/components/urban/core/plaza.js +243 -0
  172. package/dist/components/urban/core/road.d.ts +113 -0
  173. package/dist/components/urban/core/road.d.ts.map +1 -0
  174. package/dist/components/urban/core/road.js +347 -0
  175. package/dist/components/urban/core/signage.d.ts +83 -0
  176. package/dist/components/urban/core/signage.d.ts.map +1 -0
  177. package/dist/components/urban/core/signage.js +209 -0
  178. package/dist/components/urban/core/skyline.d.ts +100 -0
  179. package/dist/components/urban/core/skyline.d.ts.map +1 -0
  180. package/dist/components/urban/core/skyline.js +89 -0
  181. package/dist/components/urban/core/streetFurniture.d.ts +75 -0
  182. package/dist/components/urban/core/streetFurniture.d.ts.map +1 -0
  183. package/dist/components/urban/core/streetFurniture.js +193 -0
  184. package/dist/components/urban/core/streetGrid.d.ts +134 -0
  185. package/dist/components/urban/core/streetGrid.d.ts.map +1 -0
  186. package/dist/components/urban/core/streetGrid.js +422 -0
  187. package/dist/components/urban/core/traffic.d.ts +125 -0
  188. package/dist/components/urban/core/traffic.d.ts.map +1 -0
  189. package/dist/components/urban/core/traffic.js +305 -0
  190. package/dist/components/urban/index.d.ts +29 -0
  191. package/dist/components/urban/index.d.ts.map +1 -0
  192. package/dist/components/urban/index.js +16 -0
  193. package/dist/components/urban/textureSetResolver.d.ts +8 -0
  194. package/dist/components/urban/textureSetResolver.d.ts.map +1 -0
  195. package/dist/components/urban/textureSetResolver.js +16 -0
  196. package/dist/components/urban/urbanCore.d.ts +262 -0
  197. package/dist/components/urban/urbanCore.d.ts.map +1 -0
  198. package/dist/components/urban/urbanCore.js +928 -0
  199. package/dist/components/urban/useUrbanInstance.d.ts +53 -0
  200. package/dist/components/urban/useUrbanInstance.d.ts.map +1 -0
  201. package/dist/components/urban/useUrbanInstance.js +100 -0
  202. package/dist/components/vegetation/VegetationBush.d.ts +9 -0
  203. package/dist/components/vegetation/VegetationBush.d.ts.map +1 -0
  204. package/dist/components/vegetation/VegetationBush.js +23 -0
  205. package/dist/components/vegetation/VegetationCrops.d.ts +9 -0
  206. package/dist/components/vegetation/VegetationCrops.d.ts.map +1 -0
  207. package/dist/components/vegetation/VegetationCrops.js +23 -0
  208. package/dist/components/vegetation/VegetationFlowers.d.ts +9 -0
  209. package/dist/components/vegetation/VegetationFlowers.d.ts.map +1 -0
  210. package/dist/components/vegetation/VegetationFlowers.js +23 -0
  211. package/dist/components/vegetation/VegetationForest.d.ts +9 -0
  212. package/dist/components/vegetation/VegetationForest.d.ts.map +1 -0
  213. package/dist/components/vegetation/VegetationForest.js +23 -0
  214. package/dist/components/vegetation/VegetationFruit.d.ts +9 -0
  215. package/dist/components/vegetation/VegetationFruit.d.ts.map +1 -0
  216. package/dist/components/vegetation/VegetationFruit.js +23 -0
  217. package/dist/components/vegetation/VegetationGrass.d.ts +9 -0
  218. package/dist/components/vegetation/VegetationGrass.d.ts.map +1 -0
  219. package/dist/components/vegetation/VegetationGrass.js +23 -0
  220. package/dist/components/vegetation/VegetationHedge.d.ts +9 -0
  221. package/dist/components/vegetation/VegetationHedge.d.ts.map +1 -0
  222. package/dist/components/vegetation/VegetationHedge.js +23 -0
  223. package/dist/components/vegetation/VegetationIvy.d.ts +9 -0
  224. package/dist/components/vegetation/VegetationIvy.d.ts.map +1 -0
  225. package/dist/components/vegetation/VegetationIvy.js +23 -0
  226. package/dist/components/vegetation/VegetationTree.d.ts +9 -0
  227. package/dist/components/vegetation/VegetationTree.d.ts.map +1 -0
  228. package/dist/components/vegetation/VegetationTree.js +23 -0
  229. package/dist/components/vegetation/VegetationVegetable.d.ts +9 -0
  230. package/dist/components/vegetation/VegetationVegetable.d.ts.map +1 -0
  231. package/dist/components/vegetation/VegetationVegetable.js +23 -0
  232. package/dist/components/vegetation/core/bush.d.ts +1256 -0
  233. package/dist/components/vegetation/core/bush.d.ts.map +1 -0
  234. package/dist/components/vegetation/core/bush.js +376 -0
  235. package/dist/components/vegetation/core/crops.d.ts +1033 -0
  236. package/dist/components/vegetation/core/crops.d.ts.map +1 -0
  237. package/dist/components/vegetation/core/crops.js +378 -0
  238. package/dist/components/vegetation/core/flowers.d.ts +648 -0
  239. package/dist/components/vegetation/core/flowers.d.ts.map +1 -0
  240. package/dist/components/vegetation/core/flowers.js +225 -0
  241. package/dist/components/vegetation/core/forest.d.ts +138 -0
  242. package/dist/components/vegetation/core/forest.d.ts.map +1 -0
  243. package/dist/components/vegetation/core/forest.js +310 -0
  244. package/dist/components/vegetation/core/fruit.d.ts +99 -0
  245. package/dist/components/vegetation/core/fruit.d.ts.map +1 -0
  246. package/dist/components/vegetation/core/fruit.js +77 -0
  247. package/dist/components/vegetation/core/grass.d.ts +103 -0
  248. package/dist/components/vegetation/core/grass.d.ts.map +1 -0
  249. package/dist/components/vegetation/core/grass.js +102 -0
  250. package/dist/components/vegetation/core/hedge.d.ts +193 -0
  251. package/dist/components/vegetation/core/hedge.d.ts.map +1 -0
  252. package/dist/components/vegetation/core/hedge.js +243 -0
  253. package/dist/components/vegetation/core/ivy.d.ts +213 -0
  254. package/dist/components/vegetation/core/ivy.d.ts.map +1 -0
  255. package/dist/components/vegetation/core/ivy.js +173 -0
  256. package/dist/components/vegetation/core/tree.d.ts +1117 -0
  257. package/dist/components/vegetation/core/tree.d.ts.map +1 -0
  258. package/dist/components/vegetation/core/tree.js +408 -0
  259. package/dist/components/vegetation/core/vegetable.d.ts +99 -0
  260. package/dist/components/vegetation/core/vegetable.d.ts.map +1 -0
  261. package/dist/components/vegetation/core/vegetable.js +76 -0
  262. package/dist/components/vegetation/index.d.ts +23 -0
  263. package/dist/components/vegetation/index.d.ts.map +1 -0
  264. package/dist/components/vegetation/index.js +14 -0
  265. package/dist/components/vegetation/produceCore.d.ts +929 -0
  266. package/dist/components/vegetation/produceCore.d.ts.map +1 -0
  267. package/dist/components/vegetation/produceCore.js +723 -0
  268. package/dist/components/vegetation/useVegetationInstance.d.ts +39 -0
  269. package/dist/components/vegetation/useVegetationInstance.d.ts.map +1 -0
  270. package/dist/components/vegetation/useVegetationInstance.js +45 -0
  271. package/dist/components/vegetation/vegetationCore.d.ts +412 -0
  272. package/dist/components/vegetation/vegetationCore.d.ts.map +1 -0
  273. package/dist/components/vegetation/vegetationCore.js +1728 -0
  274. package/dist/components/volumetricClouds/VolumetricCloudsPass.d.ts +5 -0
  275. package/dist/components/volumetricClouds/VolumetricCloudsPass.d.ts.map +1 -1
  276. package/dist/components/volumetricClouds/VolumetricCloudsPass.js +39 -13
  277. package/dist/components/water/OceanSurface.d.ts.map +1 -1
  278. package/dist/components/water/OceanSurface.js +3 -2
  279. package/dist/components/water/WaterBody.d.ts.map +1 -1
  280. package/dist/components/water/WaterBody.js +31 -10
  281. package/dist/components/water/WaterFountain.d.ts +9 -0
  282. package/dist/components/water/WaterFountain.d.ts.map +1 -0
  283. package/dist/components/water/WaterFountain.js +24 -0
  284. package/dist/components/water/WaterStream.d.ts +9 -0
  285. package/dist/components/water/WaterStream.d.ts.map +1 -0
  286. package/dist/components/water/WaterStream.js +24 -0
  287. package/dist/components/water/WaterWaterfall.d.ts +9 -0
  288. package/dist/components/water/WaterWaterfall.d.ts.map +1 -0
  289. package/dist/components/water/WaterWaterfall.js +24 -0
  290. package/dist/components/water/core/fountain.d.ts +70 -0
  291. package/dist/components/water/core/fountain.d.ts.map +1 -0
  292. package/dist/components/water/core/fountain.js +619 -0
  293. package/dist/components/water/core/stream.d.ts +72 -0
  294. package/dist/components/water/core/stream.d.ts.map +1 -0
  295. package/dist/components/water/core/stream.js +167 -0
  296. package/dist/components/water/core/waterfall.d.ts +78 -0
  297. package/dist/components/water/core/waterfall.d.ts.map +1 -0
  298. package/dist/components/water/core/waterfall.js +325 -0
  299. package/dist/components/water/index.d.ts +8 -0
  300. package/dist/components/water/index.d.ts.map +1 -1
  301. package/dist/components/water/index.js +7 -0
  302. package/dist/components/water/types.d.ts +3 -0
  303. package/dist/components/water/types.d.ts.map +1 -1
  304. package/dist/components/water/useWaterInstance.d.ts +43 -0
  305. package/dist/components/water/useWaterInstance.d.ts.map +1 -0
  306. package/dist/components/water/useWaterInstance.js +89 -0
  307. package/dist/components/water/waterCore.d.ts +179 -0
  308. package/dist/components/water/waterCore.d.ts.map +1 -0
  309. package/dist/components/water/waterCore.js +516 -0
  310. package/dist/constants.d.ts.map +1 -1
  311. package/dist/constants.js +9 -1
  312. package/dist/hooks/index.d.ts +7 -2
  313. package/dist/hooks/index.d.ts.map +1 -1
  314. package/dist/hooks/index.js +5 -2
  315. package/dist/hooks/useActionPatch.d.ts +23 -0
  316. package/dist/hooks/useActionPatch.d.ts.map +1 -0
  317. package/dist/hooks/useActionPatch.js +38 -0
  318. package/dist/hooks/useCloudSun.d.ts.map +1 -1
  319. package/dist/hooks/useCloudSun.js +3 -2
  320. package/dist/hooks/useCommittedInstance.d.ts +6 -0
  321. package/dist/hooks/useCommittedInstance.d.ts.map +1 -0
  322. package/dist/hooks/useCommittedInstance.js +42 -0
  323. package/dist/hooks/useConfigLive.d.ts +1 -1
  324. package/dist/hooks/useConfigLive.d.ts.map +1 -1
  325. package/dist/hooks/useContinuousEffects.d.ts.map +1 -1
  326. package/dist/hooks/useContinuousEffects.js +36 -20
  327. package/dist/hooks/useGridLayout.d.ts +7 -0
  328. package/dist/hooks/useGridLayout.d.ts.map +1 -0
  329. package/dist/hooks/useGridLayout.js +10 -0
  330. package/dist/hooks/useInteractionEffects.d.ts.map +1 -1
  331. package/dist/hooks/useInteractionEffects.js +48 -9
  332. package/dist/hooks/useLightLive.d.ts.map +1 -1
  333. package/dist/hooks/useLightLive.js +2 -0
  334. package/dist/hooks/useLinkStatus.d.ts +7 -0
  335. package/dist/hooks/useLinkStatus.d.ts.map +1 -0
  336. package/dist/hooks/useLinkStatus.js +20 -0
  337. package/dist/hooks/useMaterialApplication.d.ts +6 -1
  338. package/dist/hooks/useMaterialApplication.d.ts.map +1 -1
  339. package/dist/hooks/useMaterialApplication.js +7 -2
  340. package/dist/hooks/useOceanMaterial.d.ts +11 -1
  341. package/dist/hooks/useOceanMaterial.d.ts.map +1 -1
  342. package/dist/hooks/useOceanMaterial.js +185 -27
  343. package/dist/hooks/usePathAnimation.d.ts +8 -0
  344. package/dist/hooks/usePathAnimation.d.ts.map +1 -1
  345. package/dist/hooks/usePathAnimation.js +140 -59
  346. package/dist/hooks/useResolvedLayout.d.ts +10 -0
  347. package/dist/hooks/useResolvedLayout.d.ts.map +1 -0
  348. package/dist/hooks/useResolvedLayout.js +17 -0
  349. package/dist/hooks/useTimeLighting.d.ts +36 -0
  350. package/dist/hooks/useTimeLighting.d.ts.map +1 -0
  351. package/dist/hooks/useTimeLighting.js +67 -0
  352. package/dist/index.d.ts +4 -0
  353. package/dist/index.d.ts.map +1 -1
  354. package/dist/index.js +4 -0
  355. package/dist/operations/catalogue/shaderLayers.d.ts.map +1 -1
  356. package/dist/operations/catalogue/shaderLayers.js +26 -3
  357. package/dist/render/renderLive.d.ts +11 -0
  358. package/dist/render/renderLive.d.ts.map +1 -0
  359. package/dist/render/renderLive.js +57 -0
  360. package/dist/shaders/glsl/oceanCore.glsl.d.ts +2 -2
  361. package/dist/shaders/glsl/oceanCore.glsl.d.ts.map +1 -1
  362. package/dist/shaders/glsl/oceanCore.glsl.js +35 -5
  363. package/dist/shaders/ocean/OceanSurfaceMaterial.d.ts +12 -0
  364. package/dist/shaders/ocean/OceanSurfaceMaterial.d.ts.map +1 -1
  365. package/dist/shaders/ocean/OceanSurfaceMaterial.js +55 -7
  366. package/dist/shaders/terrain/TerrainMaterial.d.ts.map +1 -1
  367. package/dist/shaders/terrain/TerrainMaterial.js +28 -0
  368. package/dist/triggers/kinds/change.js +1 -1
  369. package/dist/ui/UiLayers.d.ts +17 -1
  370. package/dist/ui/UiLayers.d.ts.map +1 -1
  371. package/dist/ui/UiLayers.js +76 -3
  372. package/dist/ui/index.d.ts +2 -2
  373. package/dist/ui/index.d.ts.map +1 -1
  374. package/dist/ui/index.js +1 -1
  375. package/dist/utils/composerHostedPass.d.ts +74 -0
  376. package/dist/utils/composerHostedPass.d.ts.map +1 -0
  377. package/dist/utils/composerHostedPass.js +63 -0
  378. package/dist/utils/geometryScript.d.ts +17 -0
  379. package/dist/utils/geometryScript.d.ts.map +1 -0
  380. package/dist/utils/geometryScript.js +92 -0
  381. package/dist/utils/geometryScript.worker.d.ts +2 -0
  382. package/dist/utils/geometryScript.worker.d.ts.map +1 -0
  383. package/dist/utils/geometryScript.worker.js +42 -0
  384. package/dist/utils/groundRegistry.d.ts +11 -0
  385. package/dist/utils/groundRegistry.d.ts.map +1 -0
  386. package/dist/utils/groundRegistry.js +39 -0
  387. package/dist/utils/instancingSupport.d.ts +9 -0
  388. package/dist/utils/instancingSupport.d.ts.map +1 -0
  389. package/dist/utils/instancingSupport.js +13 -0
  390. package/dist/utils/landPatch.d.ts +26 -5
  391. package/dist/utils/landPatch.d.ts.map +1 -1
  392. package/dist/utils/landPatch.js +124 -9
  393. package/dist/utils/layoutPlacement.d.ts +30 -0
  394. package/dist/utils/layoutPlacement.d.ts.map +1 -0
  395. package/dist/utils/layoutPlacement.js +113 -0
  396. package/dist/utils/linkRegistry.d.ts +15 -0
  397. package/dist/utils/linkRegistry.d.ts.map +1 -0
  398. package/dist/utils/linkRegistry.js +11 -0
  399. package/dist/utils/shapes.d.ts +28 -2
  400. package/dist/utils/shapes.d.ts.map +1 -1
  401. package/dist/utils/shapes.js +32 -3
  402. package/dist/utils/sharedParts.d.ts +61 -0
  403. package/dist/utils/sharedParts.d.ts.map +1 -0
  404. package/dist/utils/sharedParts.js +268 -0
  405. package/dist/utils/svgAsset.d.ts +6 -0
  406. package/dist/utils/svgAsset.d.ts.map +1 -0
  407. package/dist/utils/svgAsset.js +46 -0
  408. package/dist/utils/waterLight.d.ts +29 -0
  409. package/dist/utils/waterLight.d.ts.map +1 -0
  410. package/dist/utils/waterLight.js +67 -0
  411. package/dist/utils/waterReflection.d.ts +185 -0
  412. package/dist/utils/waterReflection.d.ts.map +1 -0
  413. package/dist/utils/waterReflection.js +616 -0
  414. package/package.json +4 -3
@@ -0,0 +1,38 @@
1
+ import { useCallback, useMemo, useSyncExternalStore } from 'react';
2
+ import { SceneActions, patchTimeSettings, patchSunShadows, patchSunMultipliers } from '@3driseai/3drise-core';
3
+ const noopUnsubscribe = () => { };
4
+ /**
5
+ * The applied action patch for one action address, or undefined.
6
+ *
7
+ * For the keyed views ('render', 'time'): their patch is not laid over one
8
+ * settings object but split across several (post-processing, sky.sunSystem, the
9
+ * HDR block, time settings), so each renderer reads the patch and lays its own
10
+ * part over its own settings (patchPostProcessing, patchHdr, patchSunShadows,
11
+ * patchTimeSettings, patchSunMultipliers). Subscribes to that one address only.
12
+ * For everything else use useRuntimeSettings.
13
+ */
14
+ export function useActionPatch(state) {
15
+ const subscribe = useCallback((listener) => (state ? SceneActions.subscribe(state, listener) : noopUnsubscribe), [state]);
16
+ const getSnapshot = useCallback(() => SceneActions.getPatch(state), [state]);
17
+ return useSyncExternalStore(subscribe, getSnapshot, getSnapshot);
18
+ }
19
+ export default useActionPatch;
20
+ /** Time settings with an applied 'time' action laid over them (`t` itself when none). */
21
+ export function useRuntimeTime(t) {
22
+ const patch = useActionPatch('time');
23
+ return useMemo(() => patchTimeSettings(t, patch), [t, patch]);
24
+ }
25
+ /**
26
+ * sky settings whose sunSystem carries the applied 'render' (shadows) and 'time'
27
+ * (sun / moon multipliers) actions. Same object when neither touches it.
28
+ */
29
+ export function useRuntimeSunSystem(sky) {
30
+ const renderPatch = useActionPatch('render');
31
+ const timePatch = useActionPatch('time');
32
+ return useMemo(() => {
33
+ if (!sky?.sunSystem)
34
+ return sky;
35
+ const sunSystem = patchSunMultipliers(patchSunShadows(sky.sunSystem, renderPatch), timePatch);
36
+ return sunSystem === sky.sunSystem ? sky : { ...sky, sunSystem };
37
+ }, [sky, renderPatch, timePatch]);
38
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"useCloudSun.d.ts","sourceRoot":"","sources":["../../src/hooks/useCloudSun.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAEvE;;;;;;;;;;;;;;;;;;GAkBG;AAEH,MAAM,WAAW,aAAa;IAC1B,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC;IACzB,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC;IACnB,kFAAkF;IAClF,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC;IACxB,sDAAsD;IACtD,aAAa,EAAE,KAAK,CAAC,KAAK,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;CAChB;AAaD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,SAAS,EAAE,GAAG,EAAE,aAAa,GAAG,aAAa,CA2BlI;AAED,MAAM,WAAW,kBAAkB;IAC/B,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,gEAAgE;IAChE,SAAS,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC;CAC7B;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,OAAO,GAAE,kBAAuB,GAAG;IAAE,KAAK,EAAE,aAAa,CAAC;IAAC,MAAM,IAAI,aAAa,CAAA;CAAE,CAmD/G;AAED,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"useCloudSun.d.ts","sourceRoot":"","sources":["../../src/hooks/useCloudSun.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAEvE;;;;;;;;;;;;;;;;;;GAkBG;AAEH,MAAM,WAAW,aAAa;IAC1B,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC;IACzB,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC;IACnB,kFAAkF;IAClF,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC;IACxB,sDAAsD;IACtD,aAAa,EAAE,KAAK,CAAC,KAAK,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;CAChB;AAaD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,SAAS,EAAE,GAAG,EAAE,aAAa,GAAG,aAAa,CA2BlI;AAED,MAAM,WAAW,kBAAkB;IAC/B,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,gEAAgE;IAChE,SAAS,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC;CAC7B;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,OAAO,GAAE,kBAAuB,GAAG;IAAE,KAAK,EAAE,aAAa,CAAC;IAAC,MAAM,IAAI,aAAa,CAAA;CAAE,CAoD/G;AAED,eAAe,WAAW,CAAC"}
@@ -74,8 +74,9 @@ export function useCloudSun(options = {}) {
74
74
  else if (rendered) {
75
75
  dir = scratch.copy(rendered.sunDirection);
76
76
  }
77
- else if (timeSettings?.enabled) {
78
- // Same source SunLight reads, so the two can never disagree.
77
+ else if (timeSettings?.enabled || (!timeSettings && skySystemManager.isEnabled())) {
78
+ // Same source SunLight reads, so the two can never disagree. A caller without timeSettings
79
+ // (environment, land and urban objects) still follows the clock while the sun rig is on.
79
80
  const sunDirection = skySystemManager.getState()?.sunDirection;
80
81
  dir = sunDirection
81
82
  ? scratch.copy(sunDirection).normalize()
@@ -0,0 +1,6 @@
1
+ import { type DependencyList } from 'react';
2
+ export interface Disposable {
3
+ dispose(): void;
4
+ }
5
+ export declare function useCommittedInstance<T extends Disposable>(factory: () => T, deps: DependencyList): T;
6
+ //# sourceMappingURL=useCommittedInstance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCommittedInstance.d.ts","sourceRoot":"","sources":["../../src/hooks/useCommittedInstance.ts"],"names":[],"mappings":"AAiBA,OAAO,EAA8B,KAAK,cAAc,EAAE,MAAM,OAAO,CAAC;AAExE,MAAM,WAAW,UAAU;IAAG,OAAO,IAAI,IAAI,CAAA;CAAE;AAE/C,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,cAAc,GAAG,CAAC,CAkBpG"}
@@ -0,0 +1,42 @@
1
+ // =============================================================================
2
+ // useCommittedInstance — a disposable three.js instance owned by a component
3
+ // =============================================================================
4
+ //
5
+ // For families whose core builds plain three.js (urban, sports…): build(…) -> { dispose() }.
6
+ // The instance is built in a useMemo and disposed only when it is really gone:
7
+ //
8
+ // - React StrictMode (dev) calls a memo factory twice on mount and keeps one result. Every
9
+ // build is listed, and the first effect disposes the ones that were not committed — an
10
+ // uncommitted build would leak its geometry and, worse, its registered lamps (ghost lamps).
11
+ // - StrictMode also runs an effect's cleanup right after mount and mounts again with the same
12
+ // memoised instance. An eager dispose there empties the instance (unregisters its lamps,
13
+ // empties its group) while it stays on screen. The cleanup is deferred one tick and skipped
14
+ // when the same instance is mounted again.
15
+ // - When deps change (a structural rebuild that builds a new instance), the previous one is
16
+ // disposed as soon as the new one commits.
17
+ //
18
+ import { useEffect, useMemo, useRef } from 'react';
19
+ export function useCommittedInstance(factory, deps) {
20
+ const built = useRef([]);
21
+ const live = useRef(null);
22
+ const instance = useMemo(() => { const inst = factory(); built.current.push(inst); return inst; }, deps); // eslint-disable-line react-hooks/exhaustive-deps
23
+ useEffect(() => {
24
+ live.current = instance;
25
+ // the uncommitted StrictMode twin, or the instance this one replaced
26
+ built.current = built.current.filter((inst) => { if (inst === instance)
27
+ return true; inst.dispose(); return false; });
28
+ return () => {
29
+ live.current = null;
30
+ setTimeout(() => {
31
+ if (live.current === instance)
32
+ return; // StrictMode remount of the same instance
33
+ const k = built.current.indexOf(instance);
34
+ if (k >= 0) {
35
+ built.current.splice(k, 1);
36
+ instance.dispose();
37
+ }
38
+ }, 0);
39
+ };
40
+ }, [instance]);
41
+ return instance;
42
+ }
@@ -30,7 +30,7 @@ export declare const CONFIG_LIVE_KEY = "__configLive";
30
30
  /** Objects too: a land object's texture layers drag live as one `textures` record. */
31
31
  export type ConfigLiveValue = number | string | boolean | object;
32
32
  /** Generative families that support live config editing. */
33
- export type ConfigLiveFamily = 'particles' | 'effects' | 'grids' | 'lights' | 'environment' | 'space' | 'land' | 'text' | 'image' | 'gallery';
33
+ export type ConfigLiveFamily = 'particles' | 'effects' | 'grids' | 'lights' | 'environment' | 'space' | 'land' | 'text' | 'image' | 'gallery' | 'urban' | 'vegetation' | 'sports' | 'water';
34
34
  export interface ConfigLiveHandle {
35
35
  id: string;
36
36
  family: ConfigLiveFamily;
@@ -1 +1 @@
1
- {"version":3,"file":"useConfigLive.d.ts","sourceRoot":"","sources":["../../src/hooks/useConfigLive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoC,KAAK,gBAAgB,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAChG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAGtC;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,oFAAoF;AACpF,eAAO,MAAM,eAAe,iBAAiB,CAAC;AAE9C,sFAAsF;AACtF,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AAEjE,4DAA4D;AAC5D,MAAM,MAAM,gBAAgB,GAAG,WAAW,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,GAAG,aAAa,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;AAE9I,MAAM,WAAW,gBAAgB;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,gBAAgB,CAAC;IACzB,+DAA+D;IAC/D,KAAK,EAAE,OAAO,CAAC;IACf,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,GAAG,IAAI,CAAC;CAClD;AAKD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAQhE;AAED,sFAAsF;AACtF,wBAAgB,aAAa,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG;IAAE,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,GAAG,IAAI,CAAA;CAAE,CAYpG;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAC/B,OAAO,EAAE,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC,EACnC,EAAE,EAAE,MAAM,GAAG,SAAS,EACtB,MAAM,EAAE,gBAAgB,EACxB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,SAAS,MAAM,EAAE,EAC7B,KAAK,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,KAAK,IAAI,GAC5D,gBAAgB,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CA8BnD;AAED,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"useConfigLive.d.ts","sourceRoot":"","sources":["../../src/hooks/useConfigLive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoC,KAAK,gBAAgB,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAChG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAGtC;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,oFAAoF;AACpF,eAAO,MAAM,eAAe,iBAAiB,CAAC;AAE9C,sFAAsF;AACtF,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AAEjE,4DAA4D;AAC5D,MAAM,MAAM,gBAAgB,GAAG,WAAW,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,GAAG,aAAa,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,YAAY,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE5L,MAAM,WAAW,gBAAgB;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,gBAAgB,CAAC;IACzB,+DAA+D;IAC/D,KAAK,EAAE,OAAO,CAAC;IACf,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,GAAG,IAAI,CAAC;CAClD;AAKD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAQhE;AAED,sFAAsF;AACtF,wBAAgB,aAAa,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG;IAAE,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,GAAG,IAAI,CAAA;CAAE,CAYpG;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAC/B,OAAO,EAAE,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC,EACnC,EAAE,EAAE,MAAM,GAAG,SAAS,EACtB,MAAM,EAAE,gBAAgB,EACxB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,SAAS,MAAM,EAAE,EAC7B,KAAK,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,KAAK,IAAI,GAC5D,gBAAgB,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CA8BnD;AAED,eAAe,aAAa,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useContinuousEffects.d.ts","sourceRoot":"","sources":["../../src/hooks/useContinuousEffects.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGhF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,MAAM,WAAW,2BAA2B;IACxC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,0BAA0B;IACvC,eAAe,EAAE,MAAM,OAAO,CAAC;IAC/B,cAAc,EAAE,KAAK,CAAC,gBAAgB,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;CAC9D;AAGD,eAAO,MAAM,oBAAoB,GAEjC,gBAAgB,qBAAqB,GAAG,IAAI,EAAE,UAAS,2BAAgC,EAAE,eAAe,cAAc,KAAG,0BAkJxH,CAAC;AACF,eAAe,oBAAoB,CAAC"}
1
+ {"version":3,"file":"useContinuousEffects.d.ts","sourceRoot":"","sources":["../../src/hooks/useContinuousEffects.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGhF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,MAAM,WAAW,2BAA2B;IACxC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,0BAA0B;IACvC,eAAe,EAAE,MAAM,OAAO,CAAC;IAC/B,cAAc,EAAE,KAAK,CAAC,gBAAgB,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;CAC9D;AAGD,eAAO,MAAM,oBAAoB,GAEjC,gBAAgB,qBAAqB,GAAG,IAAI,EAAE,UAAS,2BAAgC,EAAE,eAAe,cAAc,KAAG,0BA+JxH,CAAC;AACF,eAAe,oBAAoB,CAAC"}
@@ -11,7 +11,7 @@ objectSettings, options = {}, objectSource) => {
11
11
  const { enabled = true, animateMaterial = true, hovered = false } = options;
12
12
  // const { object } = ref || {};
13
13
  // Path animation hook for animations with pathId
14
- const { startPathAnimation, updatePathAnimation, isAnimating: isPathAnimating, stopPathAnimation, } = usePathAnimation();
14
+ const { startPathAnimation, updatePathAnimation, isAnimating: isPathAnimating, stopPathAnimation, setPathOptions, } = usePathAnimation();
15
15
  const activePathIdRef = useRef(null);
16
16
  const effectStateRef = useRef(null);
17
17
  // Cache children with materials to avoid traverse() every frame
@@ -50,33 +50,43 @@ objectSettings, options = {}, objectSource) => {
50
50
  // Done lazily inside the frame loop instead of in an effect: the ref only
51
51
  // attaches after render, so an effect keyed on the object would miss the
52
52
  // first (and often the only) chance to see it. See the swap check below.
53
+ // The path animation the settings ask for. Started from the frame loop, not here: on load the
54
+ // object's ref attaches after render and the path may reach the registry after the object
55
+ // (project assets), so the start is retried each frame until both are there.
56
+ const wantedPathRef = useRef(null);
53
57
  useEffect(() => {
54
- const object = resolveObject3D(objectSource);
55
- if (!enabled || !object)
56
- return;
57
- // Path animations come from transform.animations
58
58
  const animations = objectSettings?.animations?.transform?.animations || [];
59
- const pathAnimation = animations.find(anim => anim.pathId && anim.active);
60
- if (pathAnimation?.pathId) {
61
- // Start path animation if not already active or if pathId changed
62
- if (activePathIdRef.current !== pathAnimation.pathId) {
63
- activePathIdRef.current = pathAnimation.pathId;
64
- startPathAnimation(pathAnimation.pathId, pathAnimation.duration / 1000, {
65
- ease: pathAnimation.ease,
66
- loop: pathAnimation.loop,
67
- yoyo: pathAnimation.yoyo,
68
- applyRotation: pathAnimation.applyRotation,
69
- offset: pathAnimation.offset,
70
- keepOriginalTransform: pathAnimation.keepOriginalTransform,
71
- });
59
+ const pathAnimation = enabled ? animations.find(anim => anim.pathId && anim.active) : undefined;
60
+ if (!pathAnimation?.pathId) {
61
+ wantedPathRef.current = null;
62
+ if (activePathIdRef.current) {
63
+ stopPathAnimation();
64
+ activePathIdRef.current = null;
72
65
  }
66
+ return;
67
+ }
68
+ const options = {
69
+ ease: pathAnimation.ease,
70
+ loop: pathAnimation.loop,
71
+ yoyo: pathAnimation.yoyo,
72
+ applyRotation: pathAnimation.applyRotation,
73
+ offset: pathAnimation.offset,
74
+ reverse: pathAnimation.reverse,
75
+ delay: (pathAnimation.delay ?? 0) / 1000,
76
+ restRotation: objectSettings?.meshSettings?.rotation,
77
+ keepOriginalTransform: pathAnimation.keepOriginalTransform,
78
+ };
79
+ wantedPathRef.current = { pathId: pathAnimation.pathId, duration: pathAnimation.duration / 1000, options };
80
+ if (activePathIdRef.current === pathAnimation.pathId) {
81
+ // same path, settings edited (offset, rotation, loop…): apply them to the running animation
82
+ setPathOptions({ ease: options.ease, loop: options.loop, yoyo: options.yoyo, applyRotation: options.applyRotation, offset: options.offset, reverse: options.reverse, restRotation: options.restRotation });
73
83
  }
74
84
  else if (activePathIdRef.current) {
75
- // Stop path animation if no longer active
85
+ // another path: the frame loop starts it
76
86
  stopPathAnimation();
77
87
  activePathIdRef.current = null;
78
88
  }
79
- }, [enabled, objectSettings?.animations?.transform?.animations, objectSource, startPathAnimation, stopPathAnimation]);
89
+ }, [enabled, objectSettings?.animations?.transform?.animations, objectSettings?.meshSettings?.rotation, startPathAnimation, stopPathAnimation, setPathOptions]);
80
90
  useFrame((state, delta) => {
81
91
  const object = resolveObject3D(objectSource);
82
92
  if (!enabled || !object || !objectSettings) {
@@ -103,6 +113,12 @@ objectSettings, options = {}, objectSource) => {
103
113
  const time = state.clock.getElapsedTime();
104
114
  const mouse = state.pointer;
105
115
  const currentTime = Date.now();
116
+ // Start the wanted path animation once its path is in the registry (retried until it is)
117
+ const wanted = wantedPathRef.current;
118
+ if (wanted && activePathIdRef.current !== wanted.pathId
119
+ && startPathAnimation(wanted.pathId, wanted.duration, wanted.options)) {
120
+ activePathIdRef.current = wanted.pathId;
121
+ }
106
122
  // Update path animation if active
107
123
  const pathIsActive = isPathAnimating();
108
124
  if (pathIsActive) {
@@ -0,0 +1,7 @@
1
+ import { type GridLayout } from '@3driseai/3drise-core';
2
+ /**
3
+ * The grid a reference names ('preset:<id>' or a saved grid's asset id — core gridLayoutRefs), kept
4
+ * current: null until a saved grid is registered (load order), and its new version after an edit.
5
+ */
6
+ export declare function useGridLayout(ref: string | null | undefined): GridLayout | null;
7
+ //# sourceMappingURL=useGridLayout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useGridLayout.d.ts","sourceRoot":"","sources":["../../src/hooks/useGridLayout.ts"],"names":[],"mappings":"AACA,OAAO,EAA+D,KAAK,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAErH;;;GAGG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,UAAU,GAAG,IAAI,CAG/E"}
@@ -0,0 +1,10 @@
1
+ import { useMemo, useSyncExternalStore } from 'react';
2
+ import { resolveGridLayout, subscribeGridLayouts, gridLayoutsVersion } from '@3driseai/3drise-core';
3
+ /**
4
+ * The grid a reference names ('preset:<id>' or a saved grid's asset id — core gridLayoutRefs), kept
5
+ * current: null until a saved grid is registered (load order), and its new version after an edit.
6
+ */
7
+ export function useGridLayout(ref) {
8
+ const version = useSyncExternalStore(subscribeGridLayouts, gridLayoutsVersion, gridLayoutsVersion);
9
+ return useMemo(() => resolveGridLayout(ref), [ref, version]); // eslint-disable-line react-hooks/exhaustive-deps
10
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"useInteractionEffects.d.ts","sourceRoot":"","sources":["../../src/hooks/useInteractionEffects.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAEnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,MAAM,WAAW,4BAA4B;IACzC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,2BAA2B;CAC3C;AAqDD,eAAO,MAAM,YAAY,GAAI,gBAAgB,qBAAqB,GAAG,IAAI,EAAE,UAAS,4BAAiC,EAAE,eAAe,cAAc,KAAG,2BAqBtJ,CAAC;AACF,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"useInteractionEffects.d.ts","sourceRoot":"","sources":["../../src/hooks/useInteractionEffects.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,qBAAqB,EAAqB,MAAM,uBAAuB,CAAC;AAEtF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,MAAM,WAAW,4BAA4B;IACzC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,2BAA2B;CAC3C;AA4DD,eAAO,MAAM,YAAY,GAAI,gBAAgB,qBAAqB,GAAG,IAAI,EAAE,UAAS,4BAAiC,EAAE,eAAe,cAAc,KAAG,2BA8CtJ,CAAC;AACF,eAAe,YAAY,CAAC"}
@@ -1,5 +1,6 @@
1
+ import { useEffect, useRef } from "react";
1
2
  import { useFrame } from "@react-three/fiber";
2
- import { detectAnimatableDomain, handleEdgesMouseMove, handleMaterialMouseMove, handleTransformMouseMove, } from '@3driseai/3drise-core';
3
+ import { AnimationTargetState, PointerHistory, detectAnimatableDomain, handleEdgesMouseMove, handleMaterialMouseMove, handleMaterialMouseMoveTargets, handleTransformMouseMove, handleTransformMouseMoveTargets, isTargetedMouseMove, targetRootKind, } from '@3driseai/3drise-core';
3
4
  import { resolveObject3D } from "../utils/resolveObject3D.js";
4
5
  // =============================================================================
5
6
  // FLAT-SHAPE BACK COMPAT
@@ -51,21 +52,59 @@ function resolveDomains(settings) {
51
52
  // =============================================================================
52
53
  // useMouseMove
53
54
  // =============================================================================
55
+ /** Rows on a group / model split by scope: self rows keep the old whole-object path. */
56
+ function splitByScope(object, properties) {
57
+ const self = [];
58
+ const targeted = [];
59
+ for (const p of properties)
60
+ (isTargetedMouseMove(object, p) ? targeted : self).push(p);
61
+ return { self, targeted };
62
+ }
54
63
  export const useMouseMove = (objectSettings, options = {}, objectSource) => {
55
64
  const { enabled = true, animateMaterial = true } = options;
65
+ // Each / Targets rows (groups, models): rest values + putting parts back, and the
66
+ // pointer's recent path for the follow-lag stagger.
67
+ const targetsRef = useRef(null);
68
+ const historyRef = useRef(null);
69
+ useEffect(() => () => { targetsRef.current?.dispose(); targetsRef.current = null; }, []);
56
70
  useFrame((state) => {
57
71
  const object = resolveObject3D(objectSource);
58
- if (!enabled || !object || !objectSettings)
59
- return;
60
- const domains = resolveDomains(objectSettings);
61
- if (!domains.enabled)
72
+ const domains = enabled && object && objectSettings ? resolveDomains(objectSettings) : null;
73
+ if (!object || !objectSettings || !domains?.enabled) {
74
+ if (targetsRef.current) {
75
+ targetsRef.current.dispose();
76
+ targetsRef.current = null;
77
+ }
62
78
  return;
79
+ }
63
80
  const pointer = state.pointer;
64
- if (domains.transform?.enabled && domains.transform.properties?.length) {
65
- handleTransformMouseMove({ object, meshSettings: objectSettings.meshSettings }, domains.transform.properties, pointer);
81
+ const transformOn = !!(domains.transform?.enabled && domains.transform.properties?.length);
82
+ const materialOn = !!(animateMaterial && domains.material?.enabled && domains.material.properties?.length);
83
+ const scoped = !!targetRootKind(object);
84
+ if (scoped && targetsRef.current?.object !== object) {
85
+ targetsRef.current?.dispose();
86
+ targetsRef.current = new AnimationTargetState(object);
87
+ }
88
+ const targets = scoped ? targetsRef.current : null;
89
+ const transformRows = transformOn ? (targets ? splitByScope(object, domains.transform.properties) : { self: domains.transform.properties, targeted: [] }) : null;
90
+ const materialRows = materialOn ? (targets ? splitByScope(object, domains.material.properties) : { self: domains.material.properties, targeted: [] }) : null;
91
+ if (transformRows?.self.length) {
92
+ handleTransformMouseMove({ object, meshSettings: objectSettings.meshSettings }, transformRows.self, pointer);
93
+ }
94
+ if (materialRows?.self.length) {
95
+ handleMaterialMouseMove({ object, materialSettings: objectSettings.materialSettings }, materialRows.self, pointer);
66
96
  }
67
- if (animateMaterial && domains.material?.enabled && domains.material.properties?.length) {
68
- handleMaterialMouseMove({ object, materialSettings: objectSettings.materialSettings }, domains.material.properties, pointer);
97
+ if (targets) {
98
+ const now = state.clock.getElapsedTime();
99
+ const history = historyRef.current ?? (historyRef.current = new PointerHistory());
100
+ history.push(now, pointer.x, pointer.y);
101
+ targets.beginFrame();
102
+ if (transformRows?.targeted.length)
103
+ handleTransformMouseMoveTargets(targets, transformRows.targeted, history, now);
104
+ if (materialRows?.targeted.length)
105
+ handleMaterialMouseMoveTargets(targets, materialRows.targeted, history, now);
106
+ // Parts a row stopped driving (removed, switched off, scope changed) go back to rest.
107
+ targets.endFrame();
69
108
  }
70
109
  if (domains.edges?.enabled && domains.edges.properties?.length) {
71
110
  handleEdgesMouseMove({ object, edgesMaterialSettings: objectSettings.edgesSettings?.materialSettings }, domains.edges.properties, pointer);
@@ -1 +1 @@
1
- {"version":3,"file":"useLightLive.d.ts","sourceRoot":"","sources":["../../src/hooks/useLightLive.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACzD,OAAO,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE7C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAGvD,eAAO,MAAM,gBAAgB,EAAE,SAAS,MAAM,EAe7C,CAAC;AAKF,wBAAgB,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAyB1H;AAED;;;GAGG;AACH,wBAAgB,YAAY,CACxB,OAAO,EAAE,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC,EACnC,QAAQ,EAAE,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC,EACjC,EAAE,EAAE,MAAM,GAAG,SAAS,EACtB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC5B,gBAAgB,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CAMnD;AAED,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"useLightLive.d.ts","sourceRoot":"","sources":["../../src/hooks/useLightLive.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACzD,OAAO,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE7C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAGvD,eAAO,MAAM,gBAAgB,EAAE,SAAS,MAAM,EAiB7C,CAAC;AAKF,wBAAgB,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAyB1H;AAED;;;GAGG;AACH,wBAAgB,YAAY,CACxB,OAAO,EAAE,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC,EACnC,QAAQ,EAAE,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC,EACjC,EAAE,EAAE,MAAM,GAAG,SAAS,EACtB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC5B,gBAAgB,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CAMnD;AAED,eAAe,YAAY,CAAC"}
@@ -12,6 +12,8 @@ export const LIGHT_STRUCTURAL = [
12
12
  // candle: the wax and wick are rebuilt, and the flame mode swaps meshes.
13
13
  'body', 'waxColor', 'flameMode', 'smoke',
14
14
  'height', 'radius', 'melt', 'flameHeight', 'flameWidth',
15
+ // projector: the lamp swaps the lens shader and the bank and pool mask are rebuilt ('rows' is above).
16
+ 'lamp', 'columns', 'aspect', 'edgeSoftness',
15
17
  'shadow.enabled', 'shadow.mapSize', 'shadow.cameraNear', 'shadow.cameraFar',
16
18
  'shadow.cameraLeft', 'shadow.cameraRight', 'shadow.cameraTop', 'shadow.cameraBottom',
17
19
  'shadow.cameraFov', 'shadow.focus',
@@ -0,0 +1,7 @@
1
+ /**
2
+ * A linked instance's view of its source (linkRegistry): 'shared' (the source draws it),
3
+ * 'fallback' (the source cannot share — render its look on your own) or 'pending' (the
4
+ * source has not drawn yet). Re-renders only when the status changes.
5
+ */
6
+ export declare function useLinkStatus(sourceId: string | null): 'shared' | 'fallback' | 'pending';
7
+ //# sourceMappingURL=useLinkStatus.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useLinkStatus.d.ts","sourceRoot":"","sources":["../../src/hooks/useLinkStatus.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,CAQxF"}
@@ -0,0 +1,20 @@
1
+ import { useRef, useState } from 'react';
2
+ import { useFrame } from '@react-three/fiber';
3
+ import { linkState } from '../utils/linkRegistry.js';
4
+ /**
5
+ * A linked instance's view of its source (linkRegistry): 'shared' (the source draws it),
6
+ * 'fallback' (the source cannot share — render its look on your own) or 'pending' (the
7
+ * source has not drawn yet). Re-renders only when the status changes.
8
+ */
9
+ export function useLinkStatus(sourceId) {
10
+ const [status, setStatus] = useState('pending');
11
+ const last = useRef(status);
12
+ useFrame(() => {
13
+ const next = sourceId ? linkState(sourceId)?.status ?? 'pending' : 'pending';
14
+ if (next !== last.current) {
15
+ last.current = next;
16
+ setStatus(next);
17
+ }
18
+ });
19
+ return status;
20
+ }
@@ -1,4 +1,9 @@
1
1
  import type { MaterialSettings } from '@3driseai/3drise-core';
2
2
  import type { Object3DSource } from "../utils/resolveObject3D";
3
- export declare const useMaterialApplication: (source: Object3DSource, materialSettings: MaterialSettings, shouldApply3driseMaterial?: boolean, onApplied?: () => void) => void;
3
+ /**
4
+ * `rebuildKey`: changes when the object's meshes are rebuilt without a material change
5
+ * (a layout switched on / off, copies added, a variant mix changed): the new meshes
6
+ * mount with their default material, so the material is applied again.
7
+ */
8
+ export declare const useMaterialApplication: (source: Object3DSource, materialSettings: MaterialSettings, shouldApply3driseMaterial?: boolean, onApplied?: () => void, rebuildKey?: string) => void;
4
9
  //# sourceMappingURL=useMaterialApplication.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useMaterialApplication.d.ts","sourceRoot":"","sources":["../../src/hooks/useMaterialApplication.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAG9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG/D,eAAO,MAAM,sBAAsB,GAAI,QAAQ,cAAc,EAAE,kBAAkB,gBAAgB,EAAE,4BAA4B,OAAO,EAAE,YAAY,MAAM,IAAI,KAAG,IAyIhK,CAAC"}
1
+ {"version":3,"file":"useMaterialApplication.d.ts","sourceRoot":"","sources":["../../src/hooks/useMaterialApplication.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAG9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG/D;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,GAAI,QAAQ,cAAc,EAAE,kBAAkB,gBAAgB,EAAE,4BAA4B,OAAO,EAAE,YAAY,MAAM,IAAI,EAAE,aAAa,MAAM,KAAG,IAyIrL,CAAC"}
@@ -8,7 +8,12 @@
8
8
  import { useEffect, useRef } from 'react';
9
9
  import { createAndApplyMaterial, MATERIAL_INSTANCE_KEY, MaterialRegistryAPI, ObjectManager, resolveTextures, traverseSkippingEdgesAndEffects } from '@3driseai/3drise-core';
10
10
  import { resolveObject3D } from "../utils/resolveObject3D.js";
11
- export const useMaterialApplication = (source, materialSettings, shouldApply3driseMaterial, onApplied) => {
11
+ /**
12
+ * `rebuildKey`: changes when the object's meshes are rebuilt without a material change
13
+ * (a layout switched on / off, copies added, a variant mix changed): the new meshes
14
+ * mount with their default material, so the material is applied again.
15
+ */
16
+ export const useMaterialApplication = (source, materialSettings, shouldApply3driseMaterial, onApplied, rebuildKey) => {
12
17
  // Track all material instances we've created so we can release them on change/unmount
13
18
  // const { getTypeByName } = useObjectTypes();
14
19
  const activeInstancesRef = useRef([]);
@@ -34,7 +39,7 @@ export const useMaterialApplication = (source, materialSettings, shouldApply3dri
34
39
  return () => {
35
40
  releaseActiveInstances();
36
41
  };
37
- }, [materialSettings, source]);
42
+ }, [materialSettings, source, rebuildKey]);
38
43
  // Unmount-only cleanup: dispose everything once the mesh leaves the scene.
39
44
  useEffect(() => {
40
45
  return () => {
@@ -35,13 +35,23 @@ export interface UseOceanMaterialOptions {
35
35
  * merged in — where a host does its own per-frame work (snapping the
36
36
  * clipmap to the camera, say) with the config it is actually rendering. */
37
37
  onFrame?(config: OceanConfig, quality: OceanQualityConfig, state: RootState): void;
38
+ /** The world ocean: wins the reflection election outright when it asks for
39
+ * planar, and its plane is at seaLevel under the camera. A placed body's
40
+ * plane is its root. */
41
+ world?: boolean;
38
42
  }
39
43
  export interface OceanMaterialHandle {
40
44
  material: OceanSurfaceMaterial;
41
45
  /** Attach to the host's root group: it carries the scene id and the live
42
46
  * handle a controller reaches through `findById`. */
43
47
  rootRef: React.RefObject<THREE.Group | null>;
48
+ /** Attach to the host's mesh(es). Runs the one planar reflection pass when
49
+ * this surface won the election this frame — from onBeforeRender, never a
50
+ * positive-priority useFrame (the cloud pass owns the render loop). */
51
+ onBeforeRender: (renderer: THREE.WebGLRenderer, scene: THREE.Scene, camera: THREE.Camera) => void;
52
+ /** A placed body's mesh: closes the visibility query opened in onBeforeRender. */
53
+ onAfterRender: () => void;
44
54
  }
45
- export declare function useOceanMaterial({ id, config, quality, skySettings, timeSettings, sunIntensity, animations, mouseMove, terrain, onFrame, }: UseOceanMaterialOptions): OceanMaterialHandle;
55
+ export declare function useOceanMaterial({ id, config, quality, skySettings, timeSettings, sunIntensity, animations, mouseMove, terrain, onFrame, world, }: UseOceanMaterialOptions): OceanMaterialHandle;
46
56
  export default useOceanMaterial;
47
57
  //# sourceMappingURL=useOceanMaterial.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useOceanMaterial.d.ts","sourceRoot":"","sources":["../../src/hooks/useOceanMaterial.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAY,KAAK,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAGvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAU7E,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AASrI;;;;;;;;;;;;GAYG;AAEH,MAAM,WAAW,uBAAuB;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,EAAE,kBAAkB,CAAC;IAC5B,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mEAAmE;IACnE,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,6CAA6C;IAC7C,SAAS,CAAC,EAAE,qBAAqB,CAAC;IAClC;;yDAEqD;IACrD,OAAO,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IAC/B;;gFAE4E;IAC5E,OAAO,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,kBAAkB,EAAE,KAAK,EAAE,SAAS,GAAG,IAAI,CAAC;CACtF;AAED,MAAM,WAAW,mBAAmB;IAChC,QAAQ,EAAE,oBAAoB,CAAC;IAC/B;0DACsD;IACtD,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;CAChD;AAED,wBAAgB,gBAAgB,CAAC,EAC7B,EAAE,EACF,MAAM,EACN,OAAO,EACP,WAAW,EACX,YAAY,EACZ,YAAgB,EAChB,UAAU,EACV,SAAS,EACT,OAAO,EACP,OAAO,GACV,EAAE,uBAAuB,GAAG,mBAAmB,CA0H/C;AAED,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"useOceanMaterial.d.ts","sourceRoot":"","sources":["../../src/hooks/useOceanMaterial.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAY,KAAK,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAGvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAiB7E,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AASrI;;;;;;;;;;;;GAYG;AAEH,MAAM,WAAW,uBAAuB;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,EAAE,kBAAkB,CAAC;IAC5B,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mEAAmE;IACnE,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,6CAA6C;IAC7C,SAAS,CAAC,EAAE,qBAAqB,CAAC;IAClC;;yDAEqD;IACrD,OAAO,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IAC/B;;gFAE4E;IAC5E,OAAO,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,kBAAkB,EAAE,KAAK,EAAE,SAAS,GAAG,IAAI,CAAC;IACnF;;6BAEyB;IACzB,KAAK,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAChC,QAAQ,EAAE,oBAAoB,CAAC;IAC/B;0DACsD;IACtD,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;IAC7C;;4EAEwE;IACxE,cAAc,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC;IAClG,kFAAkF;IAClF,aAAa,EAAE,MAAM,IAAI,CAAC;CAC7B;AAED,wBAAgB,gBAAgB,CAAC,EAC7B,EAAE,EACF,MAAM,EACN,OAAO,EACP,WAAW,EACX,YAAY,EACZ,YAAgB,EAChB,UAAU,EACV,SAAS,EACT,OAAO,EACP,OAAO,EACP,KAAa,GAChB,EAAE,uBAAuB,GAAG,mBAAmB,CA6Q/C;AAED,eAAe,gBAAgB,CAAC"}