@3driseai/3drise-viewer 0.1.6 → 0.1.8

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 (277) hide show
  1. package/dist/components/Clouds.d.ts.map +1 -1
  2. package/dist/components/Clouds.js +0 -1
  3. package/dist/components/CloudsGenerator.d.ts +32 -0
  4. package/dist/components/CloudsGenerator.d.ts.map +1 -0
  5. package/dist/components/CloudsGenerator.js +58 -0
  6. package/dist/components/CustomPrimitive.js +1 -1
  7. package/dist/components/EnvironmentManager.d.ts +47 -5
  8. package/dist/components/EnvironmentManager.d.ts.map +1 -1
  9. package/dist/components/EnvironmentManager.js +35 -66
  10. package/dist/components/GeometryShape.d.ts.map +1 -1
  11. package/dist/components/GeometryShape.js +19 -3
  12. package/dist/components/HdrEnvironment.d.ts +20 -0
  13. package/dist/components/HdrEnvironment.d.ts.map +1 -0
  14. package/dist/components/HdrEnvironment.js +44 -0
  15. package/dist/components/LandscapeBuilder.d.ts +23 -0
  16. package/dist/components/LandscapeBuilder.d.ts.map +1 -0
  17. package/dist/components/LandscapeBuilder.js +25 -0
  18. package/dist/components/LandscapeObject.d.ts +24 -0
  19. package/dist/components/LandscapeObject.d.ts.map +1 -0
  20. package/dist/components/LandscapeObject.js +27 -0
  21. package/dist/components/ObjectNode.d.ts.map +1 -1
  22. package/dist/components/ObjectNode.js +11 -9
  23. package/dist/components/OceanBuilder.d.ts +35 -0
  24. package/dist/components/OceanBuilder.d.ts.map +1 -0
  25. package/dist/components/OceanBuilder.js +53 -0
  26. package/dist/components/ParticlesR3f.d.ts.map +1 -1
  27. package/dist/components/ParticlesR3f.js +63 -12
  28. package/dist/components/PointCloud.d.ts.map +1 -1
  29. package/dist/components/PointCloud.js +50 -10
  30. package/dist/components/SceneBuilder.d.ts.map +1 -1
  31. package/dist/components/SkySystem.d.ts +27 -6
  32. package/dist/components/SkySystem.d.ts.map +1 -1
  33. package/dist/components/SkySystem.js +6 -5
  34. package/dist/components/SunLight.d.ts.map +1 -1
  35. package/dist/components/SunLight.js +4 -1
  36. package/dist/components/TerrainBuilder.d.ts +30 -0
  37. package/dist/components/TerrainBuilder.d.ts.map +1 -0
  38. package/dist/components/TerrainBuilder.js +44 -0
  39. package/dist/components/index.d.ts +17 -1
  40. package/dist/components/index.d.ts.map +1 -1
  41. package/dist/components/index.js +10 -0
  42. package/dist/components/landscape/LandscapeMesh.d.ts +18 -0
  43. package/dist/components/landscape/LandscapeMesh.d.ts.map +1 -0
  44. package/dist/components/landscape/LandscapeMesh.js +278 -0
  45. package/dist/components/landscape/index.d.ts +3 -0
  46. package/dist/components/landscape/index.d.ts.map +1 -0
  47. package/dist/components/landscape/index.js +1 -0
  48. package/dist/components/landscape/types.d.ts +13 -0
  49. package/dist/components/landscape/types.d.ts.map +1 -0
  50. package/dist/components/landscape/types.js +1 -0
  51. package/dist/components/terrain/Canyon.d.ts +23 -0
  52. package/dist/components/terrain/Canyon.d.ts.map +1 -0
  53. package/dist/components/terrain/Canyon.js +29 -0
  54. package/dist/components/terrain/Dunes.d.ts +22 -0
  55. package/dist/components/terrain/Dunes.d.ts.map +1 -0
  56. package/dist/components/terrain/Dunes.js +25 -0
  57. package/dist/components/terrain/Hills.d.ts +17 -0
  58. package/dist/components/terrain/Hills.d.ts.map +1 -0
  59. package/dist/components/terrain/Hills.js +20 -0
  60. package/dist/components/terrain/Mountains.d.ts +19 -0
  61. package/dist/components/terrain/Mountains.d.ts.map +1 -0
  62. package/dist/components/terrain/Mountains.js +22 -0
  63. package/dist/components/terrain/TerrainSurface.d.ts +22 -0
  64. package/dist/components/terrain/TerrainSurface.d.ts.map +1 -0
  65. package/dist/components/terrain/TerrainSurface.js +94 -0
  66. package/dist/components/terrain/index.d.ts +7 -0
  67. package/dist/components/terrain/index.d.ts.map +1 -0
  68. package/dist/components/terrain/index.js +7 -0
  69. package/dist/components/terrain/types.d.ts +17 -0
  70. package/dist/components/terrain/types.d.ts.map +1 -0
  71. package/dist/components/terrain/types.js +1 -0
  72. package/dist/components/volumetricClouds/Cirrus.d.ts +14 -0
  73. package/dist/components/volumetricClouds/Cirrus.d.ts.map +1 -0
  74. package/dist/components/volumetricClouds/Cirrus.js +13 -0
  75. package/dist/components/volumetricClouds/Cumulonimbus.d.ts +17 -0
  76. package/dist/components/volumetricClouds/Cumulonimbus.d.ts.map +1 -0
  77. package/dist/components/volumetricClouds/Cumulonimbus.js +20 -0
  78. package/dist/components/volumetricClouds/Cumulus.d.ts +14 -0
  79. package/dist/components/volumetricClouds/Cumulus.d.ts.map +1 -0
  80. package/dist/components/volumetricClouds/Cumulus.js +17 -0
  81. package/dist/components/volumetricClouds/Stratocumulus.d.ts +12 -0
  82. package/dist/components/volumetricClouds/Stratocumulus.d.ts.map +1 -0
  83. package/dist/components/volumetricClouds/Stratocumulus.js +16 -0
  84. package/dist/components/volumetricClouds/VolumetricCloudsPass.d.ts +42 -0
  85. package/dist/components/volumetricClouds/VolumetricCloudsPass.d.ts.map +1 -0
  86. package/dist/components/volumetricClouds/VolumetricCloudsPass.js +298 -0
  87. package/dist/components/volumetricClouds/index.d.ts +8 -0
  88. package/dist/components/volumetricClouds/index.d.ts.map +1 -0
  89. package/dist/components/volumetricClouds/index.js +7 -0
  90. package/dist/components/volumetricClouds/types.d.ts +17 -0
  91. package/dist/components/volumetricClouds/types.d.ts.map +1 -0
  92. package/dist/components/volumetricClouds/types.js +1 -0
  93. package/dist/components/water/Host.d.ts +12 -0
  94. package/dist/components/water/Host.d.ts.map +1 -0
  95. package/dist/components/water/Host.js +12 -0
  96. package/dist/components/water/Lake.d.ts +18 -0
  97. package/dist/components/water/Lake.d.ts.map +1 -0
  98. package/dist/components/water/Lake.js +21 -0
  99. package/dist/components/water/OceanSurface.d.ts +27 -0
  100. package/dist/components/water/OceanSurface.d.ts.map +1 -0
  101. package/dist/components/water/OceanSurface.js +60 -0
  102. package/dist/components/water/Sea.d.ts +18 -0
  103. package/dist/components/water/Sea.d.ts.map +1 -0
  104. package/dist/components/water/Sea.js +17 -0
  105. package/dist/components/water/Shore.d.ts +16 -0
  106. package/dist/components/water/Shore.d.ts.map +1 -0
  107. package/dist/components/water/Shore.js +15 -0
  108. package/dist/components/water/Storm.d.ts +14 -0
  109. package/dist/components/water/Storm.d.ts.map +1 -0
  110. package/dist/components/water/Storm.js +13 -0
  111. package/dist/components/water/WaterBody.d.ts +31 -0
  112. package/dist/components/water/WaterBody.d.ts.map +1 -0
  113. package/dist/components/water/WaterBody.js +76 -0
  114. package/dist/components/water/index.d.ts +9 -0
  115. package/dist/components/water/index.d.ts.map +1 -0
  116. package/dist/components/water/index.js +11 -0
  117. package/dist/components/water/types.d.ts +20 -0
  118. package/dist/components/water/types.d.ts.map +1 -0
  119. package/dist/components/water/types.js +1 -0
  120. package/dist/constants.d.ts +1 -0
  121. package/dist/constants.d.ts.map +1 -1
  122. package/dist/constants.js +15 -0
  123. package/dist/hooks/index.d.ts +24 -1
  124. package/dist/hooks/index.d.ts.map +1 -1
  125. package/dist/hooks/index.js +12 -0
  126. package/dist/hooks/useClipmap.d.ts +71 -0
  127. package/dist/hooks/useClipmap.d.ts.map +1 -0
  128. package/dist/hooks/useClipmap.js +81 -0
  129. package/dist/hooks/useCloudLive.d.ts +29 -0
  130. package/dist/hooks/useCloudLive.d.ts.map +1 -0
  131. package/dist/hooks/useCloudLive.js +43 -0
  132. package/dist/hooks/useCloudNoise.d.ts +28 -0
  133. package/dist/hooks/useCloudNoise.d.ts.map +1 -0
  134. package/dist/hooks/useCloudNoise.js +128 -0
  135. package/dist/hooks/useCloudSun.d.ts +49 -0
  136. package/dist/hooks/useCloudSun.d.ts.map +1 -0
  137. package/dist/hooks/useCloudSun.js +84 -0
  138. package/dist/hooks/useCubeCamera.d.ts +27 -9
  139. package/dist/hooks/useCubeCamera.d.ts.map +1 -1
  140. package/dist/hooks/useCubeCamera.js +28 -70
  141. package/dist/hooks/useEnvironmentProbe.d.ts +32 -0
  142. package/dist/hooks/useEnvironmentProbe.d.ts.map +1 -0
  143. package/dist/hooks/useEnvironmentProbe.js +35 -0
  144. package/dist/hooks/useFrameRenderer.d.ts +15 -0
  145. package/dist/hooks/useFrameRenderer.d.ts.map +1 -0
  146. package/dist/hooks/useFrameRenderer.js +23 -0
  147. package/dist/hooks/useLandscapeLive.d.ts +29 -0
  148. package/dist/hooks/useLandscapeLive.d.ts.map +1 -0
  149. package/dist/hooks/useLandscapeLive.js +41 -0
  150. package/dist/hooks/useLandscapeMaps.d.ts +32 -0
  151. package/dist/hooks/useLandscapeMaps.d.ts.map +1 -0
  152. package/dist/hooks/useLandscapeMaps.js +138 -0
  153. package/dist/hooks/useMaterialApplication.d.ts.map +1 -1
  154. package/dist/hooks/useMaterialApplication.js +2 -3
  155. package/dist/hooks/useMaterialOptions.d.ts +2 -2
  156. package/dist/hooks/useMaterialOptions.d.ts.map +1 -1
  157. package/dist/hooks/useMaterialOptions.js +13 -31
  158. package/dist/hooks/useObjectEdges.d.ts.map +1 -1
  159. package/dist/hooks/useObjectEdges.js +3 -49
  160. package/dist/hooks/useOceanLive.d.ts +29 -0
  161. package/dist/hooks/useOceanLive.d.ts.map +1 -0
  162. package/dist/hooks/useOceanLive.js +38 -0
  163. package/dist/hooks/useOceanMaterial.d.ts +39 -0
  164. package/dist/hooks/useOceanMaterial.d.ts.map +1 -0
  165. package/dist/hooks/useOceanMaterial.js +65 -0
  166. package/dist/hooks/useTerrainClipmap.d.ts +12 -0
  167. package/dist/hooks/useTerrainClipmap.d.ts.map +1 -0
  168. package/dist/hooks/useTerrainClipmap.js +10 -0
  169. package/dist/hooks/useTerrainLive.d.ts +34 -0
  170. package/dist/hooks/useTerrainLive.d.ts.map +1 -0
  171. package/dist/hooks/useTerrainLive.js +45 -0
  172. package/dist/index.d.ts +26 -0
  173. package/dist/index.d.ts.map +1 -1
  174. package/dist/index.js +16 -0
  175. package/dist/presets/landscapePresets.d.ts +60 -0
  176. package/dist/presets/landscapePresets.d.ts.map +1 -0
  177. package/dist/presets/landscapePresets.js +194 -0
  178. package/dist/presets/landscapeTypes.d.ts +195 -0
  179. package/dist/presets/landscapeTypes.d.ts.map +1 -0
  180. package/dist/presets/landscapeTypes.js +315 -0
  181. package/dist/presets/oceanSurfacePresets.d.ts +33 -0
  182. package/dist/presets/oceanSurfacePresets.d.ts.map +1 -0
  183. package/dist/presets/oceanSurfacePresets.js +245 -0
  184. package/dist/presets/terrainPresets.d.ts +28 -0
  185. package/dist/presets/terrainPresets.d.ts.map +1 -0
  186. package/dist/presets/terrainPresets.js +293 -0
  187. package/dist/presets/volumetricCloudPresets.d.ts +38 -0
  188. package/dist/presets/volumetricCloudPresets.d.ts.map +1 -0
  189. package/dist/presets/volumetricCloudPresets.js +480 -0
  190. package/dist/shaders/clouds/CirrusMaterial.d.ts +84 -0
  191. package/dist/shaders/clouds/CirrusMaterial.d.ts.map +1 -0
  192. package/dist/shaders/clouds/CirrusMaterial.js +167 -0
  193. package/dist/shaders/clouds/CloudCompositeMaterial.d.ts +20 -0
  194. package/dist/shaders/clouds/CloudCompositeMaterial.d.ts.map +1 -0
  195. package/dist/shaders/clouds/CloudCompositeMaterial.js +82 -0
  196. package/dist/shaders/clouds/CloudResolveMaterial.d.ts +22 -0
  197. package/dist/shaders/clouds/CloudResolveMaterial.d.ts.map +1 -0
  198. package/dist/shaders/clouds/CloudResolveMaterial.js +77 -0
  199. package/dist/shaders/clouds/CloudVolumeMaterial.d.ts +143 -0
  200. package/dist/shaders/clouds/CloudVolumeMaterial.d.ts.map +1 -0
  201. package/dist/shaders/clouds/CloudVolumeMaterial.js +249 -0
  202. package/dist/shaders/clouds/SkyBackgroundMaterial.d.ts +21 -0
  203. package/dist/shaders/clouds/SkyBackgroundMaterial.d.ts.map +1 -0
  204. package/dist/shaders/clouds/SkyBackgroundMaterial.js +42 -0
  205. package/dist/shaders/glsl/cloudCore.glsl.d.ts +24 -0
  206. package/dist/shaders/glsl/cloudCore.glsl.d.ts.map +1 -0
  207. package/dist/shaders/glsl/cloudCore.glsl.js +348 -0
  208. package/dist/shaders/glsl/landscapeCore.glsl.d.ts +49 -0
  209. package/dist/shaders/glsl/landscapeCore.glsl.d.ts.map +1 -0
  210. package/dist/shaders/glsl/landscapeCore.glsl.js +518 -0
  211. package/dist/shaders/glsl/noiseBake.glsl.d.ts +30 -0
  212. package/dist/shaders/glsl/noiseBake.glsl.d.ts.map +1 -0
  213. package/dist/shaders/glsl/noiseBake.glsl.js +164 -0
  214. package/dist/shaders/glsl/oceanCore.glsl.d.ts +52 -0
  215. package/dist/shaders/glsl/oceanCore.glsl.d.ts.map +1 -0
  216. package/dist/shaders/glsl/oceanCore.glsl.js +421 -0
  217. package/dist/shaders/glsl/terrainCore.glsl.d.ts +78 -0
  218. package/dist/shaders/glsl/terrainCore.glsl.d.ts.map +1 -0
  219. package/dist/shaders/glsl/terrainCore.glsl.js +625 -0
  220. package/dist/shaders/landscape/LandscapeMaterial.d.ts +73 -0
  221. package/dist/shaders/landscape/LandscapeMaterial.d.ts.map +1 -0
  222. package/dist/shaders/landscape/LandscapeMaterial.js +136 -0
  223. package/dist/shaders/ocean/OceanSurfaceMaterial.d.ts +57 -0
  224. package/dist/shaders/ocean/OceanSurfaceMaterial.d.ts.map +1 -0
  225. package/dist/shaders/ocean/OceanSurfaceMaterial.js +268 -0
  226. package/dist/shaders/terrain/TerrainMaterial.d.ts +80 -0
  227. package/dist/shaders/terrain/TerrainMaterial.d.ts.map +1 -0
  228. package/dist/shaders/terrain/TerrainMaterial.js +291 -0
  229. package/dist/types/cloudConfigs.d.ts +244 -0
  230. package/dist/types/cloudConfigs.d.ts.map +1 -0
  231. package/dist/types/cloudConfigs.js +282 -0
  232. package/dist/types/index.d.ts +8 -0
  233. package/dist/types/index.d.ts.map +1 -1
  234. package/dist/types/index.js +4 -1
  235. package/dist/types/landscapeConfigs.d.ts +218 -0
  236. package/dist/types/landscapeConfigs.d.ts.map +1 -0
  237. package/dist/types/landscapeConfigs.js +256 -0
  238. package/dist/types/oceanConfigs.d.ts +290 -0
  239. package/dist/types/oceanConfigs.d.ts.map +1 -0
  240. package/dist/types/oceanConfigs.js +380 -0
  241. package/dist/types/terrainConfigs.d.ts +251 -0
  242. package/dist/types/terrainConfigs.d.ts.map +1 -0
  243. package/dist/types/terrainConfigs.js +292 -0
  244. package/dist/utils/cloudUniforms.d.ts +14 -0
  245. package/dist/utils/cloudUniforms.d.ts.map +1 -0
  246. package/dist/utils/cloudUniforms.js +122 -0
  247. package/dist/utils/frameRenderer.d.ts +33 -0
  248. package/dist/utils/frameRenderer.d.ts.map +1 -0
  249. package/dist/utils/frameRenderer.js +24 -0
  250. package/dist/utils/handleCloudsAnimations.d.ts +16 -0
  251. package/dist/utils/handleCloudsAnimations.d.ts.map +1 -0
  252. package/dist/utils/handleCloudsAnimations.js +64 -0
  253. package/dist/utils/landscapeGeometry.d.ts +61 -0
  254. package/dist/utils/landscapeGeometry.d.ts.map +1 -0
  255. package/dist/utils/landscapeGeometry.js +126 -0
  256. package/dist/utils/landscapeHeight.d.ts +44 -0
  257. package/dist/utils/landscapeHeight.d.ts.map +1 -0
  258. package/dist/utils/landscapeHeight.js +65 -0
  259. package/dist/utils/landscapeTextures.d.ts +94 -0
  260. package/dist/utils/landscapeTextures.d.ts.map +1 -0
  261. package/dist/utils/landscapeTextures.js +290 -0
  262. package/dist/utils/landscapeUniforms.d.ts +20 -0
  263. package/dist/utils/landscapeUniforms.d.ts.map +1 -0
  264. package/dist/utils/landscapeUniforms.js +61 -0
  265. package/dist/utils/oceanUniforms.d.ts +47 -0
  266. package/dist/utils/oceanUniforms.d.ts.map +1 -0
  267. package/dist/utils/oceanUniforms.js +216 -0
  268. package/dist/utils/pointsMaterialOwnership.d.ts +9 -0
  269. package/dist/utils/pointsMaterialOwnership.d.ts.map +1 -0
  270. package/dist/utils/pointsMaterialOwnership.js +14 -0
  271. package/dist/utils/rtin.d.ts +63 -0
  272. package/dist/utils/rtin.d.ts.map +1 -0
  273. package/dist/utils/rtin.js +202 -0
  274. package/dist/utils/terrainUniforms.d.ts +14 -0
  275. package/dist/utils/terrainUniforms.d.ts.map +1 -0
  276. package/dist/utils/terrainUniforms.js +196 -0
  277. package/package.json +2 -2
