@ntalmagor/3drize-viewer 0.1.2

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 (337) hide show
  1. package/dist/components/AnimatedObject.d.ts +22 -0
  2. package/dist/components/AnimatedObject.d.ts.map +1 -0
  3. package/dist/components/AnimatedObject.js +121 -0
  4. package/dist/components/CameraController.d.ts +16 -0
  5. package/dist/components/CameraController.d.ts.map +1 -0
  6. package/dist/components/CameraController.js +132 -0
  7. package/dist/components/Clouds.d.ts +14 -0
  8. package/dist/components/Clouds.d.ts.map +1 -0
  9. package/dist/components/Clouds.js +97 -0
  10. package/dist/components/CreatedObject.d.ts +12 -0
  11. package/dist/components/CreatedObject.d.ts.map +1 -0
  12. package/dist/components/CreatedObject.js +139 -0
  13. package/dist/components/CustomPrimitive.d.ts +12 -0
  14. package/dist/components/CustomPrimitive.d.ts.map +1 -0
  15. package/dist/components/CustomPrimitive.js +80 -0
  16. package/dist/components/EffectsGenerator.d.ts +10 -0
  17. package/dist/components/EffectsGenerator.d.ts.map +1 -0
  18. package/dist/components/EffectsGenerator.js +59 -0
  19. package/dist/components/EffectsGroup.d.ts +8 -0
  20. package/dist/components/EffectsGroup.d.ts.map +1 -0
  21. package/dist/components/EffectsGroup.js +8 -0
  22. package/dist/components/EnvironmentManager.d.ts +9 -0
  23. package/dist/components/EnvironmentManager.d.ts.map +1 -0
  24. package/dist/components/EnvironmentManager.js +47 -0
  25. package/dist/components/Frame.d.ts +26 -0
  26. package/dist/components/Frame.d.ts.map +1 -0
  27. package/dist/components/Frame.js +50 -0
  28. package/dist/components/FrameGeometry.d.ts +10 -0
  29. package/dist/components/FrameGeometry.d.ts.map +1 -0
  30. package/dist/components/FrameGeometry.js +17 -0
  31. package/dist/components/FrameImage.d.ts +14 -0
  32. package/dist/components/FrameImage.d.ts.map +1 -0
  33. package/dist/components/FrameImage.js +15 -0
  34. package/dist/components/Galaxy.d.ts +8 -0
  35. package/dist/components/Galaxy.d.ts.map +1 -0
  36. package/dist/components/Galaxy.js +9 -0
  37. package/dist/components/GalleryLayout.d.ts +10 -0
  38. package/dist/components/GalleryLayout.d.ts.map +1 -0
  39. package/dist/components/GalleryLayout.js +18 -0
  40. package/dist/components/GridHelper.d.ts +23 -0
  41. package/dist/components/GridHelper.d.ts.map +1 -0
  42. package/dist/components/GridHelper.js +38 -0
  43. package/dist/components/ImageGeometry.d.ts +14 -0
  44. package/dist/components/ImageGeometry.d.ts.map +1 -0
  45. package/dist/components/ImageGeometry.js +62 -0
  46. package/dist/components/Lensflare.d.ts +12 -0
  47. package/dist/components/Lensflare.d.ts.map +1 -0
  48. package/dist/components/Lensflare.js +66 -0
  49. package/dist/components/Letter.d.ts +20 -0
  50. package/dist/components/Letter.d.ts.map +1 -0
  51. package/dist/components/Letter.js +83 -0
  52. package/dist/components/Letters.d.ts +16 -0
  53. package/dist/components/Letters.d.ts.map +1 -0
  54. package/dist/components/Letters.js +18 -0
  55. package/dist/components/LightsManager.d.ts +9 -0
  56. package/dist/components/LightsManager.d.ts.map +1 -0
  57. package/dist/components/LightsManager.js +121 -0
  58. package/dist/components/Lines.d.ts +9 -0
  59. package/dist/components/Lines.d.ts.map +1 -0
  60. package/dist/components/Lines.js +19 -0
  61. package/dist/components/LoadingIndicator.d.ts +10 -0
  62. package/dist/components/LoadingIndicator.d.ts.map +1 -0
  63. package/dist/components/LoadingIndicator.js +143 -0
  64. package/dist/components/MaterialLibrary.d.ts +9 -0
  65. package/dist/components/MaterialLibrary.d.ts.map +1 -0
  66. package/dist/components/MaterialLibrary.js +57 -0
  67. package/dist/components/Moon.d.ts +13 -0
  68. package/dist/components/Moon.d.ts.map +1 -0
  69. package/dist/components/Moon.js +52 -0
  70. package/dist/components/ObjectNode.d.ts +11 -0
  71. package/dist/components/ObjectNode.d.ts.map +1 -0
  72. package/dist/components/ObjectNode.js +61 -0
  73. package/dist/components/ObjectsRenderer.d.ts +11 -0
  74. package/dist/components/ObjectsRenderer.d.ts.map +1 -0
  75. package/dist/components/ObjectsRenderer.js +19 -0
  76. package/dist/components/Ocean.d.ts +8 -0
  77. package/dist/components/Ocean.d.ts.map +1 -0
  78. package/dist/components/Ocean.js +111 -0
  79. package/dist/components/ParticlesR3f.d.ts +16 -0
  80. package/dist/components/ParticlesR3f.d.ts.map +1 -0
  81. package/dist/components/ParticlesR3f.js +66 -0
  82. package/dist/components/Path.d.ts +13 -0
  83. package/dist/components/Path.d.ts.map +1 -0
  84. package/dist/components/Path.js +41 -0
  85. package/dist/components/PathGeometry.d.ts +11 -0
  86. package/dist/components/PathGeometry.d.ts.map +1 -0
  87. package/dist/components/PathGeometry.js +109 -0
  88. package/dist/components/PathRenderer.d.ts +14 -0
  89. package/dist/components/PathRenderer.d.ts.map +1 -0
  90. package/dist/components/PathRenderer.js +33 -0
  91. package/dist/components/ProductionScene.d.ts +29 -0
  92. package/dist/components/ProductionScene.d.ts.map +1 -0
  93. package/dist/components/ProductionScene.js +18 -0
  94. package/dist/components/ProjectLoader.d.ts +14 -0
  95. package/dist/components/ProjectLoader.d.ts.map +1 -0
  96. package/dist/components/ProjectLoader.js +76 -0
  97. package/dist/components/Rain.d.ts +8 -0
  98. package/dist/components/Rain.d.ts.map +1 -0
  99. package/dist/components/Rain.js +133 -0
  100. package/dist/components/SceneBuilder.d.ts +5 -0
  101. package/dist/components/SceneBuilder.d.ts.map +1 -0
  102. package/dist/components/SceneBuilder.js +104 -0
  103. package/dist/components/SceneFog.d.ts +8 -0
  104. package/dist/components/SceneFog.d.ts.map +1 -0
  105. package/dist/components/SceneFog.js +19 -0
  106. package/dist/components/ShootingStar.d.ts +16 -0
  107. package/dist/components/ShootingStar.d.ts.map +1 -0
  108. package/dist/components/ShootingStar.js +92 -0
  109. package/dist/components/ShootingStars.d.ts +8 -0
  110. package/dist/components/ShootingStars.d.ts.map +1 -0
  111. package/dist/components/ShootingStars.js +40 -0
  112. package/dist/components/SkyController.d.ts +10 -0
  113. package/dist/components/SkyController.d.ts.map +1 -0
  114. package/dist/components/SkyController.js +159 -0
  115. package/dist/components/SkyMesh.d.ts +11 -0
  116. package/dist/components/SkyMesh.d.ts.map +1 -0
  117. package/dist/components/SkyMesh.js +36 -0
  118. package/dist/components/SkySystem.d.ts +34 -0
  119. package/dist/components/SkySystem.d.ts.map +1 -0
  120. package/dist/components/SkySystem.js +47 -0
  121. package/dist/components/Skybox.d.ts +12 -0
  122. package/dist/components/Skybox.d.ts.map +1 -0
  123. package/dist/components/Skybox.js +79 -0
  124. package/dist/components/Stars.d.ts +14 -0
  125. package/dist/components/Stars.d.ts.map +1 -0
  126. package/dist/components/Stars.js +165 -0
  127. package/dist/components/SunLight.d.ts +15 -0
  128. package/dist/components/SunLight.d.ts.map +1 -0
  129. package/dist/components/SunLight.js +57 -0
  130. package/dist/components/Text2D.d.ts +9 -0
  131. package/dist/components/Text2D.d.ts.map +1 -0
  132. package/dist/components/Text2D.js +56 -0
  133. package/dist/components/Text3D.d.ts +10 -0
  134. package/dist/components/Text3D.d.ts.map +1 -0
  135. package/dist/components/Text3D.js +8 -0
  136. package/dist/components/effects/AuraEffect.d.ts +10 -0
  137. package/dist/components/effects/AuraEffect.d.ts.map +1 -0
  138. package/dist/components/effects/AuraEffect.js +127 -0
  139. package/dist/components/effects/AuroraEffect.d.ts +10 -0
  140. package/dist/components/effects/AuroraEffect.d.ts.map +1 -0
  141. package/dist/components/effects/AuroraEffect.js +112 -0
  142. package/dist/components/effects/BlackHoleEffect.d.ts +10 -0
  143. package/dist/components/effects/BlackHoleEffect.d.ts.map +1 -0
  144. package/dist/components/effects/BlackHoleEffect.js +193 -0
  145. package/dist/components/effects/ConstellationEffect.d.ts +10 -0
  146. package/dist/components/effects/ConstellationEffect.d.ts.map +1 -0
  147. package/dist/components/effects/ConstellationEffect.js +189 -0
  148. package/dist/components/effects/DataStreamEffect.d.ts +10 -0
  149. package/dist/components/effects/DataStreamEffect.d.ts.map +1 -0
  150. package/dist/components/effects/DataStreamEffect.js +138 -0
  151. package/dist/components/effects/DnaHelixEffect.d.ts +10 -0
  152. package/dist/components/effects/DnaHelixEffect.d.ts.map +1 -0
  153. package/dist/components/effects/DnaHelixEffect.js +311 -0
  154. package/dist/components/effects/FireEffect.d.ts +10 -0
  155. package/dist/components/effects/FireEffect.d.ts.map +1 -0
  156. package/dist/components/effects/FireEffect.js +194 -0
  157. package/dist/components/effects/ForcefieldEffect.d.ts +10 -0
  158. package/dist/components/effects/ForcefieldEffect.d.ts.map +1 -0
  159. package/dist/components/effects/ForcefieldEffect.js +132 -0
  160. package/dist/components/effects/HologramEffect.d.ts +10 -0
  161. package/dist/components/effects/HologramEffect.d.ts.map +1 -0
  162. package/dist/components/effects/HologramEffect.js +143 -0
  163. package/dist/components/effects/IceCrystalsEffect.d.ts +10 -0
  164. package/dist/components/effects/IceCrystalsEffect.d.ts.map +1 -0
  165. package/dist/components/effects/IceCrystalsEffect.js +190 -0
  166. package/dist/components/effects/LightningEffect.d.ts +10 -0
  167. package/dist/components/effects/LightningEffect.d.ts.map +1 -0
  168. package/dist/components/effects/LightningEffect.js +240 -0
  169. package/dist/components/effects/MoleculesEffect.d.ts +10 -0
  170. package/dist/components/effects/MoleculesEffect.d.ts.map +1 -0
  171. package/dist/components/effects/MoleculesEffect.js +179 -0
  172. package/dist/components/effects/NeuralNetworkEffect.d.ts +10 -0
  173. package/dist/components/effects/NeuralNetworkEffect.d.ts.map +1 -0
  174. package/dist/components/effects/NeuralNetworkEffect.js +188 -0
  175. package/dist/components/effects/OrbEffect.d.ts +10 -0
  176. package/dist/components/effects/OrbEffect.d.ts.map +1 -0
  177. package/dist/components/effects/OrbEffect.js +291 -0
  178. package/dist/components/effects/PortalEffect.d.ts +10 -0
  179. package/dist/components/effects/PortalEffect.d.ts.map +1 -0
  180. package/dist/components/effects/PortalEffect.js +191 -0
  181. package/dist/components/effects/ShockwaveEffect.d.ts +10 -0
  182. package/dist/components/effects/ShockwaveEffect.d.ts.map +1 -0
  183. package/dist/components/effects/ShockwaveEffect.js +159 -0
  184. package/dist/components/effects/SmokePlumeEffect.d.ts +10 -0
  185. package/dist/components/effects/SmokePlumeEffect.d.ts.map +1 -0
  186. package/dist/components/effects/SmokePlumeEffect.js +141 -0
  187. package/dist/components/effects/SmokeRingEffect.d.ts +10 -0
  188. package/dist/components/effects/SmokeRingEffect.d.ts.map +1 -0
  189. package/dist/components/effects/SmokeRingEffect.js +158 -0
  190. package/dist/components/effects/VolumetricFogEffect.d.ts +10 -0
  191. package/dist/components/effects/VolumetricFogEffect.d.ts.map +1 -0
  192. package/dist/components/effects/VolumetricFogEffect.js +111 -0
  193. package/dist/constants.d.ts +2 -0
  194. package/dist/constants.d.ts.map +1 -0
  195. package/dist/constants.js +1 -0
  196. package/dist/hooks/index.d.ts +1 -0
  197. package/dist/hooks/index.d.ts.map +1 -0
  198. package/dist/hooks/index.js +1 -0
  199. package/dist/hooks/useAnimationEvents.d.ts +10 -0
  200. package/dist/hooks/useAnimationEvents.d.ts.map +1 -0
  201. package/dist/hooks/useAnimationEvents.js +28 -0
  202. package/dist/hooks/useCameraAnimation.d.ts +35 -0
  203. package/dist/hooks/useCameraAnimation.d.ts.map +1 -0
  204. package/dist/hooks/useCameraAnimation.js +268 -0
  205. package/dist/hooks/useContinuousEffects.d.ts +15 -0
  206. package/dist/hooks/useContinuousEffects.d.ts.map +1 -0
  207. package/dist/hooks/useContinuousEffects.js +173 -0
  208. package/dist/hooks/useCubeCamera.d.ts +19 -0
  209. package/dist/hooks/useCubeCamera.d.ts.map +1 -0
  210. package/dist/hooks/useCubeCamera.js +73 -0
  211. package/dist/hooks/useEnvironmentEffects.d.ts +12 -0
  212. package/dist/hooks/useEnvironmentEffects.d.ts.map +1 -0
  213. package/dist/hooks/useEnvironmentEffects.js +22 -0
  214. package/dist/hooks/useFrameEffects.d.ts +6 -0
  215. package/dist/hooks/useFrameEffects.d.ts.map +1 -0
  216. package/dist/hooks/useFrameEffects.js +19 -0
  217. package/dist/hooks/useInteractionEffects.d.ts +11 -0
  218. package/dist/hooks/useInteractionEffects.d.ts.map +1 -0
  219. package/dist/hooks/useInteractionEffects.js +35 -0
  220. package/dist/hooks/useKey.d.ts +26 -0
  221. package/dist/hooks/useKey.d.ts.map +1 -0
  222. package/dist/hooks/useKey.js +73 -0
  223. package/dist/hooks/useLightHandlers.d.ts +14 -0
  224. package/dist/hooks/useLightHandlers.d.ts.map +1 -0
  225. package/dist/hooks/useLightHandlers.js +116 -0
  226. package/dist/hooks/useMaterialApplication.d.ts +9 -0
  227. package/dist/hooks/useMaterialApplication.d.ts.map +1 -0
  228. package/dist/hooks/useMaterialApplication.js +113 -0
  229. package/dist/hooks/useMaterialOptions.d.ts +13 -0
  230. package/dist/hooks/useMaterialOptions.d.ts.map +1 -0
  231. package/dist/hooks/useMaterialOptions.js +110 -0
  232. package/dist/hooks/useMaterialUniforms.d.ts +18 -0
  233. package/dist/hooks/useMaterialUniforms.d.ts.map +1 -0
  234. package/dist/hooks/useMaterialUniforms.js +96 -0
  235. package/dist/hooks/useMeshController.d.ts +3 -0
  236. package/dist/hooks/useMeshController.d.ts.map +1 -0
  237. package/dist/hooks/useMeshController.js +152 -0
  238. package/dist/hooks/useMouseHandlers.d.ts +8 -0
  239. package/dist/hooks/useMouseHandlers.d.ts.map +1 -0
  240. package/dist/hooks/useMouseHandlers.js +47 -0
  241. package/dist/hooks/useObjectAnimation.d.ts +13 -0
  242. package/dist/hooks/useObjectAnimation.d.ts.map +1 -0
  243. package/dist/hooks/useObjectAnimation.js +11 -0
  244. package/dist/hooks/useObjectEdges.d.ts +4 -0
  245. package/dist/hooks/useObjectEdges.d.ts.map +1 -0
  246. package/dist/hooks/useObjectEdges.js +199 -0
  247. package/dist/hooks/useOrbitControls.d.ts +7 -0
  248. package/dist/hooks/useOrbitControls.d.ts.map +1 -0
  249. package/dist/hooks/useOrbitControls.js +9 -0
  250. package/dist/hooks/useParticlePositions.d.ts +19 -0
  251. package/dist/hooks/useParticlePositions.d.ts.map +1 -0
  252. package/dist/hooks/useParticlePositions.js +56 -0
  253. package/dist/hooks/useParticlesColors.d.ts +14 -0
  254. package/dist/hooks/useParticlesColors.d.ts.map +1 -0
  255. package/dist/hooks/useParticlesColors.js +27 -0
  256. package/dist/hooks/useParticlesTextures.d.ts +10 -0
  257. package/dist/hooks/useParticlesTextures.d.ts.map +1 -0
  258. package/dist/hooks/useParticlesTextures.js +23 -0
  259. package/dist/hooks/usePathAnimation.d.ts +26 -0
  260. package/dist/hooks/usePathAnimation.d.ts.map +1 -0
  261. package/dist/hooks/usePathAnimation.js +120 -0
  262. package/dist/hooks/useSkyAnimation.d.ts +14 -0
  263. package/dist/hooks/useSkyAnimation.d.ts.map +1 -0
  264. package/dist/hooks/useSkyAnimation.js +46 -0
  265. package/dist/hooks/useSkySystem.d.ts +26 -0
  266. package/dist/hooks/useSkySystem.d.ts.map +1 -0
  267. package/dist/hooks/useSkySystem.js +57 -0
  268. package/dist/hooks/useSkyUniforms.d.ts +18 -0
  269. package/dist/hooks/useSkyUniforms.d.ts.map +1 -0
  270. package/dist/hooks/useSkyUniforms.js +59 -0
  271. package/dist/hooks/useTransformControls.d.ts +6 -0
  272. package/dist/hooks/useTransformControls.d.ts.map +1 -0
  273. package/dist/hooks/useTransformControls.js +111 -0
  274. package/dist/hooks/useWaterEnvironment.d.ts +5 -0
  275. package/dist/hooks/useWaterEnvironment.d.ts.map +1 -0
  276. package/dist/hooks/useWaterEnvironment.js +27 -0
  277. package/dist/hooks/useWaterReflections.d.ts +17 -0
  278. package/dist/hooks/useWaterReflections.d.ts.map +1 -0
  279. package/dist/hooks/useWaterReflections.js +77 -0
  280. package/dist/index.d.ts +140 -0
  281. package/dist/index.d.ts.map +1 -0
  282. package/dist/index.js +109 -0
  283. package/dist/services/AnimationsManager.d.ts +33 -0
  284. package/dist/services/AnimationsManager.d.ts.map +1 -0
  285. package/dist/services/AnimationsManager.js +58 -0
  286. package/dist/services/FontManager.d.ts +32 -0
  287. package/dist/services/FontManager.d.ts.map +1 -0
  288. package/dist/services/FontManager.js +76 -0
  289. package/dist/services/TexturesManager.d.ts +17 -0
  290. package/dist/services/TexturesManager.d.ts.map +1 -0
  291. package/dist/services/TexturesManager.js +48 -0
  292. package/dist/shaders/RainMaterial.d.ts +34 -0
  293. package/dist/shaders/RainMaterial.d.ts.map +1 -0
  294. package/dist/shaders/RainMaterial.js +56 -0
  295. package/dist/shaders/ShaderEffectsMaterial.d.ts +279 -0
  296. package/dist/shaders/ShaderEffectsMaterial.d.ts.map +1 -0
  297. package/dist/shaders/ShaderEffectsMaterial.js +257 -0
  298. package/dist/shaders/ShootingStarMaterial.d.ts +14 -0
  299. package/dist/shaders/ShootingStarMaterial.d.ts.map +1 -0
  300. package/dist/shaders/ShootingStarMaterial.js +33 -0
  301. package/dist/shaders/SkyboxMaterial.d.ts +38 -0
  302. package/dist/shaders/SkyboxMaterial.d.ts.map +1 -0
  303. package/dist/shaders/SkyboxMaterial.js +57 -0
  304. package/dist/shaders/effects/EffectsVertexFunctions.glsl.d.ts +2 -0
  305. package/dist/shaders/effects/EffectsVertexFunctions.glsl.d.ts.map +1 -0
  306. package/dist/shaders/effects/EffectsVertexFunctions.glsl.js +167 -0
  307. package/dist/utils/CameraSingleton.d.ts +35 -0
  308. package/dist/utils/CameraSingleton.d.ts.map +1 -0
  309. package/dist/utils/CameraSingleton.js +178 -0
  310. package/dist/utils/anchorUtils.d.ts +10 -0
  311. package/dist/utils/anchorUtils.d.ts.map +1 -0
  312. package/dist/utils/anchorUtils.js +13 -0
  313. package/dist/utils/frameAnimations.d.ts +49 -0
  314. package/dist/utils/frameAnimations.d.ts.map +1 -0
  315. package/dist/utils/frameAnimations.js +213 -0
  316. package/dist/utils/handleGenerativeEffectsAnimations.d.ts +5 -0
  317. package/dist/utils/handleGenerativeEffectsAnimations.d.ts.map +1 -0
  318. package/dist/utils/handleGenerativeEffectsAnimations.js +268 -0
  319. package/dist/utils/hasHoverAnimation.d.ts +3 -0
  320. package/dist/utils/hasHoverAnimation.d.ts.map +1 -0
  321. package/dist/utils/hasHoverAnimation.js +15 -0
  322. package/dist/utils/particleAnimations.d.ts +3 -0
  323. package/dist/utils/particleAnimations.d.ts.map +1 -0
  324. package/dist/utils/particleAnimations.js +17 -0
  325. package/dist/utils/sceneQuery.d.ts +9 -0
  326. package/dist/utils/sceneQuery.d.ts.map +1 -0
  327. package/dist/utils/sceneQuery.js +22 -0
  328. package/dist/utils/shaderUtils.d.ts +6 -0
  329. package/dist/utils/shaderUtils.d.ts.map +1 -0
  330. package/dist/utils/shaderUtils.js +145 -0
  331. package/dist/utils/textEffects.d.ts +31 -0
  332. package/dist/utils/textEffects.d.ts.map +1 -0
  333. package/dist/utils/textEffects.js +61 -0
  334. package/dist/utils/utils3d.d.ts +7 -0
  335. package/dist/utils/utils3d.d.ts.map +1 -0
  336. package/dist/utils/utils3d.js +34 -0
  337. package/package.json +43 -0
