@3driseai/3drise-viewer 0.1.39 → 0.1.41

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (315) hide show
  1. package/dist/animationsV2/ClipsRuntime.d.ts +30 -0
  2. package/dist/animationsV2/ClipsRuntime.d.ts.map +1 -1
  3. package/dist/animationsV2/ClipsRuntime.js +185 -14
  4. package/dist/animationsV2/clipUtils.d.ts +15 -0
  5. package/dist/animationsV2/clipUtils.d.ts.map +1 -1
  6. package/dist/animationsV2/clipUtils.js +39 -2
  7. package/dist/animationsV2/normalize.d.ts.map +1 -1
  8. package/dist/animationsV2/normalize.js +4 -0
  9. package/dist/animationsV2/types.d.ts +12 -0
  10. package/dist/animationsV2/types.d.ts.map +1 -1
  11. package/dist/api/sceneHandle.d.ts +40 -3
  12. package/dist/api/sceneHandle.d.ts.map +1 -1
  13. package/dist/api/sceneHandle.js +40 -0
  14. package/dist/components/AnimatedObject.d.ts.map +1 -1
  15. package/dist/components/AnimatedObject.js +6 -2
  16. package/dist/components/EnabledContext.d.ts +12 -0
  17. package/dist/components/EnabledContext.d.ts.map +1 -0
  18. package/dist/components/EnabledContext.js +12 -0
  19. package/dist/components/GalleryObject.d.ts +13 -0
  20. package/dist/components/GalleryObject.d.ts.map +1 -0
  21. package/dist/components/GalleryObject.js +46 -0
  22. package/dist/components/ImageObject.d.ts +9 -0
  23. package/dist/components/ImageObject.d.ts.map +1 -0
  24. package/dist/components/ImageObject.js +26 -0
  25. package/dist/components/ObjectNode.d.ts.map +1 -1
  26. package/dist/components/ObjectNode.js +17 -6
  27. package/dist/components/ObjectsRenderer.d.ts.map +1 -1
  28. package/dist/components/ObjectsRenderer.js +9 -0
  29. package/dist/components/ProjectLoader.d.ts +2 -0
  30. package/dist/components/ProjectLoader.d.ts.map +1 -1
  31. package/dist/components/ProjectLoader.js +2 -2
  32. package/dist/components/SceneBuilder.d.ts +10 -0
  33. package/dist/components/SceneBuilder.d.ts.map +1 -1
  34. package/dist/components/SceneBuilder.js +3 -2
  35. package/dist/components/gallery/BasicCarouselGallery.d.ts +18 -0
  36. package/dist/components/gallery/BasicCarouselGallery.d.ts.map +1 -0
  37. package/dist/components/gallery/BasicCarouselGallery.js +9 -0
  38. package/dist/components/gallery/ContourLinesGallery.d.ts +18 -0
  39. package/dist/components/gallery/ContourLinesGallery.d.ts.map +1 -0
  40. package/dist/components/gallery/ContourLinesGallery.js +9 -0
  41. package/dist/components/gallery/DepthLayersGallery.d.ts +18 -0
  42. package/dist/components/gallery/DepthLayersGallery.d.ts.map +1 -0
  43. package/dist/components/gallery/DepthLayersGallery.js +9 -0
  44. package/dist/components/gallery/EngravingGallery.d.ts +18 -0
  45. package/dist/components/gallery/EngravingGallery.d.ts.map +1 -0
  46. package/dist/components/gallery/EngravingGallery.js +9 -0
  47. package/dist/components/gallery/FlowLinesGallery.d.ts +18 -0
  48. package/dist/components/gallery/FlowLinesGallery.d.ts.map +1 -0
  49. package/dist/components/gallery/FlowLinesGallery.js +9 -0
  50. package/dist/components/gallery/FoldGallery.d.ts +18 -0
  51. package/dist/components/gallery/FoldGallery.d.ts.map +1 -0
  52. package/dist/components/gallery/FoldGallery.js +9 -0
  53. package/dist/components/gallery/GlassPanesGallery.d.ts +18 -0
  54. package/dist/components/gallery/GlassPanesGallery.d.ts.map +1 -0
  55. package/dist/components/gallery/GlassPanesGallery.js +9 -0
  56. package/dist/components/gallery/HaloGallery.d.ts +18 -0
  57. package/dist/components/gallery/HaloGallery.d.ts.map +1 -0
  58. package/dist/components/gallery/HaloGallery.js +9 -0
  59. package/dist/components/gallery/LightThreadsGallery.d.ts +18 -0
  60. package/dist/components/gallery/LightThreadsGallery.d.ts.map +1 -0
  61. package/dist/components/gallery/LightThreadsGallery.js +9 -0
  62. package/dist/components/gallery/LoomGallery.d.ts +18 -0
  63. package/dist/components/gallery/LoomGallery.d.ts.map +1 -0
  64. package/dist/components/gallery/LoomGallery.js +9 -0
  65. package/dist/components/gallery/PaperLanternsGallery.d.ts +18 -0
  66. package/dist/components/gallery/PaperLanternsGallery.d.ts.map +1 -0
  67. package/dist/components/gallery/PaperLanternsGallery.js +9 -0
  68. package/dist/components/gallery/ParticleShiftGallery.d.ts +18 -0
  69. package/dist/components/gallery/ParticleShiftGallery.d.ts.map +1 -0
  70. package/dist/components/gallery/ParticleShiftGallery.js +9 -0
  71. package/dist/components/gallery/PinscreenGallery.d.ts +18 -0
  72. package/dist/components/gallery/PinscreenGallery.d.ts.map +1 -0
  73. package/dist/components/gallery/PinscreenGallery.js +9 -0
  74. package/dist/components/gallery/PopUpGallery.d.ts +18 -0
  75. package/dist/components/gallery/PopUpGallery.d.ts.map +1 -0
  76. package/dist/components/gallery/PopUpGallery.js +9 -0
  77. package/dist/components/gallery/PrismSplitGallery.d.ts +18 -0
  78. package/dist/components/gallery/PrismSplitGallery.d.ts.map +1 -0
  79. package/dist/components/gallery/PrismSplitGallery.js +9 -0
  80. package/dist/components/gallery/RidgelinesGallery.d.ts +18 -0
  81. package/dist/components/gallery/RidgelinesGallery.d.ts.map +1 -0
  82. package/dist/components/gallery/RidgelinesGallery.js +9 -0
  83. package/dist/components/gallery/ShadowBoxGallery.d.ts +18 -0
  84. package/dist/components/gallery/ShadowBoxGallery.d.ts.map +1 -0
  85. package/dist/components/gallery/ShadowBoxGallery.js +9 -0
  86. package/dist/components/gallery/SilkGallery.d.ts +18 -0
  87. package/dist/components/gallery/SilkGallery.d.ts.map +1 -0
  88. package/dist/components/gallery/SilkGallery.js +9 -0
  89. package/dist/components/gallery/SlatsGallery.d.ts +18 -0
  90. package/dist/components/gallery/SlatsGallery.d.ts.map +1 -0
  91. package/dist/components/gallery/SlatsGallery.js +9 -0
  92. package/dist/components/gallery/StrataGallery.d.ts +18 -0
  93. package/dist/components/gallery/StrataGallery.d.ts.map +1 -0
  94. package/dist/components/gallery/StrataGallery.js +9 -0
  95. package/dist/components/gallery/TerracesGallery.d.ts +18 -0
  96. package/dist/components/gallery/TerracesGallery.d.ts.map +1 -0
  97. package/dist/components/gallery/TerracesGallery.js +9 -0
  98. package/dist/components/gallery/WireReliefGallery.d.ts +18 -0
  99. package/dist/components/gallery/WireReliefGallery.d.ts.map +1 -0
  100. package/dist/components/gallery/WireReliefGallery.js +9 -0
  101. package/dist/components/gallery/index.d.ts +46 -0
  102. package/dist/components/gallery/index.d.ts.map +1 -0
  103. package/dist/components/gallery/index.js +22 -0
  104. package/dist/components/gallery/kit/GalleryVariant.d.ts +68 -0
  105. package/dist/components/gallery/kit/GalleryVariant.d.ts.map +1 -0
  106. package/dist/components/gallery/kit/GalleryVariant.js +231 -0
  107. package/dist/components/gallery/kit/feeds.d.ts +7 -0
  108. package/dist/components/gallery/kit/feeds.d.ts.map +1 -0
  109. package/dist/components/gallery/kit/feeds.js +83 -0
  110. package/dist/components/gallery/kit/galleryKit.d.ts +118 -0
  111. package/dist/components/gallery/kit/galleryKit.d.ts.map +1 -0
  112. package/dist/components/gallery/kit/galleryKit.js +298 -0
  113. package/dist/components/gallery/kit/lookBase.d.ts +157 -0
  114. package/dist/components/gallery/kit/lookBase.d.ts.map +1 -0
  115. package/dist/components/gallery/kit/lookBase.js +211 -0
  116. package/dist/components/gallery/kit/pictures.d.ts +14 -0
  117. package/dist/components/gallery/kit/pictures.d.ts.map +1 -0
  118. package/dist/components/gallery/kit/pictures.js +81 -0
  119. package/dist/components/gallery/looks/basicCarousel.d.ts +177 -0
  120. package/dist/components/gallery/looks/basicCarousel.d.ts.map +1 -0
  121. package/dist/components/gallery/looks/basicCarousel.js +315 -0
  122. package/dist/components/gallery/looks/contourLines.d.ts +153 -0
  123. package/dist/components/gallery/looks/contourLines.d.ts.map +1 -0
  124. package/dist/components/gallery/looks/contourLines.js +91 -0
  125. package/dist/components/gallery/looks/depthLayers.d.ts +155 -0
  126. package/dist/components/gallery/looks/depthLayers.d.ts.map +1 -0
  127. package/dist/components/gallery/looks/depthLayers.js +87 -0
  128. package/dist/components/gallery/looks/engraving.d.ts +162 -0
  129. package/dist/components/gallery/looks/engraving.d.ts.map +1 -0
  130. package/dist/components/gallery/looks/engraving.js +96 -0
  131. package/dist/components/gallery/looks/flowLines.d.ts +180 -0
  132. package/dist/components/gallery/looks/flowLines.d.ts.map +1 -0
  133. package/dist/components/gallery/looks/flowLines.js +113 -0
  134. package/dist/components/gallery/looks/fold.d.ts +209 -0
  135. package/dist/components/gallery/looks/fold.d.ts.map +1 -0
  136. package/dist/components/gallery/looks/fold.js +155 -0
  137. package/dist/components/gallery/looks/glassPanes.d.ts +133 -0
  138. package/dist/components/gallery/looks/glassPanes.d.ts.map +1 -0
  139. package/dist/components/gallery/looks/glassPanes.js +208 -0
  140. package/dist/components/gallery/looks/halo.d.ts +100 -0
  141. package/dist/components/gallery/looks/halo.d.ts.map +1 -0
  142. package/dist/components/gallery/looks/halo.js +119 -0
  143. package/dist/components/gallery/looks/lightThreads.d.ts +199 -0
  144. package/dist/components/gallery/looks/lightThreads.d.ts.map +1 -0
  145. package/dist/components/gallery/looks/lightThreads.js +246 -0
  146. package/dist/components/gallery/looks/loom.d.ts +238 -0
  147. package/dist/components/gallery/looks/loom.d.ts.map +1 -0
  148. package/dist/components/gallery/looks/loom.js +256 -0
  149. package/dist/components/gallery/looks/paperLanterns.d.ts +181 -0
  150. package/dist/components/gallery/looks/paperLanterns.d.ts.map +1 -0
  151. package/dist/components/gallery/looks/paperLanterns.js +399 -0
  152. package/dist/components/gallery/looks/particleShift.d.ts +193 -0
  153. package/dist/components/gallery/looks/particleShift.d.ts.map +1 -0
  154. package/dist/components/gallery/looks/particleShift.js +282 -0
  155. package/dist/components/gallery/looks/pinscreen.d.ts +175 -0
  156. package/dist/components/gallery/looks/pinscreen.d.ts.map +1 -0
  157. package/dist/components/gallery/looks/pinscreen.js +96 -0
  158. package/dist/components/gallery/looks/popUp.d.ts +206 -0
  159. package/dist/components/gallery/looks/popUp.d.ts.map +1 -0
  160. package/dist/components/gallery/looks/popUp.js +132 -0
  161. package/dist/components/gallery/looks/prismSplit.d.ts +151 -0
  162. package/dist/components/gallery/looks/prismSplit.d.ts.map +1 -0
  163. package/dist/components/gallery/looks/prismSplit.js +84 -0
  164. package/dist/components/gallery/looks/ridgelines.d.ts +179 -0
  165. package/dist/components/gallery/looks/ridgelines.d.ts.map +1 -0
  166. package/dist/components/gallery/looks/ridgelines.js +111 -0
  167. package/dist/components/gallery/looks/shadowBox.d.ts +152 -0
  168. package/dist/components/gallery/looks/shadowBox.d.ts.map +1 -0
  169. package/dist/components/gallery/looks/shadowBox.js +82 -0
  170. package/dist/components/gallery/looks/silk.d.ts +140 -0
  171. package/dist/components/gallery/looks/silk.d.ts.map +1 -0
  172. package/dist/components/gallery/looks/silk.js +346 -0
  173. package/dist/components/gallery/looks/slats.d.ts +176 -0
  174. package/dist/components/gallery/looks/slats.d.ts.map +1 -0
  175. package/dist/components/gallery/looks/slats.js +93 -0
  176. package/dist/components/gallery/looks/strata.d.ts +172 -0
  177. package/dist/components/gallery/looks/strata.d.ts.map +1 -0
  178. package/dist/components/gallery/looks/strata.js +88 -0
  179. package/dist/components/gallery/looks/terraces.d.ts +168 -0
  180. package/dist/components/gallery/looks/terraces.d.ts.map +1 -0
  181. package/dist/components/gallery/looks/terraces.js +91 -0
  182. package/dist/components/gallery/looks/wireRelief.d.ts +153 -0
  183. package/dist/components/gallery/looks/wireRelief.d.ts.map +1 -0
  184. package/dist/components/gallery/looks/wireRelief.js +128 -0
  185. package/dist/components/image/ContourImage.d.ts +7 -0
  186. package/dist/components/image/ContourImage.d.ts.map +1 -0
  187. package/dist/components/image/ContourImage.js +6 -0
  188. package/dist/components/image/EngravingImage.d.ts +7 -0
  189. package/dist/components/image/EngravingImage.d.ts.map +1 -0
  190. package/dist/components/image/EngravingImage.js +6 -0
  191. package/dist/components/image/FrostImage.d.ts +7 -0
  192. package/dist/components/image/FrostImage.d.ts.map +1 -0
  193. package/dist/components/image/FrostImage.js +6 -0
  194. package/dist/components/image/LenticularImage.d.ts +7 -0
  195. package/dist/components/image/LenticularImage.d.ts.map +1 -0
  196. package/dist/components/image/LenticularImage.js +6 -0
  197. package/dist/components/image/PinscreenImage.d.ts +7 -0
  198. package/dist/components/image/PinscreenImage.d.ts.map +1 -0
  199. package/dist/components/image/PinscreenImage.js +6 -0
  200. package/dist/components/image/PrismImage.d.ts +7 -0
  201. package/dist/components/image/PrismImage.d.ts.map +1 -0
  202. package/dist/components/image/PrismImage.js +6 -0
  203. package/dist/components/image/ProjectorImage.d.ts +7 -0
  204. package/dist/components/image/ProjectorImage.d.ts.map +1 -0
  205. package/dist/components/image/ProjectorImage.js +6 -0
  206. package/dist/components/image/ReliefImage.d.ts +7 -0
  207. package/dist/components/image/ReliefImage.d.ts.map +1 -0
  208. package/dist/components/image/ReliefImage.js +6 -0
  209. package/dist/components/image/RollImage.d.ts +7 -0
  210. package/dist/components/image/RollImage.d.ts.map +1 -0
  211. package/dist/components/image/RollImage.js +6 -0
  212. package/dist/components/image/ShardsImage.d.ts +126 -0
  213. package/dist/components/image/ShardsImage.d.ts.map +1 -0
  214. package/dist/components/image/ShardsImage.js +470 -0
  215. package/dist/components/image/core/contour.d.ts +126 -0
  216. package/dist/components/image/core/contour.d.ts.map +1 -0
  217. package/dist/components/image/core/contour.js +123 -0
  218. package/dist/components/image/core/engraving.d.ts +135 -0
  219. package/dist/components/image/core/engraving.d.ts.map +1 -0
  220. package/dist/components/image/core/engraving.js +163 -0
  221. package/dist/components/image/core/frost.d.ts +126 -0
  222. package/dist/components/image/core/frost.d.ts.map +1 -0
  223. package/dist/components/image/core/frost.js +156 -0
  224. package/dist/components/image/core/imageCore.d.ts +110 -0
  225. package/dist/components/image/core/imageCore.d.ts.map +1 -0
  226. package/dist/components/image/core/imageCore.js +269 -0
  227. package/dist/components/image/core/lenticular.d.ts +129 -0
  228. package/dist/components/image/core/lenticular.d.ts.map +1 -0
  229. package/dist/components/image/core/lenticular.js +132 -0
  230. package/dist/components/image/core/pinscreen.d.ts +126 -0
  231. package/dist/components/image/core/pinscreen.d.ts.map +1 -0
  232. package/dist/components/image/core/pinscreen.js +147 -0
  233. package/dist/components/image/core/prism.d.ts +120 -0
  234. package/dist/components/image/core/prism.d.ts.map +1 -0
  235. package/dist/components/image/core/prism.js +164 -0
  236. package/dist/components/image/core/projector.d.ts +135 -0
  237. package/dist/components/image/core/projector.d.ts.map +1 -0
  238. package/dist/components/image/core/projector.js +225 -0
  239. package/dist/components/image/core/relief.d.ts +111 -0
  240. package/dist/components/image/core/relief.d.ts.map +1 -0
  241. package/dist/components/image/core/relief.js +94 -0
  242. package/dist/components/image/core/roll.d.ts +114 -0
  243. package/dist/components/image/core/roll.d.ts.map +1 -0
  244. package/dist/components/image/core/roll.js +116 -0
  245. package/dist/components/image/imageVariant.d.ts +46 -0
  246. package/dist/components/image/imageVariant.d.ts.map +1 -0
  247. package/dist/components/image/imageVariant.js +128 -0
  248. package/dist/components/image/index.d.ts +22 -0
  249. package/dist/components/image/index.d.ts.map +1 -0
  250. package/dist/components/image/index.js +10 -0
  251. package/dist/components/image/pictureCycle.d.ts +15 -0
  252. package/dist/components/image/pictureCycle.d.ts.map +1 -0
  253. package/dist/components/image/pictureCycle.js +82 -0
  254. package/dist/components/index.d.ts +4 -0
  255. package/dist/components/index.d.ts.map +1 -1
  256. package/dist/components/index.js +4 -0
  257. package/dist/components/volumetricClouds/VolumetricCloudsPass.d.ts +9 -7
  258. package/dist/components/volumetricClouds/VolumetricCloudsPass.d.ts.map +1 -1
  259. package/dist/components/volumetricClouds/VolumetricCloudsPass.js +39 -27
  260. package/dist/constants.d.ts +1 -1
  261. package/dist/constants.d.ts.map +1 -1
  262. package/dist/constants.js +18 -5
  263. package/dist/galleryRuntime.d.ts +57 -0
  264. package/dist/galleryRuntime.d.ts.map +1 -0
  265. package/dist/galleryRuntime.js +105 -0
  266. package/dist/hooks/useConfigLive.d.ts +1 -1
  267. package/dist/hooks/useConfigLive.d.ts.map +1 -1
  268. package/dist/index.d.ts +4 -1
  269. package/dist/index.d.ts.map +1 -1
  270. package/dist/index.js +4 -0
  271. package/dist/keyPad/KeyPadControls.d.ts +16 -0
  272. package/dist/keyPad/KeyPadControls.d.ts.map +1 -0
  273. package/dist/keyPad/KeyPadControls.js +176 -0
  274. package/dist/keyPad/index.d.ts +16 -0
  275. package/dist/keyPad/index.d.ts.map +1 -0
  276. package/dist/keyPad/index.js +8 -0
  277. package/dist/keyPad/keyBindings.d.ts +43 -0
  278. package/dist/keyPad/keyBindings.d.ts.map +1 -0
  279. package/dist/keyPad/keyBindings.js +92 -0
  280. package/dist/keyPad/keyPadAnimation.d.ts +28 -0
  281. package/dist/keyPad/keyPadAnimation.d.ts.map +1 -0
  282. package/dist/keyPad/keyPadAnimation.js +131 -0
  283. package/dist/keyPad/keyPadMotion.d.ts +68 -0
  284. package/dist/keyPad/keyPadMotion.d.ts.map +1 -0
  285. package/dist/keyPad/keyPadMotion.js +283 -0
  286. package/dist/keyPad/keyPadStore.d.ts +25 -0
  287. package/dist/keyPad/keyPadStore.d.ts.map +1 -0
  288. package/dist/keyPad/keyPadStore.js +63 -0
  289. package/dist/keyPad/types.d.ts +23 -0
  290. package/dist/keyPad/types.d.ts.map +1 -0
  291. package/dist/keyPad/types.js +9 -0
  292. package/dist/operations/catalogue/motionTrail.d.ts.map +1 -1
  293. package/dist/operations/catalogue/motionTrail.js +8 -1
  294. package/dist/operations/catalogue/visibility.d.ts.map +1 -1
  295. package/dist/operations/catalogue/visibility.js +23 -1
  296. package/dist/shaders/clouds/CloudResolveMaterial.d.ts +2 -1
  297. package/dist/shaders/clouds/CloudResolveMaterial.d.ts.map +1 -1
  298. package/dist/shaders/clouds/CloudResolveMaterial.js +37 -12
  299. package/dist/shaders/clouds/CloudVolumeMaterial.d.ts +4 -0
  300. package/dist/shaders/clouds/CloudVolumeMaterial.d.ts.map +1 -1
  301. package/dist/shaders/clouds/CloudVolumeMaterial.js +15 -3
  302. package/dist/triggers/kinds/gallery.d.ts +2 -0
  303. package/dist/triggers/kinds/gallery.d.ts.map +1 -0
  304. package/dist/triggers/kinds/gallery.js +39 -0
  305. package/dist/triggers/kinds/index.d.ts +1 -0
  306. package/dist/triggers/kinds/index.d.ts.map +1 -1
  307. package/dist/triggers/kinds/index.js +1 -0
  308. package/dist/ui/UiAnchorUpdater.d.ts.map +1 -1
  309. package/dist/ui/UiAnchorUpdater.js +2 -1
  310. package/dist/utils/cursorPicking.d.ts.map +1 -1
  311. package/dist/utils/cursorPicking.js +2 -1
  312. package/dist/utils/shownInScene.d.ts +13 -0
  313. package/dist/utils/shownInScene.d.ts.map +1 -0
  314. package/dist/utils/shownInScene.js +16 -0
  315. package/package.json +2 -2