@@ -0,0 +1,8 @@
1
+ export type { CloudLayerProps } from './types';
2
+ export type { VolumetricCloudsPassProps } from './VolumetricCloudsPass';
3
+ export { default as VolumetricCloudsPass } from './VolumetricCloudsPass';
4
+ export { default as Cumulus } from './Cumulus';
5
+ export { default as Stratocumulus } from './Stratocumulus';
6
+ export { default as Cumulonimbus } from './Cumulonimbus';
7
+ export { default as Cirrus } from './Cirrus';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/volumetricClouds/index.ts"],"names":[],"mappings":"AAGA,YAAY,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC/C,YAAY,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAExE,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC"}
@@ -0,0 +1,7 @@
1
+ // Volumetric cloud layers. Each renders the shared pipeline with the coercions its
2
+ // type needs; exactly one is mounted at a time, by CloudsGenerator.
3
+ export { default as VolumetricCloudsPass } from './VolumetricCloudsPass.js';
4
+ export { default as Cumulus } from './Cumulus.js';
5
+ export { default as Stratocumulus } from './Stratocumulus.js';
6
+ export { default as Cumulonimbus } from './Cumulonimbus.js';
7
+ export { default as Cirrus } from './Cirrus.js';
@@ -0,0 +1,17 @@
1
+ import type { MouseMoveInteractions, ObjectAnimations, SkySettings, TimeSettings } from '@3driseai/3drise-core';
2
+ import type { ObjectReadyProps } from '../../types/objectReady';
3
+ import type { CirrusLayerConfig, CloudDeckConfig, CloudsQualityConfig } from '../../types/cloudConfigs';
4
+ /** Shared by every layer component. The generator hands all four the same shape. */
5
+ export interface CloudLayerProps extends ObjectReadyProps {
6
+ /** Scene id, so a controller can findById() the layer and drive it live. */
7
+ id?: string;
8
+ deck: CloudDeckConfig;
9
+ cirrus: CirrusLayerConfig | null;
10
+ quality: CloudsQualityConfig;
11
+ skySettings?: SkySettings;
12
+ timeSettings?: TimeSettings;
13
+ sunIntensity?: number;
14
+ animations?: ObjectAnimations;
15
+ mouseMove?: MouseMoveInteractions;
16
+ }
17
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/volumetricClouds/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAChH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAExG,oFAAoF;AACpF,MAAM,WAAW,eAAgB,SAAQ,gBAAgB;IACrD,4EAA4E;IAC5E,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,eAAe,CAAC;IACtB,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACjC,OAAO,EAAE,mBAAmB,CAAC;IAC7B,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,SAAS,CAAC,EAAE,qBAAqB,CAAC;CACrC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,12 @@
1
+ import React from 'react';
2
+ import type { OceanLayerProps } from './types';
3
+ /**
4
+ * Picks the container for a water type.
5
+ *
6
+ * Every type works on both hosts — a pool of storm water is a fair thing to
7
+ * want — so the host switch lives here, once, rather than in each of the four
8
+ * type wrappers.
9
+ */
10
+ declare const Host: React.FC<OceanLayerProps>;
11
+ export default Host;
12
+ //# sourceMappingURL=Host.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Host.d.ts","sourceRoot":"","sources":["../../../src/components/water/Host.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C;;;;;;GAMG;AACH,QAAA,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CACuD,CAAC;AAE5F,eAAe,IAAI,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import OceanSurface from './OceanSurface.js';
3
+ import WaterBody from './WaterBody.js';
4
+ /**
5
+ * Picks the container for a water type.
6
+ *
7
+ * Every type works on both hosts — a pool of storm water is a fair thing to
8
+ * want — so the host switch lives here, once, rather than in each of the four
9
+ * type wrappers.
10
+ */
11
+ const Host = (props) => props.config.host === 'object' ? _jsx(WaterBody, { ...props }) : _jsx(OceanSurface, { ...props });
12
+ export default Host;
@@ -0,0 +1,18 @@
1
+ import React from 'react';
2
+ import type { OceanLayerProps } from './types';
3
+ /**
4
+ * Inland water.
5
+ *
6
+ * Short fetch does all the work: a lake in a gale has small, short, steep waves,
7
+ * because there is no open water upwind for anything longer to build over. Get
8
+ * that wrong and a lake renders as a shrunken ocean, which is the single most
9
+ * common mistake in water rendering.
10
+ *
11
+ * Swell is clamped, and that one IS a coercion. Swell is energy that has
12
+ * travelled out of the weather that made it, over hundreds of kilometres; a lake
13
+ * cannot have any. Left free, the slider produces long, low, ocean-looking rollers
14
+ * on a pond, which is exactly the failure the type exists to prevent.
15
+ */
16
+ declare const Lake: React.FC<OceanLayerProps>;
17
+ export default Lake;
18
+ //# sourceMappingURL=Lake.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Lake.d.ts","sourceRoot":"","sources":["../../../src/components/water/Lake.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C;;;;;;;;;;;;GAYG;AACH,QAAA,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAGnC,CAAC;AAEF,eAAe,IAAI,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useMemo } from 'react';
3
+ import Host from './Host.js';
4
+ /**
5
+ * Inland water.
6
+ *
7
+ * Short fetch does all the work: a lake in a gale has small, short, steep waves,
8
+ * because there is no open water upwind for anything longer to build over. Get
9
+ * that wrong and a lake renders as a shrunken ocean, which is the single most
10
+ * common mistake in water rendering.
11
+ *
12
+ * Swell is clamped, and that one IS a coercion. Swell is energy that has
13
+ * travelled out of the weather that made it, over hundreds of kilometres; a lake
14
+ * cannot have any. Left free, the slider produces long, low, ocean-looking rollers
15
+ * on a pond, which is exactly the failure the type exists to prevent.
16
+ */
17
+ const Lake = ({ config, ...rest }) => {
18
+ const resolved = useMemo(() => ({ ...config, swell: Math.min(config.swell, 0.15) }), [config]);
19
+ return _jsx(Host, { config: resolved, ...rest });
20
+ };
21
+ export default Lake;
@@ -0,0 +1,27 @@
1
+ import React from 'react';
2
+ import type { OceanLayerProps } from './types';
3
+ /**
4
+ * The world ocean: a geometry clipmap that follows the camera, displaced in the
5
+ * vertex shader by the wave field.
6
+ *
7
+ * One clipmap, one material, four water types — they differ by the spectrum the
8
+ * CPU uploads, not by having separate renderers, the same way the four landforms
9
+ * share one height field and three of the four cloud types share one marcher.
10
+ *
11
+ * Like the terrain and unlike the cloud pass, this does NOT take over the render
12
+ * loop. It is an ordinary mesh with an ordinary material, so it depth-sorts
13
+ * against scene objects, receives the sun's shadow map, takes scene fog, and the
14
+ * cloud pass composites over it correctly because it is simply in the scene when
15
+ * that pass renders.
16
+ *
17
+ * ## The clipmap follows the camera in XZ only
18
+ *
19
+ * Y is `config.seaLevel`, which is this body's own and has nothing to do with
20
+ * the terrain's. Sea level and ground level are independent by design: a scene
21
+ * may have water and no terrain, terrain and no water, or a lake at +40 m beside
22
+ * a sea at 0. What connects them is computed — the shoreline is where the ground
23
+ * crosses this surface — never configured.
24
+ */
25
+ declare const OceanSurface: React.FC<OceanLayerProps>;
26
+ export default OceanSurface;
27
+ //# sourceMappingURL=OceanSurface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OceanSurface.d.ts","sourceRoot":"","sources":["../../../src/components/water/OceanSurface.tsx"],"names":[],"mappings":"AACA,OAAO,KAAiB,MAAM,OAAO,CAAC;AAItC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,QAAA,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAuD3C,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -0,0 +1,60 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useRef } from 'react';
3
+ import { useObjectReady } from '../../hooks/useObjectReady.js';
4
+ import { useClipmap } from '../../hooks/useClipmap.js';
5
+ import { useOceanMaterial } from '../../hooks/useOceanMaterial.js';
6
+ /**
7
+ * The world ocean: a geometry clipmap that follows the camera, displaced in the
8
+ * vertex shader by the wave field.
9
+ *
10
+ * One clipmap, one material, four water types — they differ by the spectrum the
11
+ * CPU uploads, not by having separate renderers, the same way the four landforms
12
+ * share one height field and three of the four cloud types share one marcher.
13
+ *
14
+ * Like the terrain and unlike the cloud pass, this does NOT take over the render
15
+ * loop. It is an ordinary mesh with an ordinary material, so it depth-sorts
16
+ * against scene objects, receives the sun's shadow map, takes scene fog, and the
17
+ * cloud pass composites over it correctly because it is simply in the scene when
18
+ * that pass renders.
19
+ *
20
+ * ## The clipmap follows the camera in XZ only
21
+ *
22
+ * Y is `config.seaLevel`, which is this body's own and has nothing to do with
23
+ * the terrain's. Sea level and ground level are independent by design: a scene
24
+ * may have water and no terrain, terrain and no water, or a lake at +40 m beside
25
+ * a sea at 0. What connects them is computed — the shoreline is where the ground
26
+ * crosses this surface — never configured.
27
+ */
28
+ const OceanSurface = ({ id = '3drise-water', config, quality, skySettings, timeSettings, sunIntensity = 1, onObjectReady, onObjectDispose, }) => {
29
+ const clipmap = useClipmap(quality.levels, quality.segments, quality.cellSize);
30
+ const meshRefs = useRef([]);
31
+ const { material, rootRef } = useOceanMaterial({
32
+ id,
33
+ config,
34
+ quality,
35
+ skySettings,
36
+ timeSettings,
37
+ sunIntensity,
38
+ onFrame: (cfg, _qual, state) => {
39
+ // ONE origin for the whole pyramid, snapped to twice the finest cell.
40
+ //
41
+ // Snapping each ring to its own cell grid is the textbook clipmap and
42
+ // it is what tears the seams open: neighbouring rings then sit on
43
+ // origins up to a cell apart, and boundaries that match exactly in
44
+ // local space miss each other in the world by that offset.
45
+ const snap = clipmap.sharedSnap;
46
+ const ox = Math.round(state.camera.position.x / snap) * snap;
47
+ const oz = Math.round(state.camera.position.z / snap) * snap;
48
+ for (let i = 0; i < clipmap.levels.length; i++) {
49
+ meshRefs.current[i]?.position.set(ox, cfg.seaLevel, oz);
50
+ }
51
+ },
52
+ });
53
+ useObjectReady(rootRef, { id, type: 'ocean', config, quality }, onObjectReady, onObjectDispose);
54
+ return (_jsx("group", { ref: rootRef, children: clipmap.levels.map((ring, i) => (_jsx("mesh", { ref: (m) => { meshRefs.current[i] = m; }, geometry: ring.geometry, material: material, receiveShadow: quality.receiveShadows,
55
+ // Displacement happens in the vertex shader, so the
56
+ // object-space bounds describe a flat plane. Culling against
57
+ // them hides the water the moment the camera tilts up.
58
+ frustumCulled: false }, ring.level))) }));
59
+ };
60
+ export default OceanSurface;
@@ -0,0 +1,18 @@
1
+ import React from 'react';
2
+ import type { OceanLayerProps } from './types';
3
+ /**
4
+ * Open ocean.
5
+ *
6
+ * The reference case for the wave field, because everything in the spectrum is
7
+ * visible at once: long swell running under a shorter wind sea, whitecaps where
8
+ * the two coincide and steepen a crest past folding, and a horizon that only
9
+ * looks right because of the curvature term.
10
+ *
11
+ * Nothing is coerced here. The four types differ in the spectrum the CPU
12
+ * uploads, not in what the shader is allowed to do — unlike the terrain, where
13
+ * canyon-only shaping had to be forced off on the other landforms because the
14
+ * shader branches on the type. Nothing in the water shader branches on it.
15
+ */
16
+ declare const Sea: React.FC<OceanLayerProps>;
17
+ export default Sea;
18
+ //# sourceMappingURL=Sea.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Sea.d.ts","sourceRoot":"","sources":["../../../src/components/water/Sea.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C;;;;;;;;;;;;GAYG;AACH,QAAA,MAAM,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAAkC,CAAC;AAEtE,eAAe,GAAG,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import Host from './Host.js';
3
+ /**
4
+ * Open ocean.
5
+ *
6
+ * The reference case for the wave field, because everything in the spectrum is
7
+ * visible at once: long swell running under a shorter wind sea, whitecaps where
8
+ * the two coincide and steepen a crest past folding, and a horizon that only
9
+ * looks right because of the curvature term.
10
+ *
11
+ * Nothing is coerced here. The four types differ in the spectrum the CPU
12
+ * uploads, not in what the shader is allowed to do — unlike the terrain, where
13
+ * canyon-only shaping had to be forced off on the other landforms because the
14
+ * shader branches on the type. Nothing in the water shader branches on it.
15
+ */
16
+ const Sea = (props) => _jsx(Host, { ...props });
17
+ export default Sea;
@@ -0,0 +1,16 @@
1
+ import React from 'react';
2
+ import type { OceanLayerProps } from './types';
3
+ /**
4
+ * Coastal water.
5
+ *
6
+ * Narrow directional spread, because waves refract into alignment with the beach
7
+ * as they shoal, and a stronger shoreline than the other types: this is the one
8
+ * that is defined by meeting the ground rather than by the wind over it.
9
+ *
10
+ * The shoreline itself — depth-ramped colour, the foam line and the wash — needs
11
+ * the refraction depth grab and the terrain height field, so today this type is
12
+ * a coastal spectrum with the shore parameters standing ready. That is phase 4.
13
+ */
14
+ declare const Shore: React.FC<OceanLayerProps>;
15
+ export default Shore;
16
+ //# sourceMappingURL=Shore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Shore.d.ts","sourceRoot":"","sources":["../../../src/components/water/Shore.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C;;;;;;;;;;GAUG;AACH,QAAA,MAAM,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAAkC,CAAC;AAExE,eAAe,KAAK,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import Host from './Host.js';
3
+ /**
4
+ * Coastal water.
5
+ *
6
+ * Narrow directional spread, because waves refract into alignment with the beach
7
+ * as they shoal, and a stronger shoreline than the other types: this is the one
8
+ * that is defined by meeting the ground rather than by the wind over it.
9
+ *
10
+ * The shoreline itself — depth-ramped colour, the foam line and the wash — needs
11
+ * the refraction depth grab and the terrain height field, so today this type is
12
+ * a coastal spectrum with the shore parameters standing ready. That is phase 4.
13
+ */
14
+ const Shore = (props) => _jsx(Host, { ...props });
15
+ export default Shore;
@@ -0,0 +1,14 @@
1
+ import React from 'react';
2
+ import type { OceanLayerProps } from './types';
3
+ /**
4
+ * Storm sea.
5
+ *
6
+ * Same model as `Sea` with the wind at the top of its range, which is where the
7
+ * Jacobian foam earns its place: past about 15 m/s the crests fold on their own
8
+ * and the whitecaps appear because the surface is genuinely breaking, not
9
+ * because a threshold was lowered. Turn choppiness down and the storm loses its
10
+ * foam — that is the model being honest, not a bug.
11
+ */
12
+ declare const Storm: React.FC<OceanLayerProps>;
13
+ export default Storm;
14
+ //# sourceMappingURL=Storm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Storm.d.ts","sourceRoot":"","sources":["../../../src/components/water/Storm.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C;;;;;;;;GAQG;AACH,QAAA,MAAM,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAAkC,CAAC;AAExE,eAAe,KAAK,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import Host from './Host.js';
3
+ /**
4
+ * Storm sea.
5
+ *
6
+ * Same model as `Sea` with the wind at the top of its range, which is where the
7
+ * Jacobian foam earns its place: past about 15 m/s the crests fold on their own
8
+ * and the whitecaps appear because the surface is genuinely breaking, not
9
+ * because a threshold was lowered. Turn choppiness down and the storm loses its
10
+ * foam — that is the model being honest, not a bug.
11
+ */
12
+ const Storm = (props) => _jsx(Host, { ...props });
13
+ export default Storm;
@@ -0,0 +1,31 @@
1
+ import React from 'react';
2
+ import type { OceanLayerProps } from './types';
3
+ /**
4
+ * A placed body of water — a pool, a pond, a canal, a flooded room.
5
+ *
6
+ * The object host, and the counterpart to the clouds' object host: bounded,
7
+ * transformable, and as many of them in a scene as you like. It runs the same
8
+ * material and the same wave field as the world ocean; what differs is the mesh
9
+ * and two uniforms.
10
+ *
11
+ * Three things follow from being bounded:
12
+ *
13
+ * **It has a transform, and its level comes from that.** `meshSettings.position.y`
14
+ * is the surface height, so two bodies at different heights in one scene need no
15
+ * coordination — and none of them is tied to the terrain's sea level either.
16
+ *
17
+ * **Waves are evaluated in its own space,** so they rotate with it and a rotated
18
+ * canal has waves running along the canal rather than along the world axes. The
19
+ * material switches on `u_bodyHalf` being non-zero.
20
+ *
21
+ * **Waves longer than the body are meaningless,** so the spectrum is clamped by
22
+ * its size before it reaches the table: a three-metre pool with forty-metre swell
23
+ * is one rigid slab tilting up and down. `OBJECT_HOST_OVERRIDES` sets the
24
+ * defaults for that; this clamps whatever the user then asks for.
25
+ *
26
+ * The rim taper (`edgeFade`) is in the vertex shader — without it the boundary
27
+ * is a sawn-off cliff of water.
28
+ */
29
+ declare const WaterBody: React.FC<OceanLayerProps>;
30
+ export default WaterBody;
31
+ //# sourceMappingURL=WaterBody.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WaterBody.d.ts","sourceRoot":"","sources":["../../../src/components/water/WaterBody.tsx"],"names":[],"mappings":"AACA,OAAO,KAA6B,MAAM,OAAO,CAAC;AAGlD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,QAAA,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAsExC,CAAC;AAEF,eAAe,SAAS,CAAC"}
@@ -0,0 +1,76 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import * as THREE from 'three';
3
+ import { useEffect, useMemo } from 'react';
4
+ import { useObjectReady } from '../../hooks/useObjectReady.js';
5
+ import { useOceanMaterial } from '../../hooks/useOceanMaterial.js';
6
+ /**
7
+ * A placed body of water — a pool, a pond, a canal, a flooded room.
8
+ *
9
+ * The object host, and the counterpart to the clouds' object host: bounded,
10
+ * transformable, and as many of them in a scene as you like. It runs the same
11
+ * material and the same wave field as the world ocean; what differs is the mesh
12
+ * and two uniforms.
13
+ *
14
+ * Three things follow from being bounded:
15
+ *
16
+ * **It has a transform, and its level comes from that.** `meshSettings.position.y`
17
+ * is the surface height, so two bodies at different heights in one scene need no
18
+ * coordination — and none of them is tied to the terrain's sea level either.
19
+ *
20
+ * **Waves are evaluated in its own space,** so they rotate with it and a rotated
21
+ * canal has waves running along the canal rather than along the world axes. The
22
+ * material switches on `u_bodyHalf` being non-zero.
23
+ *
24
+ * **Waves longer than the body are meaningless,** so the spectrum is clamped by
25
+ * its size before it reaches the table: a three-metre pool with forty-metre swell
26
+ * is one rigid slab tilting up and down. `OBJECT_HOST_OVERRIDES` sets the
27
+ * defaults for that; this clamps whatever the user then asks for.
28
+ *
29
+ * The rim taper (`edgeFade`) is in the vertex shader — without it the boundary
30
+ * is a sawn-off cliff of water.
31
+ */
32
+ const WaterBody = ({ id = '3drise-water-body', config, quality, skySettings, timeSettings, sunIntensity = 1, meshSettings, onObjectReady, onObjectDispose, }) => {
33
+ const [width, depth] = config.size;
34
+ // A body cannot carry a wave longer than it is: fetch is capped at its own
35
+ // extent, which is physically what fetch MEANS — the open water upwind.
36
+ const bounded = useMemo(() => ({
37
+ ...config,
38
+ fetch: Math.min(config.fetch, Math.max(width, depth) / 1000),
39
+ }), [config, width, depth]);
40
+ const geometry = useMemo(() => {
41
+ const segments = Math.max(4, Math.min(Math.round(config.segments), 1024));
42
+ const geo = new THREE.PlaneGeometry(Math.max(width, 0.01), Math.max(depth, 0.01), segments, segments);
43
+ // PlaneGeometry is built in XY; the water field is XZ, and rotating the
44
+ // mesh instead would rotate the transform the user edits.
45
+ geo.rotateX(-Math.PI / 2);
46
+ const count = geo.attributes.position.count;
47
+ const cell = Math.max(width, depth) / segments;
48
+ // The material reads all three on both hosts. A body has no coarser ring
49
+ // to morph toward, so the morph attributes are zero and `cellLod` is just
50
+ // the cell — which is still what the per-wave LOD fade needs, so a pool
51
+ // does not try to draw ripples finer than its own grid.
52
+ geo.setAttribute('aCell', new THREE.BufferAttribute(new Float32Array(count).fill(cell), 1));
53
+ geo.setAttribute('aMorph', new THREE.BufferAttribute(new Float32Array(count), 1));
54
+ geo.setAttribute('aCoarse', new THREE.BufferAttribute(new Float32Array(count * 2), 2));
55
+ // Displaced in the vertex shader, so the computed bounds are a flat
56
+ // rectangle. Unlike the clipmap this SHOULD cull — a pool behind the
57
+ // camera is not on screen — so the sphere is grown rather than made
58
+ // infinite.
59
+ geo.computeBoundingSphere();
60
+ if (geo.boundingSphere)
61
+ geo.boundingSphere.radius *= 1.2;
62
+ return geo;
63
+ }, [width, depth, config.segments]);
64
+ useEffect(() => () => { geometry.dispose(); }, [geometry]);
65
+ const { material, rootRef } = useOceanMaterial({
66
+ id,
67
+ config: bounded,
68
+ quality,
69
+ skySettings,
70
+ timeSettings,
71
+ sunIntensity,
72
+ });
73
+ useObjectReady(rootRef, { id, type: 'ocean', config, quality }, onObjectReady, onObjectDispose);
74
+ return (_jsx("group", { ref: rootRef, position: meshSettings?.position ?? [0, config.seaLevel, 0], rotation: meshSettings?.rotation ?? [0, 0, 0], scale: meshSettings?.scale ?? [1, 1, 1], visible: meshSettings ? meshSettings.visible !== false : true, children: _jsx("mesh", { geometry: geometry, material: material, receiveShadow: quality.receiveShadows }) }));
75
+ };
76
+ export default WaterBody;
@@ -0,0 +1,9 @@
1
+ export type { OceanLayerProps } from './types';
2
+ export { default as OceanSurface } from './OceanSurface';
3
+ export { default as WaterBody } from './WaterBody';
4
+ export { default as OceanHost } from './Host';
5
+ export { default as Sea } from './Sea';
6
+ export { default as Lake } from './Lake';
7
+ export { default as Storm } from './Storm';
8
+ export { default as Shore } from './Shore';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/water/index.ts"],"names":[],"mappings":"AAKA,YAAY,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,11 @@
1
+ // Water bodies. Four spectra over one wave field, in either of two hosts —
2
+ // the camera-following world ocean or a placed, transformable body. Exactly one
3
+ // world ocean is mounted at a time, by OceanBuilder; placed bodies are ordinary
4
+ // scene objects and there can be any number of them.
5
+ export { default as OceanSurface } from './OceanSurface.js';
6
+ export { default as WaterBody } from './WaterBody.js';
7
+ export { default as OceanHost } from './Host.js';
8
+ export { default as Sea } from './Sea.js';
9
+ export { default as Lake } from './Lake.js';
10
+ export { default as Storm } from './Storm.js';
11
+ export { default as Shore } from './Shore.js';
@@ -0,0 +1,20 @@
1
+ import type { SkySettings, TimeSettings } from '@3driseai/3drise-core';
2
+ import type { ObjectReadyProps } from '../../types/objectReady';
3
+ import type { OceanConfig, OceanMeshSettings, OceanQualityConfig } from '../../types/oceanConfigs';
4
+ /** Shared by every water type. The builder hands all four the same shape. */
5
+ export interface OceanLayerProps extends ObjectReadyProps {
6
+ /** Scene id, so a controller can findById() the water and drive it live. */
7
+ id?: string;
8
+ config: OceanConfig;
9
+ quality: OceanQualityConfig;
10
+ /** The four Preetham parameters, so the water reflects and is lit by the same
11
+ * atmosphere the sky is drawn with. More important here than anywhere else:
12
+ * most of what you see looking at water is the sky. */
13
+ skySettings?: SkySettings;
14
+ timeSettings?: TimeSettings;
15
+ /** Matches SkySystem's sunIntensity, so water brightens with the scene. */
16
+ sunIntensity?: number;
17
+ /** Object host only — the placed body's transform. */
18
+ meshSettings?: OceanMeshSettings;
19
+ }
20
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/water/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAEnG,6EAA6E;AAC7E,MAAM,WAAW,eAAgB,SAAQ,gBAAgB;IACrD,4EAA4E;IAC5E,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,EAAE,kBAAkB,CAAC;IAC5B;;4DAEwD;IACxD,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,2EAA2E;IAC3E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sDAAsD;IACtD,YAAY,CAAC,EAAE,iBAAiB,CAAC;CACpC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -1,2 +1,3 @@
1
1
  export declare const dataCenterServer = "https://3drise.ai/api/data/";
