@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.
- package/dist/components/AnimatedObject.d.ts +22 -0
- package/dist/components/AnimatedObject.d.ts.map +1 -0
- package/dist/components/AnimatedObject.js +121 -0
- package/dist/components/CameraController.d.ts +16 -0
- package/dist/components/CameraController.d.ts.map +1 -0
- package/dist/components/CameraController.js +132 -0
- package/dist/components/Clouds.d.ts +14 -0
- package/dist/components/Clouds.d.ts.map +1 -0
- package/dist/components/Clouds.js +97 -0
- package/dist/components/CreatedObject.d.ts +12 -0
- package/dist/components/CreatedObject.d.ts.map +1 -0
- package/dist/components/CreatedObject.js +139 -0
- package/dist/components/CustomPrimitive.d.ts +12 -0
- package/dist/components/CustomPrimitive.d.ts.map +1 -0
- package/dist/components/CustomPrimitive.js +80 -0
- package/dist/components/EffectsGenerator.d.ts +10 -0
- package/dist/components/EffectsGenerator.d.ts.map +1 -0
- package/dist/components/EffectsGenerator.js +59 -0
- package/dist/components/EffectsGroup.d.ts +8 -0
- package/dist/components/EffectsGroup.d.ts.map +1 -0
- package/dist/components/EffectsGroup.js +8 -0
- package/dist/components/EnvironmentManager.d.ts +9 -0
- package/dist/components/EnvironmentManager.d.ts.map +1 -0
- package/dist/components/EnvironmentManager.js +47 -0
- package/dist/components/Frame.d.ts +26 -0
- package/dist/components/Frame.d.ts.map +1 -0
- package/dist/components/Frame.js +50 -0
- package/dist/components/FrameGeometry.d.ts +10 -0
- package/dist/components/FrameGeometry.d.ts.map +1 -0
- package/dist/components/FrameGeometry.js +17 -0
- package/dist/components/FrameImage.d.ts +14 -0
- package/dist/components/FrameImage.d.ts.map +1 -0
- package/dist/components/FrameImage.js +15 -0
- package/dist/components/Galaxy.d.ts +8 -0
- package/dist/components/Galaxy.d.ts.map +1 -0
- package/dist/components/Galaxy.js +9 -0
- package/dist/components/GalleryLayout.d.ts +10 -0
- package/dist/components/GalleryLayout.d.ts.map +1 -0
- package/dist/components/GalleryLayout.js +18 -0
- package/dist/components/GridHelper.d.ts +23 -0
- package/dist/components/GridHelper.d.ts.map +1 -0
- package/dist/components/GridHelper.js +38 -0
- package/dist/components/ImageGeometry.d.ts +14 -0
- package/dist/components/ImageGeometry.d.ts.map +1 -0
- package/dist/components/ImageGeometry.js +62 -0
- package/dist/components/Lensflare.d.ts +12 -0
- package/dist/components/Lensflare.d.ts.map +1 -0
- package/dist/components/Lensflare.js +66 -0
- package/dist/components/Letter.d.ts +20 -0
- package/dist/components/Letter.d.ts.map +1 -0
- package/dist/components/Letter.js +83 -0
- package/dist/components/Letters.d.ts +16 -0
- package/dist/components/Letters.d.ts.map +1 -0
- package/dist/components/Letters.js +18 -0
- package/dist/components/LightsManager.d.ts +9 -0
- package/dist/components/LightsManager.d.ts.map +1 -0
- package/dist/components/LightsManager.js +121 -0
- package/dist/components/Lines.d.ts +9 -0
- package/dist/components/Lines.d.ts.map +1 -0
- package/dist/components/Lines.js +19 -0
- package/dist/components/LoadingIndicator.d.ts +10 -0
- package/dist/components/LoadingIndicator.d.ts.map +1 -0
- package/dist/components/LoadingIndicator.js +143 -0
- package/dist/components/MaterialLibrary.d.ts +9 -0
- package/dist/components/MaterialLibrary.d.ts.map +1 -0
- package/dist/components/MaterialLibrary.js +57 -0
- package/dist/components/Moon.d.ts +13 -0
- package/dist/components/Moon.d.ts.map +1 -0
- package/dist/components/Moon.js +52 -0
- package/dist/components/ObjectNode.d.ts +11 -0
- package/dist/components/ObjectNode.d.ts.map +1 -0
- package/dist/components/ObjectNode.js +61 -0
- package/dist/components/ObjectsRenderer.d.ts +11 -0
- package/dist/components/ObjectsRenderer.d.ts.map +1 -0
- package/dist/components/ObjectsRenderer.js +19 -0
- package/dist/components/Ocean.d.ts +8 -0
- package/dist/components/Ocean.d.ts.map +1 -0
- package/dist/components/Ocean.js +111 -0
- package/dist/components/ParticlesR3f.d.ts +16 -0
- package/dist/components/ParticlesR3f.d.ts.map +1 -0
- package/dist/components/ParticlesR3f.js +66 -0
- package/dist/components/Path.d.ts +13 -0
- package/dist/components/Path.d.ts.map +1 -0
- package/dist/components/Path.js +41 -0
- package/dist/components/PathGeometry.d.ts +11 -0
- package/dist/components/PathGeometry.d.ts.map +1 -0
- package/dist/components/PathGeometry.js +109 -0
- package/dist/components/PathRenderer.d.ts +14 -0
- package/dist/components/PathRenderer.d.ts.map +1 -0
- package/dist/components/PathRenderer.js +33 -0
- package/dist/components/ProductionScene.d.ts +29 -0
- package/dist/components/ProductionScene.d.ts.map +1 -0
- package/dist/components/ProductionScene.js +18 -0
- package/dist/components/ProjectLoader.d.ts +14 -0
- package/dist/components/ProjectLoader.d.ts.map +1 -0
- package/dist/components/ProjectLoader.js +76 -0
- package/dist/components/Rain.d.ts +8 -0
- package/dist/components/Rain.d.ts.map +1 -0
- package/dist/components/Rain.js +133 -0
- package/dist/components/SceneBuilder.d.ts +5 -0
- package/dist/components/SceneBuilder.d.ts.map +1 -0
- package/dist/components/SceneBuilder.js +104 -0
- package/dist/components/SceneFog.d.ts +8 -0
- package/dist/components/SceneFog.d.ts.map +1 -0
- package/dist/components/SceneFog.js +19 -0
- package/dist/components/ShootingStar.d.ts +16 -0
- package/dist/components/ShootingStar.d.ts.map +1 -0
- package/dist/components/ShootingStar.js +92 -0
- package/dist/components/ShootingStars.d.ts +8 -0
- package/dist/components/ShootingStars.d.ts.map +1 -0
- package/dist/components/ShootingStars.js +40 -0
- package/dist/components/SkyController.d.ts +10 -0
- package/dist/components/SkyController.d.ts.map +1 -0
- package/dist/components/SkyController.js +159 -0
- package/dist/components/SkyMesh.d.ts +11 -0
- package/dist/components/SkyMesh.d.ts.map +1 -0
- package/dist/components/SkyMesh.js +36 -0
- package/dist/components/SkySystem.d.ts +34 -0
- package/dist/components/SkySystem.d.ts.map +1 -0
- package/dist/components/SkySystem.js +47 -0
- package/dist/components/Skybox.d.ts +12 -0
- package/dist/components/Skybox.d.ts.map +1 -0
- package/dist/components/Skybox.js +79 -0
- package/dist/components/Stars.d.ts +14 -0
- package/dist/components/Stars.d.ts.map +1 -0
- package/dist/components/Stars.js +165 -0
- package/dist/components/SunLight.d.ts +15 -0
- package/dist/components/SunLight.d.ts.map +1 -0
- package/dist/components/SunLight.js +57 -0
- package/dist/components/Text2D.d.ts +9 -0
- package/dist/components/Text2D.d.ts.map +1 -0
- package/dist/components/Text2D.js +56 -0
- package/dist/components/Text3D.d.ts +10 -0
- package/dist/components/Text3D.d.ts.map +1 -0
- package/dist/components/Text3D.js +8 -0
- package/dist/components/effects/AuraEffect.d.ts +10 -0
- package/dist/components/effects/AuraEffect.d.ts.map +1 -0
- package/dist/components/effects/AuraEffect.js +127 -0
- package/dist/components/effects/AuroraEffect.d.ts +10 -0
- package/dist/components/effects/AuroraEffect.d.ts.map +1 -0
- package/dist/components/effects/AuroraEffect.js +112 -0
- package/dist/components/effects/BlackHoleEffect.d.ts +10 -0
- package/dist/components/effects/BlackHoleEffect.d.ts.map +1 -0
- package/dist/components/effects/BlackHoleEffect.js +193 -0
- package/dist/components/effects/ConstellationEffect.d.ts +10 -0
- package/dist/components/effects/ConstellationEffect.d.ts.map +1 -0
- package/dist/components/effects/ConstellationEffect.js +189 -0
- package/dist/components/effects/DataStreamEffect.d.ts +10 -0
- package/dist/components/effects/DataStreamEffect.d.ts.map +1 -0
- package/dist/components/effects/DataStreamEffect.js +138 -0
- package/dist/components/effects/DnaHelixEffect.d.ts +10 -0
- package/dist/components/effects/DnaHelixEffect.d.ts.map +1 -0
- package/dist/components/effects/DnaHelixEffect.js +311 -0
- package/dist/components/effects/FireEffect.d.ts +10 -0
- package/dist/components/effects/FireEffect.d.ts.map +1 -0
- package/dist/components/effects/FireEffect.js +194 -0
- package/dist/components/effects/ForcefieldEffect.d.ts +10 -0
- package/dist/components/effects/ForcefieldEffect.d.ts.map +1 -0
- package/dist/components/effects/ForcefieldEffect.js +132 -0
- package/dist/components/effects/HologramEffect.d.ts +10 -0
- package/dist/components/effects/HologramEffect.d.ts.map +1 -0
- package/dist/components/effects/HologramEffect.js +143 -0
- package/dist/components/effects/IceCrystalsEffect.d.ts +10 -0
- package/dist/components/effects/IceCrystalsEffect.d.ts.map +1 -0
- package/dist/components/effects/IceCrystalsEffect.js +190 -0
- package/dist/components/effects/LightningEffect.d.ts +10 -0
- package/dist/components/effects/LightningEffect.d.ts.map +1 -0
- package/dist/components/effects/LightningEffect.js +240 -0
- package/dist/components/effects/MoleculesEffect.d.ts +10 -0
- package/dist/components/effects/MoleculesEffect.d.ts.map +1 -0
- package/dist/components/effects/MoleculesEffect.js +179 -0
- package/dist/components/effects/NeuralNetworkEffect.d.ts +10 -0
- package/dist/components/effects/NeuralNetworkEffect.d.ts.map +1 -0
- package/dist/components/effects/NeuralNetworkEffect.js +188 -0
- package/dist/components/effects/OrbEffect.d.ts +10 -0
- package/dist/components/effects/OrbEffect.d.ts.map +1 -0
- package/dist/components/effects/OrbEffect.js +291 -0
- package/dist/components/effects/PortalEffect.d.ts +10 -0
- package/dist/components/effects/PortalEffect.d.ts.map +1 -0
- package/dist/components/effects/PortalEffect.js +191 -0
- package/dist/components/effects/ShockwaveEffect.d.ts +10 -0
- package/dist/components/effects/ShockwaveEffect.d.ts.map +1 -0
- package/dist/components/effects/ShockwaveEffect.js +159 -0
- package/dist/components/effects/SmokePlumeEffect.d.ts +10 -0
- package/dist/components/effects/SmokePlumeEffect.d.ts.map +1 -0
- package/dist/components/effects/SmokePlumeEffect.js +141 -0
- package/dist/components/effects/SmokeRingEffect.d.ts +10 -0
- package/dist/components/effects/SmokeRingEffect.d.ts.map +1 -0
- package/dist/components/effects/SmokeRingEffect.js +158 -0
- package/dist/components/effects/VolumetricFogEffect.d.ts +10 -0
- package/dist/components/effects/VolumetricFogEffect.d.ts.map +1 -0
- package/dist/components/effects/VolumetricFogEffect.js +111 -0
- package/dist/constants.d.ts +2 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +1 -0
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +1 -0
- package/dist/hooks/useAnimationEvents.d.ts +10 -0
- package/dist/hooks/useAnimationEvents.d.ts.map +1 -0
- package/dist/hooks/useAnimationEvents.js +28 -0
- package/dist/hooks/useCameraAnimation.d.ts +35 -0
- package/dist/hooks/useCameraAnimation.d.ts.map +1 -0
- package/dist/hooks/useCameraAnimation.js +268 -0
- package/dist/hooks/useContinuousEffects.d.ts +15 -0
- package/dist/hooks/useContinuousEffects.d.ts.map +1 -0
- package/dist/hooks/useContinuousEffects.js +173 -0
- package/dist/hooks/useCubeCamera.d.ts +19 -0
- package/dist/hooks/useCubeCamera.d.ts.map +1 -0
- package/dist/hooks/useCubeCamera.js +73 -0
- package/dist/hooks/useEnvironmentEffects.d.ts +12 -0
- package/dist/hooks/useEnvironmentEffects.d.ts.map +1 -0
- package/dist/hooks/useEnvironmentEffects.js +22 -0
- package/dist/hooks/useFrameEffects.d.ts +6 -0
- package/dist/hooks/useFrameEffects.d.ts.map +1 -0
- package/dist/hooks/useFrameEffects.js +19 -0
- package/dist/hooks/useInteractionEffects.d.ts +11 -0
- package/dist/hooks/useInteractionEffects.d.ts.map +1 -0
- package/dist/hooks/useInteractionEffects.js +35 -0
- package/dist/hooks/useKey.d.ts +26 -0
- package/dist/hooks/useKey.d.ts.map +1 -0
- package/dist/hooks/useKey.js +73 -0
- package/dist/hooks/useLightHandlers.d.ts +14 -0
- package/dist/hooks/useLightHandlers.d.ts.map +1 -0
- package/dist/hooks/useLightHandlers.js +116 -0
- package/dist/hooks/useMaterialApplication.d.ts +9 -0
- package/dist/hooks/useMaterialApplication.d.ts.map +1 -0
- package/dist/hooks/useMaterialApplication.js +113 -0
- package/dist/hooks/useMaterialOptions.d.ts +13 -0
- package/dist/hooks/useMaterialOptions.d.ts.map +1 -0
- package/dist/hooks/useMaterialOptions.js +110 -0
- package/dist/hooks/useMaterialUniforms.d.ts +18 -0
- package/dist/hooks/useMaterialUniforms.d.ts.map +1 -0
- package/dist/hooks/useMaterialUniforms.js +96 -0
- package/dist/hooks/useMeshController.d.ts +3 -0
- package/dist/hooks/useMeshController.d.ts.map +1 -0
- package/dist/hooks/useMeshController.js +152 -0
- package/dist/hooks/useMouseHandlers.d.ts +8 -0
- package/dist/hooks/useMouseHandlers.d.ts.map +1 -0
- package/dist/hooks/useMouseHandlers.js +47 -0
- package/dist/hooks/useObjectAnimation.d.ts +13 -0
- package/dist/hooks/useObjectAnimation.d.ts.map +1 -0
- package/dist/hooks/useObjectAnimation.js +11 -0
- package/dist/hooks/useObjectEdges.d.ts +4 -0
- package/dist/hooks/useObjectEdges.d.ts.map +1 -0
- package/dist/hooks/useObjectEdges.js +199 -0
- package/dist/hooks/useOrbitControls.d.ts +7 -0
- package/dist/hooks/useOrbitControls.d.ts.map +1 -0
- package/dist/hooks/useOrbitControls.js +9 -0
- package/dist/hooks/useParticlePositions.d.ts +19 -0
- package/dist/hooks/useParticlePositions.d.ts.map +1 -0
- package/dist/hooks/useParticlePositions.js +56 -0
- package/dist/hooks/useParticlesColors.d.ts +14 -0
- package/dist/hooks/useParticlesColors.d.ts.map +1 -0
- package/dist/hooks/useParticlesColors.js +27 -0
- package/dist/hooks/useParticlesTextures.d.ts +10 -0
- package/dist/hooks/useParticlesTextures.d.ts.map +1 -0
- package/dist/hooks/useParticlesTextures.js +23 -0
- package/dist/hooks/usePathAnimation.d.ts +26 -0
- package/dist/hooks/usePathAnimation.d.ts.map +1 -0
- package/dist/hooks/usePathAnimation.js +120 -0
- package/dist/hooks/useSkyAnimation.d.ts +14 -0
- package/dist/hooks/useSkyAnimation.d.ts.map +1 -0
- package/dist/hooks/useSkyAnimation.js +46 -0
- package/dist/hooks/useSkySystem.d.ts +26 -0
- package/dist/hooks/useSkySystem.d.ts.map +1 -0
- package/dist/hooks/useSkySystem.js +57 -0
- package/dist/hooks/useSkyUniforms.d.ts +18 -0
- package/dist/hooks/useSkyUniforms.d.ts.map +1 -0
- package/dist/hooks/useSkyUniforms.js +59 -0
- package/dist/hooks/useTransformControls.d.ts +6 -0
- package/dist/hooks/useTransformControls.d.ts.map +1 -0
- package/dist/hooks/useTransformControls.js +111 -0
- package/dist/hooks/useWaterEnvironment.d.ts +5 -0
- package/dist/hooks/useWaterEnvironment.d.ts.map +1 -0
- package/dist/hooks/useWaterEnvironment.js +27 -0
- package/dist/hooks/useWaterReflections.d.ts +17 -0
- package/dist/hooks/useWaterReflections.d.ts.map +1 -0
- package/dist/hooks/useWaterReflections.js +77 -0
- package/dist/index.d.ts +140 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +109 -0
- package/dist/services/AnimationsManager.d.ts +33 -0
- package/dist/services/AnimationsManager.d.ts.map +1 -0
- package/dist/services/AnimationsManager.js +58 -0
- package/dist/services/FontManager.d.ts +32 -0
- package/dist/services/FontManager.d.ts.map +1 -0
- package/dist/services/FontManager.js +76 -0
- package/dist/services/TexturesManager.d.ts +17 -0
- package/dist/services/TexturesManager.d.ts.map +1 -0
- package/dist/services/TexturesManager.js +48 -0
- package/dist/shaders/RainMaterial.d.ts +34 -0
- package/dist/shaders/RainMaterial.d.ts.map +1 -0
- package/dist/shaders/RainMaterial.js +56 -0
- package/dist/shaders/ShaderEffectsMaterial.d.ts +279 -0
- package/dist/shaders/ShaderEffectsMaterial.d.ts.map +1 -0
- package/dist/shaders/ShaderEffectsMaterial.js +257 -0
- package/dist/shaders/ShootingStarMaterial.d.ts +14 -0
- package/dist/shaders/ShootingStarMaterial.d.ts.map +1 -0
- package/dist/shaders/ShootingStarMaterial.js +33 -0
- package/dist/shaders/SkyboxMaterial.d.ts +38 -0
- package/dist/shaders/SkyboxMaterial.d.ts.map +1 -0
- package/dist/shaders/SkyboxMaterial.js +57 -0
- package/dist/shaders/effects/EffectsVertexFunctions.glsl.d.ts +2 -0
- package/dist/shaders/effects/EffectsVertexFunctions.glsl.d.ts.map +1 -0
- package/dist/shaders/effects/EffectsVertexFunctions.glsl.js +167 -0
- package/dist/utils/CameraSingleton.d.ts +35 -0
- package/dist/utils/CameraSingleton.d.ts.map +1 -0
- package/dist/utils/CameraSingleton.js +178 -0
- package/dist/utils/anchorUtils.d.ts +10 -0
- package/dist/utils/anchorUtils.d.ts.map +1 -0
- package/dist/utils/anchorUtils.js +13 -0
- package/dist/utils/frameAnimations.d.ts +49 -0
- package/dist/utils/frameAnimations.d.ts.map +1 -0
- package/dist/utils/frameAnimations.js +213 -0
- package/dist/utils/handleGenerativeEffectsAnimations.d.ts +5 -0
- package/dist/utils/handleGenerativeEffectsAnimations.d.ts.map +1 -0
- package/dist/utils/handleGenerativeEffectsAnimations.js +268 -0
- package/dist/utils/hasHoverAnimation.d.ts +3 -0
- package/dist/utils/hasHoverAnimation.d.ts.map +1 -0
- package/dist/utils/hasHoverAnimation.js +15 -0
- package/dist/utils/particleAnimations.d.ts +3 -0
- package/dist/utils/particleAnimations.d.ts.map +1 -0
- package/dist/utils/particleAnimations.js +17 -0
- package/dist/utils/sceneQuery.d.ts +9 -0
- package/dist/utils/sceneQuery.d.ts.map +1 -0
- package/dist/utils/sceneQuery.js +22 -0
- package/dist/utils/shaderUtils.d.ts +6 -0
- package/dist/utils/shaderUtils.d.ts.map +1 -0
- package/dist/utils/shaderUtils.js +145 -0
- package/dist/utils/textEffects.d.ts +31 -0
- package/dist/utils/textEffects.d.ts.map +1 -0
- package/dist/utils/textEffects.js +61 -0
- package/dist/utils/utils3d.d.ts +7 -0
- package/dist/utils/utils3d.d.ts.map +1 -0
- package/dist/utils/utils3d.js +34 -0
- 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 };
|