@@ -40,6 +40,12 @@ uniform vec2 u_resolution;
40
40
  uniform int u_steps;
41
41
  uniform float u_stepGrowth, u_maxSpan, u_fogDensity, u_detailFade;
42
42
  uniform float u_screenSpace;
43
+ // Layer path only. The march runs at a quarter of the cloud buffer's pixels and each
44
+ // frame picks one of the four half-res pixels under every march texel; this shifts the
45
+ // ray onto that pixel's centre. The resolve pass rebuilds the full buffer from it.
46
+ uniform vec2 u_uvOffset;
47
+ // Floor on the fine step, in metres, from the detail noise size (see applyDeckUniforms).
48
+ uniform float u_minStep;
43
49
 
44
50
  // Lightning. Declared here rather than in the shared cloudUniforms chunk so the
45
51
  // exported cloudField, which host apps pull into their own surface materials for
@@ -59,7 +65,7 @@ float ign(vec2 p){
59
65
  }
60
66
 
61
67
  void main(){
62
- vec2 uv = (u_screenSpace > 0.5) ? vUv : (gl_FragCoord.xy / u_resolution);
68
+ vec2 uv = (u_screenSpace > 0.5) ? (vUv + u_uvOffset) : (gl_FragCoord.xy / u_resolution);
63
69
  vec2 ndc = uv * 2.0 - 1.0;
64
70
 
65
71
  vec4 vp = u_invProj * vec4(ndc, -1.0, 1.0);
@@ -98,7 +104,11 @@ void main(){
98
104
  // spans 100 km; dividing that by the step budget gives kilometre steps and every
99
105
  // feature dissolves into fog. Empty space is skipped 2.8x coarser, and the step
100
106
  // grows with distance to hold screen-space error roughly constant.
101
- float dt0 = min(thick * 2.0 / float(u_steps), span / 8.0);
107
+ //
108
+ // The floor is the other half: a step much finer than the detail noise samples
109
+ // the same erosion feature many times over. On a shallow deck the depth-derived
110
+ // step can be a fraction of that, which costs samples and buys nothing visible.
111
+ float dt0 = min(max(thick * 2.0 / float(u_steps), u_minStep), span / 8.0);
102
112
  dt0 = max(dt0, thick * 0.004);
103
113
  float big = dt0 * 2.8;
104
114
 
@@ -279,7 +289,9 @@ export const cloudVolumeDefaults = {
279
289
  u_near: 1,
280
290
  u_far: 100000,
281
291
  u_resolution: new THREE.Vector2(1, 1),
282
- u_screenSpace: 0
292
+ u_screenSpace: 0,
293
+ u_uvOffset: new THREE.Vector2(0, 0),
294
+ u_minStep: 0
283
295
  };
284
296
  export const CloudVolumeMaterial = shaderMaterial(cloudVolumeDefaults, vertex, fragment);
285
297
  extend({ CloudVolumeMaterial });
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=gallery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gallery.d.ts","sourceRoot":"","sources":["../../../src/triggers/kinds/gallery.ts"],"names":[],"mappings":""}
@@ -0,0 +1,39 @@
1
+ // Triggerable: a gallery object's navigation (GalleryRuntime) — next / prev / goTo / pause / resume.
2
+ // `ref` is the gallery's scene object id; the engine waits for it to mount (targets). Or, for a scene
3
+ // with several galleries: GALLERY_ALL (every gallery steps together) or GALLERY_IN_VIEW (the one the
4
+ // viewer is looking at, decided when it runs — nothing when none is on screen). An event kind:
5
+ // a cue fires it when the playhead crosses it, an interaction on click, code / the agent at once.
6
+ import GalleryRuntime, { GALLERY_ALL, GALLERY_IN_VIEW } from '../../galleryRuntime.js';
7
+ import { defineTriggerable } from '../registry.js';
8
+ defineTriggerable({
9
+ kind: 'gallery',
10
+ commands: ['next', 'prev', 'goTo', 'pause', 'resume'],
11
+ timeline: 'event',
12
+ // The special refs wait for nothing: they mean whatever is mounted when the command runs.
13
+ targets: (c) => (c.ref === GALLERY_ALL || c.ref === GALLERY_IN_VIEW ? [] : [c.ref]),
14
+ subject: (c) => `gallery ${c.ref}${c.command === 'goTo' ? ` #${c.index ?? 0}` : ''}`,
15
+ run: (c) => {
16
+ for (const id of GalleryRuntime.resolve(c.ref)) {
17
+ const g = GalleryRuntime.get(id);
18
+ if (!g)
19
+ continue;
20
+ switch (c.command) {
21
+ case 'next':
22
+ g.next();
23
+ break;
24
+ case 'prev':
25
+ g.prev();
26
+ break;
27
+ case 'goTo':
28
+ g.goTo(Number(c.index) || 0);
29
+ break;
30
+ case 'pause':
31
+ g.pause();
32
+ break;
33
+ case 'resume':
34
+ g.resume();
35
+ break;
36
+ }
37
+ }
38
+ },
39
+ });
@@ -2,4 +2,5 @@ import './effects';
2
2
  import './action';
3
3
  import './animations';
4
4
  import './change';
5
+ import './gallery';
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/triggers/kinds/index.ts"],"names":[],"mappings":"AACA,OAAO,WAAW,CAAC;AACnB,OAAO,UAAU,CAAC;AAClB,OAAO,cAAc,CAAC;AACtB,OAAO,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/triggers/kinds/index.ts"],"names":[],"mappings":"AACA,OAAO,WAAW,CAAC;AACnB,OAAO,UAAU,CAAC;AAClB,OAAO,cAAc,CAAC;AACtB,OAAO,UAAU,CAAC;AAClB,OAAO,WAAW,CAAC"}
@@ -3,3 +3,4 @@ import './effects.js';
3
3
  import './action.js';
4
4
  import './animations.js';
5
5
  import './change.js';
6
+ import './gallery.js';
@@ -1 +1 @@
1
- {"version":3,"file":"UiAnchorUpdater.d.ts","sourceRoot":"","sources":["../../src/ui/UiAnchorUpdater.tsx"],"names":[],"mappings":"AAaA,OAAO,EAAmB,OAAO,EAAE,KAAK,MAAM,EAAiB,KAAK,KAAK,EAAE,MAAM,OAAO,CAAC;AAoCzF,4DAA4D;AAC5D,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,QAMzI;AAID,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CA0C9G;AAID,MAAM,CAAC,OAAO,UAAU,eAAe,QAMtC"}
1
+ {"version":3,"file":"UiAnchorUpdater.d.ts","sourceRoot":"","sources":["../../src/ui/UiAnchorUpdater.tsx"],"names":[],"mappings":"AAaA,OAAO,EAAmB,OAAO,EAAE,KAAK,MAAM,EAAiB,KAAK,KAAK,EAAE,MAAM,OAAO,CAAC;AAqCzF,4DAA4D;AAC5D,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,QAMzI;AAID,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CA0C9G;AAID,MAAM,CAAC,OAAO,UAAU,eAAe,QAMtC"}
@@ -13,6 +13,7 @@
13
13
  import { useFrame } from '@react-three/fiber';
14
14
  import { Box3, Raycaster, Vector3 } from 'three';
15
15
  import { findById, findByName } from '../utils/sceneQuery.js';
16
+ import { shownInScene } from '../utils/shownInScene.js';
16
17
  import { uiAnchors } from './uiAnchors.js';
17
18
  const BOX_EVERY = 8; // frames between bounding-box refreshes
18
19
  const OCCLUDE_EVERY = 6; // frames between occlusion raycasts
@@ -93,7 +94,7 @@ export function updateAnchors(camera, scene, width, height, frame) {
93
94
  const dist = dir.length();
94
95
  _ray.set(from, dir.normalize());
95
96
  _ray.far = Math.max(0, dist - 0.02);
96
- const hits = _ray.intersectObjects(scene.children, true).filter(h => h.object.isMesh && h.object.visible && !insideSubtree(h.object, target));
97
+ const hits = _ray.intersectObjects(scene.children, true).filter(h => h.object.isMesh && shownInScene(h.object) && !insideSubtree(h.object, target));
97
98
  entry.el.toggleAttribute('data-occluded', hits.length > 0);
98
99
  }
99
100
  else if (!entry.occlude) {
@@ -1 +1 @@
1
- {"version":3,"file":"cursorPicking.d.ts","sourceRoot":"","sources":["../../src/utils/cursorPicking.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,MAAM,WAAW,gBAAgB;IAC7B,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC;IACxB,KAAK,EAAE,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;CACpC;AAUD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,OAAO,GAAG,gBAAgB,CA0BlN"}
1
+ {"version":3,"file":"cursorPicking.d.ts","sourceRoot":"","sources":["../../src/utils/cursorPicking.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,MAAM,WAAW,gBAAgB;IAC7B,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC;IACxB,KAAK,EAAE,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;CACpC;AAUD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,OAAO,GAAG,gBAAgB,CA0BlN"}
@@ -1,9 +1,10 @@
1
1
  import * as THREE from 'three';
2
+ import { shownInScene } from './shownInScene.js';
2
3
  const tmpPlane = new THREE.Plane();
3
4
  const tmpNormal = new THREE.Vector3();
4
5
  const tmpHitPoint = new THREE.Vector3();
5
6
  function pickSceneHit(raycaster, scene) {
6
- const hits = raycaster.intersectObjects(scene.children, true);
7
+ const hits = raycaster.intersectObjects(scene.children, true).filter(h => shownInScene(h.object));
7
8
  return hits.find(h => h.object.userData.interactible === true) ?? hits[0] ?? null;
8
9
  }
9
10
  export function pickCursorWorldPos(mode, raycaster, scene, camera, pointer, planeDistance, out) {
@@ -0,0 +1,13 @@
1
+ import type { Intersection, Object3D } from 'three';
2
+ /**
3
+ * Whether an Object3D is really shown: it and every ancestor up to the scene are visible.
4
+ *
5
+ * Three draws nothing under a hidden parent, but its Raycaster (and R3F's pointer events)
6
+ * ignore `visible` — so without this, objects inside a disabled group still catch hover /
7
+ * click, block clicks on what is behind them and occlude UI anchors.
8
+ * Pick proxies hide through `material.visible`, not `visible`, so they are unaffected.
9
+ */
10
+ export declare function shownInScene(obj: Object3D | null | undefined): boolean;
11
+ /** Ray hits on objects that are really shown (see shownInScene). */
12
+ export declare const shownHits: <T extends Intersection>(hits: T[]) => T[];
13
+ //# sourceMappingURL=shownInScene.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shownInScene.d.ts","sourceRoot":"","sources":["../../src/utils/shownInScene.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEpD;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,QAAQ,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAGtE;AAED,oEAAoE;AACpE,eAAO,MAAM,SAAS,GAAI,CAAC,SAAS,YAAY,EAAE,MAAM,CAAC,EAAE,KAAG,CAAC,EAA8C,CAAC"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Whether an Object3D is really shown: it and every ancestor up to the scene are visible.
3
+ *
4
+ * Three draws nothing under a hidden parent, but its Raycaster (and R3F's pointer events)
5
+ * ignore `visible` — so without this, objects inside a disabled group still catch hover /
6
+ * click, block clicks on what is behind them and occlude UI anchors.
7
+ * Pick proxies hide through `material.visible`, not `visible`, so they are unaffected.
8
+ */
9
+ export function shownInScene(obj) {
10
+ for (let o = obj; o; o = o.parent)
11
+ if (!o.visible)
12
+ return false;
13
+ return true;
14
+ }
15
+ /** Ray hits on objects that are really shown (see shownInScene). */
16
+ export const shownHits = (hits) => hits.filter(h => shownInScene(h.object));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@3driseai/3drise-viewer",
3
- "version": "0.1.39",
3
+ "version": "0.1.41",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -39,7 +39,7 @@
39
39
  },
40
40
  "dependencies": {
41
41
  "@3driseai/3drise-common": "^1.0.1",
42
- "@3driseai/3drise-core": "^1.0.28",
42
+ "@3driseai/3drise-core": "^1.0.30",
43
43
  "three-mesh-bvh": "^0.8.3"
44
44
  }
45
45
  }