2
+ export declare const SELF_MANAGED_MATERIAL: Set<string>;
2
3
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,gBAAgB,gCAAgC,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,gBAAgB,gCAAgC,CAAC;AAC9D,eAAO,MAAM,qBAAqB,aAchC,CAAC"}
package/dist/constants.js CHANGED
@@ -4,3 +4,18 @@ const isLocalHostRuntime = typeof window !== 'undefined' &&
4
4
  (window.location.hostname === 'localhost' || window.location.hostname === '127.0.0.1');
5
5
  // export const dataCenterServer = isLocalHostRuntime ? LOCAL_DATA_CENTER_SERVER : PRODUCTION_DATA_CENTER_SERVER;
6
6
  export const dataCenterServer = PRODUCTION_DATA_CENTER_SERVER;
7
+ export const SELF_MANAGED_MATERIAL = new Set([
8
+ // The landscape owns its shader: splat arrays, height blending and the
9
+ // heightmap displacement are the material. useMaterialApplication would
10
+ // replace it with whatever the registry has under materialType.
11
+ 'landscape',
12
+ 'effect',
13
+ 'space',
14
+ 'grid',
15
+ // The water surface owns its shader — one material for both hosts, built
16
+ // around the wave field. Left out of this set, useMaterialApplication
17
+ // overwrites it with whatever the registry has under materialType, which for
18
+ // a legacy ocean is the old flat-plane water material.
19
+ 'ocean',
20
+ // 'moon'
21
+ ]);
@@ -2,10 +2,29 @@ export type { Update3driseShaderOptions } from './use3driseShader';
2
2
  export { update3driseShaderUniforms, use3driseShader } from './use3driseShader';
