@3driseai/3drise-viewer 0.1.27 → 0.1.29
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/animationsV2/ClipPlayer.d.ts.map +1 -1
- package/dist/animationsV2/ClipPlayer.js +13 -9
- package/dist/animationsV2/ClipsRuntime.d.ts +44 -3
- package/dist/animationsV2/ClipsRuntime.d.ts.map +1 -1
- package/dist/animationsV2/ClipsRuntime.js +173 -55
- package/dist/animationsV2/appliers.d.ts.map +1 -1
- package/dist/animationsV2/appliers.js +21 -5
- package/dist/animationsV2/index.d.ts +1 -1
- package/dist/animationsV2/index.d.ts.map +1 -1
- package/dist/animationsV2/normalize.d.ts.map +1 -1
- package/dist/animationsV2/normalize.js +7 -3
- package/dist/animationsV2/sequenceUtils.d.ts +44 -6
- package/dist/animationsV2/sequenceUtils.d.ts.map +1 -1
- package/dist/animationsV2/sequenceUtils.js +58 -12
- package/dist/animationsV2/types.d.ts +22 -12
- package/dist/animationsV2/types.d.ts.map +1 -1
- package/dist/api/sceneHandle.d.ts +35 -1
- package/dist/api/sceneHandle.d.ts.map +1 -1
- package/dist/api/sceneHandle.js +88 -17
- package/dist/components/AdvancedGrid.d.ts +1 -5
- package/dist/components/AdvancedGrid.d.ts.map +1 -1
- package/dist/components/AdvancedGrid.js +6 -35
- package/dist/components/AnimatedObject.d.ts.map +1 -1
- package/dist/components/AnimatedObject.js +9 -4
- package/dist/components/ApollonianGrid.d.ts +25 -0
- package/dist/components/ApollonianGrid.d.ts.map +1 -0
- package/dist/components/ApollonianGrid.js +55 -0
- package/dist/components/ChladniGrid.d.ts +1 -1
- package/dist/components/ChladniGrid.d.ts.map +1 -1
- package/dist/components/ChladniGrid.js +6 -35
- package/dist/components/CircuitGrid.d.ts +1 -1
- package/dist/components/CircuitGrid.d.ts.map +1 -1
- package/dist/components/CircuitGrid.js +6 -34
- package/dist/components/ConformalGrid.d.ts +25 -0
- package/dist/components/ConformalGrid.d.ts.map +1 -0
- package/dist/components/ConformalGrid.js +66 -0
- package/dist/components/ContourGrid.d.ts +1 -1
- package/dist/components/ContourGrid.d.ts.map +1 -1
- package/dist/components/ContourGrid.js +6 -34
- package/dist/components/CustomPrimitive.js +1 -1
- package/dist/components/EnvironmentObject.d.ts.map +1 -1
- package/dist/components/EnvironmentObject.js +9 -7
- package/dist/components/FlowNetGrid.d.ts +1 -1
- package/dist/components/FlowNetGrid.d.ts.map +1 -1
- package/dist/components/FlowNetGrid.js +6 -34
- package/dist/components/FractalGrid.d.ts +1 -1
- package/dist/components/FractalGrid.d.ts.map +1 -1
- package/dist/components/FractalGrid.js +6 -37
- package/dist/components/Galaxy.d.ts.map +1 -1
- package/dist/components/Galaxy.js +9 -23
- package/dist/components/GirihGrid.d.ts +1 -1
- package/dist/components/GirihGrid.d.ts.map +1 -1
- package/dist/components/GirihGrid.js +6 -35
- package/dist/components/GravWaveGrid.d.ts +1 -1
- package/dist/components/GravWaveGrid.d.ts.map +1 -1
- package/dist/components/GravWaveGrid.js +6 -35
- package/dist/components/GridsGenerator.d.ts +2 -2
- package/dist/components/GridsGenerator.d.ts.map +1 -1
- package/dist/components/GridsGenerator.js +21 -0
- package/dist/components/HexGrid.d.ts +1 -5
- package/dist/components/HexGrid.d.ts.map +1 -1
- package/dist/components/HexGrid.js +6 -36
- package/dist/components/HilbertGrid.d.ts +25 -0
- package/dist/components/HilbertGrid.d.ts.map +1 -0
- package/dist/components/HilbertGrid.js +66 -0
- package/dist/components/HyperbolicGrid.d.ts +1 -1
- package/dist/components/HyperbolicGrid.d.ts.map +1 -1
- package/dist/components/HyperbolicGrid.js +6 -34
- package/dist/components/LandObject.d.ts +9 -0
- package/dist/components/LandObject.d.ts.map +1 -0
- package/dist/components/LandObject.js +15 -0
- package/dist/components/LensingGrid.d.ts +25 -0
- package/dist/components/LensingGrid.d.ts.map +1 -0
- package/dist/components/LensingGrid.js +55 -0
- package/dist/components/LightsManager.d.ts.map +1 -1
- package/dist/components/LightsManager.js +8 -0
- package/dist/components/ModelBoundary.d.ts +2 -0
- package/dist/components/ModelBoundary.d.ts.map +1 -1
- package/dist/components/ModelBoundary.js +3 -0
- package/dist/components/ModelPrimitive.d.ts.map +1 -1
- package/dist/components/ModelPrimitive.js +6 -0
- package/dist/components/MoireGrid.d.ts +1 -1
- package/dist/components/MoireGrid.d.ts.map +1 -1
- package/dist/components/MoireGrid.js +6 -35
- package/dist/components/MoonDisc.d.ts +11 -0
- package/dist/components/MoonDisc.d.ts.map +1 -0
- package/dist/components/MoonDisc.js +128 -0
- package/dist/components/ObjectNode.d.ts.map +1 -1
- package/dist/components/ObjectNode.js +15 -4
- package/dist/components/ObjectsRenderer.d.ts.map +1 -1
- package/dist/components/ObjectsRenderer.js +7 -5
- package/dist/components/OceanBuilder.d.ts.map +1 -1
- package/dist/components/OceanBuilder.js +2 -0
- package/dist/components/ParastichyGrid.d.ts +25 -0
- package/dist/components/ParastichyGrid.d.ts.map +1 -0
- package/dist/components/ParastichyGrid.js +55 -0
- package/dist/components/PhyllotaxisGrid.d.ts +25 -0
- package/dist/components/PhyllotaxisGrid.d.ts.map +1 -0
- package/dist/components/PhyllotaxisGrid.js +66 -0
- package/dist/components/ProjectLoader.d.ts +5 -3
- package/dist/components/ProjectLoader.d.ts.map +1 -1
- package/dist/components/ProjectLoader.js +6 -3
- package/dist/components/QuasiGrid.d.ts +1 -1
- package/dist/components/QuasiGrid.d.ts.map +1 -1
- package/dist/components/QuasiGrid.js +6 -33
- package/dist/components/RadarGrid.d.ts +1 -1
- package/dist/components/RadarGrid.d.ts.map +1 -1
- package/dist/components/RadarGrid.js +6 -34
- package/dist/components/ReactionDiffusionGrid.d.ts +1 -1
- package/dist/components/ReactionDiffusionGrid.d.ts.map +1 -1
- package/dist/components/ReactionDiffusionGrid.js +6 -35
- package/dist/components/SceneBuilder.d.ts +25 -3
- package/dist/components/SceneBuilder.d.ts.map +1 -1
- package/dist/components/SceneBuilder.js +68 -38
- package/dist/components/SkyController.d.ts +25 -1
- package/dist/components/SkyController.d.ts.map +1 -1
- package/dist/components/SkyController.js +189 -130
- package/dist/components/SkyMesh.d.ts.map +1 -1
- package/dist/components/SkyMesh.js +26 -1
- package/dist/components/SkyStars.d.ts +11 -0
- package/dist/components/SkyStars.d.ts.map +1 -0
- package/dist/components/SkyStars.js +187 -0
- package/dist/components/SkySystem.d.ts +3 -3
- package/dist/components/SkySystem.d.ts.map +1 -1
- package/dist/components/SkySystem.js +8 -2
- package/dist/components/Sun.d.ts +15 -1
- package/dist/components/Sun.d.ts.map +1 -1
- package/dist/components/Sun.js +64 -3
- package/dist/components/SunLight.d.ts +6 -1
- package/dist/components/SunLight.d.ts.map +1 -1
- package/dist/components/SunLight.js +96 -44
- package/dist/components/TerrainBuilder.d.ts.map +1 -1
- package/dist/components/TerrainBuilder.js +2 -0
- package/dist/components/TextGenerator.d.ts +9 -0
- package/dist/components/TextGenerator.d.ts.map +1 -0
- package/dist/components/TextGenerator.js +29 -0
- package/dist/components/TruchetGrid.d.ts +25 -0
- package/dist/components/TruchetGrid.d.ts.map +1 -0
- package/dist/components/TruchetGrid.js +55 -0
- package/dist/components/VoronoiGrid.d.ts +1 -1
- package/dist/components/VoronoiGrid.d.ts.map +1 -1
- package/dist/components/VoronoiGrid.js +6 -33
- package/dist/components/WallpaperGrid.d.ts +1 -1
- package/dist/components/WallpaperGrid.d.ts.map +1 -1
- package/dist/components/WallpaperGrid.js +6 -35
- package/dist/components/environment/Rain.d.ts +15 -0
- package/dist/components/environment/Rain.d.ts.map +1 -0
- package/dist/components/environment/Rain.js +110 -0
- package/dist/components/environment/Rainbow.d.ts +20 -0
- package/dist/components/environment/Rainbow.d.ts.map +1 -0
- package/dist/components/environment/Rainbow.js +974 -0
- package/dist/components/environment/Sandstorm.d.ts +20 -0
- package/dist/components/environment/Sandstorm.d.ts.map +1 -0
- package/dist/components/environment/Sandstorm.js +776 -0
- package/dist/components/environment/Snow.d.ts +20 -0
- package/dist/components/environment/Snow.d.ts.map +1 -0
- package/dist/components/environment/Snow.js +609 -0
- package/dist/components/environment/Thunderstorm.d.ts +20 -0
- package/dist/components/environment/Thunderstorm.d.ts.map +1 -0
- package/dist/components/environment/Thunderstorm.js +731 -0
- package/dist/components/environment/Tornado.d.ts +20 -0
- package/dist/components/environment/Tornado.d.ts.map +1 -0
- package/dist/components/environment/Tornado.js +762 -0
- package/dist/components/environment/index.d.ts +13 -0
- package/dist/components/environment/index.d.ts.map +1 -0
- package/dist/components/environment/index.js +7 -0
- package/dist/components/index.d.ts +24 -10
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +15 -6
- package/dist/components/land/LandPatch.d.ts +15 -0
- package/dist/components/land/LandPatch.d.ts.map +1 -0
- package/dist/components/land/LandPatch.js +170 -0
- package/dist/components/land/index.d.ts +3 -0
- package/dist/components/land/index.d.ts.map +1 -0
- package/dist/components/land/index.js +1 -0
- package/dist/components/space/Earth.d.ts +16 -0
- package/dist/components/space/Earth.d.ts.map +1 -0
- package/dist/components/space/Earth.js +75 -0
- package/dist/components/space/ShootingStar.d.ts +21 -0
- package/dist/components/space/ShootingStar.d.ts.map +1 -0
- package/dist/components/space/ShootingStar.js +101 -0
- package/dist/components/space/ShootingStars.d.ts +16 -0
- package/dist/components/space/ShootingStars.d.ts.map +1 -0
- package/dist/components/space/ShootingStars.js +71 -0
- package/dist/components/space/SolarSystem.d.ts +16 -0
- package/dist/components/space/SolarSystem.d.ts.map +1 -0
- package/dist/components/space/SolarSystem.js +141 -0
- package/dist/components/space/Stars.d.ts +20 -0
- package/dist/components/space/Stars.d.ts.map +1 -0
- package/dist/components/space/Stars.js +160 -0
- package/dist/components/space/index.d.ts +11 -0
- package/dist/components/space/index.d.ts.map +1 -0
- package/dist/components/space/index.js +8 -0
- package/dist/components/terrain/TerrainSurface.d.ts.map +1 -1
- package/dist/components/terrain/TerrainSurface.js +27 -3
- package/dist/components/terrain/types.d.ts +5 -1
- package/dist/components/terrain/types.d.ts.map +1 -1
- package/dist/components/text/BurnAwayText.d.ts +15 -0
- package/dist/components/text/BurnAwayText.d.ts.map +1 -0
- package/dist/components/text/BurnAwayText.js +4 -0
- package/dist/components/text/ChalkboardText.d.ts +15 -0
- package/dist/components/text/ChalkboardText.d.ts.map +1 -0
- package/dist/components/text/ChalkboardText.js +4 -0
- package/dist/components/text/ConstellationText.d.ts +15 -0
- package/dist/components/text/ConstellationText.d.ts.map +1 -0
- package/dist/components/text/ConstellationText.js +4 -0
- package/dist/components/text/EmbroideryText.d.ts +15 -0
- package/dist/components/text/EmbroideryText.d.ts.map +1 -0
- package/dist/components/text/EmbroideryText.js +4 -0
- package/dist/components/text/FourierSketchText.d.ts +15 -0
- package/dist/components/text/FourierSketchText.d.ts.map +1 -0
- package/dist/components/text/FourierSketchText.js +4 -0
- package/dist/components/text/FrostGrowthText.d.ts +15 -0
- package/dist/components/text/FrostGrowthText.d.ts.map +1 -0
- package/dist/components/text/FrostGrowthText.js +4 -0
- package/dist/components/text/HandwritingText.d.ts +15 -0
- package/dist/components/text/HandwritingText.d.ts.map +1 -0
- package/dist/components/text/HandwritingText.js +4 -0
- package/dist/components/text/InkBleedText.d.ts +15 -0
- package/dist/components/text/InkBleedText.d.ts.map +1 -0
- package/dist/components/text/InkBleedText.js +4 -0
- package/dist/components/text/LightPaintingText.d.ts +15 -0
- package/dist/components/text/LightPaintingText.d.ts.map +1 -0
- package/dist/components/text/LightPaintingText.js +4 -0
- package/dist/components/text/LiquidMetalText.d.ts +15 -0
- package/dist/components/text/LiquidMetalText.d.ts.map +1 -0
- package/dist/components/text/LiquidMetalText.js +4 -0
- package/dist/components/text/NeonTubeText.d.ts +15 -0
- package/dist/components/text/NeonTubeText.d.ts.map +1 -0
- package/dist/components/text/NeonTubeText.js +4 -0
- package/dist/components/text/PlasmaDischargeText.d.ts +15 -0
- package/dist/components/text/PlasmaDischargeText.d.ts.map +1 -0
- package/dist/components/text/PlasmaDischargeText.js +4 -0
- package/dist/components/text/TextObjectView.d.ts +12 -0
- package/dist/components/text/TextObjectView.d.ts.map +1 -0
- package/dist/components/text/TextObjectView.js +11 -0
- package/dist/components/text/engine/fieldkit.d.ts +24 -0
- package/dist/components/text/engine/fieldkit.d.ts.map +1 -0
- package/dist/components/text/engine/fieldkit.js +201 -0
- package/dist/components/text/engine/glyphs.d.ts +19 -0
- package/dist/components/text/engine/glyphs.d.ts.map +1 -0
- package/dist/components/text/engine/glyphs.js +269 -0
- package/dist/components/text/engine/looks/burnAway.d.ts +144 -0
- package/dist/components/text/engine/looks/burnAway.d.ts.map +1 -0
- package/dist/components/text/engine/looks/burnAway.js +593 -0
- package/dist/components/text/engine/looks/chalkboard.d.ts +135 -0
- package/dist/components/text/engine/looks/chalkboard.d.ts.map +1 -0
- package/dist/components/text/engine/looks/chalkboard.js +426 -0
- package/dist/components/text/engine/looks/constellation.d.ts +111 -0
- package/dist/components/text/engine/looks/constellation.d.ts.map +1 -0
- package/dist/components/text/engine/looks/constellation.js +496 -0
- package/dist/components/text/engine/looks/embroidery.d.ts +165 -0
- package/dist/components/text/engine/looks/embroidery.d.ts.map +1 -0
- package/dist/components/text/engine/looks/embroidery.js +645 -0
- package/dist/components/text/engine/looks/frostGrowth.d.ts +109 -0
- package/dist/components/text/engine/looks/frostGrowth.d.ts.map +1 -0
- package/dist/components/text/engine/looks/frostGrowth.js +727 -0
- package/dist/components/text/engine/looks/index.d.ts +2 -0
- package/dist/components/text/engine/looks/index.d.ts.map +1 -0
- package/dist/components/text/engine/looks/index.js +48 -0
- package/dist/components/text/engine/looks/inkBleed.d.ts +103 -0
- package/dist/components/text/engine/looks/inkBleed.d.ts.map +1 -0
- package/dist/components/text/engine/looks/inkBleed.js +590 -0
- package/dist/components/text/engine/looks/lightPainting.d.ts +132 -0
- package/dist/components/text/engine/looks/lightPainting.d.ts.map +1 -0
- package/dist/components/text/engine/looks/lightPainting.js +567 -0
- package/dist/components/text/engine/looks/liquidMetal.d.ts +135 -0
- package/dist/components/text/engine/looks/liquidMetal.d.ts.map +1 -0
- package/dist/components/text/engine/looks/liquidMetal.js +655 -0
- package/dist/components/text/engine/looks/plasmaDischarge.d.ts +126 -0
- package/dist/components/text/engine/looks/plasmaDischarge.d.ts.map +1 -0
- package/dist/components/text/engine/looks/plasmaDischarge.js +763 -0
- package/dist/components/text/engine/methods.d.ts +19 -0
- package/dist/components/text/engine/methods.d.ts.map +1 -0
- package/dist/components/text/engine/methods.js +126 -0
- package/dist/components/text/engine/playback.d.ts +40 -0
- package/dist/components/text/engine/playback.d.ts.map +1 -0
- package/dist/components/text/engine/playback.js +114 -0
- package/dist/components/text/engine/ribbon.d.ts +58 -0
- package/dist/components/text/engine/ribbon.d.ts.map +1 -0
- package/dist/components/text/engine/ribbon.js +250 -0
- package/dist/components/text/engine/variants.d.ts +159 -0
- package/dist/components/text/engine/variants.d.ts.map +1 -0
- package/dist/components/text/engine/variants.js +378 -0
- package/dist/components/text/fonts/architects-daughter.outline.d.ts +3 -0
- package/dist/components/text/fonts/architects-daughter.outline.d.ts.map +1 -0
- package/dist/components/text/fonts/architects-daughter.outline.js +4 -0
- package/dist/components/text/fonts/architects-daughter.strokes.d.ts +3 -0
- package/dist/components/text/fonts/architects-daughter.strokes.d.ts.map +1 -0
- package/dist/components/text/fonts/architects-daughter.strokes.js +4 -0
- package/dist/components/text/fonts/caveat.outline.d.ts +3 -0
- package/dist/components/text/fonts/caveat.outline.d.ts.map +1 -0
- package/dist/components/text/fonts/caveat.outline.js +4 -0
- package/dist/components/text/fonts/caveat.strokes.d.ts +3 -0
- package/dist/components/text/fonts/caveat.strokes.d.ts.map +1 -0
- package/dist/components/text/fonts/caveat.strokes.js +4 -0
- package/dist/components/text/fonts/courgette.outline.d.ts +3 -0
- package/dist/components/text/fonts/courgette.outline.d.ts.map +1 -0
- package/dist/components/text/fonts/courgette.outline.js +4 -0
- package/dist/components/text/fonts/courgette.strokes.d.ts +3 -0
- package/dist/components/text/fonts/courgette.strokes.d.ts.map +1 -0
- package/dist/components/text/fonts/courgette.strokes.js +4 -0
- package/dist/components/text/fonts/dancing-script.outline.d.ts +3 -0
- package/dist/components/text/fonts/dancing-script.outline.d.ts.map +1 -0
- package/dist/components/text/fonts/dancing-script.outline.js +4 -0
- package/dist/components/text/fonts/dancing-script.strokes.d.ts +3 -0
- package/dist/components/text/fonts/dancing-script.strokes.d.ts.map +1 -0
- package/dist/components/text/fonts/dancing-script.strokes.js +4 -0
- package/dist/components/text/fonts/gochi-hand.outline.d.ts +3 -0
- package/dist/components/text/fonts/gochi-hand.outline.d.ts.map +1 -0
- package/dist/components/text/fonts/gochi-hand.outline.js +4 -0
- package/dist/components/text/fonts/gochi-hand.strokes.d.ts +3 -0
- package/dist/components/text/fonts/gochi-hand.strokes.d.ts.map +1 -0
- package/dist/components/text/fonts/gochi-hand.strokes.js +4 -0
- package/dist/components/text/fonts/handlee.outline.d.ts +3 -0
- package/dist/components/text/fonts/handlee.outline.d.ts.map +1 -0
- package/dist/components/text/fonts/handlee.outline.js +4 -0
- package/dist/components/text/fonts/handlee.strokes.d.ts +3 -0
- package/dist/components/text/fonts/handlee.strokes.d.ts.map +1 -0
- package/dist/components/text/fonts/handlee.strokes.js +4 -0
- package/dist/components/text/fonts/index.d.ts +5 -0
- package/dist/components/text/fonts/index.d.ts.map +1 -0
- package/dist/components/text/fonts/index.js +44 -0
- package/dist/components/text/fonts/indie-flower.outline.d.ts +3 -0
- package/dist/components/text/fonts/indie-flower.outline.d.ts.map +1 -0
- package/dist/components/text/fonts/indie-flower.outline.js +4 -0
- package/dist/components/text/fonts/indie-flower.strokes.d.ts +3 -0
- package/dist/components/text/fonts/indie-flower.strokes.d.ts.map +1 -0
- package/dist/components/text/fonts/indie-flower.strokes.js +4 -0
- package/dist/components/text/fonts/kalam.outline.d.ts +3 -0
- package/dist/components/text/fonts/kalam.outline.d.ts.map +1 -0
- package/dist/components/text/fonts/kalam.outline.js +4 -0
- package/dist/components/text/fonts/kalam.strokes.d.ts +3 -0
- package/dist/components/text/fonts/kalam.strokes.d.ts.map +1 -0
- package/dist/components/text/fonts/kalam.strokes.js +4 -0
- package/dist/components/text/fonts/kaushan-script.outline.d.ts +3 -0
- package/dist/components/text/fonts/kaushan-script.outline.d.ts.map +1 -0
- package/dist/components/text/fonts/kaushan-script.outline.js +4 -0
- package/dist/components/text/fonts/kaushan-script.strokes.d.ts +3 -0
- package/dist/components/text/fonts/kaushan-script.strokes.d.ts.map +1 -0
- package/dist/components/text/fonts/kaushan-script.strokes.js +4 -0
- package/dist/components/text/fonts/mynerve.outline.d.ts +3 -0
- package/dist/components/text/fonts/mynerve.outline.d.ts.map +1 -0
- package/dist/components/text/fonts/mynerve.outline.js +4 -0
- package/dist/components/text/fonts/mynerve.strokes.d.ts +3 -0
- package/dist/components/text/fonts/mynerve.strokes.d.ts.map +1 -0
- package/dist/components/text/fonts/mynerve.strokes.js +4 -0
- package/dist/components/text/fonts/nanum-pen-script.outline.d.ts +3 -0
- package/dist/components/text/fonts/nanum-pen-script.outline.d.ts.map +1 -0
- package/dist/components/text/fonts/nanum-pen-script.outline.js +4 -0
- package/dist/components/text/fonts/nanum-pen-script.strokes.d.ts +3 -0
- package/dist/components/text/fonts/nanum-pen-script.strokes.d.ts.map +1 -0
- package/dist/components/text/fonts/nanum-pen-script.strokes.js +4 -0
- package/dist/components/text/fonts/pacifico.outline.d.ts +3 -0
- package/dist/components/text/fonts/pacifico.outline.d.ts.map +1 -0
- package/dist/components/text/fonts/pacifico.outline.js +4 -0
- package/dist/components/text/fonts/pacifico.strokes.d.ts +3 -0
- package/dist/components/text/fonts/pacifico.strokes.d.ts.map +1 -0
- package/dist/components/text/fonts/pacifico.strokes.js +4 -0
- package/dist/components/text/fonts/patrick-hand.outline.d.ts +3 -0
- package/dist/components/text/fonts/patrick-hand.outline.d.ts.map +1 -0
- package/dist/components/text/fonts/patrick-hand.outline.js +4 -0
- package/dist/components/text/fonts/patrick-hand.strokes.d.ts +3 -0
- package/dist/components/text/fonts/patrick-hand.strokes.d.ts.map +1 -0
- package/dist/components/text/fonts/patrick-hand.strokes.js +4 -0
- package/dist/components/text/fonts/poppins.outline.d.ts +3 -0
- package/dist/components/text/fonts/poppins.outline.d.ts.map +1 -0
- package/dist/components/text/fonts/poppins.outline.js +4 -0
- package/dist/components/text/fonts/poppins.strokes.d.ts +3 -0
- package/dist/components/text/fonts/poppins.strokes.d.ts.map +1 -0
- package/dist/components/text/fonts/poppins.strokes.js +4 -0
- package/dist/components/text/fonts/satisfy.outline.d.ts +3 -0
- package/dist/components/text/fonts/satisfy.outline.d.ts.map +1 -0
- package/dist/components/text/fonts/satisfy.outline.js +4 -0
- package/dist/components/text/fonts/satisfy.strokes.d.ts +3 -0
- package/dist/components/text/fonts/satisfy.strokes.d.ts.map +1 -0
- package/dist/components/text/fonts/satisfy.strokes.js +4 -0
- package/dist/components/text/fonts/sriracha.outline.d.ts +3 -0
- package/dist/components/text/fonts/sriracha.outline.d.ts.map +1 -0
- package/dist/components/text/fonts/sriracha.outline.js +4 -0
- package/dist/components/text/fonts/sriracha.strokes.d.ts +3 -0
- package/dist/components/text/fonts/sriracha.strokes.d.ts.map +1 -0
- package/dist/components/text/fonts/sriracha.strokes.js +4 -0
- package/dist/components/text/index.d.ts +27 -0
- package/dist/components/text/index.d.ts.map +1 -0
- package/dist/components/text/index.js +13 -0
- package/dist/components/text/useTextObject.d.ts +21 -0
- package/dist/components/text/useTextObject.d.ts.map +1 -0
- package/dist/components/text/useTextObject.js +118 -0
- package/dist/components/water/OceanSurface.d.ts.map +1 -1
- package/dist/components/water/OceanSurface.js +3 -1
- package/dist/components/water/WaterBody.d.ts.map +1 -1
- package/dist/components/water/WaterBody.js +3 -1
- package/dist/components/water/types.d.ts +5 -1
- package/dist/components/water/types.d.ts.map +1 -1
- package/dist/constants.d.ts +1 -1
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +5 -1
- package/dist/hooks/index.d.ts +2 -0
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +1 -0
- package/dist/hooks/useCloudSun.d.ts +9 -4
- package/dist/hooks/useCloudSun.d.ts.map +1 -1
- package/dist/hooks/useCloudSun.js +17 -7
- package/dist/hooks/useConfigLive.d.ts +3 -2
- package/dist/hooks/useConfigLive.d.ts.map +1 -1
- package/dist/hooks/useContinuousEffects.d.ts.map +1 -1
- package/dist/hooks/useContinuousEffects.js +4 -10
- package/dist/hooks/useEnvironmentProbe.d.ts +3 -22
- package/dist/hooks/useEnvironmentProbe.d.ts.map +1 -1
- package/dist/hooks/useEnvironmentProbe.js +47 -8
- package/dist/hooks/useGridSurface.d.ts +3 -10
- package/dist/hooks/useGridSurface.d.ts.map +1 -1
- package/dist/hooks/useGridSurface.js +5 -31
- package/dist/hooks/useInteraction.d.ts.map +1 -1
- package/dist/hooks/useInteraction.js +19 -72
- package/dist/hooks/useLightConfig.d.ts +2 -1
- package/dist/hooks/useLightConfig.d.ts.map +1 -1
- package/dist/hooks/useOceanMaterial.d.ts +6 -2
- package/dist/hooks/useOceanMaterial.d.ts.map +1 -1
- package/dist/hooks/useOceanMaterial.js +37 -2
- package/dist/hooks/useSkyLive.d.ts +23 -0
- package/dist/hooks/useSkyLive.d.ts.map +1 -0
- package/dist/hooks/useSkyLive.js +30 -0
- package/dist/hooks/useSkyUniforms.d.ts.map +1 -1
- package/dist/hooks/useSkyUniforms.js +2 -10
- package/dist/hooks/useTerrainLive.d.ts +3 -1
- package/dist/hooks/useTerrainLive.d.ts.map +1 -1
- package/dist/hooks/useTerrainTextures.d.ts +38 -0
- package/dist/hooks/useTerrainTextures.d.ts.map +1 -0
- package/dist/hooks/useTerrainTextures.js +149 -0
- package/dist/index.d.ts +11 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -1
- package/dist/operations/catalogue/blastOff.d.ts +3 -0
- package/dist/operations/catalogue/blastOff.d.ts.map +1 -0
- package/dist/operations/catalogue/blastOff.js +118 -0
- package/dist/operations/catalogue/bounce.d.ts +3 -0
- package/dist/operations/catalogue/bounce.d.ts.map +1 -0
- package/dist/operations/catalogue/bounce.js +34 -0
- package/dist/operations/catalogue/curlSmoke.d.ts.map +1 -1
- package/dist/operations/catalogue/curlSmoke.js +3 -1
- package/dist/operations/catalogue/dissolve.d.ts.map +1 -1
- package/dist/operations/catalogue/dissolve.js +2 -1
- package/dist/operations/catalogue/driftUp.d.ts +3 -0
- package/dist/operations/catalogue/driftUp.d.ts.map +1 -0
- package/dist/operations/catalogue/driftUp.js +57 -0
- package/dist/operations/catalogue/emberAsh.d.ts.map +1 -1
- package/dist/operations/catalogue/emberAsh.js +2 -1
- package/dist/operations/catalogue/flip.d.ts.map +1 -1
- package/dist/operations/catalogue/flip.js +19 -9
- package/dist/operations/catalogue/float.d.ts +3 -0
- package/dist/operations/catalogue/float.d.ts.map +1 -0
- package/dist/operations/catalogue/float.js +39 -0
- package/dist/operations/catalogue/flyBy.d.ts +3 -0
- package/dist/operations/catalogue/flyBy.d.ts.map +1 -0
- package/dist/operations/catalogue/flyBy.js +79 -0
- package/dist/operations/catalogue/frost.d.ts.map +1 -1
- package/dist/operations/catalogue/frost.js +10 -3
- package/dist/operations/catalogue/grow.d.ts +3 -0
- package/dist/operations/catalogue/grow.d.ts.map +1 -0
- package/dist/operations/catalogue/grow.js +19 -0
- package/dist/operations/catalogue/hologram.d.ts.map +1 -1
- package/dist/operations/catalogue/hologram.js +11 -5
- package/dist/operations/catalogue/jelly.d.ts.map +1 -1
- package/dist/operations/catalogue/jelly.js +18 -8
- package/dist/operations/catalogue/knockAway.d.ts +3 -0
- package/dist/operations/catalogue/knockAway.d.ts.map +1 -0
- package/dist/operations/catalogue/knockAway.js +74 -0
- package/dist/operations/catalogue/leafFall.d.ts +3 -0
- package/dist/operations/catalogue/leafFall.d.ts.map +1 -0
- package/dist/operations/catalogue/leafFall.js +74 -0
- package/dist/operations/catalogue/lidarScan.d.ts.map +1 -1
- package/dist/operations/catalogue/lidarScan.js +4 -1
- package/dist/operations/catalogue/metalize.d.ts.map +1 -1
- package/dist/operations/catalogue/metalize.js +8 -2
- package/dist/operations/catalogue/motionTrail.d.ts +6 -0
- package/dist/operations/catalogue/motionTrail.d.ts.map +1 -0
- package/dist/operations/catalogue/motionTrail.js +221 -0
- package/dist/operations/catalogue/petrify.d.ts.map +1 -1
- package/dist/operations/catalogue/petrify.js +9 -3
- package/dist/operations/catalogue/physicalExit.d.ts +55 -0
- package/dist/operations/catalogue/physicalExit.d.ts.map +1 -0
- package/dist/operations/catalogue/physicalExit.js +165 -0
- package/dist/operations/catalogue/physicalHeld.d.ts +41 -0
- package/dist/operations/catalogue/physicalHeld.d.ts.map +1 -0
- package/dist/operations/catalogue/physicalHeld.js +78 -0
- package/dist/operations/catalogue/physicalMix.d.ts +45 -0
- package/dist/operations/catalogue/physicalMix.d.ts.map +1 -0
- package/dist/operations/catalogue/physicalMix.js +144 -0
- package/dist/operations/catalogue/pop.d.ts +3 -0
- package/dist/operations/catalogue/pop.d.ts.map +1 -0
- package/dist/operations/catalogue/pop.js +44 -0
- package/dist/operations/catalogue/print3d.d.ts.map +1 -1
- package/dist/operations/catalogue/print3d.js +5 -1
- package/dist/operations/catalogue/pulse.d.ts +3 -0
- package/dist/operations/catalogue/pulse.d.ts.map +1 -0
- package/dist/operations/catalogue/pulse.js +29 -0
- package/dist/operations/catalogue/restPose.d.ts +5 -7
- package/dist/operations/catalogue/restPose.d.ts.map +1 -1
- package/dist/operations/catalogue/restPose.js +18 -48
- package/dist/operations/catalogue/rotate.d.ts +3 -0
- package/dist/operations/catalogue/rotate.d.ts.map +1 -0
- package/dist/operations/catalogue/rotate.js +49 -0
- package/dist/operations/catalogue/shake.d.ts +3 -0
- package/dist/operations/catalogue/shake.d.ts.map +1 -0
- package/dist/operations/catalogue/shake.js +31 -0
- package/dist/operations/catalogue/shatter.d.ts.map +1 -1
- package/dist/operations/catalogue/shatter.js +5 -1
- package/dist/operations/catalogue/slam.d.ts +3 -0
- package/dist/operations/catalogue/slam.d.ts.map +1 -0
- package/dist/operations/catalogue/slam.js +89 -0
- package/dist/operations/catalogue/slingshot.d.ts +3 -0
- package/dist/operations/catalogue/slingshot.d.ts.map +1 -0
- package/dist/operations/catalogue/slingshot.js +88 -0
- package/dist/operations/catalogue/spin.d.ts.map +1 -1
- package/dist/operations/catalogue/spin.js +24 -13
- package/dist/operations/catalogue/sway.d.ts +3 -0
- package/dist/operations/catalogue/sway.d.ts.map +1 -0
- package/dist/operations/catalogue/sway.js +23 -0
- package/dist/operations/catalogue/swirl.d.ts.map +1 -1
- package/dist/operations/catalogue/swirl.js +6 -5
- package/dist/operations/catalogue/trailCore.d.ts +89 -0
- package/dist/operations/catalogue/trailCore.d.ts.map +1 -0
- package/dist/operations/catalogue/trailCore.js +190 -0
- package/dist/operations/catalogue/trailGhosts.d.ts +5 -0
- package/dist/operations/catalogue/trailGhosts.d.ts.map +1 -0
- package/dist/operations/catalogue/trailGhosts.js +179 -0
- package/dist/operations/catalogue/trailStampStyles.d.ts +11 -0
- package/dist/operations/catalogue/trailStampStyles.d.ts.map +1 -0
- package/dist/operations/catalogue/trailStampStyles.js +479 -0
- package/dist/operations/catalogue/trailStamps.d.ts +57 -0
- package/dist/operations/catalogue/trailStamps.d.ts.map +1 -0
- package/dist/operations/catalogue/trailStamps.js +349 -0
- package/dist/operations/catalogue/trailStreaks.d.ts +3 -0
- package/dist/operations/catalogue/trailStreaks.d.ts.map +1 -0
- package/dist/operations/catalogue/trailStreaks.js +147 -0
- package/dist/operations/catalogue/transitionField.d.ts +30 -0
- package/dist/operations/catalogue/transitionField.d.ts.map +1 -1
- package/dist/operations/catalogue/transitionField.js +21 -0
- package/dist/operations/catalogue/turnAway.d.ts +3 -0
- package/dist/operations/catalogue/turnAway.d.ts.map +1 -0
- package/dist/operations/catalogue/turnAway.js +54 -0
- package/dist/operations/catalogue/vortexDrain.d.ts +3 -0
- package/dist/operations/catalogue/vortexDrain.d.ts.map +1 -0
- package/dist/operations/catalogue/vortexDrain.js +68 -0
- package/dist/operations/catalogue/warp.d.ts +3 -0
- package/dist/operations/catalogue/warp.d.ts.map +1 -0
- package/dist/operations/catalogue/warp.js +73 -0
- package/dist/operations/catalogue/whoosh.d.ts +3 -0
- package/dist/operations/catalogue/whoosh.d.ts.map +1 -0
- package/dist/operations/catalogue/whoosh.js +84 -0
- package/dist/operations/catalogue/wobble.d.ts +3 -0
- package/dist/operations/catalogue/wobble.d.ts.map +1 -0
- package/dist/operations/catalogue/wobble.js +23 -0
- package/dist/operations/clipPreview.d.ts +3 -0
- package/dist/operations/clipPreview.d.ts.map +1 -0
- package/dist/operations/clipPreview.js +20 -0
- package/dist/operations/groupFanout.d.ts +96 -0
- package/dist/operations/groupFanout.d.ts.map +1 -0
- package/dist/operations/groupFanout.js +365 -0
- package/dist/operations/groups.d.ts +20 -0
- package/dist/operations/groups.d.ts.map +1 -0
- package/dist/operations/groups.js +66 -0
- package/dist/operations/index.d.ts +5 -2
- package/dist/operations/index.d.ts.map +1 -1
- package/dist/operations/index.js +5 -2
- package/dist/operations/objectEffects.d.ts +161 -6
- package/dist/operations/objectEffects.d.ts.map +1 -1
- package/dist/operations/objectEffects.js +1091 -17
- package/dist/operations/registry.d.ts.map +1 -1
- package/dist/operations/registry.js +24 -2
- package/dist/operations/runtime.d.ts +57 -2
- package/dist/operations/runtime.d.ts.map +1 -1
- package/dist/operations/runtime.js +161 -18
- package/dist/operations/types.d.ts +60 -3
- package/dist/operations/types.d.ts.map +1 -1
- package/dist/operations/types.js +5 -1
- package/dist/operations/useObjectEffectLayers.d.ts +2 -2
- package/dist/operations/useObjectEffectLayers.d.ts.map +1 -1
- package/dist/operations/useObjectEffectLayers.js +31 -10
- package/dist/operations/usePresentedVisibility.d.ts +10 -0
- package/dist/operations/usePresentedVisibility.d.ts.map +1 -0
- package/dist/operations/usePresentedVisibility.js +53 -0
- package/dist/presets/terrainBiomes.d.ts +67 -0
- package/dist/presets/terrainBiomes.d.ts.map +1 -0
- package/dist/presets/terrainBiomes.js +294 -0
- package/dist/presets/terrainPresets.d.ts +6 -0
- package/dist/presets/terrainPresets.d.ts.map +1 -1
- package/dist/presets/terrainPresets.js +26 -38
- package/dist/shaders/glsl/oceanCore.glsl.d.ts +2 -2
- package/dist/shaders/glsl/oceanCore.glsl.d.ts.map +1 -1
- package/dist/shaders/glsl/oceanCore.glsl.js +17 -0
- package/dist/shaders/glsl/surfaceCore.glsl.d.ts +21 -0
- package/dist/shaders/glsl/surfaceCore.glsl.d.ts.map +1 -0
- package/dist/shaders/glsl/surfaceCore.glsl.js +120 -0
- package/dist/shaders/glsl/terrainCore.glsl.d.ts +16 -3
- package/dist/shaders/glsl/terrainCore.glsl.d.ts.map +1 -1
- package/dist/shaders/glsl/terrainCore.glsl.js +266 -20
- package/dist/shaders/ocean/OceanSurfaceMaterial.d.ts +2 -0
- package/dist/shaders/ocean/OceanSurfaceMaterial.d.ts.map +1 -1
- package/dist/shaders/ocean/OceanSurfaceMaterial.js +3 -0
- package/dist/shaders/terrain/TerrainMaterial.d.ts +17 -0
- package/dist/shaders/terrain/TerrainMaterial.d.ts.map +1 -1
- package/dist/shaders/terrain/TerrainMaterial.js +107 -8
- package/dist/triggers/engine.d.ts +44 -0
- package/dist/triggers/engine.d.ts.map +1 -0
- package/dist/triggers/engine.js +165 -0
- package/dist/triggers/hosts/actions.d.ts +8 -0
- package/dist/triggers/hosts/actions.d.ts.map +1 -0
- package/dist/triggers/hosts/actions.js +22 -0
- package/dist/triggers/hosts/interactions.d.ts +6 -0
- package/dist/triggers/hosts/interactions.d.ts.map +1 -0
- package/dist/triggers/hosts/interactions.js +4 -0
- package/dist/triggers/hosts/timelineCues.d.ts +2 -0
- package/dist/triggers/hosts/timelineCues.d.ts.map +1 -0
- package/dist/triggers/hosts/timelineCues.js +22 -0
- package/dist/triggers/index.d.ts +13 -0
- package/dist/triggers/index.d.ts.map +1 -0
- package/dist/triggers/index.js +9 -0
- package/dist/triggers/kinds/action.d.ts +2 -0
- package/dist/triggers/kinds/action.d.ts.map +1 -0
- package/dist/triggers/kinds/action.js +31 -0
- package/dist/triggers/kinds/animations.d.ts +2 -0
- package/dist/triggers/kinds/animations.d.ts.map +1 -0
- package/dist/triggers/kinds/animations.js +75 -0
- package/dist/triggers/kinds/effects.d.ts +2 -0
- package/dist/triggers/kinds/effects.d.ts.map +1 -0
- package/dist/triggers/kinds/effects.js +27 -0
- package/dist/triggers/kinds/index.d.ts +4 -0
- package/dist/triggers/kinds/index.d.ts.map +1 -0
- package/dist/triggers/kinds/index.js +4 -0
- package/dist/triggers/log.d.ts +21 -0
- package/dist/triggers/log.d.ts.map +1 -0
- package/dist/triggers/log.js +43 -0
- package/dist/triggers/readiness.d.ts +40 -0
- package/dist/triggers/readiness.d.ts.map +1 -0
- package/dist/triggers/readiness.js +158 -0
- package/dist/triggers/registry.d.ts +41 -0
- package/dist/triggers/registry.d.ts.map +1 -0
- package/dist/triggers/registry.js +7 -0
- package/dist/types/gridConfigs.d.ts +117 -19
- package/dist/types/gridConfigs.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/ui/UiAnchorUpdater.d.ts +10 -0
- package/dist/ui/UiAnchorUpdater.d.ts.map +1 -0
- package/dist/ui/UiAnchorUpdater.js +111 -0
- package/dist/ui/UiLayers.d.ts +20 -0
- package/dist/ui/UiLayers.d.ts.map +1 -0
- package/dist/ui/UiLayers.js +57 -0
- package/dist/ui/index.d.ts +9 -0
- package/dist/ui/index.d.ts.map +1 -0
- package/dist/ui/index.js +6 -0
- package/dist/ui/uiAnchors.d.ts +21 -0
- package/dist/ui/uiAnchors.d.ts.map +1 -0
- package/dist/ui/uiAnchors.js +22 -0
- package/dist/ui/uiBaseStyles.d.ts +2 -0
- package/dist/ui/uiBaseStyles.d.ts.map +1 -0
- package/dist/ui/uiBaseStyles.js +100 -0
- package/dist/ui/uiBinder.d.ts +30 -0
- package/dist/ui/uiBinder.d.ts.map +1 -0
- package/dist/ui/uiBinder.js +344 -0
- package/dist/utils/configAnimations.d.ts.map +1 -1
- package/dist/utils/configAnimations.js +5 -1
- package/dist/utils/gridConfig.d.ts +1 -1
- package/dist/utils/gridConfig.d.ts.map +1 -1
- package/dist/utils/gridConfig.js +1 -1
- package/dist/utils/landPatch.d.ts +33 -0
- package/dist/utils/landPatch.d.ts.map +1 -0
- package/dist/utils/landPatch.js +114 -0
- package/dist/utils/renderedSky.d.ts +32 -0
- package/dist/utils/renderedSky.d.ts.map +1 -0
- package/dist/utils/renderedSky.js +57 -0
- package/dist/utils/skyMoon.d.ts +35 -0
- package/dist/utils/skyMoon.d.ts.map +1 -0
- package/dist/utils/skyMoon.js +41 -0
- package/dist/utils/terrainHeight.d.ts +4 -0
- package/dist/utils/terrainHeight.d.ts.map +1 -0
- package/dist/utils/terrainHeight.js +150 -0
- package/dist/utils/terrainTextureResolver.d.ts +18 -0
- package/dist/utils/terrainTextureResolver.d.ts.map +1 -0
- package/dist/utils/terrainTextureResolver.js +17 -0
- package/dist/utils/terrainUniforms.d.ts +17 -0
- package/dist/utils/terrainUniforms.d.ts.map +1 -1
- package/dist/utils/terrainUniforms.js +84 -0
- package/dist/utils/textureArrays.d.ts +29 -0
- package/dist/utils/textureArrays.d.ts.map +1 -0
- package/dist/utils/textureArrays.js +140 -0
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClipPlayer.d.ts","sourceRoot":"","sources":["../../src/animationsV2/ClipPlayer.tsx"],"names":[],"mappings":"AAwBA,OAAO,KAA4B,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"ClipPlayer.d.ts","sourceRoot":"","sources":["../../src/animationsV2/ClipPlayer.tsx"],"names":[],"mappings":"AAwBA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAKjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAEhE,MAAM,WAAW,eAAe;IAC5B,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,GAAG,CAAC;IACpC,wDAAwD;IACxD,SAAS,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,cAAc,GAAG,SAAS,CAAC;IACvD,6FAA6F;IAC7F,QAAQ,CAAC,EAAE;QAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC;QAAC,KAAK,EAAE,aAAa,EAAE,CAAA;KAAE,CAAC;CACzE;AAcD,QAAA,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAuJzC,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -26,6 +26,7 @@ import { useEffect, useRef } from 'react';
|
|
|
26
26
|
import { useFrame, useThree } from '@react-three/fiber';
|
|
27
27
|
import ClipsRuntime from './ClipsRuntime.js';
|
|
28
28
|
import { clipMap } from './sequenceUtils.js';
|
|
29
|
+
import { sceneReadiness } from '../triggers/readiness.js';
|
|
29
30
|
/** Wheel delta in pixels, whatever the device reports. */
|
|
30
31
|
const wheelPixels = (e) => e.deltaMode === 1 ? e.deltaY * 16 : e.deltaMode === 2 ? e.deltaY * window.innerHeight : e.deltaY;
|
|
31
32
|
/** Diagnostics switch: `?animdebug=1` or localStorage '3drise.animdebug' = '1'. */
|
|
@@ -75,16 +76,19 @@ const ClipPlayer = ({ getSettings, getAction, autoplay }) => {
|
|
|
75
76
|
useEffect(() => {
|
|
76
77
|
if (!autoplay)
|
|
77
78
|
return;
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
79
|
+
// nothing starts before the scene is ready (models loaded, shaders compiled)
|
|
80
|
+
return sceneReadiness.whenReady(() => {
|
|
81
|
+
const lookup = clipMap(autoplay.clips);
|
|
82
|
+
ClipsRuntime.dlog('autoplay effect', {
|
|
83
|
+
clips: autoplay.clips.length,
|
|
84
|
+
sequences: autoplay.sequences.map(s => ({ name: s.name, autoplay: s.autoplay, driver: s.driver, active: ClipsRuntime.isSequenceActive(s.id) })),
|
|
85
|
+
});
|
|
86
|
+
for (const seq of autoplay.sequences) {
|
|
87
|
+
if (!seq.autoplay || ClipsRuntime.isSequenceActive(seq.id))
|
|
88
|
+
continue;
|
|
89
|
+
ClipsRuntime.playSequence(seq, lookup, { waitForTargets: true });
|
|
90
|
+
}
|
|
82
91
|
});
|
|
83
|
-
for (const seq of autoplay.sequences) {
|
|
84
|
-
if (!seq.autoplay || ClipsRuntime.isSequenceActive(seq.id))
|
|
85
|
-
continue;
|
|
86
|
-
ClipsRuntime.playSequence(seq, lookup, { waitForTargets: true });
|
|
87
|
-
}
|
|
88
92
|
}, [autoplay?.sequences, autoplay?.clips]);
|
|
89
93
|
const isPublished = !!autoplay;
|
|
90
94
|
useEffect(() => () => { if (isPublished)
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { AnimationClip, AnimationSequence, KeyValue, Track } from './types';
|
|
2
|
+
import type { ActionSequence, SceneCommand } from '@3driseai/3drise-core';
|
|
2
3
|
import { type ApplyContext } from './appliers';
|
|
3
4
|
import { type ClipLookup, type ScheduledClip } from './sequenceUtils';
|
|
4
5
|
/** A driven sequence as the input layer sees it. */
|
|
@@ -17,7 +18,22 @@ export interface RuntimeEvent {
|
|
|
17
18
|
}
|
|
18
19
|
/** @deprecated name kept for existing imports */
|
|
19
20
|
export type ClipEvent = RuntimeEvent;
|
|
21
|
+
/**
|
|
22
|
+
* How a cue switches (apply / revert) or fires its subject. The triggers engine installs one,
|
|
23
|
+
* so cues run through it with the clip or sequence as their source. Returns false when an
|
|
24
|
+
* 'apply' left the subject alone (another source already had it on — the timeline then never
|
|
25
|
+
* reverts it). Without a runner only action cues run (SceneActions directly), as before.
|
|
26
|
+
*/
|
|
27
|
+
export type CueRunner = (command: SceneCommand, mode: 'apply' | 'revert' | 'fire', opts: {
|
|
28
|
+
effects: boolean;
|
|
29
|
+
host: 'sequence' | 'clip';
|
|
30
|
+
timelineId: string;
|
|
31
|
+
getAction?: (id: string) => ActionSequence | undefined;
|
|
32
|
+
}) => boolean;
|
|
20
33
|
declare class ClipsRuntime {
|
|
34
|
+
private cueRunner;
|
|
35
|
+
/** The triggers engine runs cues (see CueRunner). */
|
|
36
|
+
setCueRunner(fn: CueRunner | null): void;
|
|
21
37
|
private clips;
|
|
22
38
|
private sequences;
|
|
23
39
|
private ctx;
|
|
@@ -32,6 +48,8 @@ declare class ClipsRuntime {
|
|
|
32
48
|
private pendingRestore;
|
|
33
49
|
/** last written value per property (targetKey -> JSON) */
|
|
34
50
|
private written;
|
|
51
|
+
/** values written straight from outside (a UI slider): targetKey -> value. */
|
|
52
|
+
private live;
|
|
35
53
|
debug: boolean;
|
|
36
54
|
private logAt;
|
|
37
55
|
dlog(...args: unknown[]): void;
|
|
@@ -39,6 +57,17 @@ declare class ClipsRuntime {
|
|
|
39
57
|
private dlogEvery;
|
|
40
58
|
private caller;
|
|
41
59
|
setContext(ctx: ApplyContext | null): void;
|
|
60
|
+
/**
|
|
61
|
+
* Write one value to the live scene by settings path — the same appliers a clip track
|
|
62
|
+
* uses, so nothing goes through React and nothing is saved. A running clip that
|
|
63
|
+
* animates the same property wins again on its next write. False when there is no
|
|
64
|
+
* applier for the path or its target is not mounted.
|
|
65
|
+
*/
|
|
66
|
+
setLiveValue(state: string, path: string, value: KeyValue, node?: string): boolean;
|
|
67
|
+
/** What was last written by `setLiveValue`, else the authored value (action patches included). */
|
|
68
|
+
getLiveValue(state: string, path: string, node?: string): KeyValue | undefined;
|
|
69
|
+
/** Whether `setLiveValue` can write this path (it has an applier). */
|
|
70
|
+
canSetLiveValue(state: string, path: string): boolean;
|
|
42
71
|
/**
|
|
43
72
|
* Every change, including each frame's time while anything plays. For UI that
|
|
44
73
|
* follows the playhead, write through refs in the listener — never re-render React
|
|
@@ -120,11 +149,23 @@ declare class ClipsRuntime {
|
|
|
120
149
|
isSequencePlaying(seqId: string): boolean;
|
|
121
150
|
isSequenceActive(seqId: string): boolean;
|
|
122
151
|
tick(delta: number): void;
|
|
123
|
-
/** Objects / nodes the sequence animates — or its
|
|
152
|
+
/** Objects / nodes the sequence animates — or its cues act on — that aren't in the scene yet. */
|
|
124
153
|
private missingTargets;
|
|
125
|
-
/**
|
|
154
|
+
/**
|
|
155
|
+
* Switch a timeline's lanes to what time T asks for. A lane switched on by someone else
|
|
156
|
+
* already is left alone (and never switched off by this timeline).
|
|
157
|
+
*/
|
|
158
|
+
private syncLanes;
|
|
159
|
+
private switchOff;
|
|
160
|
+
/** Switch the sequence's lanes to what its time asks for. */
|
|
126
161
|
private syncCues;
|
|
127
|
-
/**
|
|
162
|
+
/** Fire the 'fire' cues the playhead crossed moving forward since the last tick. */
|
|
163
|
+
private fireCues;
|
|
164
|
+
/** A clip's cues: state lanes to what its time asks for, and fire cues crossed moving forward. */
|
|
165
|
+
private syncClipCues;
|
|
166
|
+
/** Switch off every lane a timeline switched on (stop / close). */
|
|
167
|
+
private releaseCues;
|
|
168
|
+
/** Revert every lane the sequence switched on (stop / close). */
|
|
128
169
|
private releaseActions;
|
|
129
170
|
/** Every driver's values for this frame, lowest priority first. */
|
|
130
171
|
private proposals;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClipsRuntime.d.ts","sourceRoot":"","sources":["../../src/animationsV2/ClipsRuntime.ts"],"names":[],"mappings":"AAkCA,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"ClipsRuntime.d.ts","sourceRoot":"","sources":["../../src/animationsV2/ClipsRuntime.ts"],"names":[],"mappings":"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"}
|
|
@@ -33,13 +33,16 @@
|
|
|
33
33
|
//
|
|
34
34
|
import { SceneActions } from '@3driseai/3drise-core';
|
|
35
35
|
import { getAtPath, sampleTrack } from './clipUtils.js';
|
|
36
|
-
import { applyValue, clearApplierCaches, isTargetMounted } from './appliers.js';
|
|
37
|
-
import { restoreNodeTrack } from './nodeTracks.js';
|
|
38
|
-
import { cueStatesAt, entryLocalTime, isEntryActive, resolveSequence, } from './sequenceUtils.js';
|
|
36
|
+
import { applyValue, clearApplierCaches, isApplicable, isTargetMounted } from './appliers.js';
|
|
37
|
+
import { readNodeValue, restoreNodeTrack } from './nodeTracks.js';
|
|
38
|
+
import { cueStatesAt, entryLocalTime, isEntryActive, resolveSequence, cueCommand, clipCueSchedule, firedBetween, } from './sequenceUtils.js';
|
|
39
39
|
/** Longest an autoplaying sequence waits for its targets. */
|
|
40
40
|
const MAX_TARGET_WAIT_MS = 8000;
|
|
41
41
|
const targetKey = (state, node, path) => `${state}|${node ?? ''}|${path}`;
|
|
42
42
|
class ClipsRuntime {
|
|
43
|
+
cueRunner = null;
|
|
44
|
+
/** The triggers engine runs cues (see CueRunner). */
|
|
45
|
+
setCueRunner(fn) { this.cueRunner = fn; }
|
|
43
46
|
clips = new Map();
|
|
44
47
|
sequences = new Map();
|
|
45
48
|
ctx = null;
|
|
@@ -54,6 +57,8 @@ class ClipsRuntime {
|
|
|
54
57
|
pendingRestore = [];
|
|
55
58
|
/** last written value per property (targetKey -> JSON) */
|
|
56
59
|
written = new Map();
|
|
60
|
+
/** values written straight from outside (a UI slider): targetKey -> value. */
|
|
61
|
+
live = new Map();
|
|
57
62
|
// --- diagnostics ------------------------------------------------------------------
|
|
58
63
|
// On with `?animdebug=1` in the URL, or localStorage '3drise.animdebug' = '1'
|
|
59
64
|
// (ClipPlayer reads it). Logs every lifecycle call on sequences (with the caller's
|
|
@@ -83,8 +88,42 @@ class ClipsRuntime {
|
|
|
83
88
|
this.dlog('setContext', ctx ? { camera: !!ctx.camera, controls: !!ctx.controls, getAction: !!ctx.getAction } : null);
|
|
84
89
|
this.ctx = ctx;
|
|
85
90
|
this.written.clear();
|
|
91
|
+
this.live.clear();
|
|
86
92
|
clearApplierCaches();
|
|
87
93
|
}
|
|
94
|
+
// --- direct writes (UI controls, SceneHandle.values) ----------------------------------
|
|
95
|
+
/**
|
|
96
|
+
* Write one value to the live scene by settings path — the same appliers a clip track
|
|
97
|
+
* uses, so nothing goes through React and nothing is saved. A running clip that
|
|
98
|
+
* animates the same property wins again on its next write. False when there is no
|
|
99
|
+
* applier for the path or its target is not mounted.
|
|
100
|
+
*/
|
|
101
|
+
setLiveValue(state, path, value, node) {
|
|
102
|
+
const ctx = this.ctx;
|
|
103
|
+
if (!ctx)
|
|
104
|
+
return false;
|
|
105
|
+
if (!applyValue(ctx, state, path, value, node))
|
|
106
|
+
return false;
|
|
107
|
+
const key = targetKey(state, node, path);
|
|
108
|
+
this.live.set(key, value);
|
|
109
|
+
this.written.delete(key); // a clip holding the same value must write it again
|
|
110
|
+
return true;
|
|
111
|
+
}
|
|
112
|
+
/** What was last written by `setLiveValue`, else the authored value (action patches included). */
|
|
113
|
+
getLiveValue(state, path, node) {
|
|
114
|
+
const key = targetKey(state, node, path);
|
|
115
|
+
if (this.live.has(key))
|
|
116
|
+
return this.live.get(key);
|
|
117
|
+
if (node)
|
|
118
|
+
return readNodeValue(state, node, path); // the node as it is now
|
|
119
|
+
if (!this.ctx)
|
|
120
|
+
return undefined;
|
|
121
|
+
return getAtPath(this.ctx.getSettings(state), path);
|
|
122
|
+
}
|
|
123
|
+
/** Whether `setLiveValue` can write this path (it has an applier). */
|
|
124
|
+
canSetLiveValue(state, path) {
|
|
125
|
+
return isApplicable(state, path);
|
|
126
|
+
}
|
|
88
127
|
/**
|
|
89
128
|
* Every change, including each frame's time while anything plays. For UI that
|
|
90
129
|
* follows the playhead, write through refs in the listener — never re-render React
|
|
@@ -129,7 +168,10 @@ class ClipsRuntime {
|
|
|
129
168
|
time = 0;
|
|
130
169
|
if (direction === -1 && time <= 0)
|
|
131
170
|
time = clip.duration;
|
|
132
|
-
this.clips.set(clip.id, {
|
|
171
|
+
this.clips.set(clip.id, {
|
|
172
|
+
clip, time, speed: opts.speed ?? 1, direction, playing: true, order: ++this.order,
|
|
173
|
+
cueState: existing?.cueState ?? new Map(), owned: existing?.owned ?? new Map(), cueTime: undefined,
|
|
174
|
+
});
|
|
133
175
|
this.emit({ type: 'start', kind: 'clip', id: clip.id });
|
|
134
176
|
this.bumpState();
|
|
135
177
|
}
|
|
@@ -154,6 +196,8 @@ class ClipsRuntime {
|
|
|
154
196
|
return;
|
|
155
197
|
this.clips.delete(clipId);
|
|
156
198
|
this.pendingRestore.push(...inst.clip.tracks);
|
|
199
|
+
this.releaseCues(inst.owned, 'clip', clipId);
|
|
200
|
+
inst.cueState.clear();
|
|
157
201
|
this.bumpState();
|
|
158
202
|
}
|
|
159
203
|
/** Hold the clip at t (seconds) — the editor playhead, or seek() from outside. */
|
|
@@ -163,10 +207,11 @@ class ClipsRuntime {
|
|
|
163
207
|
if (inst) {
|
|
164
208
|
inst.clip = clip;
|
|
165
209
|
inst.time = time;
|
|
210
|
+
inst.cueTime = undefined;
|
|
166
211
|
this.bump();
|
|
167
212
|
}
|
|
168
213
|
else {
|
|
169
|
-
this.clips.set(clip.id, { clip, time, speed: 1, direction: 1, playing: false, order: ++this.order });
|
|
214
|
+
this.clips.set(clip.id, { clip, time, speed: 1, direction: 1, playing: false, order: ++this.order, cueState: new Map(), owned: new Map() });
|
|
170
215
|
this.bumpState();
|
|
171
216
|
}
|
|
172
217
|
}
|
|
@@ -219,7 +264,8 @@ class ClipsRuntime {
|
|
|
219
264
|
order: ++this.order,
|
|
220
265
|
active: existing?.active ?? new Set(),
|
|
221
266
|
cueState: existing?.cueState ?? new Map(),
|
|
222
|
-
owned: existing?.owned ?? new
|
|
267
|
+
owned: existing?.owned ?? new Map(),
|
|
268
|
+
cueTime: undefined,
|
|
223
269
|
waitUntil: opts.waitForTargets ? Date.now() + MAX_TARGET_WAIT_MS : undefined,
|
|
224
270
|
});
|
|
225
271
|
this.dlog('playSequence', seq.name, {
|
|
@@ -324,6 +370,7 @@ class ClipsRuntime {
|
|
|
324
370
|
this.updateSequence(seq, clips);
|
|
325
371
|
inst.time = Math.min(inst.schedule.duration, Math.max(0, T));
|
|
326
372
|
inst.target = inst.time;
|
|
373
|
+
inst.cueTime = undefined;
|
|
327
374
|
}
|
|
328
375
|
else {
|
|
329
376
|
const schedule = resolveSequence(seq, clips);
|
|
@@ -331,7 +378,7 @@ class ClipsRuntime {
|
|
|
331
378
|
this.sequences.set(seq.id, {
|
|
332
379
|
seq, schedule, time, target: time, driven: false,
|
|
333
380
|
speed: 1, direction: 1, baseDirection: 1, playing: false, order: ++this.order, active: new Set(),
|
|
334
|
-
cueState: new Map(), owned: new
|
|
381
|
+
cueState: new Map(), owned: new Map(),
|
|
335
382
|
});
|
|
336
383
|
this.bumpState();
|
|
337
384
|
return;
|
|
@@ -390,11 +437,15 @@ class ClipsRuntime {
|
|
|
390
437
|
}
|
|
391
438
|
const dt = Math.min(delta, 0.1);
|
|
392
439
|
let anyPlaying = false;
|
|
393
|
-
for (const inst of this.clips.values()) {
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
440
|
+
for (const inst of [...this.clips.values()]) {
|
|
441
|
+
const prev = inst.time;
|
|
442
|
+
const dir = inst.direction;
|
|
443
|
+
if (inst.playing) {
|
|
444
|
+
anyPlaying = true;
|
|
445
|
+
this.advanceClip(inst, dt);
|
|
446
|
+
}
|
|
447
|
+
if (inst.clip.cues?.length && this.clips.get(inst.clip.id) === inst)
|
|
448
|
+
this.syncClipCues(inst, prev, dir);
|
|
398
449
|
}
|
|
399
450
|
for (const inst of [...this.sequences.values()]) {
|
|
400
451
|
if (!inst.playing)
|
|
@@ -435,8 +486,10 @@ class ClipsRuntime {
|
|
|
435
486
|
// A sequence still waiting for its targets doesn't fire its cues yet — their
|
|
436
487
|
// effects would run on objects that aren't there (and never run again).
|
|
437
488
|
for (const inst of this.sequences.values()) {
|
|
438
|
-
if (inst.waitUntil === undefined)
|
|
489
|
+
if (inst.waitUntil === undefined) {
|
|
439
490
|
this.syncCues(ctx, inst);
|
|
491
|
+
this.fireCues(ctx, inst);
|
|
492
|
+
}
|
|
440
493
|
}
|
|
441
494
|
if (this.pendingRestore.length)
|
|
442
495
|
this.runRestores(ctx);
|
|
@@ -461,7 +514,7 @@ class ClipsRuntime {
|
|
|
461
514
|
if (anyPlaying)
|
|
462
515
|
this.bump();
|
|
463
516
|
}
|
|
464
|
-
/** Objects / nodes the sequence animates — or its
|
|
517
|
+
/** Objects / nodes the sequence animates — or its cues act on — that aren't in the scene yet. */
|
|
465
518
|
missingTargets(ctx, inst) {
|
|
466
519
|
const missing = new Set();
|
|
467
520
|
for (const e of inst.schedule.entries) {
|
|
@@ -472,60 +525,125 @@ class ClipsRuntime {
|
|
|
472
525
|
missing.add(t.node ? `${t.state} › ${t.node}` : t.state);
|
|
473
526
|
}
|
|
474
527
|
}
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
528
|
+
const idsOf = (c) => (c?.kind === 'effect' ? c.effect?.targets ?? [] : c?.kind === 'effectClip' ? c.use?.targets ?? [] : []);
|
|
529
|
+
for (const sc of inst.schedule.cues) {
|
|
530
|
+
const cmd = cueCommand(sc.cue);
|
|
531
|
+
for (const id of idsOf(cmd))
|
|
532
|
+
if (id !== 'self' && !isTargetMounted(ctx, id))
|
|
533
|
+
missing.add(id);
|
|
534
|
+
if (cmd?.kind !== 'action' || !ctx.getAction)
|
|
535
|
+
continue;
|
|
536
|
+
const action = ctx.getAction(cmd.ref);
|
|
537
|
+
if (!action)
|
|
538
|
+
continue;
|
|
539
|
+
for (const t of action.targets ?? [])
|
|
540
|
+
if (!isTargetMounted(ctx, t.state))
|
|
541
|
+
missing.add(t.state);
|
|
542
|
+
// its effects / effect clips
|
|
543
|
+
for (const c of action.commands ?? [])
|
|
544
|
+
for (const id of idsOf(c))
|
|
545
|
+
if (id !== 'self' && !isTargetMounted(ctx, id))
|
|
546
|
+
missing.add(id);
|
|
489
547
|
}
|
|
490
548
|
return [...missing];
|
|
491
549
|
}
|
|
492
|
-
/**
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
const
|
|
498
|
-
for (const
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
550
|
+
/**
|
|
551
|
+
* Switch a timeline's lanes to what time T asks for. A lane switched on by someone else
|
|
552
|
+
* already is left alone (and never switched off by this timeline).
|
|
553
|
+
*/
|
|
554
|
+
syncLanes(lanes, wanted, state, owned, opts) {
|
|
555
|
+
const commandOf = new Map();
|
|
556
|
+
for (const l of lanes)
|
|
557
|
+
if (l.command && !commandOf.has(l.subject))
|
|
558
|
+
commandOf.set(l.subject, l.command);
|
|
559
|
+
const keys = new Set([...wanted.keys(), ...state.keys()]);
|
|
560
|
+
for (const key of keys) {
|
|
561
|
+
const on = wanted.get(key) ?? false; // a removed lane counts as off
|
|
562
|
+
if ((state.get(key) ?? false) === on) {
|
|
563
|
+
if (!wanted.has(key))
|
|
564
|
+
state.delete(key);
|
|
503
565
|
continue;
|
|
504
566
|
}
|
|
505
|
-
if (wanted.has(
|
|
506
|
-
|
|
567
|
+
if (wanted.has(key))
|
|
568
|
+
state.set(key, on);
|
|
507
569
|
else
|
|
508
|
-
|
|
570
|
+
state.delete(key);
|
|
509
571
|
if (on) {
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
const action = ctx.getAction(id);
|
|
513
|
-
if (!action)
|
|
572
|
+
const cmd = commandOf.get(key);
|
|
573
|
+
if (!cmd)
|
|
514
574
|
continue;
|
|
515
|
-
|
|
516
|
-
|
|
575
|
+
if (this.cueRunner) {
|
|
576
|
+
if (this.cueRunner(cmd, 'apply', { ...opts, getAction: this.ctx?.getAction }))
|
|
577
|
+
owned.set(key, cmd);
|
|
578
|
+
}
|
|
579
|
+
else if (cmd.kind === 'action') {
|
|
580
|
+
if (SceneActions.isActionApplied(cmd.ref))
|
|
581
|
+
continue; // someone else's — leave it
|
|
582
|
+
const action = this.ctx?.getAction?.(cmd.ref);
|
|
583
|
+
if (!action)
|
|
584
|
+
continue;
|
|
585
|
+
SceneActions.applyAction(action, { effects: opts.effects });
|
|
586
|
+
owned.set(key, cmd);
|
|
587
|
+
}
|
|
517
588
|
}
|
|
518
|
-
else if (
|
|
519
|
-
|
|
520
|
-
|
|
589
|
+
else if (owned.has(key)) {
|
|
590
|
+
const cmd = owned.get(key);
|
|
591
|
+
owned.delete(key);
|
|
592
|
+
this.switchOff(cmd, opts.host, opts.timelineId);
|
|
521
593
|
}
|
|
522
594
|
}
|
|
523
595
|
}
|
|
524
|
-
|
|
596
|
+
switchOff(cmd, host, timelineId) {
|
|
597
|
+
if (this.cueRunner)
|
|
598
|
+
this.cueRunner(cmd, 'revert', { effects: true, host, timelineId, getAction: this.ctx?.getAction });
|
|
599
|
+
else if (cmd.kind === 'action')
|
|
600
|
+
SceneActions.revertAction(cmd.ref);
|
|
601
|
+
}
|
|
602
|
+
/** Switch the sequence's lanes to what its time asks for. */
|
|
603
|
+
syncCues(ctx, inst) {
|
|
604
|
+
if (!ctx.getAction && !this.cueRunner)
|
|
605
|
+
return;
|
|
606
|
+
const lanes = inst.schedule.cues.map(sc => ({ ...sc, command: cueCommand(sc.cue) }));
|
|
607
|
+
this.syncLanes(lanes, cueStatesAt(inst.schedule, inst.time), inst.cueState, inst.owned, { effects: inst.playing, host: 'sequence', timelineId: inst.seq.id });
|
|
608
|
+
}
|
|
609
|
+
/** Fire the 'fire' cues the playhead crossed moving forward since the last tick. */
|
|
610
|
+
fireCues(_ctx, inst) {
|
|
611
|
+
const prev = inst.cueTime;
|
|
612
|
+
inst.cueTime = inst.time;
|
|
613
|
+
if (prev === undefined || !inst.playing || !this.cueRunner)
|
|
614
|
+
return;
|
|
615
|
+
const wrapped = !inst.driven && inst.direction === 1 && inst.time < prev - 1e-9;
|
|
616
|
+
for (const sc of firedBetween(inst.schedule.cues, prev, inst.time, wrapped ? inst.schedule.duration : undefined)) {
|
|
617
|
+
const cmd = cueCommand(sc.cue);
|
|
618
|
+
if (cmd)
|
|
619
|
+
this.cueRunner(cmd, 'fire', { effects: true, host: 'sequence', timelineId: inst.seq.id, getAction: this.ctx?.getAction });
|
|
620
|
+
}
|
|
621
|
+
}
|
|
622
|
+
/** A clip's cues: state lanes to what its time asks for, and fire cues crossed moving forward. */
|
|
623
|
+
syncClipCues(inst, prev, dir) {
|
|
624
|
+
const schedule = clipCueSchedule(inst.clip);
|
|
625
|
+
const lanes = schedule.map(sc => ({ ...sc, command: cueCommand(sc.cue) }));
|
|
626
|
+
this.syncLanes(lanes, cueStatesAt({ cues: schedule }, inst.time), inst.cueState, inst.owned, { effects: inst.playing, host: 'clip', timelineId: inst.clip.id });
|
|
627
|
+
const last = inst.cueTime;
|
|
628
|
+
inst.cueTime = inst.time;
|
|
629
|
+
if (last === undefined || !inst.playing || !this.cueRunner)
|
|
630
|
+
return;
|
|
631
|
+
const wrapped = dir === 1 && inst.direction === 1 && inst.time < prev - 1e-9;
|
|
632
|
+
for (const sc of firedBetween(schedule, last, inst.time, wrapped ? inst.clip.duration : undefined)) {
|
|
633
|
+
const cmd = cueCommand(sc.cue);
|
|
634
|
+
if (cmd)
|
|
635
|
+
this.cueRunner(cmd, 'fire', { effects: true, host: 'clip', timelineId: inst.clip.id, getAction: this.ctx?.getAction });
|
|
636
|
+
}
|
|
637
|
+
}
|
|
638
|
+
/** Switch off every lane a timeline switched on (stop / close). */
|
|
639
|
+
releaseCues(owned, host, timelineId) {
|
|
640
|
+
for (const cmd of [...owned.values()].reverse())
|
|
641
|
+
this.switchOff(cmd, host, timelineId);
|
|
642
|
+
owned.clear();
|
|
643
|
+
}
|
|
644
|
+
/** Revert every lane the sequence switched on (stop / close). */
|
|
525
645
|
releaseActions(inst) {
|
|
526
|
-
|
|
527
|
-
SceneActions.revertAction(id);
|
|
528
|
-
inst.owned.clear();
|
|
646
|
+
this.releaseCues(inst.owned, 'sequence', inst.seq.id);
|
|
529
647
|
inst.cueState.clear();
|
|
530
648
|
}
|
|
531
649
|
/** Every driver's values for this frame, lowest priority first. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"appliers.d.ts","sourceRoot":"","sources":["../../src/animationsV2/appliers.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"appliers.d.ts","sourceRoot":"","sources":["../../src/animationsV2/appliers.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAgB/C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAGxC,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACjC,qDAAqD;IACrD,QAAQ,EAAE,GAAG,CAAC;IACd,yFAAyF;IACzF,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,GAAG,CAAC;IACpC,0EAA0E;IAC1E,SAAS,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,cAAc,GAAG,SAAS,CAAC;CACxD;AAWD,wBAAgB,kBAAkB,IAAI,IAAI,CAIzC;AAsLD,uFAAuF;AACvF,mFAAmF;AACnF,wBAAgB,UAAU,CAAC,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAIlH;AAED,mFAAmF;AACnF,wBAAgB,eAAe,CAAC,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAKxF;AAED,yEAAyE;AACzE,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAEjE"}
|
|
@@ -4,6 +4,8 @@ import { CLOUD_LIVE_KEY } from '../hooks/useCloudLive.js';
|
|
|
4
4
|
import { OCEAN_LIVE_KEY } from '../hooks/useOceanLive.js';
|
|
5
5
|
import { TERRAIN_LIVE_KEY } from '../hooks/useTerrainLive.js';
|
|
6
6
|
import { createSunPosition } from '../utils/utils3d.js';
|
|
7
|
+
import { sunAnglesFromDirection } from '@3driseai/3drise-core';
|
|
8
|
+
import { publishRenderedSky, sceneOf } from '../utils/renderedSky.js';
|
|
7
9
|
import { applyNodeValue, clearNodeCaches, nodesFor } from './nodeTracks.js';
|
|
8
10
|
// --- live-target caches (cleared when the scene changes under us) -------------
|
|
9
11
|
const objectCache = new Map();
|
|
@@ -141,17 +143,31 @@ const applySky = (_ctx, _state, path, value) => {
|
|
|
141
143
|
if (SKY_UNIFORM_KEYS.has(path)) {
|
|
142
144
|
if (uniforms[path])
|
|
143
145
|
uniforms[path].value = value;
|
|
144
|
-
return;
|
|
145
146
|
}
|
|
146
|
-
if ((path === 'elevation' || path === 'azimuth') && uniforms.sunPosition) {
|
|
147
|
+
else if ((path === 'elevation' || path === 'azimuth') && uniforms.sunPosition) {
|
|
147
148
|
// The other angle comes from the current sun, so the two can be keyed separately.
|
|
148
|
-
const
|
|
149
|
-
const r = Math.sqrt(x * x + y * y + z * z) || 1;
|
|
150
|
-
const current = { elevation: 90 - Math.acos(y / r) * (180 / Math.PI), azimuth: Math.atan2(z, x) * (180 / Math.PI) };
|
|
149
|
+
const current = sunAnglesFromDirection(uniforms.sunPosition.value);
|
|
151
150
|
const elevation = path === 'elevation' ? value : current.elevation;
|
|
152
151
|
const azimuth = path === 'azimuth' ? value : current.azimuth;
|
|
153
152
|
uniforms.sunPosition.value.copy(createSunPosition(elevation, azimuth));
|
|
154
153
|
}
|
|
154
|
+
else {
|
|
155
|
+
return;
|
|
156
|
+
}
|
|
157
|
+
// Publish what the clip drew, so the key light, clouds, water and terrain
|
|
158
|
+
// follow the animated sky instead of only the background changing. A hidden
|
|
159
|
+
// sky publishes nothing — SkyController cleared it and nothing should read it.
|
|
160
|
+
if (!sky.visible)
|
|
161
|
+
return;
|
|
162
|
+
const sun = sunAnglesFromDirection(uniforms.sunPosition.value);
|
|
163
|
+
publishRenderedSky(sceneOf(sky), {
|
|
164
|
+
turbidity: uniforms.turbidity.value,
|
|
165
|
+
rayleigh: uniforms.rayleigh.value,
|
|
166
|
+
mieCoefficient: uniforms.mieCoefficient.value,
|
|
167
|
+
mieDirectionalG: uniforms.mieDirectionalG.value,
|
|
168
|
+
elevation: sun.elevation,
|
|
169
|
+
azimuth: sun.azimuth,
|
|
170
|
+
});
|
|
155
171
|
};
|
|
156
172
|
/** Clouds: the layer's live handle — `config.*` is the deck, `cirrus.*` the high layer. */
|
|
157
173
|
const applyClouds = (ctx, _state, path, value) => {
|
|
@@ -10,7 +10,7 @@ export type { ApplyContext } from './appliers';
|
|
|
10
10
|
export { readNodeValue, NODE_TRANSFORM_PATHS, NODE_MATERIAL_KEYS } from './nodeTracks';
|
|
11
11
|
export { resolveElementSettings, isEnvironmentState, ENVIRONMENT_STATES as CLIP_ENVIRONMENT_STATES } from './elementSettings';
|
|
12
12
|
export type { ElementSources } from './elementSettings';
|
|
13
|
-
export type { AnimationClip, Track as ClipTrack, Keyframe as ClipKeyframe, KeyValue as ClipKeyValue, EaseName as ClipEaseName, SequenceStep, StepClip, SequenceCue, AnimationSequence as ClipSequence, SequenceDriver, SequenceDriverSettings, } from './types';
|
|
13
|
+
export type { AnimationClip, Track as ClipTrack, Keyframe as ClipKeyframe, KeyValue as ClipKeyValue, EaseName as ClipEaseName, SequenceStep, StepClip, SequenceCue, TimelineCue, AnimationSequence as ClipSequence, SequenceDriver, SequenceDriverSettings, } from './types';
|
|
14
14
|
export { DEFAULT_DRIVER_SETTINGS } from './types';
|
|
15
15
|
export { DEFAULT_EASE as CLIP_DEFAULT_EASE, FPS_PRESETS as CLIP_FPS_PRESETS } from './types';
|
|
16
16
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/animationsV2/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrF,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAC5D,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACvF,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,kBAAkB,IAAI,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAC9H,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,YAAY,EACR,aAAa,EAAE,KAAK,IAAI,SAAS,EAAE,QAAQ,IAAI,YAAY,EAAE,QAAQ,IAAI,YAAY,EAAE,QAAQ,IAAI,YAAY,EAC/G,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,IAAI,YAAY,EAAE,cAAc,EAAE,sBAAsB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/animationsV2/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrF,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAC5D,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACvF,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,kBAAkB,IAAI,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAC9H,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,YAAY,EACR,aAAa,EAAE,KAAK,IAAI,SAAS,EAAE,QAAQ,IAAI,YAAY,EAAE,QAAQ,IAAI,YAAY,EAAE,QAAQ,IAAI,YAAY,EAC/G,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,iBAAiB,IAAI,YAAY,EAAE,cAAc,EAAE,sBAAsB,GAC9H,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,EAAE,YAAY,IAAI,iBAAiB,EAAE,WAAW,IAAI,gBAAgB,EAAE,MAAM,SAAS,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../../src/animationsV2/normalize.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAkB,MAAM,SAAS,CAAC;AAQhF,wBAAgB,aAAa,CAAC,GAAG,EAAE,GAAG,GAAG,aAAa,
|
|
1
|
+
{"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../../src/animationsV2/normalize.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAkB,MAAM,SAAS,CAAC;AAQhF,wBAAgB,aAAa,CAAC,GAAG,EAAE,GAAG,GAAG,aAAa,CAgBrD;AAID,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,GAAG,GAAG,iBAAiB,CAyC7D"}
|
|
@@ -14,8 +14,12 @@ export function normalizeClip(row) {
|
|
|
14
14
|
yoyo: flag(row.yoyo),
|
|
15
15
|
endMode: row.endMode === 'restore' ? 'restore' : 'hold',
|
|
16
16
|
tracks: Array.isArray(row.tracks) ? row.tracks : [],
|
|
17
|
+
cues: (Array.isArray(row.cues) ? row.cues : [])
|
|
18
|
+
.filter((c) => c && c.command && typeof c.command === 'object')
|
|
19
|
+
.map((c, i) => ({ id: c.id ?? `cue-${i}`, command: c.command, at: Math.max(0, Number(c.at) || 0), mode: CUE_MODES.includes(c.mode) ? c.mode : 'apply' })),
|
|
17
20
|
};
|
|
18
21
|
}
|
|
22
|
+
const CUE_MODES = ['apply', 'revert', 'fire'];
|
|
19
23
|
export function normalizeSequence(row) {
|
|
20
24
|
const steps = Array.isArray(row.steps) ? row.steps : [];
|
|
21
25
|
return {
|
|
@@ -37,13 +41,13 @@ export function normalizeSequence(row) {
|
|
|
37
41
|
: [],
|
|
38
42
|
})),
|
|
39
43
|
cues: (Array.isArray(row.cues) ? row.cues : [])
|
|
40
|
-
.filter((c) => c && typeof c.
|
|
44
|
+
.filter((c) => c && typeof c.stepId === 'string' && c.command && typeof c.command === 'object')
|
|
41
45
|
.map((c, i) => ({
|
|
42
46
|
id: c.id ?? `cue-${i}`,
|
|
43
|
-
|
|
47
|
+
command: c.command,
|
|
44
48
|
stepId: c.stepId,
|
|
45
49
|
at: Math.max(0, Number(c.at) || 0),
|
|
46
|
-
mode: c.mode
|
|
50
|
+
mode: CUE_MODES.includes(c.mode) ? c.mode : 'apply',
|
|
47
51
|
})),
|
|
48
52
|
loop: flag(row.loop),
|
|
49
53
|
yoyo: flag(row.yoyo),
|