package/dist/index.js ADDED
@@ -0,0 +1,109 @@
1
+ // Core services
2
+ export { default as animationsManager } from '../../core/src/services/AnimationsManager';
3
+ export { fontManager } from '../../core/src/services/FontManager';
4
+ // Components
5
+ export { AnimatedObject, default as AnimatedObjectDefault } from './components/AnimatedObject';
6
+ export { CameraController, default as CameraControllerDefault } from './components/CameraController';
7
+ export { default as CreatedObject } from './components/CreatedObject';
8
+ export { default as CustomPrimitive } from './components/CustomPrimitive';
9
+ export { default as EffectsGenerator } from './components/EffectsGenerator';
10
+ export { default as EffectsGroup } from './components/EffectsGroup';
11
+ export { default as Frame } from './components/Frame';
12
+ export { FrameGeometry } from './components/FrameGeometry';
13
+ export { FrameImage } from './components/FrameImage';
14
+ export { default as GalleryLayout } from './components/GalleryLayout';
15
+ export { default as GridHelper } from './components/GridHelper';
16
+ export { ImageGeometry } from './components/ImageGeometry';
17
+ export { default as Letter } from './components/Letter';
18
+ export { default as Letters } from './components/Letters';
19
+ export { default as LightsManager } from './components/LightsManager';
20
+ export { default as Lines } from './components/Lines';
21
+ export { default as MaterialLibrary } from './components/MaterialLibrary';
22
+ export { default as ObjectNode } from './components/ObjectNode';
23
+ export { default as ObjectsRenderer } from './components/ObjectsRenderer';
24
+ export { default as ParticlesR3f } from './components/ParticlesR3f';
25
+ export { default as Skybox } from './components/Skybox';
26
+ export { default as SkyMesh } from './components/SkyMesh';
27
+ export { default as Moon } from './components/Moon';
28
+ export { default as SkyController } from './components/SkyController';
29
+ export { default as Lensflare, createFlareTexture } from './components/Lensflare';
30
+ export { default as SunLight } from './components/SunLight';
31
+ export { default as Clouds } from './components/Clouds';
32
+ export { default as Stars, generateStarsGeometry } from './components/Stars';
33
+ export { default as ShootingStar } from './components/ShootingStar';
34
+ export { default as ShootingStars } from './components/ShootingStars';
35
+ export { default as Galaxy } from './components/Galaxy';
36
+ export { default as SkySystem } from './components/SkySystem';
37
+ export { default as Rain } from './components/Rain';
38
+ export { default as SceneFog } from './components/SceneFog';
39
+ export { default as EnvironmentManager } from './components/EnvironmentManager';
40
+ export { default as Ocean } from './components/Ocean';
41
+ export { LoadingIndicator } from './components/LoadingIndicator';
42
+ export { default as Path } from './components/Path';
43
+ export { default as PathGeometry } from './components/PathGeometry';
44
+ export { default as PathRenderer } from './components/PathRenderer';
45
+ export { default as Text2D } from './components/Text2D';
46
+ export { default as Text3D } from './components/Text3D';
47
+ export { default as SceneBuilder } from './components/SceneBuilder';
48
+ export { default as ProjectLoader } from './components/ProjectLoader';
49
+ // Generative effect components
50
+ export { default as AuraEffect } from './components/effects/AuraEffect';
51
+ export { default as AuroraEffect } from './components/effects/AuroraEffect';
52
+ export { default as BlackHoleEffect } from './components/effects/BlackHoleEffect';
53
+ export { default as ConstellationEffect } from './components/effects/ConstellationEffect';
54
+ export { default as DataStreamEffect } from './components/effects/DataStreamEffect';
55
+ export { default as DnaHelixEffect } from './components/effects/DnaHelixEffect';
56
+ export { default as FireEffect } from './components/effects/FireEffect';
57
+ export { default as ForcefieldEffect } from './components/effects/ForcefieldEffect';
58
+ export { default as HologramEffect } from './components/effects/HologramEffect';
59
+ export { default as IceCrystalsEffect } from './components/effects/IceCrystalsEffect';
60
+ export { default as LightningEffect } from './components/effects/LightningEffect';
61
+ export { default as MoleculesEffect } from './components/effects/MoleculesEffect';
62
+ export { default as NeuralNetworkEffect } from './components/effects/NeuralNetworkEffect';
63
+ export { default as OrbEffect } from './components/effects/OrbEffect';
64
+ export { default as PortalEffect } from './components/effects/PortalEffect';
65
+ export { default as ShockwaveEffect } from './components/effects/ShockwaveEffect';
66
+ export { default as SmokePlumeEffect } from './components/effects/SmokePlumeEffect';
67
+ export { default as SmokeRingEffect } from './components/effects/SmokeRingEffect';
68
+ export { default as VolumetricFogEffect } from './components/effects/VolumetricFogEffect';
69
+ // Hooks
70
+ export * from './hooks/useAnimationEvents';
71
+ export * from './hooks/useCameraAnimation';
72
+ export * from './hooks/useContinuousEffects';
73
+ export * from './hooks/useFrameEffects';
74
+ export * from './hooks/useInteractionEffects';
75
+ export * from './hooks/useKey';
76
+ export * from './hooks/useLightHandlers';
77
+ export * from './hooks/useMaterialApplication';
78
+ export * from './hooks/useMaterialOptions';
79
+ export * from './hooks/useMaterialUniforms';
80
+ export * from './hooks/useMouseHandlers';
81
+ export * from './hooks/useObjectAnimation';
82
+ export * from './hooks/useObjectEdges';
83
+ export * from './hooks/useParticlePositions';
84
+ export * from './hooks/useParticlesColors';
85
+ export * from './hooks/useParticlesTextures';
86
+ export * from './hooks/usePathAnimation';
87
+ export * from './hooks/useTransformControls';
88
+ export * from './hooks/useSkySystem';
89
+ export * from './hooks/useCubeCamera';
90
+ export * from './hooks/useEnvironmentEffects';
91
+ export * from './hooks/useSkyUniforms';
92
+ export * from './hooks/useSkyAnimation';
93
+ export * from './hooks/useMeshController';
94
+ export { useWaterEnvironment } from './hooks/useWaterEnvironment';
95
+ export { useWaterReflections } from './hooks/useWaterReflections';
96
+ // Utils
97
+ export { cameraManager } from './utils/CameraSingleton';
98
+ export { update3driseShaderUniforms } from './utils/shaderUtils';
99
+ export { applyAnchorSettings, createCurves, createSunPosition, randomRange, } from './utils/utils3d';
100
+ export { applyAnchorSettings as applyAnchorSettingsLegacy } from './utils/anchorUtils';
101
+ export { DEBUG_GENERATIVE_EFFECTS, applyGenerativeAnimations, } from './utils/handleGenerativeEffectsAnimations';
102
+ export { hasHoverAnimation } from './utils/hasHoverAnimation';
103
+ export { findById } from './utils/sceneQuery';
104
+ export * from './utils/textEffects';
105
+ // Shaders
106
+ export { ShaderEffectsMaterial } from './shaders/ShaderEffectsMaterial';
107
+ export { SkyboxMaterial } from './shaders/SkyboxMaterial';
108
+ export { ShootingStarMaterial } from './shaders/ShootingStarMaterial';
109
+ export { RainMaterial } from './shaders/RainMaterial';
@@ -0,0 +1,33 @@
1
+ import type { AnimationSequence, TransitionStep, PathConfig } from '@ntalmagor/3drize-core';
2
+ export type AnimationEventType = 'sequenceStart' | 'sequenceEnd' | 'stepStart' | 'stepEnd';
3
+ export interface AnimationEvent {
4
+ type: AnimationEventType;
5
+ sequenceId: string;
6
+ sequence: AnimationSequence;
7
+ step?: TransitionStep;
8
+ stepIndex?: number;
9
+ }
10
+ type Listener = (event: AnimationEvent) => void;
11
+ /**
12
+ * Lightweight AnimationsManager for the viewer package.
13
+ * Provides the event bus, path registry, and easing helpers.
14
+ * Sequence playback (GSAP timelines) is handled by the application layer.
15
+ */
16
+ declare class AnimationsManager {
17
+ private listeners;
18
+ private paths;
19
+ on(type: AnimationEventType, listener: Listener): void;
20
+ off(type: AnimationEventType, listener: Listener): void;
21
+ emit(event: AnimationEvent): void;
22
+ getProgressFromTime(startTime: number, duration: number, ease?: string): number;
23
+ reverseSteps(sequence: AnimationSequence): AnimationSequence;
24
+ addPath(path: PathConfig): void;
25
+ getPath(id: string): PathConfig | undefined;
26
+ getAllPaths(): PathConfig[];
27
+ updatePath(id: string, updates: Partial<Omit<PathConfig, 'id'>>): void;
28
+ deletePath(id: string): void;
29
+ clearPaths(): void;
30
+ }
31
+ declare const _default: AnimationsManager;
32
+ export default _default;
33
+ //# sourceMappingURL=AnimationsManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AnimationsManager.d.ts","sourceRoot":"","sources":["../../src/services/AnimationsManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAG5F,MAAM,MAAM,kBAAkB,GAAG,eAAe,GAAG,aAAa,GAAG,WAAW,GAAG,SAAS,CAAC;AAE3F,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,kBAAkB,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,KAAK,QAAQ,GAAG,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;AAEhD;;;;GAIG;AACH,cAAM,iBAAiB;IACrB,OAAO,CAAC,SAAS,CAKd;IACH,OAAO,CAAC,KAAK,CAAiC;IAE9C,EAAE,CAAC,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAItD,GAAG,CAAC,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAIvD,IAAI,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI;IAMjC,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,SAAW,GAAG,MAAM;IAKjF,YAAY,CAAC,QAAQ,EAAE,iBAAiB,GAAG,iBAAiB;IAa5D,OAAO,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAC/B,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAC3C,WAAW,IAAI,UAAU,EAAE;IAC3B,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI;IAItE,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAC5B,UAAU,IAAI,IAAI;CACnB;;AAED,wBAAuC"}
@@ -0,0 +1,58 @@
1
+ import { applyEasing, resolveEasing } from '@ntalmagor/3drize-core';
2
+ /**
3
+ * Lightweight AnimationsManager for the viewer package.
4
+ * Provides the event bus, path registry, and easing helpers.
5
+ * Sequence playback (GSAP timelines) is handled by the application layer.
6
+ */
7
+ class AnimationsManager {
8
+ listeners = new Map([
9
+ ['sequenceStart', new Set()],
10
+ ['sequenceEnd', new Set()],
11
+ ['stepStart', new Set()],
12
+ ['stepEnd', new Set()],
13
+ ]);
14
+ paths = new Map();
15
+ on(type, listener) {
16
+ this.listeners.get(type)?.add(listener);
17
+ }
18
+ off(type, listener) {
19
+ this.listeners.get(type)?.delete(listener);
20
+ }
21
+ emit(event) {
22
+ this.listeners.get(event.type)?.forEach(l => {
23
+ try {
24
+ l(event);
25
+ }
26
+ catch (e) {
27
+ console.error('[AnimationsManager] listener error:', e);
28
+ }
29
+ });
30
+ }
31
+ getProgressFromTime(startTime, duration, ease = 'linear') {
32
+ const linear = Math.min((performance.now() - startTime) / 1000 / duration, 1);
33
+ return applyEasing(resolveEasing(ease), linear);
34
+ }
35
+ reverseSteps(sequence) {
36
+ return {
37
+ ...sequence,
38
+ steps: [...sequence.steps].reverse().map(step => ({
39
+ ...step,
40
+ transitions: step.transitions.map(t => ({
41
+ ...t,
42
+ properties: { from: t.properties.to, to: t.properties.from ?? {} },
43
+ })),
44
+ })),
45
+ };
46
+ }
47
+ addPath(path) { this.paths.set(path.id, path); }
48
+ getPath(id) { return this.paths.get(id); }
49
+ getAllPaths() { return [...this.paths.values()]; }
50
+ updatePath(id, updates) {
51
+ const p = this.paths.get(id);
52
+ if (p)
53
+ this.paths.set(id, { ...p, ...updates });
54
+ }
55
+ deletePath(id) { this.paths.delete(id); }
56
+ clearPaths() { this.paths.clear(); }
57
+ }
58
+ export default new AnimationsManager();
@@ -0,0 +1,32 @@
1
+ export interface FontInfo {
2
+ name: string;
3
+ displayName: string;
4
+ googleFont: string;
5
+ threejsFont?: string;
6
+ category: 'sans-serif' | 'serif' | 'display' | 'monospace';
7
+ isLoaded: boolean;
8
+ }
9
+ declare class FontManager {
10
+ private static instance;
11
+ private fonts;
12
+ private loadingPromises;
13
+ private readonly CURATED_FONTS;
14
+ private constructor();
15
+ static getInstance(): FontManager;
16
+ getAllFonts(): FontInfo[];
17
+ getFont(name: string): FontInfo | undefined;
18
+ getBitmapFont(name: string): string | undefined;
19
+ get3DFont(name: string): string | undefined;
20
+ getFontsByCategory(category: FontInfo['category']): FontInfo[];
21
+ isFontLoaded(name: string): boolean;
22
+ getDefaultFont(): FontInfo;
23
+ loadFont(name: string): Promise<void>;
24
+ getFontOptions(): Array<{
25
+ value: string;
26
+ label: string;
27
+ category: string;
28
+ }>;
29
+ }
30
+ export declare const fontManager: FontManager;
31
+ export default FontManager;
32
+ //# sourceMappingURL=FontManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FontManager.d.ts","sourceRoot":"","sources":["../../src/services/FontManager.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,YAAY,GAAG,OAAO,GAAG,SAAS,GAAG,WAAW,CAAC;IAC3D,QAAQ,EAAE,OAAO,CAAC;CACnB;AAeD,cAAM,WAAW;IACf,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA4B;IACnD,OAAO,CAAC,KAAK,CAAoC;IACjD,OAAO,CAAC,eAAe,CAAyC;IAEhE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAgB5B;IAEF,OAAO;IAMP,MAAM,CAAC,WAAW,IAAI,WAAW;IAKjC,WAAW,IAAI,QAAQ,EAAE;IACzB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAC3C,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAC/C,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAC3C,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,QAAQ,EAAE;IAC9D,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IACnC,cAAc,IAAI,QAAQ;IAEpB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAY3C,cAAc,IAAI,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;CAG5E;AAED,eAAO,MAAM,WAAW,aAA4B,CAAC;AACrD,eAAe,WAAW,CAAC"}
@@ -0,0 +1,76 @@
1
+ const loadGoogleFont = (fontUrl) => {
2
+ return new Promise((resolve, reject) => {
3
+ if (typeof document === 'undefined') {
4
+ resolve();
5
+ return;
6
+ }
7
+ if (document.querySelector(`link[href="${fontUrl}"]`)) {
8
+ resolve();
9
+ return;
10
+ }
11
+ const link = document.createElement('link');
12
+ link.rel = 'stylesheet';
13
+ link.href = fontUrl;
14
+ link.onload = () => resolve();
15
+ link.onerror = () => reject(new Error(`Failed to load font: ${fontUrl}`));
16
+ document.head.appendChild(link);
17
+ });
18
+ };
19
+ class FontManager {
20
+ static instance = null;
21
+ fonts = new Map();
22
+ loadingPromises = new Map();
23
+ CURATED_FONTS = [
24
+ { name: 'roboto', displayName: 'Roboto', googleFont: 'https://fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Me5WZLCzYlKw.ttf', threejsFont: 'https://threejs.org/examples/fonts/droid/droid_sans_regular.typeface.json', category: 'sans-serif' },
25
+ { name: 'opensans', displayName: 'Open Sans', googleFont: 'https://fonts.gstatic.com/s/opensans/v34/memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsjZ0C4nY1M2xLER.ttf', threejsFont: 'https://threejs.org/examples/fonts/helvetiker_regular.typeface.json', category: 'sans-serif' },
26
+ { name: 'lato', displayName: 'Lato', googleFont: 'https://fonts.gstatic.com/s/lato/v24/S6uyw4BMUTPHvxk6XweuBCY.ttf', threejsFont: 'https://threejs.org/examples/fonts/helvetiker_regular.typeface.json', category: 'sans-serif' },
27
+ { name: 'poppins', displayName: 'Poppins', googleFont: 'https://fonts.gstatic.com/s/poppins/v20/pxiEyp8kv8JHgFVrFJDUc1NECPY.ttf', threejsFont: 'https://threejs.org/examples/fonts/helvetiker_regular.typeface.json', category: 'sans-serif' },
28
+ { name: 'merriweather', displayName: 'Merriweather', googleFont: 'https://fonts.gstatic.com/s/merriweather/v30/u-440qyriQwlOrhSvowK_l5OeyxNV-bnrw.ttf', threejsFont: 'https://threejs.org/examples/fonts/droid/droid_serif_regular.typeface.json', category: 'serif' },
29
+ { name: 'playfair', displayName: 'Playfair Display', googleFont: 'https://fonts.gstatic.com/s/playfairdisplay/v30/nuFvD-vYSZviVYUb_rj3ij__anPXJzDwcbmjWBN2PKdFvUDQZNLo_U2r.ttf', threejsFont: 'https://threejs.org/examples/fonts/droid/droid_serif_bold.typeface.json', category: 'serif' },
30
+ { name: 'bebas', displayName: 'Bebas Neue', googleFont: 'https://fonts.gstatic.com/s/bebasneue/v10/JTUSjIg69CK48gW7PXooxW5rygbi49c.ttf', threejsFont: 'https://threejs.org/examples/fonts/gentilis_bold.typeface.json', category: 'display' },
31
+ { name: 'lobster', displayName: 'Lobster', googleFont: 'https://fonts.gstatic.com/s/lobster/v30/neILzCirqoswsqX9_oWsMqEzSJQ.ttf', threejsFont: 'https://threejs.org/examples/fonts/gentilis_regular.typeface.json', category: 'display' },
32
+ { name: 'robotomono', displayName: 'Roboto Mono', googleFont: 'https://fonts.gstatic.com/s/robotomono/v23/L0xuDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vuPQ--5Ip2sSQ.ttf', threejsFont: 'https://threejs.org/examples/fonts/helvetiker_regular.typeface.json', category: 'monospace' },
33
+ { name: 'jetbrainsmono', displayName: 'JetBrains Mono', googleFont: 'https://fonts.gstatic.com/s/jetbrainsmono/v18/tDbY2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yK1jPVmUsaaDhw.ttf', threejsFont: 'https://threejs.org/examples/fonts/helvetiker_regular.typeface.json', category: 'monospace' },
34
+ { name: 'courierprime', displayName: 'Courier Prime', googleFont: 'https://fonts.gstatic.com/s/courierprime/v9/u-450q2lgwslOqpF_6gQ8kELWwZjW-_-tvg.ttf', threejsFont: 'https://threejs.org/examples/fonts/helvetiker_regular.typeface.json', category: 'monospace' },
35
+ { name: 'ubuntumono', displayName: 'Ubuntu Mono', googleFont: 'https://fonts.gstatic.com/s/ubuntumono/v17/KFOjCneDtsqEr0keqCMhbBc9AMX6lJBP.ttf', threejsFont: 'https://threejs.org/examples/fonts/helvetiker_regular.typeface.json', category: 'monospace' },
36
+ { name: 'ptmono', displayName: 'PT Mono', googleFont: 'https://fonts.gstatic.com/s/ptmono/v13/9oRONYoBnWILk-9ArCg5MtPyAcg.ttf', threejsFont: 'https://threejs.org/examples/fonts/helvetiker_regular.typeface.json', category: 'monospace' },
37
+ { name: 'cousine', displayName: 'Cousine', googleFont: 'https://fonts.gstatic.com/s/cousine/v27/d6lIkaiiRdih4SpPzSMlzTbtz9k.ttf', threejsFont: 'https://threejs.org/examples/fonts/helvetiker_regular.typeface.json', category: 'monospace' },
38
+ { name: 'novamono', displayName: 'Nova Mono', googleFont: 'https://fonts.gstatic.com/s/novamono/v18/Cn-0JtiGWQ5Ajb--MRKfYGxYrdM9Sg.ttf', threejsFont: 'https://threejs.org/examples/fonts/helvetiker_regular.typeface.json', category: 'monospace' },
39
+ ];
40
+ constructor() {
41
+ this.CURATED_FONTS.forEach(fontData => {
42
+ this.fonts.set(fontData.name, { ...fontData, isLoaded: false });
43
+ });
44
+ }
45
+ static getInstance() {
46
+ if (!FontManager.instance)
47
+ FontManager.instance = new FontManager();
48
+ return FontManager.instance;
49
+ }
50
+ getAllFonts() { return Array.from(this.fonts.values()); }
51
+ getFont(name) { return this.fonts.get(name); }
52
+ getBitmapFont(name) { return this.fonts.get(name)?.googleFont; }
53
+ get3DFont(name) { return this.fonts.get(name)?.threejsFont; }
54
+ getFontsByCategory(category) { return Array.from(this.fonts.values()).filter(f => f.category === category); }
55
+ isFontLoaded(name) { return this.fonts.get(name)?.isLoaded || false; }
56
+ getDefaultFont() { return this.fonts.get('roboto'); }
57
+ async loadFont(name) {
58
+ const font = this.fonts.get(name);
59
+ if (!font)
60
+ throw new Error(`Font not found: ${name}`);
61
+ if (font.isLoaded)
62
+ return;
63
+ if (this.loadingPromises.has(name))
64
+ return this.loadingPromises.get(name);
65
+ const promise = loadGoogleFont(font.googleFont)
66
+ .then(() => { font.isLoaded = true; this.loadingPromises.delete(name); })
67
+ .catch(error => { this.loadingPromises.delete(name); throw error; });
68
+ this.loadingPromises.set(name, promise);
69
+ return promise;
70
+ }
71
+ getFontOptions() {
72
+ return Array.from(this.fonts.values()).map(f => ({ value: f.name, label: f.displayName, category: f.category }));
73
+ }
74
+ }
75
+ export const fontManager = FontManager.getInstance();
76
+ export default FontManager;
@@ -0,0 +1,17 @@
1
+ import { type Texture } from 'three';
2
+ export type TextureType = 'clouds' | 'grass' | 'terrain' | 'grounds' | 'images';
3
+ declare class TexturesManager {
4
+ private textures;
5
+ private texturesByType;
6
+ private loader;
7
+ constructor();
8
+ loadTexture(name: string, url: string, type?: TextureType): Promise<Texture>;
9
+ getTextureByUrl(url: string): Texture | undefined;
10
+ getTexture(key: string): Texture | undefined;
11
+ addTexture(key: string, texture: Texture, width: number, height: number, isLandscape: boolean): void;
12
+ removeTexture(key: string): void;
13
+ clear(): void;
14
+ }
15
+ declare const texturesManager: TexturesManager;
16
+ export default texturesManager;
17
+ //# sourceMappingURL=TexturesManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TexturesManager.d.ts","sourceRoot":"","sources":["../../src/services/TexturesManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,OAAO,EAAE,MAAM,OAAO,CAAC;AAEpD,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;AAIhF,cAAM,eAAe;IACnB,OAAO,CAAC,QAAQ,CAAyC;IACzD,OAAO,CAAC,cAAc,CAA2D;IACjF,OAAO,CAAC,MAAM,CAAgB;;IASxB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IA0BlF,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAOjD,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAI5C,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,GAAG,IAAI;IAIpG,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAChC,KAAK,IAAI,IAAI;CACd;AAED,QAAA,MAAM,eAAe,iBAAwB,CAAC;AAC9C,eAAe,eAAe,CAAC"}
@@ -0,0 +1,48 @@
1
+ import { TextureLoader } from 'three';
2
+ class TexturesManager {
3
+ textures = new Map();
4
+ texturesByType = new Map();
5
+ loader;
6
+ constructor() {
7
+ this.loader = new TextureLoader();
8
+ ['images', 'clouds', 'grass', 'terrain', 'grounds'].forEach(t => this.texturesByType.set(t, new Map()));
9
+ }
10
+ async loadTexture(name, url, type) {
11
+ if (type && this.texturesByType.get(type)?.has(name)) {
12
+ return this.texturesByType.get(type).get(name).texture;
13
+ }
14
+ const img = await new Promise((resolve, reject) => {
15
+ const image = new window.Image();
16
+ image.crossOrigin = 'Anonymous';
17
+ image.onload = () => resolve(image);
18
+ image.onerror = reject;
19
+ image.src = url;
20
+ });
21
+ const { width, height } = img;
22
+ const isLandscape = width > height;
23
+ return new Promise((resolve, reject) => {
24
+ this.loader.load(url, (texture) => {
25
+ if (type)
26
+ this.texturesByType.get(type)?.set(name, { texture, width, height, isLandscape });
27
+ resolve(texture);
28
+ }, undefined, reject);
29
+ });
30
+ }
31
+ getTextureByUrl(url) {
32
+ for (const [, value] of this.textures.entries()) {
33
+ if (value.texture.image?.src === url)
34
+ return value.texture;
35
+ }
36
+ return undefined;
37
+ }
38
+ getTexture(key) {
39
+ return this.textures.get(key)?.texture;
40
+ }
41
+ addTexture(key, texture, width, height, isLandscape) {
42
+ this.textures.set(key, { texture, width, height, isLandscape });
43
+ }
44
+ removeTexture(key) { this.textures.delete(key); }
45
+ clear() { this.textures.clear(); }
46
+ }
47
+ const texturesManager = new TexturesManager();
48
+ export default texturesManager;
@@ -0,0 +1,34 @@
1
+ import * as THREE from "three";
2
+ export interface RainMaterialUniforms {
3
+ uColor: {
4
+ value: THREE.Color;
5
+ };
6
+ opacity: {
7
+ value: number;
8
+ };
9
+ windAngle: {
10
+ value: number;
11
+ };
12
+ windTilt: {
13
+ value: number;
14
+ };
15
+ streakLength: {
16
+ value: number;
17
+ };
18
+ }
19
+ declare const RainMaterial: import("@react-three/fiber").ConstructorRepresentation<THREE.ShaderMaterial & {
20
+ uColor: THREE.Color;
21
+ opacity: number;
22
+ windAngle: number;
23
+ windTilt: number;
24
+ streakLength: number;
25
+ }> & {
26
+ key: string;
27
+ };
28
+ export { RainMaterial };
29
+ declare module '@react-three/fiber' {
30
+ interface ThreeElements {
31
+ rainMaterial: any;
32
+ }
33
+ }
34
+ //# sourceMappingURL=RainMaterial.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RainMaterial.d.ts","sourceRoot":"","sources":["../../src/shaders/RainMaterial.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE;QAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAA;KAAE,CAAC;IAC/B,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3B,SAAS,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7B,QAAQ,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5B,YAAY,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CACjC;AAgDD,QAAA,MAAM,YAAY;;;;;;;;CAUjB,CAAC;AAIF,OAAO,EAAE,YAAY,EAAE,CAAC;AAExB,OAAO,QAAQ,oBAAoB,CAAC;IAClC,UAAU,aAAa;QACrB,YAAY,EAAE,GAAG,CAAC;KACnB;CACF"}
@@ -0,0 +1,56 @@
1
+ import { extend } from "@react-three/fiber";
2
+ import { shaderMaterial } from "@react-three/drei";
3
+ import * as THREE from "three";
4
+ const vertexShader = /*glsl*/ `
5
+ attribute float speed;
6
+ varying float vSpeed;
7
+ uniform float windAngle;
8
+ uniform float windTilt;
9
+ uniform float streakLength;
10
+
11
+ void main() {
12
+ vSpeed = speed;
13
+ vec4 mvPosition = modelViewMatrix * vec4(position, 1.0);
14
+ gl_PointSize = 12.0 * streakLength * (200.0 / -mvPosition.z);
15
+ gl_PointSize = clamp(gl_PointSize, 1.0, 64.0);
16
+ gl_Position = projectionMatrix * mvPosition;
17
+ }
18
+ `;
19
+ const fragmentShader = /*glsl*/ `
20
+ varying float vSpeed;
21
+ uniform vec3 uColor;
22
+ uniform float opacity;
23
+ uniform float windAngle;
24
+ uniform float windTilt;
25
+ uniform float streakLength;
26
+
27
+ void main() {
28
+ vec2 uv = gl_PointCoord - vec2(0.5);
29
+ float angle = windAngle * windTilt;
30
+ float ca = cos(angle);
31
+ float sa = sin(angle);
32
+ vec2 rotUv = vec2(
33
+ uv.x * ca - uv.y * sa,
34
+ uv.x * sa + uv.y * ca
35
+ );
36
+ float aspectRatio = max(streakLength, 1.0);
37
+ rotUv.x *= aspectRatio;
38
+ float dist = length(rotUv);
39
+ float core = 1.0 - smoothstep(0.0, 0.15, dist);
40
+ float glow = (1.0 - smoothstep(0.1, 0.4, dist)) * 0.3;
41
+ float alpha = (core + glow) * opacity;
42
+ float gradient = smoothstep(-0.5, 0.2, rotUv.y) * 0.3 + 0.7;
43
+ alpha *= gradient;
44
+ if (alpha < 0.01) discard;
45
+ gl_FragColor = vec4(uColor, alpha);
46
+ }
47
+ `;
48
+ const RainMaterial = shaderMaterial({
49
+ uColor: new THREE.Color(0.7, 0.75, 0.85),
50
+ opacity: 0.5,
51
+ windAngle: 0.0,
52
+ windTilt: 0.0,
53
+ streakLength: 3.0,
54
+ }, vertexShader, fragmentShader);
55
+ extend({ RainMaterial });
56
+ export { RainMaterial };