3
3
  export { useAnimationEvents } from './useAnimationEvents';
4
4
  export { useCameraAnimation } from './useCameraAnimation';
5
+ export type { CloudNoise } from './useCloudNoise';
6
+ export { bakeCloudNoise, useCloudNoise } from './useCloudNoise';
7
+ export type { CloudSunState, UseCloudSunOptions } from './useCloudSun';
8
+ export { computeCloudSun, useCloudSun } from './useCloudSun';
9
+ export type { CloudLiveHandle } from './useCloudLive';
10
+ export { CLOUD_LIVE_KEY, useCloudLive } from './useCloudLive';
11
+ export type { TerrainLiveHandle } from './useTerrainLive';
12
+ export { TERRAIN_LIVE_KEY, useTerrainLive } from './useTerrainLive';
13
+ export type { TerrainClipmap, TerrainClipmapLevel } from './useTerrainClipmap';
14
+ export { useTerrainClipmap } from './useTerrainClipmap';
15
+ export type { Clipmap, ClipmapLevel } from './useClipmap';
16
+ export { useClipmap } from './useClipmap';
17
+ export type { OceanLiveHandle } from './useOceanLive';
18
+ export { OCEAN_LIVE_KEY, useOceanLive } from './useOceanLive';
19
+ export { useOceanMaterial } from './useOceanMaterial';
20
+ export type { UseOceanMaterialOptions, OceanMaterialHandle } from './useOceanMaterial';
5
21
  export type { UseContinuousEffectsOptions, UseContinuousEffectsResult } from './useContinuousEffects';
