@3driseai/3drise-core 1.0.1
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/constants/index.d.ts +22 -0
- package/dist/constants/index.d.ts.map +1 -0
- package/dist/constants/index.js +7 -0
- package/dist/data/allMaterials.d.ts +5 -0
- package/dist/data/allMaterials.d.ts.map +1 -0
- package/dist/data/allMaterials.js +932 -0
- package/dist/data/defaults.d.ts +107 -0
- package/dist/data/defaults.d.ts.map +1 -0
- package/dist/data/defaults.js +99 -0
- package/dist/data/effectsDefaults.d.ts +4 -0
- package/dist/data/effectsDefaults.d.ts.map +1 -0
- package/dist/data/effectsDefaults.js +55 -0
- package/dist/data/images.d.ts +4 -0
- package/dist/data/images.d.ts.map +1 -0
- package/dist/data/images.js +50 -0
- package/dist/data/index.d.ts +10 -0
- package/dist/data/index.d.ts.map +1 -0
- package/dist/data/index.js +9 -0
- package/dist/data/lightPresets.d.ts +99 -0
- package/dist/data/lightPresets.d.ts.map +1 -0
- package/dist/data/lightPresets.js +48 -0
- package/dist/data/particlesSettings.d.ts +13 -0
- package/dist/data/particlesSettings.d.ts.map +1 -0
- package/dist/data/particlesSettings.js +94 -0
- package/dist/data/paths.d.ts +32 -0
- package/dist/data/paths.d.ts.map +1 -0
- package/dist/data/paths.js +2597 -0
- package/dist/data/shaders.d.ts +12 -0
- package/dist/data/shaders.d.ts.map +1 -0
- package/dist/data/shaders.js +342 -0
- package/dist/data/shapeConfig.d.ts +3 -0
- package/dist/data/shapeConfig.d.ts.map +1 -0
- package/dist/data/shapeConfig.js +29 -0
- package/dist/index.d.ts +72 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +70 -0
- package/dist/presets/cloudsPresets.d.ts +32 -0
- package/dist/presets/cloudsPresets.d.ts.map +1 -0
- package/dist/presets/cloudsPresets.js +257 -0
- package/dist/presets/coronaPresets.d.ts +11 -0
- package/dist/presets/coronaPresets.d.ts.map +1 -0
- package/dist/presets/coronaPresets.js +148 -0
- package/dist/presets/crystalPresets.d.ts +38 -0
- package/dist/presets/crystalPresets.d.ts.map +1 -0
- package/dist/presets/crystalPresets.js +265 -0
- package/dist/presets/effectsPresets.d.ts +32 -0
- package/dist/presets/effectsPresets.d.ts.map +1 -0
- package/dist/presets/effectsPresets.js +438 -0
- package/dist/presets/glassPresets.d.ts +36 -0
- package/dist/presets/glassPresets.d.ts.map +1 -0
- package/dist/presets/glassPresets.js +236 -0
- package/dist/presets/index.d.ts +21 -0
- package/dist/presets/index.d.ts.map +1 -0
- package/dist/presets/index.js +52 -0
- package/dist/presets/lavaPresets.d.ts +11 -0
- package/dist/presets/lavaPresets.d.ts.map +1 -0
- package/dist/presets/lavaPresets.js +202 -0
- package/dist/presets/metalPresets.d.ts +33 -0
- package/dist/presets/metalPresets.d.ts.map +1 -0
- package/dist/presets/metalPresets.js +205 -0
- package/dist/presets/oceanPresets.d.ts +37 -0
- package/dist/presets/oceanPresets.d.ts.map +1 -0
- package/dist/presets/oceanPresets.js +120 -0
- package/dist/presets/plasticPresets.d.ts +35 -0
- package/dist/presets/plasticPresets.d.ts.map +1 -0
- package/dist/presets/plasticPresets.js +245 -0
- package/dist/presets/sandPresets.d.ts +11 -0
- package/dist/presets/sandPresets.d.ts.map +1 -0
- package/dist/presets/sandPresets.js +294 -0
- package/dist/presets/skyPresets.d.ts +27 -0
- package/dist/presets/skyPresets.d.ts.map +1 -0
- package/dist/presets/skyPresets.js +93 -0
- package/dist/presets/woodPresets.d.ts +33 -0
- package/dist/presets/woodPresets.d.ts.map +1 -0
- package/dist/presets/woodPresets.js +235 -0
- package/dist/services/AnimationsManager.d.ts +171 -0
- package/dist/services/AnimationsManager.d.ts.map +1 -0
- package/dist/services/AnimationsManager.js +508 -0
- package/dist/services/CubeCameraManager.d.ts +23 -0
- package/dist/services/CubeCameraManager.d.ts.map +1 -0
- package/dist/services/CubeCameraManager.js +84 -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/MaterialCompiler.d.ts +30 -0
- package/dist/services/MaterialCompiler.d.ts.map +1 -0
- package/dist/services/MaterialCompiler.js +91 -0
- package/dist/services/MaterialRegistry.d.ts +85 -0
- package/dist/services/MaterialRegistry.d.ts.map +1 -0
- package/dist/services/MaterialRegistry.js +362 -0
- package/dist/services/NoiseGenerator.d.ts +93 -0
- package/dist/services/NoiseGenerator.d.ts.map +1 -0
- package/dist/services/NoiseGenerator.js +653 -0
- package/dist/services/ObjectManager.d.ts +71 -0
- package/dist/services/ObjectManager.d.ts.map +1 -0
- package/dist/services/ObjectManager.js +386 -0
- package/dist/services/PositionsCreator.d.ts +26 -0
- package/dist/services/PositionsCreator.d.ts.map +1 -0
- package/dist/services/PositionsCreator.js +263 -0
- package/dist/services/SceneStore.d.ts +20 -0
- package/dist/services/SceneStore.d.ts.map +1 -0
- package/dist/services/SceneStore.js +18 -0
- package/dist/services/ShadersLibrary.d.ts +79 -0
- package/dist/services/ShadersLibrary.d.ts.map +1 -0
- package/dist/services/ShadersLibrary.js +820 -0
- package/dist/services/SkySystemManager.d.ts +57 -0
- package/dist/services/SkySystemManager.d.ts.map +1 -0
- package/dist/services/SkySystemManager.js +190 -0
- package/dist/services/TextureResolver.d.ts +51 -0
- package/dist/services/TextureResolver.d.ts.map +1 -0
- package/dist/services/TextureResolver.js +136 -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/services/UniformConverter.d.ts +33 -0
- package/dist/services/UniformConverter.d.ts.map +1 -0
- package/dist/services/UniformConverter.js +252 -0
- package/dist/services/index.d.ts +19 -0
- package/dist/services/index.d.ts.map +1 -0
- package/dist/services/index.js +14 -0
- package/dist/shaders/BasicSkyMaterial.d.ts +49 -0
- package/dist/shaders/BasicSkyMaterial.d.ts.map +1 -0
- package/dist/shaders/BasicSkyMaterial.js +94 -0
- package/dist/shaders/BasicWaterMaterial.d.ts +41 -0
- package/dist/shaders/BasicWaterMaterial.d.ts.map +1 -0
- package/dist/shaders/BasicWaterMaterial.js +155 -0
- package/dist/shaders/BubblesPointsMaterial.d.ts +52 -0
- package/dist/shaders/BubblesPointsMaterial.d.ts.map +1 -0
- package/dist/shaders/BubblesPointsMaterial.js +95 -0
- package/dist/shaders/CartoonCloudsMaterial.d.ts +36 -0
- package/dist/shaders/CartoonCloudsMaterial.d.ts.map +1 -0
- package/dist/shaders/CartoonCloudsMaterial.js +59 -0
- package/dist/shaders/CartoonCloudsPointsMaterial.d.ts +65 -0
- package/dist/shaders/CartoonCloudsPointsMaterial.d.ts.map +1 -0
- package/dist/shaders/CartoonCloudsPointsMaterial.js +138 -0
- package/dist/shaders/CirrusCloudsMaterial.d.ts +36 -0
- package/dist/shaders/CirrusCloudsMaterial.d.ts.map +1 -0
- package/dist/shaders/CirrusCloudsMaterial.js +55 -0
- package/dist/shaders/CirrusCloudsPointsMaterial.d.ts +69 -0
- package/dist/shaders/CirrusCloudsPointsMaterial.d.ts.map +1 -0
- package/dist/shaders/CirrusCloudsPointsMaterial.js +140 -0
- package/dist/shaders/CloudsMaterial.d.ts +47 -0
- package/dist/shaders/CloudsMaterial.d.ts.map +1 -0
- package/dist/shaders/CloudsMaterial.js +124 -0
- package/dist/shaders/CloudsPointsMaterial.d.ts +82 -0
- package/dist/shaders/CloudsPointsMaterial.d.ts.map +1 -0
- package/dist/shaders/CloudsPointsMaterial.js +200 -0
- package/dist/shaders/CommonNoiseFunctions.d.ts +2 -0
- package/dist/shaders/CommonNoiseFunctions.d.ts.map +1 -0
- package/dist/shaders/CommonNoiseFunctions.js +41 -0
- package/dist/shaders/CoronaMaterial.d.ts +41 -0
- package/dist/shaders/CoronaMaterial.d.ts.map +1 -0
- package/dist/shaders/CoronaMaterial.js +54 -0
- package/dist/shaders/CustomShaderMaterial.d.ts +10 -0
- package/dist/shaders/CustomShaderMaterial.d.ts.map +1 -0
- package/dist/shaders/CustomShaderMaterial.js +10 -0
- package/dist/shaders/EarthAtmosphereMaterial.d.ts +28 -0
- package/dist/shaders/EarthAtmosphereMaterial.d.ts.map +1 -0
- package/dist/shaders/EarthAtmosphereMaterial.js +55 -0
- package/dist/shaders/EarthMaterial.d.ts +40 -0
- package/dist/shaders/EarthMaterial.d.ts.map +1 -0
- package/dist/shaders/EarthMaterial.js +69 -0
- package/dist/shaders/FireMaterial.d.ts +30 -0
- package/dist/shaders/FireMaterial.d.ts.map +1 -0
- package/dist/shaders/FireMaterial.js +154 -0
- package/dist/shaders/FireShellMaterial.d.ts +34 -0
- package/dist/shaders/FireShellMaterial.d.ts.map +1 -0
- package/dist/shaders/FireShellMaterial.js +137 -0
- package/dist/shaders/FlareMaterial.d.ts +79 -0
- package/dist/shaders/FlareMaterial.d.ts.map +1 -0
- package/dist/shaders/FlareMaterial.js +184 -0
- package/dist/shaders/GlowMaterial.d.ts +41 -0
- package/dist/shaders/GlowMaterial.d.ts.map +1 -0
- package/dist/shaders/GlowMaterial.js +54 -0
- package/dist/shaders/GlyphRingMaterial.d.ts +72 -0
- package/dist/shaders/GlyphRingMaterial.d.ts.map +1 -0
- package/dist/shaders/GlyphRingMaterial.js +152 -0
- package/dist/shaders/ImageMaterial.d.ts +294 -0
- package/dist/shaders/ImageMaterial.d.ts.map +1 -0
- package/dist/shaders/ImageMaterial.js +401 -0
- package/dist/shaders/LavaMaterial.d.ts +69 -0
- package/dist/shaders/LavaMaterial.d.ts.map +1 -0
- package/dist/shaders/LavaMaterial.js +127 -0
- package/dist/shaders/LineEffectsMaterials.d.ts +97 -0
- package/dist/shaders/LineEffectsMaterials.d.ts.map +1 -0
- package/dist/shaders/LineEffectsMaterials.js +242 -0
- package/dist/shaders/LineMaterial.d.ts +37 -0
- package/dist/shaders/LineMaterial.d.ts.map +1 -0
- package/dist/shaders/LineMaterial.js +64 -0
- package/dist/shaders/MeshEffectsMaterial.d.ts +278 -0
- package/dist/shaders/MeshEffectsMaterial.d.ts.map +1 -0
- package/dist/shaders/MeshEffectsMaterial.js +312 -0
- package/dist/shaders/MorphingSimulation.d.ts +17 -0
- package/dist/shaders/MorphingSimulation.d.ts.map +1 -0
- package/dist/shaders/MorphingSimulation.js +66 -0
- package/dist/shaders/MyGridMaterial.d.ts +61 -0
- package/dist/shaders/MyGridMaterial.d.ts.map +1 -0
- package/dist/shaders/MyGridMaterial.js +176 -0
- package/dist/shaders/MyParticlesMaterial.d.ts +65 -0
- package/dist/shaders/MyParticlesMaterial.d.ts.map +1 -0
- package/dist/shaders/MyParticlesMaterial.js +126 -0
- package/dist/shaders/NebulaCloudsMaterial.d.ts +44 -0
- package/dist/shaders/NebulaCloudsMaterial.d.ts.map +1 -0
- package/dist/shaders/NebulaCloudsMaterial.js +63 -0
- package/dist/shaders/NebulaPointsMaterial.d.ts +236 -0
- package/dist/shaders/NebulaPointsMaterial.d.ts.map +1 -0
- package/dist/shaders/NebulaPointsMaterial.js +265 -0
- package/dist/shaders/OceanMaterial.d.ts +57 -0
- package/dist/shaders/OceanMaterial.d.ts.map +1 -0
- package/dist/shaders/OceanMaterial.js +240 -0
- package/dist/shaders/PainterlyCloudsMaterial.d.ts +49 -0
- package/dist/shaders/PainterlyCloudsMaterial.d.ts.map +1 -0
- package/dist/shaders/PainterlyCloudsMaterial.js +68 -0
- package/dist/shaders/PainterlyCloudsPointsMaterial.d.ts +69 -0
- package/dist/shaders/PainterlyCloudsPointsMaterial.d.ts.map +1 -0
- package/dist/shaders/PainterlyCloudsPointsMaterial.js +140 -0
- package/dist/shaders/RainMaterial.d.ts +36 -0
- package/dist/shaders/RainMaterial.d.ts.map +1 -0
- package/dist/shaders/RainMaterial.js +79 -0
- package/dist/shaders/ReflectorMaterial.d.ts +62 -0
- package/dist/shaders/ReflectorMaterial.d.ts.map +1 -0
- package/dist/shaders/ReflectorMaterial.js +167 -0
- package/dist/shaders/SandMaterial.d.ts +58 -0
- package/dist/shaders/SandMaterial.d.ts.map +1 -0
- package/dist/shaders/SandMaterial.js +296 -0
- package/dist/shaders/ShaderEffectsMaterial copy.d.ts +280 -0
- package/dist/shaders/ShaderEffectsMaterial copy.d.ts.map +1 -0
- package/dist/shaders/ShaderEffectsMaterial copy.js +354 -0
- package/dist/shaders/ShaderEffectsMaterial.d.ts +5 -0
- package/dist/shaders/ShaderEffectsMaterial.d.ts.map +1 -0
- package/dist/shaders/ShaderEffectsMaterial.js +10 -0
- package/dist/shaders/ShootingStarMaterial.d.ts +9 -0
- package/dist/shaders/ShootingStarMaterial.d.ts.map +1 -0
- package/dist/shaders/ShootingStarMaterial.js +42 -0
- package/dist/shaders/SkyCloudsMaterial.d.ts +76 -0
- package/dist/shaders/SkyCloudsMaterial.d.ts.map +1 -0
- package/dist/shaders/SkyCloudsMaterial.js +212 -0
- package/dist/shaders/SkyMaterial.d.ts +130 -0
- package/dist/shaders/SkyMaterial.d.ts.map +1 -0
- package/dist/shaders/SkyMaterial.js +237 -0
- package/dist/shaders/SkyboxMaterial.d.ts +40 -0
- package/dist/shaders/SkyboxMaterial.d.ts.map +1 -0
- package/dist/shaders/SkyboxMaterial.js +64 -0
- package/dist/shaders/SmokeMaterial.d.ts +48 -0
- package/dist/shaders/SmokeMaterial.d.ts.map +1 -0
- package/dist/shaders/SmokeMaterial.js +159 -0
- package/dist/shaders/SmokeRibbonMaterial.d.ts +48 -0
- package/dist/shaders/SmokeRibbonMaterial.d.ts.map +1 -0
- package/dist/shaders/SmokeRibbonMaterial.js +120 -0
- package/dist/shaders/SparklesBurstMaterial.d.ts +65 -0
- package/dist/shaders/SparklesBurstMaterial.d.ts.map +1 -0
- package/dist/shaders/SparklesBurstMaterial.js +99 -0
- package/dist/shaders/StarsMaterial.d.ts +36 -0
- package/dist/shaders/StarsMaterial.d.ts.map +1 -0
- package/dist/shaders/StarsMaterial.js +74 -0
- package/dist/shaders/StormCloudsMaterial.d.ts +44 -0
- package/dist/shaders/StormCloudsMaterial.d.ts.map +1 -0
- package/dist/shaders/StormCloudsMaterial.js +61 -0
- package/dist/shaders/StormCloudsPointsMaterial.d.ts +303 -0
- package/dist/shaders/StormCloudsPointsMaterial.d.ts.map +1 -0
- package/dist/shaders/StormCloudsPointsMaterial.js +389 -0
- package/dist/shaders/SunCoreMaterial.d.ts +69 -0
- package/dist/shaders/SunCoreMaterial.d.ts.map +1 -0
- package/dist/shaders/SunCoreMaterial.js +127 -0
- package/dist/shaders/VolumetricCloudsMaterial.d.ts +56 -0
- package/dist/shaders/VolumetricCloudsMaterial.d.ts.map +1 -0
- package/dist/shaders/VolumetricCloudsMaterial.js +93 -0
- package/dist/shaders/VolumetricCloudsPointsMaterial.d.ts +73 -0
- package/dist/shaders/VolumetricCloudsPointsMaterial.d.ts.map +1 -0
- package/dist/shaders/VolumetricCloudsPointsMaterial.js +143 -0
- package/dist/shaders/WaterMaterial.d.ts +110 -0
- package/dist/shaders/WaterMaterial.d.ts.map +1 -0
- package/dist/shaders/WaterMaterial.js +228 -0
- package/dist/shaders/effects/EffectsFragmentFunctions.glsl.d.ts +2 -0
- package/dist/shaders/effects/EffectsFragmentFunctions.glsl.d.ts.map +1 -0
- package/dist/shaders/effects/EffectsFragmentFunctions.glsl.js +182 -0
- package/dist/shaders/effects/EffectsUniforms.d.ts +230 -0
- package/dist/shaders/effects/EffectsUniforms.d.ts.map +1 -0
- package/dist/shaders/effects/EffectsUniforms.js +66 -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/shaders/effects/baseFragment.glsl.d.ts +2 -0
- package/dist/shaders/effects/baseFragment.glsl.d.ts.map +1 -0
- package/dist/shaders/effects/baseFragment.glsl.js +53 -0
- package/dist/shaders/effects/baseVertex.glsl.d.ts +2 -0
- package/dist/shaders/effects/baseVertex.glsl.d.ts.map +1 -0
- package/dist/shaders/effects/baseVertex.glsl.js +60 -0
- package/dist/shaders/effects/buildShaderEffectsMaterial.d.ts +17 -0
- package/dist/shaders/effects/buildShaderEffectsMaterial.d.ts.map +1 -0
- package/dist/shaders/effects/buildShaderEffectsMaterial.js +156 -0
- package/dist/shaders/effects/defaults.d.ts +4 -0
- package/dist/shaders/effects/defaults.d.ts.map +1 -0
- package/dist/shaders/effects/defaults.js +27 -0
- package/dist/shaders/effects/index.d.ts +7 -0
- package/dist/shaders/effects/index.d.ts.map +1 -0
- package/dist/shaders/effects/index.js +6 -0
- package/dist/shaders/effects/noiseLib.glsl.d.ts +6 -0
- package/dist/shaders/effects/noiseLib.glsl.d.ts.map +1 -0
- package/dist/shaders/effects/noiseLib.glsl.js +214 -0
- package/dist/shaders/effects/presets.d.ts +20 -0
- package/dist/shaders/effects/presets.d.ts.map +1 -0
- package/dist/shaders/effects/presets.js +288 -0
- package/dist/shaders/effects/registry/brightness.d.ts +3 -0
- package/dist/shaders/effects/registry/brightness.d.ts.map +1 -0
- package/dist/shaders/effects/registry/brightness.js +16 -0
- package/dist/shaders/effects/registry/colorShift.d.ts +3 -0
- package/dist/shaders/effects/registry/colorShift.d.ts.map +1 -0
- package/dist/shaders/effects/registry/colorShift.js +21 -0
- package/dist/shaders/effects/registry/depthFade.d.ts +3 -0
- package/dist/shaders/effects/registry/depthFade.d.ts.map +1 -0
- package/dist/shaders/effects/registry/depthFade.js +29 -0
- package/dist/shaders/effects/registry/displacement.d.ts +3 -0
- package/dist/shaders/effects/registry/displacement.d.ts.map +1 -0
- package/dist/shaders/effects/registry/displacement.js +17 -0
- package/dist/shaders/effects/registry/explode.d.ts +3 -0
- package/dist/shaders/effects/registry/explode.d.ts.map +1 -0
- package/dist/shaders/effects/registry/explode.js +43 -0
- package/dist/shaders/effects/registry/flicker.d.ts +3 -0
- package/dist/shaders/effects/registry/flicker.d.ts.map +1 -0
- package/dist/shaders/effects/registry/flicker.js +27 -0
- package/dist/shaders/effects/registry/glow.d.ts +3 -0
- package/dist/shaders/effects/registry/glow.d.ts.map +1 -0
- package/dist/shaders/effects/registry/glow.js +21 -0
- package/dist/shaders/effects/registry/grayscale.d.ts +3 -0
- package/dist/shaders/effects/registry/grayscale.d.ts.map +1 -0
- package/dist/shaders/effects/registry/grayscale.js +105 -0
- package/dist/shaders/effects/registry/hueShift.d.ts +3 -0
- package/dist/shaders/effects/registry/hueShift.d.ts.map +1 -0
- package/dist/shaders/effects/registry/hueShift.js +40 -0
- package/dist/shaders/effects/registry/index.d.ts +9 -0
- package/dist/shaders/effects/registry/index.d.ts.map +1 -0
- package/dist/shaders/effects/registry/index.js +70 -0
- package/dist/shaders/effects/registry/jitter.d.ts +3 -0
- package/dist/shaders/effects/registry/jitter.d.ts.map +1 -0
- package/dist/shaders/effects/registry/jitter.js +31 -0
- package/dist/shaders/effects/registry/magnet.d.ts +3 -0
- package/dist/shaders/effects/registry/magnet.d.ts.map +1 -0
- package/dist/shaders/effects/registry/magnet.js +43 -0
- package/dist/shaders/effects/registry/noise.d.ts +3 -0
- package/dist/shaders/effects/registry/noise.d.ts.map +1 -0
- package/dist/shaders/effects/registry/noise.js +61 -0
- package/dist/shaders/effects/registry/pulse.d.ts +3 -0
- package/dist/shaders/effects/registry/pulse.d.ts.map +1 -0
- package/dist/shaders/effects/registry/pulse.js +24 -0
- package/dist/shaders/effects/registry/rainbow.d.ts +3 -0
- package/dist/shaders/effects/registry/rainbow.d.ts.map +1 -0
- package/dist/shaders/effects/registry/rainbow.js +55 -0
- package/dist/shaders/effects/registry/ripple.d.ts +3 -0
- package/dist/shaders/effects/registry/ripple.d.ts.map +1 -0
- package/dist/shaders/effects/registry/ripple.js +39 -0
- package/dist/shaders/effects/registry/saturation.d.ts +3 -0
- package/dist/shaders/effects/registry/saturation.d.ts.map +1 -0
- package/dist/shaders/effects/registry/saturation.js +19 -0
- package/dist/shaders/effects/registry/scale.d.ts +3 -0
- package/dist/shaders/effects/registry/scale.d.ts.map +1 -0
- package/dist/shaders/effects/registry/scale.js +26 -0
- package/dist/shaders/effects/registry/sparkle.d.ts +3 -0
- package/dist/shaders/effects/registry/sparkle.d.ts.map +1 -0
- package/dist/shaders/effects/registry/sparkle.js +34 -0
- package/dist/shaders/effects/registry/spiral.d.ts +3 -0
- package/dist/shaders/effects/registry/spiral.d.ts.map +1 -0
- package/dist/shaders/effects/registry/spiral.js +46 -0
- package/dist/shaders/effects/registry/twist.d.ts +3 -0
- package/dist/shaders/effects/registry/twist.d.ts.map +1 -0
- package/dist/shaders/effects/registry/twist.js +55 -0
- package/dist/shaders/effects/registry/vortex.d.ts +3 -0
- package/dist/shaders/effects/registry/vortex.d.ts.map +1 -0
- package/dist/shaders/effects/registry/vortex.js +35 -0
- package/dist/shaders/effects/registry/wave.d.ts +3 -0
- package/dist/shaders/effects/registry/wave.d.ts.map +1 -0
- package/dist/shaders/effects/registry/wave.js +44 -0
- package/dist/shaders/effects/types.d.ts +56 -0
- package/dist/shaders/effects/types.d.ts.map +1 -0
- package/dist/shaders/effects/types.js +11 -0
- package/dist/shaders/index.d.ts +51 -0
- package/dist/shaders/index.d.ts.map +1 -0
- package/dist/shaders/index.js +50 -0
- package/dist/shaders/lineShaders/GhostSignalMaterial.d.ts +41 -0
- package/dist/shaders/lineShaders/GhostSignalMaterial.d.ts.map +1 -0
- package/dist/shaders/lineShaders/GhostSignalMaterial.js +88 -0
- package/dist/shaders/lineShaders/LineShaderMaterials.d.ts +180 -0
- package/dist/shaders/lineShaders/LineShaderMaterials.d.ts.map +1 -0
- package/dist/shaders/lineShaders/LineShaderMaterials.js +551 -0
- package/dist/shaders/lineShaders/ParticleEffects.d.ts +39 -0
- package/dist/shaders/lineShaders/ParticleEffects.d.ts.map +1 -0
- package/dist/shaders/lineShaders/ParticleEffects.js +451 -0
- package/dist/shaders/lineShaders/SerpentFlowMaterial.d.ts +37 -0
- package/dist/shaders/lineShaders/SerpentFlowMaterial.d.ts.map +1 -0
- package/dist/shaders/lineShaders/SerpentFlowMaterial.js +91 -0
- package/dist/shaders/lineShaders/SolarFilamentMaterial.d.ts +37 -0
- package/dist/shaders/lineShaders/SolarFilamentMaterial.d.ts.map +1 -0
- package/dist/shaders/lineShaders/SolarFilamentMaterial.js +104 -0
- package/dist/shaders/lineShaders/TeslaArcMaterial.d.ts +37 -0
- package/dist/shaders/lineShaders/TeslaArcMaterial.d.ts.map +1 -0
- package/dist/shaders/lineShaders/TeslaArcMaterial.js +125 -0
- package/dist/shaders/lineShaders/VoidRiftMaterial.d.ts +41 -0
- package/dist/shaders/lineShaders/VoidRiftMaterial.d.ts.map +1 -0
- package/dist/shaders/lineShaders/VoidRiftMaterial.js +118 -0
- package/dist/shaders/lineShaders/index.d.ts +11 -0
- package/dist/shaders/lineShaders/index.d.ts.map +1 -0
- package/dist/shaders/lineShaders/index.js +7 -0
- package/dist/shaders/sunNoise.d.ts +2 -0
- package/dist/shaders/sunNoise.d.ts.map +1 -0
- package/dist/shaders/sunNoise.js +91 -0
- package/dist/three/AnimatedObjectV.d.ts +71 -0
- package/dist/three/AnimatedObjectV.d.ts.map +1 -0
- package/dist/three/AnimatedObjectV.js +169 -0
- package/dist/three/CloudsV.d.ts +24 -0
- package/dist/three/CloudsV.d.ts.map +1 -0
- package/dist/three/CloudsV.js +132 -0
- package/dist/three/EffectsGeneratorV.d.ts +14 -0
- package/dist/three/EffectsGeneratorV.d.ts.map +1 -0
- package/dist/three/EffectsGeneratorV.js +109 -0
- package/dist/three/EnvironmentManagerV.d.ts +35 -0
- package/dist/three/EnvironmentManagerV.d.ts.map +1 -0
- package/dist/three/EnvironmentManagerV.js +140 -0
- package/dist/three/FrameV.d.ts +24 -0
- package/dist/three/FrameV.d.ts.map +1 -0
- package/dist/three/FrameV.js +43 -0
- package/dist/three/GalaxyV.d.ts +21 -0
- package/dist/three/GalaxyV.d.ts.map +1 -0
- package/dist/three/GalaxyV.js +223 -0
- package/dist/three/GalleryLayoutV.d.ts +20 -0
- package/dist/three/GalleryLayoutV.d.ts.map +1 -0
- package/dist/three/GalleryLayoutV.js +76 -0
- package/dist/three/GridHelperV.d.ts +19 -0
- package/dist/three/GridHelperV.d.ts.map +1 -0
- package/dist/three/GridHelperV.js +28 -0
- package/dist/three/ImageGeometryV.d.ts +23 -0
- package/dist/three/ImageGeometryV.d.ts.map +1 -0
- package/dist/three/ImageGeometryV.js +83 -0
- package/dist/three/LensflareV.d.ts +19 -0
- package/dist/three/LensflareV.d.ts.map +1 -0
- package/dist/three/LensflareV.js +79 -0
- package/dist/three/LetterV.d.ts +24 -0
- package/dist/three/LetterV.d.ts.map +1 -0
- package/dist/three/LetterV.js +90 -0
- package/dist/three/LightsManagerV.d.ts +21 -0
- package/dist/three/LightsManagerV.d.ts.map +1 -0
- package/dist/three/LightsManagerV.js +85 -0
- package/dist/three/LinesV.d.ts +22 -0
- package/dist/three/LinesV.d.ts.map +1 -0
- package/dist/three/LinesV.js +43 -0
- package/dist/three/ParticlesV.d.ts +28 -0
- package/dist/three/ParticlesV.d.ts.map +1 -0
- package/dist/three/ParticlesV.js +88 -0
- package/dist/three/PathRendererV.d.ts +29 -0
- package/dist/three/PathRendererV.d.ts.map +1 -0
- package/dist/three/PathRendererV.js +225 -0
- package/dist/three/PathV.d.ts +27 -0
- package/dist/three/PathV.d.ts.map +1 -0
- package/dist/three/PathV.js +81 -0
- package/dist/three/ProjectLoaderV.d.ts +18 -0
- package/dist/three/ProjectLoaderV.d.ts.map +1 -0
- package/dist/three/ProjectLoaderV.js +49 -0
- package/dist/three/RainV.d.ts +21 -0
- package/dist/three/RainV.d.ts.map +1 -0
- package/dist/three/RainV.js +201 -0
- package/dist/three/SceneBuilderV.d.ts +26 -0
- package/dist/three/SceneBuilderV.d.ts.map +1 -0
- package/dist/three/SceneBuilderV.js +263 -0
- package/dist/three/SkyControllerV.d.ts +22 -0
- package/dist/three/SkyControllerV.d.ts.map +1 -0
- package/dist/three/SkyControllerV.js +114 -0
- package/dist/three/SkySystemV.d.ts +40 -0
- package/dist/three/SkySystemV.d.ts.map +1 -0
- package/dist/three/SkySystemV.js +103 -0
- package/dist/three/SkyboxV.d.ts +29 -0
- package/dist/three/SkyboxV.d.ts.map +1 -0
- package/dist/three/SkyboxV.js +160 -0
- package/dist/three/StarsV.d.ts +24 -0
- package/dist/three/StarsV.d.ts.map +1 -0
- package/dist/three/StarsV.js +179 -0
- package/dist/three/SunLightV.d.ts +26 -0
- package/dist/three/SunLightV.d.ts.map +1 -0
- package/dist/three/SunLightV.js +90 -0
- package/dist/three/Text2DV.d.ts +25 -0
- package/dist/three/Text2DV.d.ts.map +1 -0
- package/dist/three/Text2DV.js +66 -0
- package/dist/three/Text3DV.d.ts +22 -0
- package/dist/three/Text3DV.d.ts.map +1 -0
- package/dist/three/Text3DV.js +43 -0
- package/dist/three/effects/AuraEffectV.d.ts +15 -0
- package/dist/three/effects/AuraEffectV.d.ts.map +1 -0
- package/dist/three/effects/AuraEffectV.js +150 -0
- package/dist/three/effects/AuroraEffectV.d.ts +16 -0
- package/dist/three/effects/AuroraEffectV.d.ts.map +1 -0
- package/dist/three/effects/AuroraEffectV.js +129 -0
- package/dist/three/effects/BlackHoleEffectV.d.ts +15 -0
- package/dist/three/effects/BlackHoleEffectV.d.ts.map +1 -0
- package/dist/three/effects/BlackHoleEffectV.js +219 -0
- package/dist/three/effects/ConstellationEffectV.d.ts +17 -0
- package/dist/three/effects/ConstellationEffectV.d.ts.map +1 -0
- package/dist/three/effects/ConstellationEffectV.js +207 -0
- package/dist/three/effects/DataStreamEffectV.d.ts +15 -0
- package/dist/three/effects/DataStreamEffectV.d.ts.map +1 -0
- package/dist/three/effects/DataStreamEffectV.js +151 -0
- package/dist/three/effects/DnaHelixEffectV.d.ts +24 -0
- package/dist/three/effects/DnaHelixEffectV.d.ts.map +1 -0
- package/dist/three/effects/DnaHelixEffectV.js +343 -0
- package/dist/three/effects/FireEffectV.d.ts +17 -0
- package/dist/three/effects/FireEffectV.d.ts.map +1 -0
- package/dist/three/effects/FireEffectV.js +219 -0
- package/dist/three/effects/ForcefieldEffectV.d.ts +17 -0
- package/dist/three/effects/ForcefieldEffectV.d.ts.map +1 -0
- package/dist/three/effects/ForcefieldEffectV.js +150 -0
- package/dist/three/effects/HologramEffectV.d.ts +15 -0
- package/dist/three/effects/HologramEffectV.d.ts.map +1 -0
- package/dist/three/effects/HologramEffectV.js +154 -0
- package/dist/three/effects/IceCrystalsEffectV.d.ts +21 -0
- package/dist/three/effects/IceCrystalsEffectV.d.ts.map +1 -0
- package/dist/three/effects/IceCrystalsEffectV.js +214 -0
- package/dist/three/effects/LightningEffectV.d.ts +27 -0
- package/dist/three/effects/LightningEffectV.d.ts.map +1 -0
- package/dist/three/effects/LightningEffectV.js +255 -0
- package/dist/three/effects/MoleculesEffectV.d.ts +23 -0
- package/dist/three/effects/MoleculesEffectV.d.ts.map +1 -0
- package/dist/three/effects/MoleculesEffectV.js +204 -0
- package/dist/three/effects/NeuralNetworkEffectV.d.ts +23 -0
- package/dist/three/effects/NeuralNetworkEffectV.d.ts.map +1 -0
- package/dist/three/effects/NeuralNetworkEffectV.js +211 -0
- package/dist/three/effects/OrbEffectV.d.ts +17 -0
- package/dist/three/effects/OrbEffectV.d.ts.map +1 -0
- package/dist/three/effects/OrbEffectV.js +307 -0
- package/dist/three/effects/PortalEffectV.d.ts +15 -0
- package/dist/three/effects/PortalEffectV.d.ts.map +1 -0
- package/dist/three/effects/PortalEffectV.js +213 -0
- package/dist/three/effects/ShockwaveEffectV.d.ts +19 -0
- package/dist/three/effects/ShockwaveEffectV.d.ts.map +1 -0
- package/dist/three/effects/ShockwaveEffectV.js +195 -0
- package/dist/three/effects/SmokePlumeEffectV.d.ts +15 -0
- package/dist/three/effects/SmokePlumeEffectV.d.ts.map +1 -0
- package/dist/three/effects/SmokePlumeEffectV.js +152 -0
- package/dist/three/effects/SmokeRingEffectV.d.ts +16 -0
- package/dist/three/effects/SmokeRingEffectV.d.ts.map +1 -0
- package/dist/three/effects/SmokeRingEffectV.js +174 -0
- package/dist/three/effects/VolumetricFogEffectV.d.ts +15 -0
- package/dist/three/effects/VolumetricFogEffectV.d.ts.map +1 -0
- package/dist/three/effects/VolumetricFogEffectV.js +127 -0
- package/dist/types/actions.d.ts +30 -0
- package/dist/types/actions.d.ts.map +1 -0
- package/dist/types/actions.js +5 -0
- package/dist/types/animations.d.ts +109 -0
- package/dist/types/animations.d.ts.map +1 -0
- package/dist/types/animations.js +5 -0
- package/dist/types/common.d.ts +20 -0
- package/dist/types/common.d.ts.map +1 -0
- package/dist/types/common.js +1 -0
- package/dist/types/cursor.d.ts +142 -0
- package/dist/types/cursor.d.ts.map +1 -0
- package/dist/types/cursor.js +1 -0
- package/dist/types/effects.d.ts +100 -0
- package/dist/types/effects.d.ts.map +1 -0
- package/dist/types/effects.js +1 -0
- package/dist/types/environment.d.ts +265 -0
- package/dist/types/environment.d.ts.map +1 -0
- package/dist/types/environment.js +10 -0
- package/dist/types/gallery.d.ts +74 -0
- package/dist/types/gallery.d.ts.map +1 -0
- package/dist/types/gallery.js +1 -0
- package/dist/types/generativeEffects.d.ts +316 -0
- package/dist/types/generativeEffects.d.ts.map +1 -0
- package/dist/types/generativeEffects.js +5 -0
- package/dist/types/handlerSettings.d.ts +48 -0
- package/dist/types/handlerSettings.d.ts.map +1 -0
- package/dist/types/handlerSettings.js +1 -0
- package/dist/types/index.d.ts +24 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +1 -0
- package/dist/types/lights.d.ts +79 -0
- package/dist/types/lights.d.ts.map +1 -0
- package/dist/types/lights.js +1 -0
- package/dist/types/materials.d.ts +194 -0
- package/dist/types/materials.d.ts.map +1 -0
- package/dist/types/materials.js +1 -0
- package/dist/types/mesh.d.ts +200 -0
- package/dist/types/mesh.d.ts.map +1 -0
- package/dist/types/mesh.js +1 -0
- package/dist/types/objectSettings.d.ts +144 -0
- package/dist/types/objectSettings.d.ts.map +1 -0
- package/dist/types/objectSettings.js +25 -0
- package/dist/types/objectsConfigs.d.ts +47 -0
- package/dist/types/objectsConfigs.d.ts.map +1 -0
- package/dist/types/objectsConfigs.js +1 -0
- package/dist/types/particles.d.ts +156 -0
- package/dist/types/particles.d.ts.map +1 -0
- package/dist/types/particles.js +1 -0
- package/dist/types/postprocessing.d.ts +141 -0
- package/dist/types/postprocessing.d.ts.map +1 -0
- package/dist/types/postprocessing.js +1 -0
- package/dist/types/scene3d.d.ts +501 -0
- package/dist/types/scene3d.d.ts.map +1 -0
- package/dist/types/scene3d.js +3 -0
- package/dist/types/shaderEffects.d.ts +61 -0
- package/dist/types/shaderEffects.d.ts.map +1 -0
- package/dist/types/shaderEffects.js +1 -0
- package/dist/types/text.d.ts +74 -0
- package/dist/types/text.d.ts.map +1 -0
- package/dist/types/text.js +1 -0
- package/dist/types/types.d.ts +81 -0
- package/dist/types/types.d.ts.map +1 -0
- package/dist/types/types.js +1 -0
- package/dist/types/uiController.d.ts +42 -0
- package/dist/types/uiController.d.ts.map +1 -0
- package/dist/types/uiController.js +1 -0
- package/dist/types/users.d.ts +334 -0
- package/dist/types/users.d.ts.map +1 -0
- package/dist/types/users.js +34 -0
- package/dist/utils/GalleryCreator.d.ts +80 -0
- package/dist/utils/GalleryCreator.d.ts.map +1 -0
- package/dist/utils/GalleryCreator.js +465 -0
- package/dist/utils/GalleryLayouts.d.ts +10 -0
- package/dist/utils/GalleryLayouts.d.ts.map +1 -0
- package/dist/utils/GalleryLayouts.js +43 -0
- package/dist/utils/MaterialCompiler.d.ts +30 -0
- package/dist/utils/MaterialCompiler.d.ts.map +1 -0
- package/dist/utils/MaterialCompiler.js +91 -0
- package/dist/utils/animationsUtils.d.ts +69 -0
- package/dist/utils/animationsUtils.d.ts.map +1 -0
- package/dist/utils/animationsUtils.js +151 -0
- package/dist/utils/createdObjectHandlers.d.ts +32 -0
- package/dist/utils/createdObjectHandlers.d.ts.map +1 -0
- package/dist/utils/createdObjectHandlers.js +35 -0
- package/dist/utils/dataUtils.d.ts +36 -0
- package/dist/utils/dataUtils.d.ts.map +1 -0
- package/dist/utils/dataUtils.js +471 -0
- package/dist/utils/easingUtils.d.ts +5 -0
- package/dist/utils/easingUtils.d.ts.map +1 -0
- package/dist/utils/easingUtils.js +86 -0
- package/dist/utils/edgeUtils.d.ts +37 -0
- package/dist/utils/edgeUtils.d.ts.map +1 -0
- package/dist/utils/edgeUtils.js +128 -0
- package/dist/utils/environmentUtils.d.ts +19 -0
- package/dist/utils/environmentUtils.d.ts.map +1 -0
- package/dist/utils/environmentUtils.js +144 -0
- package/dist/utils/frameAnimations.d.ts +116 -0
- package/dist/utils/frameAnimations.d.ts.map +1 -0
- package/dist/utils/frameAnimations.js +449 -0
- package/dist/utils/galleriesUtils.d.ts +10 -0
- package/dist/utils/galleriesUtils.d.ts.map +1 -0
- package/dist/utils/galleriesUtils.js +162 -0
- package/dist/utils/getAnimatableProperties.d.ts +30 -0
- package/dist/utils/getAnimatableProperties.d.ts.map +1 -0
- package/dist/utils/getAnimatableProperties.js +170 -0
- package/dist/utils/gridUtils.d.ts +8 -0
- package/dist/utils/gridUtils.d.ts.map +1 -0
- package/dist/utils/gridUtils.js +26 -0
- package/dist/utils/handleEdgesAnimations.d.ts +20 -0
- package/dist/utils/handleEdgesAnimations.d.ts.map +1 -0
- package/dist/utils/handleEdgesAnimations.js +125 -0
- package/dist/utils/handleEdgesMouseMove.d.ts +12 -0
- package/dist/utils/handleEdgesMouseMove.d.ts.map +1 -0
- package/dist/utils/handleEdgesMouseMove.js +38 -0
- package/dist/utils/handleGenerativeEffectsAnimations.d.ts +15 -0
- package/dist/utils/handleGenerativeEffectsAnimations.d.ts.map +1 -0
- package/dist/utils/handleGenerativeEffectsAnimations.js +218 -0
- package/dist/utils/handleLightAnimations.d.ts +18 -0
- package/dist/utils/handleLightAnimations.d.ts.map +1 -0
- package/dist/utils/handleLightAnimations.js +123 -0
- package/dist/utils/handleLightMouseMove.d.ts +13 -0
- package/dist/utils/handleLightMouseMove.d.ts.map +1 -0
- package/dist/utils/handleLightMouseMove.js +51 -0
- package/dist/utils/handleMaterialEffects.d.ts +32 -0
- package/dist/utils/handleMaterialEffects.d.ts.map +1 -0
- package/dist/utils/handleMaterialEffects.js +130 -0
- package/dist/utils/handleMaterialMouseMove.d.ts +11 -0
- package/dist/utils/handleMaterialMouseMove.d.ts.map +1 -0
- package/dist/utils/handleMaterialMouseMove.js +20 -0
- package/dist/utils/handleTransformEffects.d.ts +31 -0
- package/dist/utils/handleTransformEffects.d.ts.map +1 -0
- package/dist/utils/handleTransformEffects.js +140 -0
- package/dist/utils/handleTransformMouseMove.d.ts +13 -0
- package/dist/utils/handleTransformMouseMove.d.ts.map +1 -0
- package/dist/utils/handleTransformMouseMove.js +49 -0
- package/dist/utils/idUtils.d.ts +4 -0
- package/dist/utils/idUtils.d.ts.map +1 -0
- package/dist/utils/idUtils.js +10 -0
- package/dist/utils/index.d.ts +34 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +33 -0
- package/dist/utils/loadingManager.d.ts +29 -0
- package/dist/utils/loadingManager.d.ts.map +1 -0
- package/dist/utils/loadingManager.js +103 -0
- package/dist/utils/materialApplicationUtils.d.ts +72 -0
- package/dist/utils/materialApplicationUtils.d.ts.map +1 -0
- package/dist/utils/materialApplicationUtils.js +169 -0
- package/dist/utils/materialUtils.d.ts +79 -0
- package/dist/utils/materialUtils.d.ts.map +1 -0
- package/dist/utils/materialUtils.js +267 -0
- package/dist/utils/meshUtils.d.ts +10 -0
- package/dist/utils/meshUtils.d.ts.map +1 -0
- package/dist/utils/meshUtils.js +473 -0
- package/dist/utils/mouseMoveUtils.d.ts +15 -0
- package/dist/utils/mouseMoveUtils.d.ts.map +1 -0
- package/dist/utils/mouseMoveUtils.js +52 -0
- package/dist/utils/objectTreeUtils.d.ts +39 -0
- package/dist/utils/objectTreeUtils.d.ts.map +1 -0
- package/dist/utils/objectTreeUtils.js +115 -0
- package/dist/utils/optionalProperties.d.ts +36 -0
- package/dist/utils/optionalProperties.d.ts.map +1 -0
- package/dist/utils/optionalProperties.js +487 -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/pathUtils.d.ts +19 -0
- package/dist/utils/pathUtils.d.ts.map +1 -0
- package/dist/utils/pathUtils.js +73 -0
- package/dist/utils/positionsCreatorUtils.d.ts +97 -0
- package/dist/utils/positionsCreatorUtils.d.ts.map +1 -0
- package/dist/utils/positionsCreatorUtils.js +644 -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/shootingStarHelpers.d.ts +13 -0
- package/dist/utils/shootingStarHelpers.d.ts.map +1 -0
- package/dist/utils/shootingStarHelpers.js +44 -0
- package/dist/utils/sunUtils.d.ts +6 -0
- package/dist/utils/sunUtils.d.ts.map +1 -0
- package/dist/utils/sunUtils.js +9 -0
- package/dist/utils/utils.d.ts +21 -0
- package/dist/utils/utils.d.ts.map +1 -0
- package/dist/utils/utils.js +158 -0
- package/package.json +43 -0
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
// =============================================================================
|
|
2
|
+
// getAnimatableProperties — canonical per-domain property discovery
|
|
3
|
+
// =============================================================================
|
|
4
|
+
//
|
|
5
|
+
// Single source of truth for "what properties can the animations / mouseMove
|
|
6
|
+
// system target on a given domain?". Both *PropsSection (keyframe animations UI)
|
|
7
|
+
// and *MouseMoveSection (mouse-move UI) read from here, so the two systems
|
|
8
|
+
// never drift.
|
|
9
|
+
//
|
|
10
|
+
// Accepts any AnimatableTarget — CreatedObjectSettings, CloudsSettings, and
|
|
11
|
+
// future env components (Sky/Ocean/...) all satisfy the structural interface.
|
|
12
|
+
//
|
|
13
|
+
// Domain rules:
|
|
14
|
+
// - transform: hardcoded ['position', 'rotation', 'scale']
|
|
15
|
+
// - material : keys of settings.materialSettings minus an excluded list
|
|
16
|
+
// - edges : geometry props by edgesSettings.type + filtered material keys
|
|
17
|
+
// - light : per-light-type allowlist driven by settings.config.type
|
|
18
|
+
// - clouds : ['speed'] when settings.config.type === 'clouds'
|
|
19
|
+
//
|
|
20
|
+
// =============================================================================
|
|
21
|
+
// CONSTANTS
|
|
22
|
+
// =============================================================================
|
|
23
|
+
const TRANSFORM_PROPS = [
|
|
24
|
+
{ value: 'position', label: 'Position' },
|
|
25
|
+
{ value: 'rotation', label: 'Rotation' },
|
|
26
|
+
{ value: 'scale', label: 'Scale' },
|
|
27
|
+
];
|
|
28
|
+
const EXCLUDED_MATERIAL_KEYS = new Set([
|
|
29
|
+
'materialType', 'materialVariant', 'side',
|
|
30
|
+
'u_time', 'u_mouse',
|
|
31
|
+
'apply', 'visible', 'map', 'uHasTexture',
|
|
32
|
+
]);
|
|
33
|
+
const LIGHT_COMMON = [
|
|
34
|
+
{ value: 'intensity', label: 'Intensity' },
|
|
35
|
+
{ value: 'color', label: 'Color' },
|
|
36
|
+
];
|
|
37
|
+
const LIGHT_POINT_EXTRA = [
|
|
38
|
+
{ value: 'distance', label: 'Distance' },
|
|
39
|
+
{ value: 'decay', label: 'Decay' },
|
|
40
|
+
];
|
|
41
|
+
const LIGHT_SPOT_EXTRA = [
|
|
42
|
+
...LIGHT_POINT_EXTRA,
|
|
43
|
+
{ value: 'angle', label: 'Angle' },
|
|
44
|
+
{ value: 'penumbra', label: 'Penumbra' },
|
|
45
|
+
];
|
|
46
|
+
const CLOUDS_PROPS = [
|
|
47
|
+
{ value: 'speed', label: 'Speed' },
|
|
48
|
+
];
|
|
49
|
+
const RAIN_PROPS = [
|
|
50
|
+
{ value: 'color', label: 'Color' },
|
|
51
|
+
{ value: 'size', label: 'Size' },
|
|
52
|
+
{ value: 'opacity', label: 'Opacity' },
|
|
53
|
+
{ value: 'speed', label: 'Speed' },
|
|
54
|
+
{ value: 'windStrength', label: 'Wind Strength' },
|
|
55
|
+
{ value: 'windDirection', label: 'Wind Direction' },
|
|
56
|
+
{ value: 'turbulence', label: 'Turbulence' },
|
|
57
|
+
];
|
|
58
|
+
// =============================================================================
|
|
59
|
+
// HELPERS
|
|
60
|
+
// =============================================================================
|
|
61
|
+
/** camelCase / kebab-ish → "Title Case". */
|
|
62
|
+
export function toAnimatableLabel(key) {
|
|
63
|
+
return key
|
|
64
|
+
.replace(/([A-Z])/g, ' $1')
|
|
65
|
+
.replace(/^./, s => s.toUpperCase())
|
|
66
|
+
.trim();
|
|
67
|
+
}
|
|
68
|
+
function getMaterialProperties(materialSettings) {
|
|
69
|
+
if (!materialSettings)
|
|
70
|
+
return [];
|
|
71
|
+
return Object.keys(materialSettings)
|
|
72
|
+
.filter(k => !EXCLUDED_MATERIAL_KEYS.has(k))
|
|
73
|
+
.map(k => ({ value: k, label: k }));
|
|
74
|
+
}
|
|
75
|
+
function getEdgesProperties(edgesSettings) {
|
|
76
|
+
if (!edgesSettings)
|
|
77
|
+
return [];
|
|
78
|
+
const props = [];
|
|
79
|
+
if (edgesSettings.type === 'tube')
|
|
80
|
+
props.push({ value: 'tubeRadius', label: 'Tube Radius' });
|
|
81
|
+
if (edgesSettings.type === 'cube')
|
|
82
|
+
props.push({ value: 'cubeSize', label: 'Cube Size' });
|
|
83
|
+
if (edgesSettings.materialSettings) {
|
|
84
|
+
for (const k of Object.keys(edgesSettings.materialSettings)) {
|
|
85
|
+
if (EXCLUDED_MATERIAL_KEYS.has(k))
|
|
86
|
+
continue;
|
|
87
|
+
props.push({ value: k, label: toAnimatableLabel(k) });
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
return props;
|
|
91
|
+
}
|
|
92
|
+
function getLightProperties(config) {
|
|
93
|
+
switch (config?.type) {
|
|
94
|
+
case 'point':
|
|
95
|
+
return [...LIGHT_COMMON, ...LIGHT_POINT_EXTRA];
|
|
96
|
+
case 'spot':
|
|
97
|
+
return [...LIGHT_COMMON, ...LIGHT_SPOT_EXTRA];
|
|
98
|
+
case 'ambient':
|
|
99
|
+
case 'directional':
|
|
100
|
+
default:
|
|
101
|
+
return [...LIGHT_COMMON];
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
function getCloudsProperties() {
|
|
105
|
+
return [...CLOUDS_PROPS];
|
|
106
|
+
}
|
|
107
|
+
function getRainProperties() {
|
|
108
|
+
return [...RAIN_PROPS];
|
|
109
|
+
}
|
|
110
|
+
function isLightConfig(config) {
|
|
111
|
+
const t = config?.type;
|
|
112
|
+
return t === 'ambient' || t === 'directional' || t === 'point' || t === 'spot';
|
|
113
|
+
}
|
|
114
|
+
function isCloudsConfig(config) {
|
|
115
|
+
return config?.type === 'clouds';
|
|
116
|
+
}
|
|
117
|
+
function isRainConfig(config) {
|
|
118
|
+
return config?.type === 'rain';
|
|
119
|
+
}
|
|
120
|
+
// =============================================================================
|
|
121
|
+
// MAIN
|
|
122
|
+
// =============================================================================
|
|
123
|
+
export function getAnimatableProperties(settings, domain) {
|
|
124
|
+
switch (domain) {
|
|
125
|
+
case 'transform':
|
|
126
|
+
return [...TRANSFORM_PROPS];
|
|
127
|
+
case 'material':
|
|
128
|
+
return getMaterialProperties(settings.materialSettings);
|
|
129
|
+
case 'edges':
|
|
130
|
+
return getEdgesProperties(settings.edgesSettings);
|
|
131
|
+
case 'light':
|
|
132
|
+
return isLightConfig(settings.config) ? getLightProperties(settings.config) : [];
|
|
133
|
+
case 'clouds':
|
|
134
|
+
return isCloudsConfig(settings.config) ? getCloudsProperties() : [];
|
|
135
|
+
case 'rain':
|
|
136
|
+
return isRainConfig(settings.config) ? getRainProperties() : [];
|
|
137
|
+
default:
|
|
138
|
+
return [];
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Detect which domain a property name belongs to, for a given target. Used by
|
|
143
|
+
* the runtime + UI to migrate flat MouseMove arrays into the new per-domain
|
|
144
|
+
* shape, and to route the runtime's combined dispatch.
|
|
145
|
+
*/
|
|
146
|
+
export function detectAnimatableDomain(settings, propertyName) {
|
|
147
|
+
const head = propertyName.split('.')[0];
|
|
148
|
+
if (head === 'position' || head === 'rotation' || head === 'scale') {
|
|
149
|
+
return 'transform';
|
|
150
|
+
}
|
|
151
|
+
const edges = getEdgesProperties(settings.edgesSettings).map(p => p.value);
|
|
152
|
+
if (edges.includes(propertyName))
|
|
153
|
+
return 'edges';
|
|
154
|
+
if (isLightConfig(settings.config)) {
|
|
155
|
+
if (getLightProperties(settings.config).some(p => p.value === propertyName))
|
|
156
|
+
return 'light';
|
|
157
|
+
}
|
|
158
|
+
if (isCloudsConfig(settings.config)) {
|
|
159
|
+
if (getCloudsProperties().some(p => p.value === propertyName))
|
|
160
|
+
return 'clouds';
|
|
161
|
+
}
|
|
162
|
+
if (isRainConfig(settings.config)) {
|
|
163
|
+
if (getRainProperties().some(p => p.value === propertyName))
|
|
164
|
+
return 'rain';
|
|
165
|
+
}
|
|
166
|
+
const material = getMaterialProperties(settings.materialSettings).map(p => p.value);
|
|
167
|
+
if (material.includes(propertyName))
|
|
168
|
+
return 'material';
|
|
169
|
+
return null;
|
|
170
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare const gridUtils: {
|
|
2
|
+
snapToGrid: (position: any, cellSize: any) => any[];
|
|
3
|
+
worldToGrid: (worldPos: any, cellSize: any) => any[];
|
|
4
|
+
gridToWorld: (gridPos: any, cellSize: any) => any[];
|
|
5
|
+
isOnGridIntersection: (position: any, cellSize: any, tolerance?: number) => boolean;
|
|
6
|
+
isOnSectionLine: (position: any, cellSize: any, sectionSize: any, tolerance?: number) => boolean;
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=gridUtils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gridUtils.d.ts","sourceRoot":"","sources":["../../src/utils/gridUtils.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS;;;;;;CAyBrB,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export const gridUtils = {
|
|
2
|
+
snapToGrid: (position, cellSize) => [
|
|
3
|
+
Math.round(position[0] / cellSize) * cellSize,
|
|
4
|
+
position[1],
|
|
5
|
+
Math.round(position[2] / cellSize) * cellSize,
|
|
6
|
+
],
|
|
7
|
+
worldToGrid: (worldPos, cellSize) => [
|
|
8
|
+
Math.round(worldPos[0] / cellSize),
|
|
9
|
+
worldPos[1],
|
|
10
|
+
Math.round(worldPos[2] / cellSize),
|
|
11
|
+
],
|
|
12
|
+
gridToWorld: (gridPos, cellSize) => [
|
|
13
|
+
gridPos[0] * cellSize,
|
|
14
|
+
gridPos[1],
|
|
15
|
+
gridPos[2] * cellSize,
|
|
16
|
+
],
|
|
17
|
+
isOnGridIntersection: (position, cellSize, tolerance = 0.1) => {
|
|
18
|
+
const s = gridUtils.snapToGrid(position, cellSize);
|
|
19
|
+
return Math.sqrt((position[0] - s[0]) ** 2 + (position[2] - s[2]) ** 2) <= tolerance;
|
|
20
|
+
},
|
|
21
|
+
isOnSectionLine: (position, cellSize, sectionSize, tolerance = 0.1) => {
|
|
22
|
+
const sectionCells = sectionSize / cellSize;
|
|
23
|
+
const g = gridUtils.worldToGrid(position, cellSize);
|
|
24
|
+
return (g[0] % sectionCells < tolerance) || (g[2] % sectionCells < tolerance);
|
|
25
|
+
},
|
|
26
|
+
};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Object3D } from "three";
|
|
2
|
+
import { AnimationOptions } from "../types";
|
|
3
|
+
export interface EdgesAnimationContext {
|
|
4
|
+
/** Main scene object � edges group is searched among its direct children */
|
|
5
|
+
object: Object3D;
|
|
6
|
+
/** Cache for start values so we only resolve them once per animation */
|
|
7
|
+
startValuesCache: Record<string, any>;
|
|
8
|
+
}
|
|
9
|
+
export declare const DEBUG_EDGES_ANIMATIONS = false;
|
|
10
|
+
/**
|
|
11
|
+
* Process all active edge animations for an object.
|
|
12
|
+
* Finds the edges group on the object and animates material properties on it.
|
|
13
|
+
*
|
|
14
|
+
* @param ctx - Animation context (main object + start-value cache)
|
|
15
|
+
* @param animations - Array of AnimationOptions from animations.edges.animations
|
|
16
|
+
* @param currentTime - Current timestamp (Date.now())
|
|
17
|
+
* @param hovered - Whether the object is currently hovered
|
|
18
|
+
*/
|
|
19
|
+
export declare function handleEdgesAnimations(ctx: EdgesAnimationContext, animations: AnimationOptions[], currentTime: number, hovered: boolean): void;
|
|
20
|
+
//# sourceMappingURL=handleEdgesAnimations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handleEdgesAnimations.d.ts","sourceRoot":"","sources":["../../src/utils/handleEdgesAnimations.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,MAAM,WAAW,qBAAqB;IAClC,4EAA4E;IAC5E,MAAM,EAAE,QAAQ,CAAC;IACjB,wEAAwE;IACxE,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACzC;AAMD,eAAO,MAAM,sBAAsB,QAAQ,CAAC;AA+E5C;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,qBAAqB,EAAE,UAAU,EAAE,gBAAgB,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAkB7I"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
// =============================================================================
|
|
2
|
+
// HANDLE EDGES ANIMATIONS � Edges Material Animations Handler
|
|
3
|
+
// =============================================================================
|
|
4
|
+
//
|
|
5
|
+
// Pure functions for handling keyframe animations that target the edges group
|
|
6
|
+
// of an object (edge material color, opacity, and other material properties).
|
|
7
|
+
//
|
|
8
|
+
// Property paths use the `materialSettings.` prefix to mirror the UI:
|
|
9
|
+
// e.g. "materialSettings.color", "materialSettings.opacity"
|
|
10
|
+
// Geometric properties (tubeRadius, cubeSize) require a geometry rebuild and
|
|
11
|
+
// are intentionally skipped for per-frame animation.
|
|
12
|
+
//
|
|
13
|
+
import { applyEasing, gsapEasingMap } from './animationsUtils.js';
|
|
14
|
+
import { calculateTimeProgress, getMaterialPropertyValue, interpolateValue, applyMaterialPropertyToObject, } from './materialUtils.js';
|
|
15
|
+
import { EDGES_GROUP_KEY } from './materialApplicationUtils.js';
|
|
16
|
+
// =============================================================================
|
|
17
|
+
// DEBUG
|
|
18
|
+
// =============================================================================
|
|
19
|
+
export const DEBUG_EDGES_ANIMATIONS = false;
|
|
20
|
+
const log = (message, ...args) => {
|
|
21
|
+
if (DEBUG_EDGES_ANIMATIONS) {
|
|
22
|
+
console.log(`[EdgesAnimations] ${message}`, ...args);
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
// =============================================================================
|
|
26
|
+
// HELPERS
|
|
27
|
+
// =============================================================================
|
|
28
|
+
/**
|
|
29
|
+
* Strip the "materialSettings." prefix that the UI uses for clarity.
|
|
30
|
+
* Returns the bare Three.js material property name, or null for non-material
|
|
31
|
+
* properties that cannot be animated per-frame (tubeRadius, cubeSize).
|
|
32
|
+
*/
|
|
33
|
+
function resolveMaterialKey(property) {
|
|
34
|
+
if (property.startsWith('materialSettings.')) {
|
|
35
|
+
return property.slice('materialSettings.'.length);
|
|
36
|
+
}
|
|
37
|
+
// Geometric properties require geometry rebuild � skip
|
|
38
|
+
if (property === 'tubeRadius' || property === 'cubeSize') {
|
|
39
|
+
return null;
|
|
40
|
+
}
|
|
41
|
+
// Bare property name (fallback)
|
|
42
|
+
return property;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Find the edges group attached to the main object.
|
|
46
|
+
*/
|
|
47
|
+
function findEdgesGroup(object) {
|
|
48
|
+
for (const child of object.children) {
|
|
49
|
+
if (child.userData[EDGES_GROUP_KEY]) {
|
|
50
|
+
return child;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
return null;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Resolve start value for an animation.
|
|
57
|
+
* Priority: animation.from ? startValuesCache ? current edges material value
|
|
58
|
+
*/
|
|
59
|
+
function getStartValue(ctx, matKey, animation) {
|
|
60
|
+
const cacheKey = `edges.${matKey}`;
|
|
61
|
+
if (animation.from !== undefined)
|
|
62
|
+
return animation.from;
|
|
63
|
+
if (cacheKey in ctx.startValuesCache)
|
|
64
|
+
return ctx.startValuesCache[cacheKey];
|
|
65
|
+
const edgesGroup = findEdgesGroup(ctx.object);
|
|
66
|
+
if (!edgesGroup)
|
|
67
|
+
return null;
|
|
68
|
+
const value = getMaterialPropertyValue(edgesGroup, matKey);
|
|
69
|
+
ctx.startValuesCache[cacheKey] = value;
|
|
70
|
+
return value;
|
|
71
|
+
}
|
|
72
|
+
// =============================================================================
|
|
73
|
+
// SINGLE PROPERTY ANIMATION
|
|
74
|
+
// =============================================================================
|
|
75
|
+
function animateEdgesProperty(ctx, edgesGroup, matKey, animation, currentTime, hovered) {
|
|
76
|
+
const { to, duration, ease, loop = false, yoyo = false, active, triggerMode = 'always' } = animation;
|
|
77
|
+
if (!active || to === undefined)
|
|
78
|
+
return;
|
|
79
|
+
if (triggerMode === 'hover' && !hovered)
|
|
80
|
+
return;
|
|
81
|
+
const from = getStartValue(ctx, matKey, animation);
|
|
82
|
+
if (from === null || from === undefined) {
|
|
83
|
+
log('skipping � no start value', { matKey });
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
let timeProgress = calculateTimeProgress(currentTime, duration, yoyo, loop);
|
|
87
|
+
if (ease) {
|
|
88
|
+
const fn = gsapEasingMap[ease] || ease;
|
|
89
|
+
timeProgress = applyEasing(fn, timeProgress);
|
|
90
|
+
}
|
|
91
|
+
const interpolated = interpolateValue(matKey, from, to, timeProgress);
|
|
92
|
+
applyMaterialPropertyToObject(edgesGroup, matKey, interpolated);
|
|
93
|
+
log('animated edges property', { matKey, from, to, interpolated, progress: timeProgress });
|
|
94
|
+
}
|
|
95
|
+
// =============================================================================
|
|
96
|
+
// MAIN HANDLER
|
|
97
|
+
// =============================================================================
|
|
98
|
+
/**
|
|
99
|
+
* Process all active edge animations for an object.
|
|
100
|
+
* Finds the edges group on the object and animates material properties on it.
|
|
101
|
+
*
|
|
102
|
+
* @param ctx - Animation context (main object + start-value cache)
|
|
103
|
+
* @param animations - Array of AnimationOptions from animations.edges.animations
|
|
104
|
+
* @param currentTime - Current timestamp (Date.now())
|
|
105
|
+
* @param hovered - Whether the object is currently hovered
|
|
106
|
+
*/
|
|
107
|
+
export function handleEdgesAnimations(ctx, animations, currentTime, hovered) {
|
|
108
|
+
if (animations.length === 0)
|
|
109
|
+
return;
|
|
110
|
+
const edgesGroup = findEdgesGroup(ctx.object);
|
|
111
|
+
if (!edgesGroup) {
|
|
112
|
+
log('no edges group found on object');
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
for (const animation of animations) {
|
|
116
|
+
if (!animation.active)
|
|
117
|
+
continue;
|
|
118
|
+
const matKey = resolveMaterialKey(animation.property);
|
|
119
|
+
if (!matKey) {
|
|
120
|
+
log('skipping non-animatable edges property', { property: animation.property });
|
|
121
|
+
continue;
|
|
122
|
+
}
|
|
123
|
+
animateEdgesProperty(ctx, edgesGroup, matKey, animation, currentTime, hovered);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Object3D } from "three";
|
|
2
|
+
import type { MouseMoveProperty } from "../types/objectSettings";
|
|
3
|
+
export interface EdgesMouseMoveContext {
|
|
4
|
+
object: Object3D;
|
|
5
|
+
/** Optional pre-resolved edges materialSettings used for base-value lookup. */
|
|
6
|
+
edgesMaterialSettings?: Record<string, any>;
|
|
7
|
+
}
|
|
8
|
+
export declare function handleEdgesMouseMove(ctx: EdgesMouseMoveContext, properties: MouseMoveProperty[], pointer: {
|
|
9
|
+
x: number;
|
|
10
|
+
y: number;
|
|
11
|
+
}): void;
|
|
12
|
+
//# sourceMappingURL=handleEdgesMouseMove.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handleEdgesMouseMove.d.ts","sourceRoot":"","sources":["../../src/utils/handleEdgesMouseMove.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,MAAM,WAAW,qBAAqB;IAClC,MAAM,EAAE,QAAQ,CAAC;IACjB,+EAA+E;IAC/E,qBAAqB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC/C;AAUD,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,qBAAqB,EAAE,UAAU,EAAE,iBAAiB,EAAE,EAAE,OAAO,EAAE;IAC/F,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACb,GAAG,IAAI,CAkBf"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
// =============================================================================
|
|
2
|
+
// HANDLE EDGES MOUSE MOVE — pointer-driven edges material property updates
|
|
3
|
+
// =============================================================================
|
|
4
|
+
//
|
|
5
|
+
// Sibling of handleEdgesAnimations. Finds the edges group attached to the
|
|
6
|
+
// object and applies pointer-interpolated values to its material. Geometric
|
|
7
|
+
// properties (tubeRadius, cubeSize) require a geometry rebuild and are
|
|
8
|
+
// intentionally skipped for per-frame application.
|
|
9
|
+
//
|
|
10
|
+
import { applyMaterialPropertyToObject } from './materialUtils.js';
|
|
11
|
+
import { EDGES_GROUP_KEY } from './materialApplicationUtils.js';
|
|
12
|
+
import { interpolateMouseMoveProperty } from './mouseMoveUtils.js';
|
|
13
|
+
function findEdgesGroup(object) {
|
|
14
|
+
for (const child of object.children) {
|
|
15
|
+
if (child.userData?.[EDGES_GROUP_KEY])
|
|
16
|
+
return child;
|
|
17
|
+
}
|
|
18
|
+
return null;
|
|
19
|
+
}
|
|
20
|
+
export function handleEdgesMouseMove(ctx, properties, pointer) {
|
|
21
|
+
if (!properties.length)
|
|
22
|
+
return;
|
|
23
|
+
const edgesGroup = findEdgesGroup(ctx.object);
|
|
24
|
+
if (!edgesGroup)
|
|
25
|
+
return;
|
|
26
|
+
for (const { property, enabled, propertySettings } of properties) {
|
|
27
|
+
if (!property || !enabled)
|
|
28
|
+
continue;
|
|
29
|
+
if (property === 'tubeRadius' || property === 'cubeSize')
|
|
30
|
+
continue;
|
|
31
|
+
const { axis = 'both', sensitivity = 1, inverted = false, min, max } = propertySettings || {};
|
|
32
|
+
const baseValue = ctx.edgesMaterialSettings?.[property];
|
|
33
|
+
if (baseValue === undefined)
|
|
34
|
+
continue;
|
|
35
|
+
const next = interpolateMouseMoveProperty(baseValue, min, max, pointer, axis, sensitivity, inverted);
|
|
36
|
+
applyMaterialPropertyToObject(edgesGroup, property, next);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import * as THREE from 'three';
|
|
2
|
+
import { AnimationOptions } from '../types';
|
|
3
|
+
export declare const DEBUG_GENERATIVE_EFFECTS = false;
|
|
4
|
+
/**
|
|
5
|
+
* Animate config properties of a generative effect by directly mutating
|
|
6
|
+
* its ShaderMaterial uniforms — no React re-renders, runs at 60fps.
|
|
7
|
+
*
|
|
8
|
+
* @param materials - All ShaderMaterial instances belonging to this effect.
|
|
9
|
+
* @param animations - Keyframe animations from GenerativeEffectSettings.animations.
|
|
10
|
+
* @param startValuesCache - Ref-backed cache to hold initial values (reset externally when config changes).
|
|
11
|
+
* @param currentTime - Milliseconds since epoch (Date.now()), consistent with other handlers.
|
|
12
|
+
* @param hovered - Whether the parent object is currently hovered.
|
|
13
|
+
*/
|
|
14
|
+
export declare function applyGenerativeAnimations(materials: THREE.ShaderMaterial[], animations: AnimationOptions[] | undefined, startValuesCache: Record<string, any>, currentTime: number, hovered: boolean): void;
|
|
15
|
+
//# sourceMappingURL=handleGenerativeEffectsAnimations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handleGenerativeEffectsAnimations.d.ts","sourceRoot":"","sources":["../../src/utils/handleGenerativeEffectsAnimations.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAM5C,eAAO,MAAM,wBAAwB,QAAQ,CAAC;AAgH9C;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,KAAK,CAAC,cAAc,EAAE,EAAE,UAAU,EAAE,gBAAgB,EAAE,GAAG,SAAS,EAAE,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAqE3M"}
|
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
// =============================================================================
|
|
2
|
+
// HANDLE GENERATIVE EFFECTS ANIMATIONS — per-effect utility
|
|
3
|
+
// =============================================================================
|
|
4
|
+
//
|
|
5
|
+
// Called from inside each generative effect component's own useFrame loop.
|
|
6
|
+
// Each effect component holds direct refs to its ShaderMaterials and passes
|
|
7
|
+
// them here, avoiding fragile scene-graph traversal.
|
|
8
|
+
//
|
|
9
|
+
// Usage (inside an effect component's useFrame):
|
|
10
|
+
//
|
|
11
|
+
// useFrame((state) => {
|
|
12
|
+
// const t = state.clock.getElapsedTime();
|
|
13
|
+
// mat.uniforms.u_time.value = t;
|
|
14
|
+
//
|
|
15
|
+
// if (animations?.length) {
|
|
16
|
+
// applyGenerativeAnimations([mat], animations, startValuesCacheRef.current, Date.now(), hovered ?? false);
|
|
17
|
+
// }
|
|
18
|
+
// });
|
|
19
|
+
//
|
|
20
|
+
import * as THREE from 'three';
|
|
21
|
+
import { MathUtils } from 'three';
|
|
22
|
+
import { calculateTimeProgress } from './materialUtils.js';
|
|
23
|
+
import { applyEasing, gsapEasingMap } from './animationsUtils.js';
|
|
24
|
+
// =============================================================================
|
|
25
|
+
// DEBUG
|
|
26
|
+
// =============================================================================
|
|
27
|
+
export const DEBUG_GENERATIVE_EFFECTS = false;
|
|
28
|
+
const log = (message, ...args) => {
|
|
29
|
+
if (DEBUG_GENERATIVE_EFFECTS) {
|
|
30
|
+
console.log(`[GenerativeEffectsAnimations] ${message}`, ...args);
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
// Always-on log: prints once per unique key, not every frame
|
|
34
|
+
const _loggedOnce = new Set();
|
|
35
|
+
const logOnce = (key, message, ...args) => {
|
|
36
|
+
if (_loggedOnce.has(key))
|
|
37
|
+
return;
|
|
38
|
+
_loggedOnce.add(key);
|
|
39
|
+
console.log(`[GenerativeEffectsAnimations] ${message}`, ...args);
|
|
40
|
+
};
|
|
41
|
+
const warnOnce = (key, message, ...args) => {
|
|
42
|
+
if (_loggedOnce.has(key))
|
|
43
|
+
return;
|
|
44
|
+
_loggedOnce.add(key);
|
|
45
|
+
console.warn(`[GenerativeEffectsAnimations] ${message}`, ...args);
|
|
46
|
+
};
|
|
47
|
+
// =============================================================================
|
|
48
|
+
// HELPERS
|
|
49
|
+
// =============================================================================
|
|
50
|
+
/**
|
|
51
|
+
* Returns candidate uniform names for a given config property name.
|
|
52
|
+
* Handles both conventions found across effect shaders:
|
|
53
|
+
* intensity → uIntensity (camelCase prefix)
|
|
54
|
+
* speed → u_speed (underscore prefix, used in several shaders)
|
|
55
|
+
*/
|
|
56
|
+
function candidateUniformNames(property) {
|
|
57
|
+
const capitalized = property.charAt(0).toUpperCase() + property.slice(1);
|
|
58
|
+
return [`u${capitalized}`, `u_${property}`];
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Find which uniform name actually exists on the provided materials.
|
|
62
|
+
*/
|
|
63
|
+
function findUniformName(materials, property) {
|
|
64
|
+
const candidates = candidateUniformNames(property);
|
|
65
|
+
for (const candidate of candidates) {
|
|
66
|
+
for (const mat of materials) {
|
|
67
|
+
if (mat.uniforms[candidate] !== undefined) {
|
|
68
|
+
return candidate;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return null;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Read the current value of a uniform across materials (returns the first match).
|
|
76
|
+
* For Color / Vector3 uniforms, returns a hex string so it can be used as a start value.
|
|
77
|
+
*/
|
|
78
|
+
function readUniformValue(materials, uniformName) {
|
|
79
|
+
for (const mat of materials) {
|
|
80
|
+
const u = mat.uniforms[uniformName];
|
|
81
|
+
if (u !== undefined) {
|
|
82
|
+
if (u.value instanceof THREE.Color) {
|
|
83
|
+
return '#' + u.value.getHexString();
|
|
84
|
+
}
|
|
85
|
+
// Vector3 color uniforms (e.g. uColor stored as vec3 r/g/b)
|
|
86
|
+
if (u.value instanceof THREE.Vector3) {
|
|
87
|
+
_colorFrom.setRGB(u.value.x, u.value.y, u.value.z);
|
|
88
|
+
return '#' + _colorFrom.getHexString();
|
|
89
|
+
}
|
|
90
|
+
return u.value;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
return undefined;
|
|
94
|
+
}
|
|
95
|
+
// Reusable Color instances — avoid per-frame allocation
|
|
96
|
+
const _colorFrom = new THREE.Color();
|
|
97
|
+
const _colorTo = new THREE.Color();
|
|
98
|
+
/**
|
|
99
|
+
* Write an animated numeric value to all materials that carry the uniform.
|
|
100
|
+
*/
|
|
101
|
+
function applyNumericToMaterials(materials, uniformName, value) {
|
|
102
|
+
for (const mat of materials) {
|
|
103
|
+
const u = mat.uniforms[uniformName];
|
|
104
|
+
if (u !== undefined) {
|
|
105
|
+
u.value = value;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Write a linearly interpolated color to all materials that carry the uniform.
|
|
111
|
+
* Handles both THREE.Color values and Vector3-style uniforms.
|
|
112
|
+
*/
|
|
113
|
+
function applyColorToMaterials(materials, uniformName, from, to, t) {
|
|
114
|
+
_colorFrom.set(from);
|
|
115
|
+
_colorTo.set(to);
|
|
116
|
+
const r = MathUtils.lerp(_colorFrom.r, _colorTo.r, t);
|
|
117
|
+
const g = MathUtils.lerp(_colorFrom.g, _colorTo.g, t);
|
|
118
|
+
const b = MathUtils.lerp(_colorFrom.b, _colorTo.b, t);
|
|
119
|
+
for (const mat of materials) {
|
|
120
|
+
const u = mat.uniforms[uniformName];
|
|
121
|
+
if (u !== undefined) {
|
|
122
|
+
const val = u.value;
|
|
123
|
+
if (val instanceof THREE.Color) {
|
|
124
|
+
val.setRGB(r, g, b);
|
|
125
|
+
}
|
|
126
|
+
else if (val && typeof val === 'object' && 'x' in val) {
|
|
127
|
+
// THREE.Vector3 uniform
|
|
128
|
+
val.set(r, g, b);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
function isColorValue(value) {
|
|
134
|
+
return typeof value === 'string' && (value.startsWith('#') || value.startsWith('rgb'));
|
|
135
|
+
}
|
|
136
|
+
// =============================================================================
|
|
137
|
+
// MAIN EXPORT
|
|
138
|
+
// =============================================================================
|
|
139
|
+
/**
|
|
140
|
+
* Animate config properties of a generative effect by directly mutating
|
|
141
|
+
* its ShaderMaterial uniforms — no React re-renders, runs at 60fps.
|
|
142
|
+
*
|
|
143
|
+
* @param materials - All ShaderMaterial instances belonging to this effect.
|
|
144
|
+
* @param animations - Keyframe animations from GenerativeEffectSettings.animations.
|
|
145
|
+
* @param startValuesCache - Ref-backed cache to hold initial values (reset externally when config changes).
|
|
146
|
+
* @param currentTime - Milliseconds since epoch (Date.now()), consistent with other handlers.
|
|
147
|
+
* @param hovered - Whether the parent object is currently hovered.
|
|
148
|
+
*/
|
|
149
|
+
export function applyGenerativeAnimations(materials, animations, startValuesCache, currentTime, hovered) {
|
|
150
|
+
if (!animations || animations.length === 0)
|
|
151
|
+
return;
|
|
152
|
+
if (materials.length === 0)
|
|
153
|
+
return;
|
|
154
|
+
logOnce('called', `Processing ${animations.length} animation(s) across ${materials.length} material(s)`);
|
|
155
|
+
for (const animation of animations) {
|
|
156
|
+
try {
|
|
157
|
+
const { property, to, duration, ease, loop = false, yoyo = false, active, triggerMode = 'always', } = animation;
|
|
158
|
+
// active===undefined means not explicitly disabled — treat as active
|
|
159
|
+
if (active === false) {
|
|
160
|
+
log(`Skipping "${property}": active=false`);
|
|
161
|
+
continue;
|
|
162
|
+
}
|
|
163
|
+
if (triggerMode === 'hover' && !hovered) {
|
|
164
|
+
log(`Skipping "${property}": triggerMode=hover but not hovered`);
|
|
165
|
+
continue;
|
|
166
|
+
}
|
|
167
|
+
if (to === undefined) {
|
|
168
|
+
warnOnce(`no-to-${property}`, `Skipping "${property}": no 'to' value defined`);
|
|
169
|
+
continue;
|
|
170
|
+
}
|
|
171
|
+
// Find the uniform that corresponds to this property
|
|
172
|
+
const uniformName = findUniformName(materials, property);
|
|
173
|
+
if (!uniformName) {
|
|
174
|
+
warnOnce(`no-uniform-${property}`, `No uniform found for property "${property}" (tried: ${candidateUniformNames(property).join(', ')}) — available uniforms on mat[0]: ${Object.keys(materials[0]?.uniforms ?? {}).join(', ')}`);
|
|
175
|
+
continue;
|
|
176
|
+
}
|
|
177
|
+
// Initialize start value from the current uniform value (once per animation lifetime)
|
|
178
|
+
if (!(property in startValuesCache)) {
|
|
179
|
+
const currentVal = readUniformValue(materials, uniformName);
|
|
180
|
+
startValuesCache[property] = animation.from !== undefined ? animation.from : currentVal;
|
|
181
|
+
log('cached start value', { property, uniformName, startValue: startValuesCache[property] });
|
|
182
|
+
}
|
|
183
|
+
const from = startValuesCache[property];
|
|
184
|
+
if (from === undefined || from === null)
|
|
185
|
+
continue;
|
|
186
|
+
// Calculate progress
|
|
187
|
+
let timeProgress = calculateTimeProgress(currentTime, duration, yoyo, loop);
|
|
188
|
+
if (ease) {
|
|
189
|
+
const easingFunctionName = gsapEasingMap[ease] || ease;
|
|
190
|
+
timeProgress = applyEasing(easingFunctionName, timeProgress);
|
|
191
|
+
}
|
|
192
|
+
// Apply — guard against type mismatches between 'from' and the actual uniform
|
|
193
|
+
if (isColorValue(from)) {
|
|
194
|
+
if (typeof to !== 'string') {
|
|
195
|
+
warnOnce(`bad-to-${property}`, `Color property "${property}" has non-string 'to' value:`, to);
|
|
196
|
+
continue;
|
|
197
|
+
}
|
|
198
|
+
applyColorToMaterials(materials, uniformName, from, to, timeProgress);
|
|
199
|
+
}
|
|
200
|
+
else if (typeof from === 'number') {
|
|
201
|
+
if (typeof to !== 'number') {
|
|
202
|
+
warnOnce(`bad-to-num-${property}`, `Numeric property "${property}" has non-numeric 'to' value:`, to);
|
|
203
|
+
continue;
|
|
204
|
+
}
|
|
205
|
+
const interpolated = MathUtils.lerp(from, to, timeProgress);
|
|
206
|
+
applyNumericToMaterials(materials, uniformName, interpolated);
|
|
207
|
+
}
|
|
208
|
+
else {
|
|
209
|
+
warnOnce(`bad-from-${property}`, `Unhandled 'from' type for property "${property}":`, typeof from, from);
|
|
210
|
+
continue;
|
|
211
|
+
}
|
|
212
|
+
log('animated', { property, uniformName, from, to, timeProgress });
|
|
213
|
+
}
|
|
214
|
+
catch (err) {
|
|
215
|
+
console.error(`[GenerativeEffectsAnimations] Error animating property "${animation.property}":`, err);
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
}
|