@3driseai/3drise-viewer 0.1.28 → 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 +1 -1
- package/dist/components/ApollonianGrid.d.ts.map +1 -1
- package/dist/components/ApollonianGrid.js +3 -28
- 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 +1 -1
- package/dist/components/ConformalGrid.d.ts.map +1 -1
- package/dist/components/ConformalGrid.js +3 -34
- 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/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 +1 -1
- package/dist/components/HilbertGrid.d.ts.map +1 -1
- package/dist/components/HilbertGrid.js +3 -30
- 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 +1 -1
- package/dist/components/LensingGrid.d.ts.map +1 -1
- package/dist/components/LensingGrid.js +3 -29
- 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 +1 -1
- package/dist/components/ParastichyGrid.d.ts.map +1 -1
- package/dist/components/ParastichyGrid.js +3 -30
- package/dist/components/PhyllotaxisGrid.d.ts +1 -1
- package/dist/components/PhyllotaxisGrid.d.ts.map +1 -1
- package/dist/components/PhyllotaxisGrid.js +3 -32
- 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 +1 -1
- package/dist/components/TruchetGrid.d.ts.map +1 -1
- package/dist/components/TruchetGrid.js +3 -30
- 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 +10 -10
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +8 -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.map +1 -1
- package/dist/constants.js +4 -0
- 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 +18 -23
- package/dist/types/gridConfigs.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":"registry.d.ts","sourceRoot":"","sources":["../../src/operations/registry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC9F,OAAO,KAAK,EAAE,mBAAmB,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/operations/registry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC9F,OAAO,KAAK,EAAE,mBAAmB,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AA+DrF,eAAO,MAAM,UAAU,EAAE,mBAAmB,EAQ3C,CAAC;AAIF,eAAO,MAAM,YAAY,GAAI,MAAM,aAAa,KAAG,mBAAmB,GAAG,SAA6B,CAAC;AAEvG,2GAA2G;AAC3G,eAAO,MAAM,aAAa,GAAI,QAAQ,eAAe,EAAE,OAAM;IAAE,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,gBAAgB,CAAA;CAAO,KAAG,mBAAmB,EACG,CAAC;AAE7I,kGAAkG;AAClG,eAAO,MAAM,SAAS,GAAI,QAAQ,IAAI,CAAC,eAAe,EAAE,WAAW,CAAC,GAAG;IAAE,OAAO,CAAC,EAAE,gBAAgB,CAAA;CAAE,KAAG,gBAC/B,CAAC;AAE1E,6EAA6E;AAC7E,wBAAgB,aAAa,CAAC,GAAG,EAAE,mBAAmB,EAAE,SAAS,CAAC,EAAE,eAAe,GAAG,eAAe,CAOpG"}
|
|
@@ -11,6 +11,18 @@ import spin from './catalogue/spin.js';
|
|
|
11
11
|
import jelly from './catalogue/jelly.js';
|
|
12
12
|
import flip from './catalogue/flip.js';
|
|
13
13
|
import swirl from './catalogue/swirl.js';
|
|
14
|
+
import blastOff from './catalogue/blastOff.js';
|
|
15
|
+
import vortexDrain from './catalogue/vortexDrain.js';
|
|
16
|
+
import leafFall from './catalogue/leafFall.js';
|
|
17
|
+
import pop from './catalogue/pop.js';
|
|
18
|
+
import driftUp from './catalogue/driftUp.js';
|
|
19
|
+
import slingshot from './catalogue/slingshot.js';
|
|
20
|
+
import warp from './catalogue/warp.js';
|
|
21
|
+
import knockAway from './catalogue/knockAway.js';
|
|
22
|
+
import turnAway from './catalogue/turnAway.js';
|
|
23
|
+
import flyBy from './catalogue/flyBy.js';
|
|
24
|
+
import whoosh from './catalogue/whoosh.js';
|
|
25
|
+
import slam from './catalogue/slam.js';
|
|
14
26
|
import emberAsh from './catalogue/emberAsh.js';
|
|
15
27
|
import particleSwarm from './catalogue/particleSwarm.js';
|
|
16
28
|
import hologram from './catalogue/hologram.js';
|
|
@@ -37,12 +49,22 @@ import curlSmoke from './catalogue/curlSmoke.js';
|
|
|
37
49
|
import lidarScan from './catalogue/lidarScan.js';
|
|
38
50
|
import print3d from './catalogue/print3d.js';
|
|
39
51
|
import silkDrape from './catalogue/silkDrape.js';
|
|
52
|
+
import { TRAILS } from './catalogue/motionTrail.js';
|
|
53
|
+
import float from './catalogue/float.js';
|
|
54
|
+
import sway from './catalogue/sway.js';
|
|
55
|
+
import bounce from './catalogue/bounce.js';
|
|
56
|
+
import wobble from './catalogue/wobble.js';
|
|
57
|
+
import pulse from './catalogue/pulse.js';
|
|
58
|
+
import shake from './catalogue/shake.js';
|
|
59
|
+
import rotate from './catalogue/rotate.js';
|
|
60
|
+
import grow from './catalogue/grow.js';
|
|
40
61
|
// Grouped by channel (picker order): transform · visual · camera.
|
|
41
62
|
export const OPERATIONS = [
|
|
42
|
-
jelly, flip, spin, swirl, moveToFront,
|
|
63
|
+
jelly, flip, spin, swirl, blastOff, vortexDrain, leafFall, pop, driftUp, slingshot, warp, knockAway, turnAway, flyBy, whoosh, slam, moveToFront,
|
|
64
|
+
float, sway, bounce, wobble, pulse, shake, rotate, grow,
|
|
43
65
|
glow, rimLight, dissolve, emberAsh, particleSwarm, hologram, shatter,
|
|
44
66
|
sandErosion, teleport, inkBloom, flock, liquidMetal, metalize, frost, heatCracks, petrify, kintsugi, rainBeads, ivy,
|
|
45
|
-
portal, voxelize, unweave, petalPeel, curlSmoke, lidarScan, print3d, silkDrape,
|
|
67
|
+
portal, voxelize, unweave, petalPeel, curlSmoke, lidarScan, print3d, silkDrape, ...TRAILS,
|
|
46
68
|
fade, visibility, displayImage,
|
|
47
69
|
zoom, frame, focus, orbit,
|
|
48
70
|
];
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { Object3D } from 'three';
|
|
2
|
-
import type { ActionSequence, OperationEffect, OperationName } from '@3driseai/3drise-core';
|
|
2
|
+
import type { ActionSequence, EffectClip, EffectClipUse, OperationEffect, OperationName } from '@3driseai/3drise-core';
|
|
3
3
|
import type { OperationDefinition, OperationParams, OperationTools } from './types';
|
|
4
|
+
import '../triggers/kinds/effects';
|
|
4
5
|
/** Register the mounted scene's tools. Returns the unregister. */
|
|
5
6
|
export declare function registerOperationTools(t: OperationTools): () => void;
|
|
6
7
|
export declare function isOperationOn(op: OperationName, target: Object3D): boolean;
|
|
@@ -23,6 +24,49 @@ export declare function revertOperation(def: OperationDefinition, target: Object
|
|
|
23
24
|
* operations that are not on do nothing.
|
|
24
25
|
*/
|
|
25
26
|
export declare function forceRevert(def: OperationDefinition, target: Object3D, params: OperationParams): void;
|
|
27
|
+
/**
|
|
28
|
+
* Object effects that an interaction or an action adds are run by the object's own effects
|
|
29
|
+
* controller (objectEffects.ts registers itself here — the import goes that way round), so they
|
|
30
|
+
* follow the same rules as the object's own: take-overs hand over directly, playback, one of each.
|
|
31
|
+
*/
|
|
32
|
+
export interface AddedEffectsRouter {
|
|
33
|
+
add(root: Object3D, key: string, effect: {
|
|
34
|
+
operation: OperationName;
|
|
35
|
+
params?: OperationParams;
|
|
36
|
+
playback?: OperationEffect['playback'];
|
|
37
|
+
meshNames?: string[];
|
|
38
|
+
scope?: OperationEffect['scope'];
|
|
39
|
+
}): boolean;
|
|
40
|
+
remove(root: Object3D, key: string): boolean;
|
|
41
|
+
has(root: Object3D, key: string): boolean;
|
|
42
|
+
applyClip(root: Object3D, key: string, clip: EffectClip, parts?: string[]): boolean;
|
|
43
|
+
removeClip(root: Object3D, key: string): boolean;
|
|
44
|
+
hasClip(root: Object3D, key: string): boolean;
|
|
45
|
+
}
|
|
46
|
+
export declare function setEffectClipTemplates(list: EffectClip[] | null | undefined, source?: string): void;
|
|
47
|
+
export declare const getEffectClipTemplate: (id: string) => EffectClip | undefined;
|
|
48
|
+
/** Asset type of a saved effect clip (assets table). */
|
|
49
|
+
export declare const EFFECT_CLIP_ASSET = "effect_clip";
|
|
50
|
+
/** A saved effect clip from its asset row: the clip is the asset's `settings` ({ version, effects, steps, loop, yoyo }), the preview its `url`. */
|
|
51
|
+
export declare function effectClipFromAsset(asset: {
|
|
52
|
+
id: string;
|
|
53
|
+
name?: string;
|
|
54
|
+
url?: string | null;
|
|
55
|
+
settings?: unknown;
|
|
56
|
+
creatorId?: string;
|
|
57
|
+
privacy?: string;
|
|
58
|
+
} | null | undefined): EffectClip | null;
|
|
59
|
+
/**
|
|
60
|
+
* Apply / revert / toggle a saved effect clip on its targets (an interaction's or an action's
|
|
61
|
+
* `effectClips`). The clip has no target of its own: it is laid over each target object's own
|
|
62
|
+
* effects by that object's controller, and comes off again on revert.
|
|
63
|
+
*/
|
|
64
|
+
export declare function runEffectClip(use: EffectClipUse, mode: 'apply' | 'revert' | 'toggle', self?: Object3D | null): number;
|
|
65
|
+
/** Is a saved effect clip use on (on any of its targets)? */
|
|
66
|
+
export declare function isEffectClipOn(use: EffectClipUse, self?: Object3D | null): boolean;
|
|
67
|
+
export declare const registerAddedEffects: (r: AddedEffectsRouter) => void;
|
|
68
|
+
/** Is an effect on (on any of its targets)? One-shot operations never are. */
|
|
69
|
+
export declare function isEffectOn(effect: OperationEffect, self?: Object3D | null): boolean;
|
|
26
70
|
/** The objects an effect acts on: 'self', object ids, narrowed to model nodes. */
|
|
27
71
|
export declare function resolveEffectTargets(effect: OperationEffect, self?: Object3D | null): Object3D[];
|
|
28
72
|
/**
|
|
@@ -52,7 +96,18 @@ export declare const isPreviewing: (effectId: string) => boolean;
|
|
|
52
96
|
* interactions and actions use, when the scene loads.
|
|
53
97
|
*/
|
|
54
98
|
export declare function prewarmEffect(effect: OperationEffect, self?: Object3D | null): Promise<void>;
|
|
55
|
-
/**
|
|
99
|
+
/**
|
|
100
|
+
* A warm-only apply: stages and compiles what the operation needs on the target and
|
|
101
|
+
* animates nothing. It is left staged at its start — apply it for real next, or revert it.
|
|
102
|
+
* Used to get an effect ready while its object is still hidden (see objectEffects, Visible).
|
|
103
|
+
*/
|
|
104
|
+
export declare function warmOperation(def: OperationDefinition, target: Object3D, params: OperationParams, self?: Object3D | null, opts?: {
|
|
105
|
+
bare?: boolean;
|
|
106
|
+
}): Promise<void>;
|
|
107
|
+
/**
|
|
108
|
+
* Apply or undo an action's effects directly (the editor's "Try it"). They run through the
|
|
109
|
+
* triggers engine with the action as their source (and whatever applied it as their chain).
|
|
110
|
+
*/
|
|
56
111
|
export declare function runActionEffects(action: ActionSequence, mode: 'apply' | 'revert'): void;
|
|
57
112
|
export declare const areActionEffectsOn: (actionId: string) => boolean;
|
|
58
113
|
/** Subscribe to action-effects on/off changes (studio badges). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/operations/runtime.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEtC,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,aAAa,EAAgB,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/operations/runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,9 @@ import { SceneActions, findNodesByName } from '@3driseai/3drise-core';
|
|
|
2
2
|
import { findById } from '../utils/sceneQuery.js';
|
|
3
3
|
import { getOperation, resolveParams } from './registry.js';
|
|
4
4
|
import { warmMode } from './catalogue/warmup.js';
|
|
5
|
+
import { runActionCommands } from '../triggers/hosts/actions.js';
|
|
6
|
+
// the effect / effect clip triggerables (they call back into this module at run time)
|
|
7
|
+
import '../triggers/kinds/effects.js';
|
|
5
8
|
const active = new Map(); // `${op}:${uuid}`
|
|
6
9
|
const slots = new Map(); // exclusive group → active key
|
|
7
10
|
const toolsStack = [];
|
|
@@ -118,6 +121,123 @@ export function forceRevert(def, target, params) {
|
|
|
118
121
|
const ctx = context(undefined, true);
|
|
119
122
|
runs.set(keyOf(def.value, target), finished(def.revert(target, params, ctx), params));
|
|
120
123
|
}
|
|
124
|
+
// ---------------------------------------------------------------- effect clips (templates)
|
|
125
|
+
/**
|
|
126
|
+
* Saved effect clips (templates), by id. Interactions and actions point at them; an object that
|
|
127
|
+
* imports one gets a copy. They come from more than one place — the studio's list of the user's
|
|
128
|
+
* templates, the templates a loaded project links — so each source keeps its own list.
|
|
129
|
+
*/
|
|
130
|
+
const clipSources = new Map();
|
|
131
|
+
export function setEffectClipTemplates(list, source = 'default') {
|
|
132
|
+
const m = new Map();
|
|
133
|
+
for (const c of list ?? [])
|
|
134
|
+
if (c?.id)
|
|
135
|
+
m.set(c.id, c);
|
|
136
|
+
clipSources.set(source, m);
|
|
137
|
+
}
|
|
138
|
+
export const getEffectClipTemplate = (id) => {
|
|
139
|
+
for (const m of clipSources.values()) {
|
|
140
|
+
const c = m.get(id);
|
|
141
|
+
if (c)
|
|
142
|
+
return c;
|
|
143
|
+
}
|
|
144
|
+
return undefined;
|
|
145
|
+
};
|
|
146
|
+
/** Asset type of a saved effect clip (assets table). */
|
|
147
|
+
export const EFFECT_CLIP_ASSET = 'effect_clip';
|
|
148
|
+
/** A saved effect clip from its asset row: the clip is the asset's `settings` ({ version, effects, steps, loop, yoyo }), the preview its `url`. */
|
|
149
|
+
export function effectClipFromAsset(asset) {
|
|
150
|
+
if (!asset?.id)
|
|
151
|
+
return null;
|
|
152
|
+
const s = (asset.settings && typeof asset.settings === 'object' && !Array.isArray(asset.settings) ? asset.settings : {});
|
|
153
|
+
return {
|
|
154
|
+
id: asset.id, name: asset.name || 'Effect clip',
|
|
155
|
+
effects: Array.isArray(s.effects) ? s.effects : [],
|
|
156
|
+
...(Array.isArray(s.steps) ? { steps: s.steps } : {}),
|
|
157
|
+
...(s.loop !== undefined ? { loop: !!s.loop } : {}),
|
|
158
|
+
...(s.yoyo !== undefined ? { yoyo: !!s.yoyo } : {}),
|
|
159
|
+
...(s.visible ? { visible: true } : {}),
|
|
160
|
+
...(s.spread && typeof s.spread === 'object' ? { spread: s.spread } : {}),
|
|
161
|
+
...(asset.url ? { previewUrl: asset.url } : {}),
|
|
162
|
+
...(asset.creatorId ? { creatorId: asset.creatorId } : {}),
|
|
163
|
+
...(asset.privacy ? { privacy: asset.privacy } : {}),
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Apply / revert / toggle a saved effect clip on its targets (an interaction's or an action's
|
|
168
|
+
* `effectClips`). The clip has no target of its own: it is laid over each target object's own
|
|
169
|
+
* effects by that object's controller, and comes off again on revert.
|
|
170
|
+
*/
|
|
171
|
+
export function runEffectClip(use, mode, self) {
|
|
172
|
+
const clip = getEffectClipTemplate(use.clip);
|
|
173
|
+
if (!router)
|
|
174
|
+
return 0;
|
|
175
|
+
let n = 0;
|
|
176
|
+
for (const t of use.targets ?? []) {
|
|
177
|
+
const root = t === 'self' ? self : findById(t);
|
|
178
|
+
if (!root)
|
|
179
|
+
continue;
|
|
180
|
+
const on = router.hasClip(root, use.id);
|
|
181
|
+
if (mode === 'revert' || (mode === 'toggle' && on)) {
|
|
182
|
+
if (router.removeClip(root, use.id))
|
|
183
|
+
n++;
|
|
184
|
+
}
|
|
185
|
+
else if (clip && router.applyClip(root, use.id, clip, t === 'self' ? undefined : use.meshNames?.[t]))
|
|
186
|
+
n++;
|
|
187
|
+
}
|
|
188
|
+
return n;
|
|
189
|
+
}
|
|
190
|
+
/** Is a saved effect clip use on (on any of its targets)? */
|
|
191
|
+
export function isEffectClipOn(use, self) {
|
|
192
|
+
if (!router)
|
|
193
|
+
return false;
|
|
194
|
+
return (use?.targets ?? []).some(t => {
|
|
195
|
+
const root = t === 'self' ? self : findById(t);
|
|
196
|
+
return !!root && router.hasClip(root, use.id);
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
let router = null;
|
|
200
|
+
export const registerAddedEffects = (r) => { router = r; };
|
|
201
|
+
const routable = (def) => !!router && def.usableIn.includes('object');
|
|
202
|
+
function slotsOf(effect, self, multi) {
|
|
203
|
+
const out = [];
|
|
204
|
+
for (const t of effect.targets ?? []) {
|
|
205
|
+
const root = t === 'self' ? self : findById(t);
|
|
206
|
+
if (!root)
|
|
207
|
+
continue;
|
|
208
|
+
const names = t === 'self' ? undefined : effect.meshNames?.[t];
|
|
209
|
+
const nodes = names?.length
|
|
210
|
+
? names.flatMap(name => findNodesByName(root, name).filter(n => n !== root))
|
|
211
|
+
: [root];
|
|
212
|
+
out.push({ root, names: names?.length ? names : undefined, nodes });
|
|
213
|
+
}
|
|
214
|
+
return multi ? out : out.slice(0, 1);
|
|
215
|
+
}
|
|
216
|
+
function slotOn(def, effect, slot) {
|
|
217
|
+
return routable(def) ? router.has(slot.root, effect.id) : slot.nodes.some(n => isOperationOn(def.value, n));
|
|
218
|
+
}
|
|
219
|
+
function slotApply(def, effect, slot, params, self) {
|
|
220
|
+
if (routable(def))
|
|
221
|
+
router.add(slot.root, effect.id, { operation: def.value, params, playback: effect.playback, meshNames: slot.names, ...(effect.scope ? { scope: effect.scope } : {}) });
|
|
222
|
+
else
|
|
223
|
+
for (const n of slot.nodes)
|
|
224
|
+
applyOperation(def, n, params, self);
|
|
225
|
+
}
|
|
226
|
+
function slotRevert(def, effect, slot) {
|
|
227
|
+
if (routable(def))
|
|
228
|
+
router.remove(slot.root, effect.id);
|
|
229
|
+
else
|
|
230
|
+
for (const n of slot.nodes)
|
|
231
|
+
revertOperation(def, n);
|
|
232
|
+
}
|
|
233
|
+
const slotDone = (def, slot) => Promise.all(slot.nodes.map(n => runOf(def.value, n)));
|
|
234
|
+
/** Is an effect on (on any of its targets)? One-shot operations never are. */
|
|
235
|
+
export function isEffectOn(effect, self) {
|
|
236
|
+
const def = effect && getOperation(effect.operation);
|
|
237
|
+
if (!def)
|
|
238
|
+
return false;
|
|
239
|
+
return slotsOf(effect, self, !!def.multi).some(s => slotOn(def, effect, s));
|
|
240
|
+
}
|
|
121
241
|
/** The objects an effect acts on: 'self', object ids, narrowed to model nodes. */
|
|
122
242
|
export function resolveEffectTargets(effect, self) {
|
|
123
243
|
const out = [];
|
|
@@ -145,15 +265,14 @@ export function runEffect(effect, mode, self) {
|
|
|
145
265
|
const def = getOperation(effect.operation);
|
|
146
266
|
if (!def)
|
|
147
267
|
return;
|
|
148
|
-
const targets = resolveEffectTargets(effect, self);
|
|
149
268
|
const params = resolveParams(def, effect.params);
|
|
150
|
-
for (const
|
|
151
|
-
const on =
|
|
269
|
+
for (const slot of slotsOf(effect, self, !!def.multi)) {
|
|
270
|
+
const on = slotOn(def, effect, slot);
|
|
152
271
|
const m = mode === 'trigger' ? (def.toggles ? 'toggle' : 'apply') : mode;
|
|
153
272
|
if (m === 'revert' || (m === 'toggle' && on))
|
|
154
|
-
|
|
273
|
+
slotRevert(def, effect, slot);
|
|
155
274
|
else if (m === 'apply' || m === 'toggle')
|
|
156
|
-
|
|
275
|
+
slotApply(def, effect, slot, params, self);
|
|
157
276
|
}
|
|
158
277
|
}
|
|
159
278
|
// ---------------------------------------------------------------- preview
|
|
@@ -173,26 +292,27 @@ export async function previewEffect(effect, self) {
|
|
|
173
292
|
const def = getOperation(effect.operation);
|
|
174
293
|
if (!def || !tools())
|
|
175
294
|
return false;
|
|
176
|
-
const
|
|
177
|
-
if (!
|
|
295
|
+
const list = slotsOf(effect, self, !!def.multi);
|
|
296
|
+
if (!list.some(s => s.nodes.length))
|
|
178
297
|
return false;
|
|
179
|
-
const list = def.multi ? targets : targets.slice(0, 1);
|
|
180
298
|
const prev = previews.get(effect.id);
|
|
181
299
|
if (prev) {
|
|
182
300
|
const pd = getOperation(prev.op);
|
|
183
301
|
if (pd)
|
|
184
|
-
for (const
|
|
185
|
-
if (
|
|
186
|
-
|
|
302
|
+
for (const s of prev.slots)
|
|
303
|
+
if (slotOn(pd, { ...effect, operation: prev.op }, s))
|
|
304
|
+
slotRevert(pd, { ...effect, operation: prev.op }, s);
|
|
187
305
|
}
|
|
188
306
|
const token = (prev?.token ?? 0) + 1;
|
|
189
|
-
previews.set(effect.id, { token, op: def.value,
|
|
307
|
+
previews.set(effect.id, { token, op: def.value, slots: list });
|
|
190
308
|
const alive = () => previews.get(effect.id)?.token === token;
|
|
191
309
|
const params = resolveParams(def, effect.params);
|
|
192
|
-
|
|
193
|
-
const
|
|
310
|
+
// (a routed effect starts through the object's controller: give it a tick before waiting on its run)
|
|
311
|
+
const tick = () => new Promise(r => setTimeout(r, 0));
|
|
312
|
+
const applyAll = async () => { list.forEach(s => slotApply(def, effect, s, params, self)); await tick(); await Promise.all(list.map(s => slotDone(def, s))); };
|
|
313
|
+
const revertAll = async () => { list.forEach(s => slotRevert(def, effect, s)); await tick(); await Promise.all(list.map(s => slotDone(def, s))); };
|
|
194
314
|
try {
|
|
195
|
-
const wasOn = list.some(
|
|
315
|
+
const wasOn = list.some(s => slotOn(def, effect, s));
|
|
196
316
|
if (wasOn) {
|
|
197
317
|
await revertAll();
|
|
198
318
|
if (!alive())
|
|
@@ -270,6 +390,27 @@ export function prewarmEffect(effect, self) {
|
|
|
270
390
|
warmQueue = warmQueue.then(job, job);
|
|
271
391
|
return warmQueue;
|
|
272
392
|
}
|
|
393
|
+
/**
|
|
394
|
+
* A warm-only apply: stages and compiles what the operation needs on the target and
|
|
395
|
+
* animates nothing. It is left staged at its start — apply it for real next, or revert it.
|
|
396
|
+
* Used to get an effect ready while its object is still hidden (see objectEffects, Visible).
|
|
397
|
+
*/
|
|
398
|
+
export function warmOperation(def, target, params, self, opts) {
|
|
399
|
+
if (def.channel !== 'visual' || !def.revert || NO_SHADERS.has(def.value))
|
|
400
|
+
return Promise.resolve();
|
|
401
|
+
const ctx = context(self, opts?.bare);
|
|
402
|
+
if (!ctx)
|
|
403
|
+
return Promise.resolve();
|
|
404
|
+
warmMode.on = true;
|
|
405
|
+
let res;
|
|
406
|
+
try {
|
|
407
|
+
res = def.apply(target, params, ctx);
|
|
408
|
+
}
|
|
409
|
+
finally {
|
|
410
|
+
warmMode.on = false;
|
|
411
|
+
}
|
|
412
|
+
return finished(res, { duration: 0 });
|
|
413
|
+
}
|
|
273
414
|
// ---------------------------------------------------------------- actions
|
|
274
415
|
const actionEffectsOn = new Set();
|
|
275
416
|
const listeners = new Set();
|
|
@@ -277,15 +418,17 @@ const notify = () => listeners.forEach(l => { try {
|
|
|
277
418
|
l();
|
|
278
419
|
}
|
|
279
420
|
catch { /* listener error */ } });
|
|
280
|
-
/**
|
|
421
|
+
/**
|
|
422
|
+
* Apply or undo an action's effects directly (the editor's "Try it"). They run through the
|
|
423
|
+
* triggers engine with the action as their source (and whatever applied it as their chain).
|
|
424
|
+
*/
|
|
281
425
|
export function runActionEffects(action, mode) {
|
|
282
426
|
const on = actionEffectsOn.has(action.id);
|
|
283
427
|
if (mode === 'apply' && on)
|
|
284
428
|
return;
|
|
285
429
|
if (mode === 'revert' && !on)
|
|
286
430
|
return;
|
|
287
|
-
|
|
288
|
-
runEffect(effect, mode);
|
|
431
|
+
runActionCommands(action, mode);
|
|
289
432
|
if (mode === 'apply')
|
|
290
433
|
actionEffectsOn.add(action.id);
|
|
291
434
|
else
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Object3D } from 'three';
|
|
2
2
|
import type { OperationChannel, OperationName, OperationParamValue, Vector3Array } from '@3driseai/3drise-core';
|
|
3
3
|
/** A parameter the studio shows under the effect, with its default. */
|
|
4
|
-
export type OperationParamSpec = {
|
|
4
|
+
export type OperationParamSpec = ({
|
|
5
5
|
type: 'number';
|
|
6
6
|
label: string;
|
|
7
7
|
default: number;
|
|
@@ -29,7 +29,28 @@ export type OperationParamSpec = {
|
|
|
29
29
|
label: string;
|
|
30
30
|
default: boolean;
|
|
31
31
|
hint?: string;
|
|
32
|
+
}
|
|
33
|
+
/** Several of the options at once. The value is their keys joined by commas ('x,z'); at least one stays on. */
|
|
34
|
+
| {
|
|
35
|
+
type: 'multi';
|
|
36
|
+
label: string;
|
|
37
|
+
default: string;
|
|
38
|
+
options: Array<{
|
|
39
|
+
value: string;
|
|
40
|
+
label: string;
|
|
41
|
+
}>;
|
|
42
|
+
hint?: string;
|
|
43
|
+
}) & {
|
|
44
|
+
/**
|
|
45
|
+
* Shown only while other parameters have one of these values, e.g. `{ style: ['sparks'] }`
|
|
46
|
+
* (a setting that belongs to one style of the effect). Hidden settings keep their values.
|
|
47
|
+
*/
|
|
48
|
+
showWhen?: Record<string, string[]>;
|
|
32
49
|
};
|
|
50
|
+
/** Whether a parameter is shown for the effect's current values (see `showWhen`). */
|
|
51
|
+
export declare const paramShown: (spec: OperationParamSpec, values: Record<string, unknown>) => boolean;
|
|
52
|
+
/** The options a `multi` parameter value has on. */
|
|
53
|
+
export declare const multiValues: (value: unknown) => string[];
|
|
33
54
|
export type OperationParams = Record<string, OperationParamValue>;
|
|
34
55
|
/** interaction / action: triggered. object: layered on the object (CreatedObject.effects), switched on / off. */
|
|
35
56
|
export type OperationSource = 'interaction' | 'action' | 'object';
|
|
@@ -95,8 +116,9 @@ export interface OperationDefinition {
|
|
|
95
116
|
};
|
|
96
117
|
params?: Record<string, OperationParamSpec>;
|
|
97
118
|
/**
|
|
98
|
-
* Object effects only:
|
|
99
|
-
*
|
|
119
|
+
* Object effects only: the defaults an attached effect starts from, e.g. a hologram
|
|
120
|
+
* that stays (`disappear: false`). The user can change them (Disappear on makes the
|
|
121
|
+
* effect the object's entrance / exit when its effects follow visibility).
|
|
100
122
|
*/
|
|
101
123
|
objectParams?: OperationParams;
|
|
102
124
|
/**
|
|
@@ -109,6 +131,41 @@ export interface OperationDefinition {
|
|
|
109
131
|
apply: (target: Object3D, params: OperationParams, ctx: OperationContext) => void | Promise<void>;
|
|
110
132
|
/** No revert = one-way (applies only). */
|
|
111
133
|
revert?: (target: Object3D, params: OperationParams, ctx: OperationContext) => void | Promise<void>;
|
|
134
|
+
/**
|
|
135
|
+
* A motion that repeats for as long as the effect is on (float, sway, rotate…).
|
|
136
|
+
* Played as an object effect it follows the same playback as everything else:
|
|
137
|
+
* one pass of `duration` and it settles, unless Loop keeps it going.
|
|
138
|
+
*/
|
|
139
|
+
periodic?: boolean;
|
|
140
|
+
/**
|
|
141
|
+
* How the effect brings the object in and out when it follows the object's
|
|
142
|
+
* visibility (its effect clip's `visible`):
|
|
143
|
+
* paint a sweeping take-over (frost, hologram…): the object is drawn only where
|
|
144
|
+
* the effect has painted it, and nothing is left where it has retreated
|
|
145
|
+
* vanish the effect takes the object away (dissolve, swirl…): shown = it plays
|
|
146
|
+
* back from gone, hidden = it plays to gone; in between the object is plain
|
|
147
|
+
* Unset: the object appears and the effect plays in; it plays out before the object goes.
|
|
148
|
+
* Any effect with Disappear switched on behaves as `vanish`.
|
|
149
|
+
*/
|
|
150
|
+
presence?: 'paint' | 'vanish';
|
|
151
|
+
/**
|
|
152
|
+
* An add-on that draws what OTHER effects do to the object (the motion trails). Following
|
|
153
|
+
* the object's visibility it is fully on before the object is shown — so it catches the
|
|
154
|
+
* whole entrance — and stays on through the exit, going off only once the object is gone
|
|
155
|
+
* (what is still in flight finishes on its own).
|
|
156
|
+
*/
|
|
157
|
+
addOn?: boolean;
|
|
158
|
+
/**
|
|
159
|
+
* Take-overs built on the transition field: the field state of the look that is on `target`.
|
|
160
|
+
* Having it means the look can be WIPED by the look that replaces it (a direct handover
|
|
161
|
+
* between effect steps — see `goneGlsl` in transitionField.ts) and can wipe another.
|
|
162
|
+
*/
|
|
163
|
+
field?: (target: Object3D) => import('./catalogue/transitionField').FieldState | undefined;
|
|
164
|
+
/**
|
|
165
|
+
* One-shots (no revert): stop a move that is playing and put the target back at
|
|
166
|
+
* once — an object effect switched off or removed mid-move.
|
|
167
|
+
*/
|
|
168
|
+
cancel?: (target: Object3D) => void;
|
|
112
169
|
}
|
|
113
170
|
/** Type helper for catalogue files. */
|
|
114
171
|
export declare const defineOperation: (def: OperationDefinition) => OperationDefinition;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/operations/types.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAEhH,uEAAuE;AACvE,MAAM,MAAM,kBAAkB,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/operations/types.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAEhH,uEAAuE;AACvE,MAAM,MAAM,kBAAkB,GAAG,CAC3B;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAC3H;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAChE;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GACnH;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE;AACrE,+GAA+G;GAC7G;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CACvH,GAAG;IACA;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CACvC,CAAC;AAEF,qFAAqF;AACrF,eAAO,MAAM,UAAU,GAAI,MAAM,kBAAkB,EAAE,QAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAG,OACyB,CAAC;AAEjH,oDAAoD;AACpD,eAAO,MAAM,WAAW,GAAI,OAAO,OAAO,KAAG,MAAM,EAAuE,CAAC;AAE3H,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;AAElE,iHAAiH;AACjH,MAAM,MAAM,eAAe,GAAG,aAAa,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAElE,kFAAkF;AAClF,MAAM,WAAW,cAAc;IAC3B,2DAA2D;IAC3D,aAAa,EAAE,CAAC,EAAE,EAAE;QAAE,QAAQ,CAAC,EAAE,YAAY,CAAA;KAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACzH,+CAA+C;IAC/C,UAAU,EAAE,MAAM;QAAE,QAAQ,EAAE,YAAY,CAAC;QAAC,MAAM,EAAE,YAAY,CAAA;KAAE,GAAG,IAAI,CAAC;IAC1E;;;OAGG;IACH,WAAW,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtG,WAAW,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IAChI,gBAAgB,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;CAC7F;AAED,MAAM,WAAW,gBAAgB;IAC7B,KAAK,EAAE,cAAc,CAAC;IACtB,2DAA2D;IAC3D,IAAI,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;IACvB,wEAAwE;IACxE,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,qDAAqD;IACrD,iBAAiB,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC/D;AAED,MAAM,WAAW,mBAAmB;IAChC,KAAK,EAAE,aAAa,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,yCAAyC;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,4FAA4F;IAC5F,OAAO,EAAE,gBAAgB,CAAC;IAC1B,oCAAoC;IACpC,KAAK,EAAE,OAAO,CAAC;IACf,gDAAgD;IAChD,OAAO,EAAE,OAAO,CAAC;IACjB,uCAAuC;IACvC,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,+BAA+B;IAC/B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;OAIG;IACH,SAAS,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,QAAQ,GAAG,UAAU,CAAA;KAAE,CAAC;IAC9D,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAC5C;;;;OAIG;IACH,YAAY,CAAC,EAAE,eAAe,CAAC;IAC/B;;;;OAIG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,mFAAmF;IACnF,KAAK,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAE,GAAG,EAAE,gBAAgB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClG,0CAA0C;IAC1C,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAE,GAAG,EAAE,gBAAgB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpG;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;;;;;;OASG;IACH,QAAQ,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC9B;;;;;OAKG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;;OAIG;IACH,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,KAAK,OAAO,6BAA6B,EAAE,UAAU,GAAG,SAAS,CAAC;IAC3F;;;OAGG;IACH,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,KAAK,IAAI,CAAC;CACvC;AAED,uCAAuC;AACvC,eAAO,MAAM,eAAe,GAAI,KAAK,mBAAmB,KAAG,mBAA0B,CAAC;AAEtF,eAAO,MAAM,YAAY,eAAe,CAAC;AAEzC,uDAAuD;AACvD,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC;IAAE,KAAK,EAAE,gBAAgB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAIrG,CAAC"}
|
package/dist/operations/types.js
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
|
+
/** Whether a parameter is shown for the effect's current values (see `showWhen`). */
|
|
2
|
+
export const paramShown = (spec, values) => !spec.showWhen || Object.entries(spec.showWhen).every(([k, allowed]) => allowed.includes(String(values[k])));
|
|
3
|
+
/** The options a `multi` parameter value has on. */
|
|
4
|
+
export const multiValues = (value) => String(value ?? '').split(',').map(v => v.trim()).filter(Boolean);
|
|
1
5
|
/** Type helper for catalogue files. */
|
|
2
6
|
export const defineOperation = (def) => def;
|
|
3
7
|
export const DEFAULT_EASE = 'power2.out';
|
|
4
8
|
/** The channels in studio order, with their labels. */
|
|
5
9
|
export const OPERATION_CHANNELS = [
|
|
6
|
-
{ value: 'transform', label: '
|
|
10
|
+
{ value: 'transform', label: 'Physical', description: "Moves, turns or scales the object itself" },
|
|
7
11
|
{ value: 'visual', label: 'Visual', description: 'Changes how the object looks — never where it is' },
|
|
8
12
|
{ value: 'camera', label: 'Camera', description: 'Moves or turns the camera' },
|
|
9
13
|
];
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { Object3D } from 'three';
|
|
2
|
-
import type { ObjectEffect } from '@3driseai/3drise-core';
|
|
3
|
-
export declare function useObjectEffectLayers(ref: React.RefObject<Object3D | null>, effects: ObjectEffect[] | undefined): void;
|
|
2
|
+
import type { EffectSpread, EffectSteps, ObjectEffect } from '@3driseai/3drise-core';
|
|
3
|
+
export declare function useObjectEffectLayers(ref: React.RefObject<Object3D | null>, effects: ObjectEffect[] | undefined, visible?: boolean, steps?: EffectSteps | null, parts?: string[] | null, follows?: boolean, group?: EffectSpread | null): void;
|
|
4
4
|
//# sourceMappingURL=useObjectEffectLayers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useObjectEffectLayers.d.ts","sourceRoot":"","sources":["../../src/operations/useObjectEffectLayers.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"useObjectEffectLayers.d.ts","sourceRoot":"","sources":["../../src/operations/useObjectEffectLayers.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAQrF,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,SAAS,EAAE,OAAO,UAAO,EAAE,KAAK,CAAC,EAAE,WAAW,GAAG,IAAI,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,UAAQ,EAAE,KAAK,CAAC,EAAE,YAAY,GAAG,IAAI,QAgDlO"}
|
|
@@ -1,38 +1,59 @@
|
|
|
1
1
|
// Runs an object's effects (CreatedObject.effects) on its group — see ./objectEffects.ts.
|
|
2
2
|
import { useEffect, useRef } from 'react';
|
|
3
3
|
import { useFrame } from '@react-three/fiber';
|
|
4
|
-
import { ObjectEffectsController, surfaceSignature } from './objectEffects.js';
|
|
4
|
+
import { ObjectEffectsController, objectEffectsControllerFor, surfaceSignature } from './objectEffects.js';
|
|
5
|
+
import { tickMix } from './catalogue/physicalMix.js';
|
|
6
|
+
import { useSceneReady } from '../triggers/readiness.js';
|
|
5
7
|
/** How often (frames) the object's meshes / materials are checked for replacement. */
|
|
6
8
|
const CHECK_EVERY = 20;
|
|
7
|
-
export function useObjectEffectLayers(ref, effects) {
|
|
9
|
+
export function useObjectEffectLayers(ref, effects, visible = true, steps, parts, follows = false, group) {
|
|
8
10
|
const ctrl = useRef(null);
|
|
9
11
|
const signature = useRef('');
|
|
10
12
|
const latest = useRef(effects);
|
|
11
13
|
latest.current = effects;
|
|
12
|
-
const has = !!effects?.length;
|
|
14
|
+
const has = !!effects?.length || !!steps?.steps?.length;
|
|
15
|
+
// A published scene's effects start once it is ready (the studio is never gated).
|
|
16
|
+
const ready = useSceneReady();
|
|
13
17
|
// Changes after the first sync play their transitions; the first lands at once.
|
|
14
18
|
useEffect(() => {
|
|
15
19
|
const root = ref.current;
|
|
16
|
-
if (!root)
|
|
20
|
+
if (!root || !ready)
|
|
17
21
|
return;
|
|
18
22
|
if (!ctrl.current) {
|
|
19
|
-
|
|
23
|
+
// an interaction or action may have made one already (an effect added to an object with none of its own)
|
|
24
|
+
const made = objectEffectsControllerFor(root);
|
|
25
|
+
if (!made && !has)
|
|
20
26
|
return;
|
|
21
|
-
ctrl.current = new ObjectEffectsController(root);
|
|
27
|
+
ctrl.current = made ?? new ObjectEffectsController(root);
|
|
28
|
+
if (!made)
|
|
29
|
+
ctrl.current.setShown(visible); // visibility effects of a hidden object wait for it to be shown
|
|
22
30
|
signature.current = surfaceSignature(root);
|
|
23
|
-
ctrl.current.sync(effects, 'instant');
|
|
31
|
+
ctrl.current.sync(effects, 'instant', steps, parts, follows, group);
|
|
24
32
|
return;
|
|
25
33
|
}
|
|
26
|
-
ctrl.current.sync(effects, 'animate');
|
|
27
|
-
}, [effects, has, ref]);
|
|
34
|
+
ctrl.current.sync(effects, 'animate', steps, parts, follows, group);
|
|
35
|
+
}, [effects, steps, parts, follows, group, has, ref, ready]);
|
|
28
36
|
useEffect(() => () => { ctrl.current?.dispose(); ctrl.current = null; }, []);
|
|
29
37
|
// A model that finished loading, a material swapped by an edit: move the effects over.
|
|
30
38
|
const frame = useRef(0);
|
|
31
39
|
useFrame(() => {
|
|
32
|
-
const c = ctrl.current;
|
|
33
40
|
const root = ref.current;
|
|
41
|
+
if (!ctrl.current && root && !(frame.current % CHECK_EVERY)) {
|
|
42
|
+
// made meanwhile for an added effect: take it over (moves over on a new surface, disposed with the object)
|
|
43
|
+
const made = objectEffectsControllerFor(root);
|
|
44
|
+
if (made) {
|
|
45
|
+
ctrl.current = made;
|
|
46
|
+
signature.current = surfaceSignature(root);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
const c = ctrl.current;
|
|
50
|
+
// Physical effects ride on the object's own transform: lay them over it again now, after the
|
|
51
|
+
// object's property animations wrote it this frame and before the render.
|
|
52
|
+
if (root)
|
|
53
|
+
tickMix(root);
|
|
34
54
|
if (!c || !root || ++frame.current % CHECK_EVERY)
|
|
35
55
|
return;
|
|
56
|
+
c.checkFanout(); // a group: children joined or left
|
|
36
57
|
const sig = surfaceSignature(root);
|
|
37
58
|
if (sig === signature.current)
|
|
38
59
|
return;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
interface Presentable {
|
|
2
|
+
id?: string;
|
|
3
|
+
meshSettings?: {
|
|
4
|
+
visible?: boolean;
|
|
5
|
+
} | null;
|
|
6
|
+
effects?: unknown;
|
|
7
|
+
}
|
|
8
|
+
export declare function usePresentedVisibility<T extends Presentable | null | undefined>(object: T): T;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=usePresentedVisibility.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usePresentedVisibility.d.ts","sourceRoot":"","sources":["../../src/operations/usePresentedVisibility.ts"],"names":[],"mappings":"AAsBA,UAAU,WAAW;IAAG,EAAE,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE;AAErG,wBAAgB,sBAAsB,CAAC,CAAC,SAAS,WAAW,GAAG,IAAI,GAAG,SAAS,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,CA8B7F"}
|