6
22
  export { useContinuousEffects } from './useContinuousEffects';
7
- export type { UseCubeCameraOptions } from './useCubeCamera';
23
+ export type { UseCubeCameraOptions, UseCubeCameraReturn } from './useCubeCamera';
8
24
  export { useCubeCamera } from './useCubeCamera';
25
+ export type { UseEnvironmentProbeOptions } from './useEnvironmentProbe';
26
+ export { useEnvironmentProbe } from './useEnvironmentProbe';
27
+ export { useFrameRenderer } from './useFrameRenderer';
9
28
  export type { UseEnvironmentEffectsOptions } from './useEnvironmentEffects';
10
29
  export { useEnvironmentEffects } from './useEnvironmentEffects';
11
30
  export { useFrameAnimations } from './useFrameAnimations';
@@ -56,4 +75,8 @@ export { useTransformControls } from './useTransformControls';
56
75
  export { useVolumePoints } from './useVolumePoints';
57
76
  export { useWaterEnvironment } from './useWaterEnvironment';
58
77
  export { useWaterReflections } from './useWaterReflections';
78
+ export type { LandscapeLiveHandle } from './useLandscapeLive';
79
+ export { LANDSCAPE_LIVE_KEY, useLandscapeLive } from './useLandscapeLive';
80
+ export { useLandscapeMaps } from './useLandscapeMaps';
81
+ export type { LandscapeMapsState } from './useLandscapeMaps';
59
82
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"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"}
@@ -5,8 +5,18 @@
5
5
  export { update3driseShaderUniforms, use3driseShader } from './use3driseShader.js';
6
6
  export { useAnimationEvents } from './useAnimationEvents.js';
7
7
  export { useCameraAnimation } from './useCameraAnimation.js';
8
+ export { bakeCloudNoise, useCloudNoise } from './useCloudNoise.js';
9
+ export { computeCloudSun, useCloudSun } from './useCloudSun.js';
10
+ export { CLOUD_LIVE_KEY, useCloudLive } from './useCloudLive.js';
11
+ export { TERRAIN_LIVE_KEY, useTerrainLive } from './useTerrainLive.js';
12
+ export { useTerrainClipmap } from './useTerrainClipmap.js';
13
+ export { useClipmap } from './useClipmap.js';
14
+ export { OCEAN_LIVE_KEY, useOceanLive } from './useOceanLive.js';
15
+ export { useOceanMaterial } from './useOceanMaterial.js';
8
16
  export { useContinuousEffects } from './useContinuousEffects.js';
9
17
  export { useCubeCamera } from './useCubeCamera.js';
18
+ export { useEnvironmentProbe } from './useEnvironmentProbe.js';
19
+ export { useFrameRenderer } from './useFrameRenderer.js';
10
20
  export { useEnvironmentEffects } from './useEnvironmentEffects.js';
11
21
  export { useFrameAnimations } from './useFrameAnimations.js';
12
22
  export { useFrameEffects } from './useFrameEffects.js';
@@ -46,3 +56,5 @@ export { useTransformControls } from './useTransformControls.js';
46
56
  export { useVolumePoints } from './useVolumePoints.js';
47
57
  export { useWaterEnvironment } from './useWaterEnvironment.js';
48
58
  export { useWaterReflections } from './useWaterReflections.js';
59
+ export { LANDSCAPE_LIVE_KEY, useLandscapeLive } from './useLandscapeLive.js';
60
+ export { useLandscapeMaps } from './useLandscapeMaps.js';