@3driseai/3drise-viewer 0.1.25 → 0.1.27
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 +16 -0
- package/dist/animationsV2/ClipPlayer.d.ts.map +1 -0
- package/dist/animationsV2/ClipPlayer.js +199 -0
- package/dist/animationsV2/ClipsRuntime.d.ts +150 -0
- package/dist/animationsV2/ClipsRuntime.d.ts.map +1 -0
- package/dist/animationsV2/ClipsRuntime.js +707 -0
- package/dist/animationsV2/appliers.d.ts +21 -0
- package/dist/animationsV2/appliers.d.ts.map +1 -0
- package/dist/animationsV2/appliers.js +222 -0
- package/dist/animationsV2/clipUtils.d.ts +33 -0
- package/dist/animationsV2/clipUtils.d.ts.map +1 -0
- package/dist/animationsV2/clipUtils.js +164 -0
- package/dist/animationsV2/elementSettings.d.ts +15 -0
- package/dist/animationsV2/elementSettings.d.ts.map +1 -0
- package/dist/animationsV2/elementSettings.js +16 -0
- package/dist/animationsV2/index.d.ts +16 -0
- package/dist/animationsV2/index.d.ts.map +1 -0
- package/dist/animationsV2/index.js +12 -0
- package/dist/animationsV2/nodeTracks.d.ts +13 -0
- package/dist/animationsV2/nodeTracks.d.ts.map +1 -0
- package/dist/animationsV2/nodeTracks.js +165 -0
- package/dist/animationsV2/normalize.d.ts +4 -0
- package/dist/animationsV2/normalize.d.ts.map +1 -0
- package/dist/animationsV2/normalize.js +60 -0
- package/dist/animationsV2/sequenceUtils.d.ts +98 -0
- package/dist/animationsV2/sequenceUtils.d.ts.map +1 -0
- package/dist/animationsV2/sequenceUtils.js +220 -0
- package/dist/animationsV2/types.d.ts +115 -0
- package/dist/animationsV2/types.d.ts.map +1 -0
- package/dist/animationsV2/types.js +8 -0
- package/dist/api/sceneHandle.d.ts +56 -17
- package/dist/api/sceneHandle.d.ts.map +1 -1
- package/dist/api/sceneHandle.js +154 -77
- package/dist/components/AdvancedGrid.d.ts +8 -2
- package/dist/components/AdvancedGrid.d.ts.map +1 -1
- package/dist/components/AdvancedGrid.js +31 -14
- package/dist/components/AnimatedObject.d.ts.map +1 -1
- package/dist/components/AnimatedObject.js +7 -5
- package/dist/components/Bubbles.d.ts +7 -1
- package/dist/components/Bubbles.d.ts.map +1 -1
- package/dist/components/Bubbles.js +42 -22
- package/dist/components/CameraController.d.ts.map +1 -1
- package/dist/components/CameraController.js +0 -44
- package/dist/components/ChladniGrid.d.ts +8 -4
- package/dist/components/ChladniGrid.d.ts.map +1 -1
- package/dist/components/ChladniGrid.js +31 -13
- package/dist/components/CircuitGrid.d.ts +8 -11
- package/dist/components/CircuitGrid.d.ts.map +1 -1
- package/dist/components/CircuitGrid.js +31 -13
- package/dist/components/Clouds.d.ts.map +1 -1
- package/dist/components/Clouds.js +0 -34
- package/dist/components/CloudsGenerator.d.ts +1 -1
- package/dist/components/CloudsGenerator.js +1 -1
- package/dist/components/ContourGrid.d.ts +8 -14
- package/dist/components/ContourGrid.d.ts.map +1 -1
- package/dist/components/ContourGrid.js +31 -13
- package/dist/components/CreatedObject.d.ts.map +1 -1
- package/dist/components/CreatedObject.js +19 -1
- package/dist/components/EffectsGenerator.d.ts +7 -1
- package/dist/components/EffectsGenerator.d.ts.map +1 -1
- package/dist/components/EffectsGenerator.js +39 -38
- package/dist/components/EnvironmentManager.d.ts +4 -4
- package/dist/components/EnvironmentManager.d.ts.map +1 -1
- package/dist/components/EnvironmentManager.js +1 -1
- package/dist/components/FlowNetGrid.d.ts +8 -4
- package/dist/components/FlowNetGrid.d.ts.map +1 -1
- package/dist/components/FlowNetGrid.js +31 -13
- package/dist/components/FractalGrid.d.ts +8 -12
- package/dist/components/FractalGrid.d.ts.map +1 -1
- package/dist/components/FractalGrid.js +31 -13
- package/dist/components/GirihGrid.d.ts +8 -1
- package/dist/components/GirihGrid.d.ts.map +1 -1
- package/dist/components/GirihGrid.js +31 -13
- package/dist/components/Glyphs.d.ts +7 -1
- package/dist/components/Glyphs.d.ts.map +1 -1
- package/dist/components/Glyphs.js +40 -34
- package/dist/components/GravWaveGrid.d.ts +8 -1
- package/dist/components/GravWaveGrid.d.ts.map +1 -1
- package/dist/components/GravWaveGrid.js +31 -13
- package/dist/components/GridsGenerator.d.ts +7 -1
- package/dist/components/GridsGenerator.d.ts.map +1 -1
- package/dist/components/GridsGenerator.js +20 -18
- package/dist/components/HexGrid.d.ts +8 -10
- package/dist/components/HexGrid.d.ts.map +1 -1
- package/dist/components/HexGrid.js +31 -13
- package/dist/components/HyperbolicGrid.d.ts +8 -4
- package/dist/components/HyperbolicGrid.d.ts.map +1 -1
- package/dist/components/HyperbolicGrid.js +31 -13
- package/dist/components/LandscapeBuilder.d.ts +1 -1
- package/dist/components/LandscapeBuilder.d.ts.map +1 -1
- package/dist/components/LandscapeBuilder.js +1 -1
- package/dist/components/LandscapeObject.d.ts +1 -1
- package/dist/components/LandscapeObject.d.ts.map +1 -1
- package/dist/components/LandscapeObject.js +1 -1
- package/dist/components/MoireGrid.d.ts +8 -12
- package/dist/components/MoireGrid.d.ts.map +1 -1
- package/dist/components/MoireGrid.js +31 -13
- package/dist/components/ObjectNode.d.ts.map +1 -1
- package/dist/components/ObjectNode.js +2 -2
- package/dist/components/ObjectsRenderer.d.ts +4 -1
- package/dist/components/ObjectsRenderer.d.ts.map +1 -1
- package/dist/components/ObjectsRenderer.js +57 -3
- package/dist/components/Ocean.d.ts.map +1 -1
- package/dist/components/Ocean.js +0 -63
- package/dist/components/OceanBuilder.d.ts +1 -1
- package/dist/components/OceanBuilder.js +1 -1
- package/dist/components/ParticlesGenerator.d.ts.map +1 -1
- package/dist/components/ParticlesGenerator.js +6 -0
- package/dist/components/QuasiGrid.d.ts +8 -11
- package/dist/components/QuasiGrid.d.ts.map +1 -1
- package/dist/components/QuasiGrid.js +31 -13
- package/dist/components/RadarGrid.d.ts +8 -13
- package/dist/components/RadarGrid.d.ts.map +1 -1
- package/dist/components/RadarGrid.js +31 -13
- package/dist/components/ReactionDiffusionGrid.d.ts +8 -1
- package/dist/components/ReactionDiffusionGrid.d.ts.map +1 -1
- package/dist/components/ReactionDiffusionGrid.js +33 -139
- package/dist/components/SceneBuilder.d.ts.map +1 -1
- package/dist/components/SceneBuilder.js +19 -4
- package/dist/components/SkyController.d.ts.map +1 -1
- package/dist/components/SkyController.js +0 -39
- package/dist/components/SkySystem.d.ts +1 -1
- package/dist/components/SparklesBurst.d.ts +7 -1
- package/dist/components/SparklesBurst.d.ts.map +1 -1
- package/dist/components/SparklesBurst.js +31 -28
- package/dist/components/Stars.d.ts.map +1 -1
- package/dist/components/Stars.js +3 -47
- package/dist/components/TerrainBuilder.d.ts +1 -1
- package/dist/components/TerrainBuilder.d.ts.map +1 -1
- package/dist/components/TerrainBuilder.js +1 -1
- package/dist/components/VoronoiGrid.d.ts +8 -10
- package/dist/components/VoronoiGrid.d.ts.map +1 -1
- package/dist/components/VoronoiGrid.js +31 -13
- package/dist/components/WallpaperGrid.d.ts +8 -1
- package/dist/components/WallpaperGrid.d.ts.map +1 -1
- package/dist/components/WallpaperGrid.js +33 -210
- package/dist/components/effects/AuraEffect.d.ts +8 -3
- package/dist/components/effects/AuraEffect.d.ts.map +1 -1
- package/dist/components/effects/AuraEffect.js +49 -24
- package/dist/components/effects/AuroraEffect.d.ts +8 -3
- package/dist/components/effects/AuroraEffect.d.ts.map +1 -1
- package/dist/components/effects/AuroraEffect.js +45 -25
- package/dist/components/effects/BlackHoleEffect.d.ts +8 -3
- package/dist/components/effects/BlackHoleEffect.d.ts.map +1 -1
- package/dist/components/effects/BlackHoleEffect.js +42 -21
- package/dist/components/effects/ConstellationEffect.d.ts +8 -3
- package/dist/components/effects/ConstellationEffect.d.ts.map +1 -1
- package/dist/components/effects/ConstellationEffect.js +49 -23
- package/dist/components/effects/DandelionSeedsEffect.d.ts +7 -2
- package/dist/components/effects/DandelionSeedsEffect.d.ts.map +1 -1
- package/dist/components/effects/DandelionSeedsEffect.js +19 -9
- package/dist/components/effects/DataStreamEffect.d.ts +8 -3
- package/dist/components/effects/DataStreamEffect.d.ts.map +1 -1
- package/dist/components/effects/DataStreamEffect.js +54 -26
- package/dist/components/effects/DnaHelixEffect.d.ts +8 -3
- package/dist/components/effects/DnaHelixEffect.d.ts.map +1 -1
- package/dist/components/effects/DnaHelixEffect.js +62 -30
- package/dist/components/effects/FallingLeavesEffect.d.ts +7 -2
- package/dist/components/effects/FallingLeavesEffect.d.ts.map +1 -1
- package/dist/components/effects/FallingLeavesEffect.js +19 -9
- package/dist/components/effects/FieldLinesEffect.d.ts +8 -3
- package/dist/components/effects/FieldLinesEffect.d.ts.map +1 -1
- package/dist/components/effects/FieldLinesEffect.js +30 -20
- package/dist/components/effects/Fire.d.ts +8 -3
- package/dist/components/effects/Fire.d.ts.map +1 -1
- package/dist/components/effects/Fire.js +47 -10
- package/dist/components/effects/FireflySwarmEffect.d.ts +7 -2
- package/dist/components/effects/FireflySwarmEffect.d.ts.map +1 -1
- package/dist/components/effects/FireflySwarmEffect.js +19 -9
- package/dist/components/effects/Flares.d.ts +10 -3
- package/dist/components/effects/Flares.d.ts.map +1 -1
- package/dist/components/effects/Flares.js +53 -56
- package/dist/components/effects/ForcefieldEffect.d.ts +8 -3
- package/dist/components/effects/ForcefieldEffect.d.ts.map +1 -1
- package/dist/components/effects/ForcefieldEffect.js +52 -33
- package/dist/components/effects/GalaxyEffect.d.ts +7 -2
- package/dist/components/effects/GalaxyEffect.d.ts.map +1 -1
- package/dist/components/effects/GalaxyEffect.js +19 -9
- package/dist/components/effects/HarmonicShellEffect.d.ts +8 -3
- package/dist/components/effects/HarmonicShellEffect.d.ts.map +1 -1
- package/dist/components/effects/HarmonicShellEffect.js +30 -22
- package/dist/components/effects/HologramEffect.d.ts +8 -3
- package/dist/components/effects/HologramEffect.d.ts.map +1 -1
- package/dist/components/effects/HologramEffect.js +52 -23
- package/dist/components/effects/IceCrystalsEffect.d.ts +8 -3
- package/dist/components/effects/IceCrystalsEffect.d.ts.map +1 -1
- package/dist/components/effects/IceCrystalsEffect.js +36 -21
- package/dist/components/effects/IceHaloEffect.d.ts +7 -2
- package/dist/components/effects/IceHaloEffect.d.ts.map +1 -1
- package/dist/components/effects/IceHaloEffect.js +19 -9
- package/dist/components/effects/LichtenbergEffect.d.ts +7 -2
- package/dist/components/effects/LichtenbergEffect.d.ts.map +1 -1
- package/dist/components/effects/LichtenbergEffect.js +19 -9
- package/dist/components/effects/LightningEffect.d.ts +8 -3
- package/dist/components/effects/LightningEffect.d.ts.map +1 -1
- package/dist/components/effects/LightningEffect.js +54 -32
- package/dist/components/effects/MoleculesEffect.d.ts +8 -3
- package/dist/components/effects/MoleculesEffect.d.ts.map +1 -1
- package/dist/components/effects/MoleculesEffect.js +31 -21
- package/dist/components/effects/MurmurationEffect.d.ts +7 -2
- package/dist/components/effects/MurmurationEffect.d.ts.map +1 -1
- package/dist/components/effects/MurmurationEffect.js +19 -9
- package/dist/components/effects/NeuralNetworkEffect.d.ts +8 -3
- package/dist/components/effects/NeuralNetworkEffect.d.ts.map +1 -1
- package/dist/components/effects/NeuralNetworkEffect.js +66 -33
- package/dist/components/effects/OrbEffect.d.ts +8 -3
- package/dist/components/effects/OrbEffect.d.ts.map +1 -1
- package/dist/components/effects/OrbEffect.js +89 -42
- package/dist/components/effects/PlanetaryRingsEffect.d.ts +7 -2
- package/dist/components/effects/PlanetaryRingsEffect.d.ts.map +1 -1
- package/dist/components/effects/PlanetaryRingsEffect.js +19 -9
- package/dist/components/effects/PortalEffect.d.ts +8 -3
- package/dist/components/effects/PortalEffect.d.ts.map +1 -1
- package/dist/components/effects/PortalEffect.js +41 -25
- package/dist/components/effects/ShockwaveEffect.d.ts +7 -2
- package/dist/components/effects/ShockwaveEffect.d.ts.map +1 -1
- package/dist/components/effects/ShockwaveEffect.js +19 -9
- package/dist/components/effects/SmokePlumeEffect.d.ts +8 -3
- package/dist/components/effects/SmokePlumeEffect.d.ts.map +1 -1
- package/dist/components/effects/SmokePlumeEffect.js +30 -20
- package/dist/components/effects/SmokeRibbon.d.ts +8 -2
- package/dist/components/effects/SmokeRibbon.d.ts.map +1 -1
- package/dist/components/effects/SmokeRibbon.js +34 -24
- package/dist/components/effects/SmokeRingEffect.d.ts +8 -3
- package/dist/components/effects/SmokeRingEffect.d.ts.map +1 -1
- package/dist/components/effects/SmokeRingEffect.js +33 -21
- package/dist/components/effects/StrangeAttractorEffect.d.ts +8 -3
- package/dist/components/effects/StrangeAttractorEffect.d.ts.map +1 -1
- package/dist/components/effects/StrangeAttractorEffect.js +30 -20
- package/dist/components/effects/VolumetricFogEffect.d.ts +8 -3
- package/dist/components/effects/VolumetricFogEffect.d.ts.map +1 -1
- package/dist/components/effects/VolumetricFogEffect.js +38 -20
- package/dist/components/effects/WaterCausticsEffect.d.ts +7 -2
- package/dist/components/effects/WaterCausticsEffect.d.ts.map +1 -1
- package/dist/components/effects/WaterCausticsEffect.js +19 -9
- package/dist/components/effects/index.d.ts +0 -1
- package/dist/components/effects/index.d.ts.map +1 -1
- package/dist/components/effects/index.js +0 -1
- package/dist/components/index.d.ts +0 -1
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +0 -1
- package/dist/components/landscape/LandscapeMesh.js +1 -1
- package/dist/components/landscape/types.d.ts +1 -1
- package/dist/components/landscape/types.d.ts.map +1 -1
- package/dist/components/particles/MagneticBottleParticles.d.ts +17 -0
- package/dist/components/particles/MagneticBottleParticles.d.ts.map +1 -0
- package/dist/components/particles/MagneticBottleParticles.js +618 -0
- package/dist/components/particles/ShapeBurstParticles.d.ts +17 -0
- package/dist/components/particles/ShapeBurstParticles.d.ts.map +1 -0
- package/dist/components/particles/ShapeBurstParticles.js +588 -0
- package/dist/components/particles/ShapeFlowParticles.d.ts +17 -0
- package/dist/components/particles/ShapeFlowParticles.d.ts.map +1 -0
- package/dist/components/particles/ShapeFlowParticles.js +755 -0
- package/dist/components/particles/index.d.ts +6 -0
- package/dist/components/particles/index.d.ts.map +1 -1
- package/dist/components/particles/index.js +3 -0
- package/dist/components/terrain/TerrainSurface.d.ts.map +1 -1
- package/dist/components/terrain/TerrainSurface.js +0 -5
- package/dist/components/terrain/types.d.ts +1 -1
- package/dist/components/terrain/types.d.ts.map +1 -1
- package/dist/components/volumetricClouds/VolumetricCloudsPass.d.ts +1 -1
- package/dist/components/volumetricClouds/VolumetricCloudsPass.d.ts.map +1 -1
- package/dist/components/volumetricClouds/VolumetricCloudsPass.js +0 -6
- package/dist/components/volumetricClouds/types.d.ts +1 -1
- package/dist/components/volumetricClouds/types.d.ts.map +1 -1
- package/dist/components/water/types.d.ts +1 -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 +1 -1
- package/dist/hooks/index.d.ts +2 -2
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +1 -2
- package/dist/hooks/useConfigDriver.d.ts +22 -0
- package/dist/hooks/useConfigDriver.d.ts.map +1 -0
- package/dist/hooks/useConfigDriver.js +43 -0
- package/dist/hooks/useConfigLive.d.ts +1 -1
- package/dist/hooks/useConfigLive.d.ts.map +1 -1
- package/dist/hooks/useInteraction.d.ts +6 -7
- package/dist/hooks/useInteraction.d.ts.map +1 -1
- package/dist/hooks/useInteraction.js +87 -268
- package/dist/hooks/useLandscapeMaps.d.ts +1 -1
- package/dist/hooks/useLandscapeMaps.d.ts.map +1 -1
- package/dist/hooks/useObjectAnimation.d.ts.map +1 -1
- package/dist/hooks/useObjectAnimation.js +0 -2
- package/dist/hooks/useOceanMaterial.d.ts +1 -1
- package/dist/hooks/useOceanMaterial.d.ts.map +1 -1
- package/dist/hooks/useOceanMaterial.js +0 -5
- package/dist/hooks/useRuntimeSettings.d.ts +1 -1
- package/dist/hooks/useRuntimeSettings.js +1 -1
- package/dist/hooks/useThunder.d.ts +1 -1
- package/dist/index.d.ts +6 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -2
- package/dist/interactions/index.d.ts +4 -0
- package/dist/interactions/index.d.ts.map +1 -0
- package/dist/interactions/index.js +1 -0
- package/dist/interactions/runner.d.ts +24 -0
- package/dist/interactions/runner.d.ts.map +1 -0
- package/dist/interactions/runner.js +46 -0
- package/dist/operations/catalogue/curlSmoke.d.ts +3 -0
- package/dist/operations/catalogue/curlSmoke.d.ts.map +1 -0
- package/dist/operations/catalogue/curlSmoke.js +178 -0
- package/dist/operations/catalogue/displayImage.d.ts +3 -0
- package/dist/operations/catalogue/displayImage.d.ts.map +1 -0
- package/dist/operations/catalogue/displayImage.js +40 -0
- package/dist/operations/catalogue/dissolve.d.ts +3 -0
- package/dist/operations/catalogue/dissolve.d.ts.map +1 -0
- package/dist/operations/catalogue/dissolve.js +57 -0
- package/dist/operations/catalogue/emberAsh.d.ts +3 -0
- package/dist/operations/catalogue/emberAsh.d.ts.map +1 -0
- package/dist/operations/catalogue/emberAsh.js +171 -0
- package/dist/operations/catalogue/fade.d.ts +3 -0
- package/dist/operations/catalogue/fade.d.ts.map +1 -0
- package/dist/operations/catalogue/fade.js +45 -0
- package/dist/operations/catalogue/flip.d.ts +3 -0
- package/dist/operations/catalogue/flip.d.ts.map +1 -0
- package/dist/operations/catalogue/flip.js +69 -0
- package/dist/operations/catalogue/flock.d.ts +3 -0
- package/dist/operations/catalogue/flock.d.ts.map +1 -0
- package/dist/operations/catalogue/flock.js +163 -0
- package/dist/operations/catalogue/focus.d.ts +3 -0
- package/dist/operations/catalogue/focus.d.ts.map +1 -0
- package/dist/operations/catalogue/focus.js +23 -0
- package/dist/operations/catalogue/frame.d.ts +3 -0
- package/dist/operations/catalogue/frame.d.ts.map +1 -0
- package/dist/operations/catalogue/frame.js +44 -0
- package/dist/operations/catalogue/frost.d.ts +3 -0
- package/dist/operations/catalogue/frost.d.ts.map +1 -0
- package/dist/operations/catalogue/frost.js +111 -0
- package/dist/operations/catalogue/fxInstances.d.ts +21 -0
- package/dist/operations/catalogue/fxInstances.d.ts.map +1 -0
- package/dist/operations/catalogue/fxInstances.js +47 -0
- package/dist/operations/catalogue/fxPoints.d.ts +22 -0
- package/dist/operations/catalogue/fxPoints.d.ts.map +1 -0
- package/dist/operations/catalogue/fxPoints.js +70 -0
- package/dist/operations/catalogue/glow.d.ts +3 -0
- package/dist/operations/catalogue/glow.d.ts.map +1 -0
- package/dist/operations/catalogue/glow.js +50 -0
- package/dist/operations/catalogue/heatCracks.d.ts +3 -0
- package/dist/operations/catalogue/heatCracks.d.ts.map +1 -0
- package/dist/operations/catalogue/heatCracks.js +134 -0
- package/dist/operations/catalogue/hologram.d.ts +3 -0
- package/dist/operations/catalogue/hologram.d.ts.map +1 -0
- package/dist/operations/catalogue/hologram.js +118 -0
- package/dist/operations/catalogue/inkBloom.d.ts +3 -0
- package/dist/operations/catalogue/inkBloom.d.ts.map +1 -0
- package/dist/operations/catalogue/inkBloom.js +156 -0
- package/dist/operations/catalogue/ivy.d.ts +13 -0
- package/dist/operations/catalogue/ivy.d.ts.map +1 -0
- package/dist/operations/catalogue/ivy.js +469 -0
- package/dist/operations/catalogue/jelly.d.ts +3 -0
- package/dist/operations/catalogue/jelly.d.ts.map +1 -0
- package/dist/operations/catalogue/jelly.js +50 -0
- package/dist/operations/catalogue/kintsugi.d.ts +3 -0
- package/dist/operations/catalogue/kintsugi.d.ts.map +1 -0
- package/dist/operations/catalogue/kintsugi.js +173 -0
- package/dist/operations/catalogue/lidarScan.d.ts +3 -0
- package/dist/operations/catalogue/lidarScan.d.ts.map +1 -0
- package/dist/operations/catalogue/lidarScan.js +240 -0
- package/dist/operations/catalogue/liquidMetal.d.ts +3 -0
- package/dist/operations/catalogue/liquidMetal.d.ts.map +1 -0
- package/dist/operations/catalogue/liquidMetal.js +122 -0
- package/dist/operations/catalogue/materialFx.d.ts +6 -0
- package/dist/operations/catalogue/materialFx.d.ts.map +1 -0
- package/dist/operations/catalogue/materialFx.js +13 -0
- package/dist/operations/catalogue/metalize.d.ts +3 -0
- package/dist/operations/catalogue/metalize.d.ts.map +1 -0
- package/dist/operations/catalogue/metalize.js +135 -0
- package/dist/operations/catalogue/moveToFront.d.ts +3 -0
- package/dist/operations/catalogue/moveToFront.d.ts.map +1 -0
- package/dist/operations/catalogue/moveToFront.js +26 -0
- package/dist/operations/catalogue/orbit.d.ts +3 -0
- package/dist/operations/catalogue/orbit.d.ts.map +1 -0
- package/dist/operations/catalogue/orbit.js +29 -0
- package/dist/operations/catalogue/particleSwarm.d.ts +3 -0
- package/dist/operations/catalogue/particleSwarm.d.ts.map +1 -0
- package/dist/operations/catalogue/particleSwarm.js +138 -0
- package/dist/operations/catalogue/petalPeel.d.ts +3 -0
- package/dist/operations/catalogue/petalPeel.d.ts.map +1 -0
- package/dist/operations/catalogue/petalPeel.js +137 -0
- package/dist/operations/catalogue/petrify.d.ts +3 -0
- package/dist/operations/catalogue/petrify.d.ts.map +1 -0
- package/dist/operations/catalogue/petrify.js +94 -0
- package/dist/operations/catalogue/portal.d.ts +3 -0
- package/dist/operations/catalogue/portal.d.ts.map +1 -0
- package/dist/operations/catalogue/portal.js +224 -0
- package/dist/operations/catalogue/print3d.d.ts +3 -0
- package/dist/operations/catalogue/print3d.d.ts.map +1 -0
- package/dist/operations/catalogue/print3d.js +275 -0
- package/dist/operations/catalogue/rainBeads.d.ts +3 -0
- package/dist/operations/catalogue/rainBeads.d.ts.map +1 -0
- package/dist/operations/catalogue/rainBeads.js +223 -0
- package/dist/operations/catalogue/restPose.d.ts +21 -0
- package/dist/operations/catalogue/restPose.d.ts.map +1 -0
- package/dist/operations/catalogue/restPose.js +55 -0
- package/dist/operations/catalogue/rimLight.d.ts +3 -0
- package/dist/operations/catalogue/rimLight.d.ts.map +1 -0
- package/dist/operations/catalogue/rimLight.js +72 -0
- package/dist/operations/catalogue/sandErosion.d.ts +3 -0
- package/dist/operations/catalogue/sandErosion.d.ts.map +1 -0
- package/dist/operations/catalogue/sandErosion.js +167 -0
- package/dist/operations/catalogue/shaderLayers.d.ts +74 -0
- package/dist/operations/catalogue/shaderLayers.d.ts.map +1 -0
- package/dist/operations/catalogue/shaderLayers.js +322 -0
- package/dist/operations/catalogue/shatter.d.ts +3 -0
- package/dist/operations/catalogue/shatter.d.ts.map +1 -0
- package/dist/operations/catalogue/shatter.js +267 -0
- package/dist/operations/catalogue/silkDrape.d.ts +3 -0
- package/dist/operations/catalogue/silkDrape.d.ts.map +1 -0
- package/dist/operations/catalogue/silkDrape.js +340 -0
- package/dist/operations/catalogue/spin.d.ts +3 -0
- package/dist/operations/catalogue/spin.d.ts.map +1 -0
- package/dist/operations/catalogue/spin.js +42 -0
- package/dist/operations/catalogue/surfaceSample.d.ts +17 -0
- package/dist/operations/catalogue/surfaceSample.d.ts.map +1 -0
- package/dist/operations/catalogue/surfaceSample.js +187 -0
- package/dist/operations/catalogue/swirl.d.ts +3 -0
- package/dist/operations/catalogue/swirl.d.ts.map +1 -0
- package/dist/operations/catalogue/swirl.js +69 -0
- package/dist/operations/catalogue/teleport.d.ts +3 -0
- package/dist/operations/catalogue/teleport.d.ts.map +1 -0
- package/dist/operations/catalogue/teleport.js +213 -0
- package/dist/operations/catalogue/transitionField.d.ts +124 -0
- package/dist/operations/catalogue/transitionField.d.ts.map +1 -0
- package/dist/operations/catalogue/transitionField.js +278 -0
- package/dist/operations/catalogue/unweave.d.ts +3 -0
- package/dist/operations/catalogue/unweave.d.ts.map +1 -0
- package/dist/operations/catalogue/unweave.js +233 -0
- package/dist/operations/catalogue/visibility.d.ts +3 -0
- package/dist/operations/catalogue/visibility.d.ts.map +1 -0
- package/dist/operations/catalogue/visibility.js +25 -0
- package/dist/operations/catalogue/voxelize.d.ts +3 -0
- package/dist/operations/catalogue/voxelize.d.ts.map +1 -0
- package/dist/operations/catalogue/voxelize.js +148 -0
- package/dist/operations/catalogue/warmup.d.ts +22 -0
- package/dist/operations/catalogue/warmup.d.ts.map +1 -0
- package/dist/operations/catalogue/warmup.js +106 -0
- package/dist/operations/catalogue/zoom.d.ts +3 -0
- package/dist/operations/catalogue/zoom.d.ts.map +1 -0
- package/dist/operations/catalogue/zoom.js +33 -0
- package/dist/operations/index.d.ts +7 -0
- package/dist/operations/index.d.ts.map +1 -0
- package/dist/operations/index.js +6 -0
- package/dist/operations/objectEffects.d.ts +46 -0
- package/dist/operations/objectEffects.d.ts.map +1 -0
- package/dist/operations/objectEffects.js +136 -0
- package/dist/operations/registry.d.ts +16 -0
- package/dist/operations/registry.d.ts.map +1 -0
- package/dist/operations/registry.js +63 -0
- package/dist/operations/runtime.d.ts +60 -0
- package/dist/operations/runtime.d.ts.map +1 -0
- package/dist/operations/runtime.js +317 -0
- package/dist/operations/types.d.ts +122 -0
- package/dist/operations/types.d.ts.map +1 -0
- package/dist/operations/types.js +9 -0
- package/dist/operations/useObjectEffectLayers.d.ts +4 -0
- package/dist/operations/useObjectEffectLayers.d.ts.map +1 -0
- package/dist/operations/useObjectEffectLayers.js +42 -0
- package/dist/operations/useOperationsRuntime.d.ts +3 -0
- package/dist/operations/useOperationsRuntime.d.ts.map +1 -0
- package/dist/operations/useOperationsRuntime.js +69 -0
- package/dist/presets/landscapePresets.d.ts +1 -1
- package/dist/presets/landscapePresets.d.ts.map +1 -1
- package/dist/presets/landscapePresets.js +1 -1
- package/dist/presets/landscapeTypes.d.ts +1 -1
- package/dist/presets/landscapeTypes.d.ts.map +1 -1
- package/dist/presets/landscapeTypes.js +1 -1
- package/dist/presets/oceanSurfacePresets.d.ts +1 -1
- package/dist/presets/terrainPresets.d.ts +1 -1
- package/dist/presets/terrainPresets.d.ts.map +1 -1
- package/dist/presets/volumetricCloudPresets.d.ts +1 -1
- package/dist/types/cloudConfigs.d.ts +2 -309
- package/dist/types/cloudConfigs.d.ts.map +1 -1
- package/dist/types/cloudConfigs.js +2 -339
- package/dist/types/index.d.ts +8 -8
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +4 -4
- package/dist/types/landscapeConfigs.d.ts +2 -217
- package/dist/types/landscapeConfigs.d.ts.map +1 -1
- package/dist/types/landscapeConfigs.js +2 -256
- package/dist/types/oceanConfigs.d.ts +2 -289
- package/dist/types/oceanConfigs.d.ts.map +1 -1
- package/dist/types/oceanConfigs.js +2 -380
- package/dist/types/terrainConfigs.d.ts +2 -250
- package/dist/types/terrainConfigs.d.ts.map +1 -1
- package/dist/types/terrainConfigs.js +2 -292
- package/dist/utils/cloudUniforms.d.ts +1 -1
- package/dist/utils/configAnimations.d.ts +6 -0
- package/dist/utils/configAnimations.d.ts.map +1 -1
- package/dist/utils/configAnimations.js +14 -0
- package/dist/utils/gridConfig.d.ts +19 -0
- package/dist/utils/gridConfig.d.ts.map +1 -0
- package/dist/utils/gridConfig.js +52 -0
- package/dist/utils/handleCloudsAnimations.d.ts +1 -1
- package/dist/utils/handleCloudsAnimations.js +1 -1
- package/dist/utils/hasHoverAnimation.d.ts.map +1 -1
- package/dist/utils/hasHoverAnimation.js +0 -2
- package/dist/utils/landscapeUniforms.d.ts +1 -1
- package/dist/utils/landscapeUniforms.d.ts.map +1 -1
- package/dist/utils/oceanUniforms.d.ts +1 -1
- package/dist/utils/particleShape.d.ts +33 -0
- package/dist/utils/particleShape.d.ts.map +1 -0
- package/dist/utils/particleShape.js +207 -0
- package/dist/utils/particleTrails.d.ts.map +1 -1
- package/dist/utils/particleTrails.js +29 -14
- package/dist/utils/terrainUniforms.d.ts +1 -1
- package/dist/utils/terrainUniforms.d.ts.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/animationsV2/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
// =============================================================================
|
|
2
|
+
// Animations V2 — timeline clips and sequences (project docs
|
|
3
|
+
// claude/animations-v2-design.md, claude/animations-v2-sequences-plan.md).
|
|
4
|
+
// Shared by the studio (client) and the published viewer (ProjectLoader).
|
|
5
|
+
// =============================================================================
|
|
6
|
+
export const DEFAULT_DRIVER_SETTINGS = { sensitivity: 1, smoothing: 0.25, invert: false };
|
|
7
|
+
export const DEFAULT_EASE = 'easeInOutCubic';
|
|
8
|
+
export const FPS_PRESETS = [24, 25, 30, 60];
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type { ActionSequence
|
|
1
|
+
import type { ActionSequence } from '@3driseai/3drise-core';
|
|
2
|
+
import type { AnimationClip, AnimationSequence } from '../animationsV2/types';
|
|
2
3
|
export interface SceneActionInfo {
|
|
3
4
|
id: string;
|
|
4
5
|
key?: string;
|
|
@@ -6,23 +7,59 @@ export interface SceneActionInfo {
|
|
|
6
7
|
description?: string;
|
|
7
8
|
applied: boolean;
|
|
8
9
|
}
|
|
9
|
-
export interface
|
|
10
|
+
export interface SceneClipInfo {
|
|
10
11
|
id: string;
|
|
12
|
+
key: string;
|
|
11
13
|
name: string;
|
|
12
14
|
description?: string;
|
|
13
|
-
/** Seconds, one
|
|
15
|
+
/** Seconds, one pass. */
|
|
14
16
|
duration: number;
|
|
15
17
|
loop: boolean;
|
|
16
18
|
yoyo: boolean;
|
|
19
|
+
endMode: 'hold' | 'restore';
|
|
20
|
+
playing: boolean;
|
|
21
|
+
}
|
|
22
|
+
export interface SceneSequenceInfo {
|
|
23
|
+
id: string;
|
|
24
|
+
key: string;
|
|
25
|
+
name: string;
|
|
26
|
+
description?: string;
|
|
27
|
+
/** Seconds, one pass through every step. */
|
|
28
|
+
duration: number;
|
|
29
|
+
steps: number;
|
|
30
|
+
loop: boolean;
|
|
31
|
+
yoyo: boolean;
|
|
32
|
+
reverse: boolean;
|
|
33
|
+
endMode: 'hold' | 'restore';
|
|
34
|
+
/** 'time' plays; 'mouseWheel' | 'mouseX' | 'mouseY' — the input scrubs it once played. */
|
|
35
|
+
driver: 'time' | 'mouseWheel' | 'mouseX' | 'mouseY';
|
|
36
|
+
autoplay: boolean;
|
|
17
37
|
playing: boolean;
|
|
18
38
|
}
|
|
19
39
|
export interface ScenePlayOptions {
|
|
40
|
+
/** Playback rate, 1 = authored. */
|
|
20
41
|
speed?: number;
|
|
42
|
+
/** Play backwards. For a sequence this overrides its own `reverse` for this run. */
|
|
21
43
|
reverse?: boolean;
|
|
44
|
+
/** Where to start, 0–1 of the duration. */
|
|
45
|
+
from?: number;
|
|
46
|
+
}
|
|
47
|
+
/** The same controls for clips and for sequences. */
|
|
48
|
+
export interface ScenePlayback<Info> {
|
|
49
|
+
list(): Info[];
|
|
50
|
+
play(ref: string, options?: ScenePlayOptions): boolean;
|
|
51
|
+
pause(ref: string): boolean;
|
|
52
|
+
resume(ref: string): boolean;
|
|
53
|
+
/** Stop and put everything it animated back to the authored scene. */
|
|
54
|
+
stop(ref: string): boolean;
|
|
55
|
+
/** Jump to a point, 0–1 of the duration. */
|
|
56
|
+
seek(ref: string, progress: number): boolean;
|
|
57
|
+
isPlaying(ref: string): boolean;
|
|
22
58
|
}
|
|
23
|
-
export type SceneHandleEventType = 'actionApplied' | 'actionReverted' | 'animationStart' | 'animationEnd';
|
|
59
|
+
export type SceneHandleEventType = 'actionApplied' | 'actionReverted' | 'animationStart' | 'animationEnd' | 'animationLoop';
|
|
24
60
|
export interface SceneHandleEvent {
|
|
25
61
|
type: SceneHandleEventType;
|
|
62
|
+
kind: 'action' | 'clip' | 'sequence';
|
|
26
63
|
id: string;
|
|
27
64
|
key?: string;
|
|
28
65
|
name: string;
|
|
@@ -38,26 +75,28 @@ export interface SceneHandle {
|
|
|
38
75
|
/** Revert every applied action of this project — back to the authored scene. */
|
|
39
76
|
reset(): void;
|
|
40
77
|
};
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
78
|
+
clips: ScenePlayback<SceneClipInfo>;
|
|
79
|
+
sequences: ScenePlayback<SceneSequenceInfo> & {
|
|
80
|
+
/**
|
|
81
|
+
* Drive a sequence from your own input (page scroll, a slider…): its position,
|
|
82
|
+
* 0–1 along its own direction. A running input-driven sequence eases there with
|
|
83
|
+
* its smoothing; otherwise it is posed there at once.
|
|
84
|
+
*/
|
|
85
|
+
setProgress(ref: string, progress: number): boolean;
|
|
86
|
+
/** Current position, 0–1 along its own direction. */
|
|
87
|
+
getProgress(ref: string): number;
|
|
50
88
|
};
|
|
51
|
-
/** Subscribe to this project's action /
|
|
89
|
+
/** Subscribe to this project's action / clip / sequence events. Returns the unsubscribe. */
|
|
52
90
|
on(type: SceneHandleEventType, listener: (event: SceneHandleEvent) => void): () => void;
|
|
53
91
|
}
|
|
54
92
|
export interface SceneHandleSource {
|
|
55
93
|
actions: ActionSequence[];
|
|
56
|
-
|
|
94
|
+
clips: AnimationClip[];
|
|
95
|
+
sequences: AnimationSequence[];
|
|
57
96
|
}
|
|
58
97
|
/**
|
|
59
|
-
* Build a handle over one project's actions and
|
|
60
|
-
* every call, so the handle stays valid if the project data is replaced.
|
|
98
|
+
* Build a handle over one project's actions, clips and sequences. `getSource` is
|
|
99
|
+
* read on every call, so the handle stays valid if the project data is replaced.
|
|
61
100
|
*/
|
|
62
101
|
export declare function createSceneHandle(getSource: () => SceneHandleSource): SceneHandle;
|
|
63
102
|
//# sourceMappingURL=sceneHandle.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sceneHandle.d.ts","sourceRoot":"","sources":["../../src/api/sceneHandle.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sceneHandle.d.ts","sourceRoot":"","sources":["../../src/api/sceneHandle.ts"],"names":[],"mappings":"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"}
|
package/dist/api/sceneHandle.js
CHANGED
|
@@ -3,21 +3,24 @@
|
|
|
3
3
|
// =============================================================================
|
|
4
4
|
//
|
|
5
5
|
// What a developer extending a project gets from <ProjectLoader ref={…} /> or
|
|
6
|
-
// onSceneReady(handle): trigger the project's actions and
|
|
7
|
-
// own UI, and hear when they run.
|
|
6
|
+
// onSceneReady(handle): trigger the project's actions, clips and sequences from
|
|
7
|
+
// their own UI, and hear when they run.
|
|
8
8
|
//
|
|
9
9
|
// scene.current?.actions.toggle('open-door');
|
|
10
|
-
// scene.current?.
|
|
11
|
-
//
|
|
10
|
+
// scene.current?.clips.play('spin'); // one clip, its own loop / yoyo / end
|
|
11
|
+
// scene.current?.sequences.play('intro', { speed: 1.5 });
|
|
12
|
+
// const off = scene.current?.on('animationEnd', (e) => console.log(e.kind, e.key));
|
|
12
13
|
//
|
|
13
|
-
// Addressing (`ref`):
|
|
14
|
-
// copies — prefer it), then its id, then its exact name.
|
|
15
|
-
//
|
|
14
|
+
// Addressing (`ref`): the item's `key` first (stable across renames and project
|
|
15
|
+
// copies — prefer it), then its id, then its exact name. An ambiguous name warns
|
|
16
|
+
// and uses the first match. Clip and sequence keys are separate namespaces.
|
|
16
17
|
//
|
|
17
18
|
// This is a thin layer: object clicks go through the same SceneActions /
|
|
18
|
-
//
|
|
19
|
+
// ClipsRuntime calls, so a button and a click behave identically.
|
|
19
20
|
//
|
|
20
|
-
import {
|
|
21
|
+
import { SceneActions } from '@3driseai/3drise-core';
|
|
22
|
+
import ClipsRuntime from '../animationsV2/ClipsRuntime.js';
|
|
23
|
+
import { clipMap, resolveSequence } from '../animationsV2/sequenceUtils.js';
|
|
21
24
|
function resolve(items, ref, kind) {
|
|
22
25
|
if (!ref)
|
|
23
26
|
return undefined;
|
|
@@ -29,25 +32,146 @@ function resolve(items, ref, kind) {
|
|
|
29
32
|
return byId;
|
|
30
33
|
const byName = items.filter(i => i.name === ref);
|
|
31
34
|
if (byName.length > 1) {
|
|
32
|
-
console.warn(`[3drise] ${byName.length} ${kind}s are named "${ref}"; using the first
|
|
35
|
+
console.warn(`[3drise] ${byName.length} ${kind}s are named "${ref}"; using the first. Address it by its key instead.`);
|
|
33
36
|
}
|
|
34
37
|
if (byName.length === 0) {
|
|
35
|
-
console.warn(`[3drise] No ${kind} "${ref}" in this project. Known: ${items.map(i => i.key
|
|
38
|
+
console.warn(`[3drise] No ${kind} "${ref}" in this project. Known: ${items.map(i => i.key || i.name).join(', ') || 'none'}`);
|
|
36
39
|
}
|
|
37
40
|
return byName[0];
|
|
38
41
|
}
|
|
39
|
-
|
|
40
|
-
return (seq.steps ?? []).reduce((sum, s) => sum + (s.delay || 0) + (s.duration || 0), 0);
|
|
41
|
-
}
|
|
42
|
+
const clamp01 = (n) => Math.min(1, Math.max(0, Number.isFinite(n) ? n : 0));
|
|
42
43
|
/**
|
|
43
|
-
* Build a handle over one project's actions and
|
|
44
|
-
* every call, so the handle stays valid if the project data is replaced.
|
|
44
|
+
* Build a handle over one project's actions, clips and sequences. `getSource` is
|
|
45
|
+
* read on every call, so the handle stays valid if the project data is replaced.
|
|
45
46
|
*/
|
|
46
47
|
export function createSceneHandle(getSource) {
|
|
47
48
|
const actions = () => getSource().actions ?? [];
|
|
48
|
-
const
|
|
49
|
+
const clips = () => getSource().clips ?? [];
|
|
50
|
+
const sequences = () => getSource().sequences ?? [];
|
|
51
|
+
const clipsById = () => clipMap(clips());
|
|
49
52
|
const findAction = (ref) => resolve(actions(), ref, 'action');
|
|
50
|
-
const
|
|
53
|
+
const findClip = (ref) => resolve(clips(), ref, 'clip');
|
|
54
|
+
const findSequence = (ref) => resolve(sequences(), ref, 'sequence');
|
|
55
|
+
const sequenceDuration = (s) => resolveSequence(s, clipsById()).duration;
|
|
56
|
+
const clipControls = {
|
|
57
|
+
list: () => clips().map(c => ({
|
|
58
|
+
id: c.id, key: c.key, name: c.name, description: c.description,
|
|
59
|
+
duration: c.duration, loop: c.loop, yoyo: c.yoyo, endMode: c.endMode,
|
|
60
|
+
playing: ClipsRuntime.isPlaying(c.id),
|
|
61
|
+
})),
|
|
62
|
+
play(ref, options = {}) {
|
|
63
|
+
const c = findClip(ref);
|
|
64
|
+
if (!c)
|
|
65
|
+
return false;
|
|
66
|
+
ClipsRuntime.play(c, {
|
|
67
|
+
speed: options.speed,
|
|
68
|
+
reverse: options.reverse,
|
|
69
|
+
from: options.from !== undefined ? clamp01(options.from) * c.duration : undefined,
|
|
70
|
+
});
|
|
71
|
+
return true;
|
|
72
|
+
},
|
|
73
|
+
pause(ref) {
|
|
74
|
+
const c = findClip(ref);
|
|
75
|
+
if (!c)
|
|
76
|
+
return false;
|
|
77
|
+
ClipsRuntime.pause(c.id);
|
|
78
|
+
return true;
|
|
79
|
+
},
|
|
80
|
+
resume(ref) {
|
|
81
|
+
const c = findClip(ref);
|
|
82
|
+
if (!c)
|
|
83
|
+
return false;
|
|
84
|
+
ClipsRuntime.resume(c.id);
|
|
85
|
+
return true;
|
|
86
|
+
},
|
|
87
|
+
stop(ref) {
|
|
88
|
+
const c = findClip(ref);
|
|
89
|
+
if (!c)
|
|
90
|
+
return false;
|
|
91
|
+
ClipsRuntime.stop(c.id);
|
|
92
|
+
return true;
|
|
93
|
+
},
|
|
94
|
+
seek(ref, progress) {
|
|
95
|
+
const c = findClip(ref);
|
|
96
|
+
if (!c)
|
|
97
|
+
return false;
|
|
98
|
+
ClipsRuntime.pose(c, clamp01(progress) * c.duration);
|
|
99
|
+
return true;
|
|
100
|
+
},
|
|
101
|
+
isPlaying(ref) {
|
|
102
|
+
const c = findClip(ref);
|
|
103
|
+
return c ? ClipsRuntime.isPlaying(c.id) : false;
|
|
104
|
+
},
|
|
105
|
+
};
|
|
106
|
+
const sequenceControls = {
|
|
107
|
+
list: () => sequences().map(s => ({
|
|
108
|
+
id: s.id, key: s.key, name: s.name, description: s.description,
|
|
109
|
+
duration: sequenceDuration(s), steps: s.steps.length,
|
|
110
|
+
loop: s.loop, yoyo: s.yoyo, reverse: s.reverse, endMode: s.endMode,
|
|
111
|
+
driver: s.driver, autoplay: s.autoplay,
|
|
112
|
+
playing: ClipsRuntime.isSequencePlaying(s.id),
|
|
113
|
+
})),
|
|
114
|
+
play(ref, options = {}) {
|
|
115
|
+
const s = findSequence(ref);
|
|
116
|
+
if (!s)
|
|
117
|
+
return false;
|
|
118
|
+
ClipsRuntime.playSequence(s, clipsById(), {
|
|
119
|
+
speed: options.speed,
|
|
120
|
+
reverse: options.reverse,
|
|
121
|
+
from: options.from !== undefined ? clamp01(options.from) * sequenceDuration(s) : undefined,
|
|
122
|
+
});
|
|
123
|
+
return true;
|
|
124
|
+
},
|
|
125
|
+
pause(ref) {
|
|
126
|
+
const s = findSequence(ref);
|
|
127
|
+
if (!s)
|
|
128
|
+
return false;
|
|
129
|
+
ClipsRuntime.pauseSequence(s.id);
|
|
130
|
+
return true;
|
|
131
|
+
},
|
|
132
|
+
resume(ref) {
|
|
133
|
+
const s = findSequence(ref);
|
|
134
|
+
if (!s)
|
|
135
|
+
return false;
|
|
136
|
+
ClipsRuntime.resumeSequence(s.id);
|
|
137
|
+
return true;
|
|
138
|
+
},
|
|
139
|
+
stop(ref) {
|
|
140
|
+
const s = findSequence(ref);
|
|
141
|
+
if (!s)
|
|
142
|
+
return false;
|
|
143
|
+
ClipsRuntime.stopSequence(s.id);
|
|
144
|
+
return true;
|
|
145
|
+
},
|
|
146
|
+
seek(ref, progress) {
|
|
147
|
+
const s = findSequence(ref);
|
|
148
|
+
if (!s)
|
|
149
|
+
return false;
|
|
150
|
+
const lookup = clipsById();
|
|
151
|
+
ClipsRuntime.poseSequence(s, lookup, clamp01(progress) * resolveSequence(s, lookup).duration);
|
|
152
|
+
return true;
|
|
153
|
+
},
|
|
154
|
+
isPlaying(ref) {
|
|
155
|
+
const s = findSequence(ref);
|
|
156
|
+
return s ? ClipsRuntime.isSequencePlaying(s.id) : false;
|
|
157
|
+
},
|
|
158
|
+
setProgress(ref, progress) {
|
|
159
|
+
const s = findSequence(ref);
|
|
160
|
+
if (!s)
|
|
161
|
+
return false;
|
|
162
|
+
if (ClipsRuntime.isSequenceActive(s.id))
|
|
163
|
+
return ClipsRuntime.setSequenceProgress(s.id, progress);
|
|
164
|
+
const lookup = clipsById();
|
|
165
|
+
const total = resolveSequence(s, lookup).duration;
|
|
166
|
+
const p = clamp01(progress);
|
|
167
|
+
ClipsRuntime.poseSequence(s, lookup, (s.reverse ? 1 - p : p) * total);
|
|
168
|
+
return true;
|
|
169
|
+
},
|
|
170
|
+
getProgress(ref) {
|
|
171
|
+
const s = findSequence(ref);
|
|
172
|
+
return s ? ClipsRuntime.getSequenceProgress(s.id) : 0;
|
|
173
|
+
},
|
|
174
|
+
};
|
|
51
175
|
return {
|
|
52
176
|
actions: {
|
|
53
177
|
list: () => actions().map(a => ({
|
|
@@ -85,56 +209,8 @@ export function createSceneHandle(getSource) {
|
|
|
85
209
|
SceneActions.revertAction(a.id);
|
|
86
210
|
},
|
|
87
211
|
},
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
id: s.id,
|
|
91
|
-
name: s.name,
|
|
92
|
-
description: s.description,
|
|
93
|
-
duration: animationDuration(s),
|
|
94
|
-
loop: !!s.loop,
|
|
95
|
-
yoyo: !!s.yoyo,
|
|
96
|
-
playing: AnimationsManager.isSequencePlaying(s.id),
|
|
97
|
-
})),
|
|
98
|
-
play(ref, options = {}) {
|
|
99
|
-
const s = findAnimation(ref);
|
|
100
|
-
if (!s)
|
|
101
|
-
return false;
|
|
102
|
-
AnimationsManager.playSequence(s, { speed: options.speed, reverse: options.reverse });
|
|
103
|
-
return true;
|
|
104
|
-
},
|
|
105
|
-
pause(ref) {
|
|
106
|
-
const s = findAnimation(ref);
|
|
107
|
-
if (!s)
|
|
108
|
-
return false;
|
|
109
|
-
AnimationsManager.pauseSequence(s.id);
|
|
110
|
-
return true;
|
|
111
|
-
},
|
|
112
|
-
resume(ref) {
|
|
113
|
-
const s = findAnimation(ref);
|
|
114
|
-
if (!s)
|
|
115
|
-
return false;
|
|
116
|
-
AnimationsManager.resumeSequence(s.id);
|
|
117
|
-
return true;
|
|
118
|
-
},
|
|
119
|
-
stop(ref) {
|
|
120
|
-
const s = findAnimation(ref);
|
|
121
|
-
if (!s)
|
|
122
|
-
return false;
|
|
123
|
-
AnimationsManager.stopSequence(s.id);
|
|
124
|
-
return true;
|
|
125
|
-
},
|
|
126
|
-
seek(ref, progress) {
|
|
127
|
-
const s = findAnimation(ref);
|
|
128
|
-
if (!s)
|
|
129
|
-
return false;
|
|
130
|
-
AnimationsManager.seekToProgress(s.id, progress);
|
|
131
|
-
return true;
|
|
132
|
-
},
|
|
133
|
-
isPlaying(ref) {
|
|
134
|
-
const s = findAnimation(ref);
|
|
135
|
-
return s ? AnimationsManager.isSequencePlaying(s.id) : false;
|
|
136
|
-
},
|
|
137
|
-
},
|
|
212
|
+
clips: clipControls,
|
|
213
|
+
sequences: sequenceControls,
|
|
138
214
|
on(type, listener) {
|
|
139
215
|
if (type === 'actionApplied' || type === 'actionReverted') {
|
|
140
216
|
return SceneActions.onEvent((e) => {
|
|
@@ -144,17 +220,18 @@ export function createSceneHandle(getSource) {
|
|
|
144
220
|
return;
|
|
145
221
|
const a = actions().find(x => x.id === e.actionId);
|
|
146
222
|
if (a)
|
|
147
|
-
listener({ type, id: a.id, key: a.key, name: a.name });
|
|
223
|
+
listener({ type, kind: 'action', id: a.id, key: a.key, name: a.name });
|
|
148
224
|
});
|
|
149
225
|
}
|
|
150
|
-
const
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
226
|
+
const wanted = type === 'animationStart' ? 'start' : type === 'animationEnd' ? 'end' : 'loop';
|
|
227
|
+
return ClipsRuntime.on((e) => {
|
|
228
|
+
if (e.type !== wanted)
|
|
229
|
+
return;
|
|
230
|
+
// Only this project's items — another scene on the page shares the runtime.
|
|
231
|
+
const item = e.kind === 'clip' ? clips().find(c => c.id === e.id) : sequences().find(s => s.id === e.id);
|
|
232
|
+
if (item)
|
|
233
|
+
listener({ type, kind: e.kind, id: item.id, key: item.key, name: item.name });
|
|
234
|
+
});
|
|
158
235
|
},
|
|
159
236
|
};
|
|
160
237
|
}
|
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
import type { ObjectReadyProps } from '../types/objectReady';
|
|
2
2
|
import type { ThreeElements } from '@react-three/fiber';
|
|
3
|
-
import type { MyGridConfig } from '@3driseai/3drise-core';
|
|
3
|
+
import type { AnimationOptions, MouseMoveDomain, MyGridConfig } from '@3driseai/3drise-core';
|
|
4
4
|
export interface AdvancedGridProps extends ObjectReadyProps {
|
|
5
5
|
config?: MyGridConfig;
|
|
6
6
|
groupProps?: ThreeElements['group'];
|
|
7
|
+
/** Scene object id: the live-edit handle is found by it. */
|
|
8
|
+
id?: string;
|
|
9
|
+
/** Keyframes on this grid's config knobs (animations.grid.animations). */
|
|
10
|
+
keyframes?: AnimationOptions[];
|
|
11
|
+
/** Pointer bindings on this grid's config knobs (mouseMove.grid). */
|
|
12
|
+
mouseMove?: MouseMoveDomain;
|
|
7
13
|
}
|
|
8
14
|
/**
|
|
9
15
|
* MyGridConfig — the single source of truth for a grid instance.
|
|
@@ -11,6 +17,6 @@ export interface AdvancedGridProps extends ObjectReadyProps {
|
|
|
11
17
|
* and any preset/serialization layer.
|
|
12
18
|
*/
|
|
13
19
|
export declare const defaultMyGridConfig: MyGridConfig;
|
|
14
|
-
export declare function AdvancedGrid({ config, groupProps, onObjectReady, onObjectDispose }: AdvancedGridProps): import("react").JSX.Element;
|
|
20
|
+
export declare function AdvancedGrid({ config, groupProps, id, keyframes, mouseMove, onObjectReady, onObjectDispose }: AdvancedGridProps): import("react").JSX.Element;
|
|
15
21
|
export default AdvancedGrid;
|
|
16
22
|
//# sourceMappingURL=AdvancedGrid.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AdvancedGrid.d.ts","sourceRoot":"","sources":["../../src/components/AdvancedGrid.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AdvancedGrid.d.ts","sourceRoot":"","sources":["../../src/components/AdvancedGrid.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAG7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE7F,MAAM,WAAW,iBAAkB,SAAQ,gBAAgB;IACvD,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,UAAU,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IACpC,4DAA4D;IAC5D,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,0EAA0E;IAC1E,SAAS,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC/B,qEAAqE;IACrE,SAAS,CAAC,EAAE,eAAe,CAAC;CAC/B;AAKD;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,EAAE,YAyBjC,CAAC;AAWF,wBAAgB,YAAY,CAAC,EAAE,MAA4B,EAAE,UAAU,EAAE,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,iBAAiB,+BA+CrJ;AAED,eAAe,YAAY,CAAC"}
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useObjectReady } from '../hooks/useObjectReady.js';
|
|
3
3
|
import { useGridSurface } from '../hooks/useGridSurface.js';
|
|
4
|
-
import {
|
|
4
|
+
import { useConfigDriver } from '../hooks/useConfigDriver.js';
|
|
5
|
+
import { withConfigDefaults } from '../utils/configAnimations.js';
|
|
6
|
+
import { applyGridConfig, GRID_STRUCTURAL } from '../utils/gridConfig.js';
|
|
7
|
+
import { useCallback, useLayoutEffect, useMemo, useRef } from 'react';
|
|
5
8
|
import * as THREE from 'three';
|
|
6
|
-
import { MyGridMaterial } from '@3driseai/3drise-core';
|
|
9
|
+
import { MyGridMaterial, GRIDS_ANIMATABLE } from '@3driseai/3drise-core';
|
|
7
10
|
// Side-effect import registers <myGridMaterial> via extend() in MyGridMaterial.ts.
|
|
8
11
|
void MyGridMaterial;
|
|
9
12
|
/**
|
|
@@ -37,27 +40,41 @@ export const defaultMyGridConfig = {
|
|
|
37
40
|
reveal: 1,
|
|
38
41
|
revealDuration: 0,
|
|
39
42
|
};
|
|
40
|
-
|
|
43
|
+
/** No knobs of its own: the shared surface knobs are all there is. */
|
|
44
|
+
const VARIANT = [];
|
|
45
|
+
/** No computed uniforms: every knob maps straight to its u_<key>. */
|
|
46
|
+
const DERIVE = {};
|
|
47
|
+
/** Knobs that rebuild the plane or pick a mode: they change on commit, never through the live path. */
|
|
48
|
+
const STRUCTURAL = [...GRID_STRUCTURAL];
|
|
49
|
+
/** Knobs a keyframe or pointer binding may drive per frame — exactly what applyGridConfig pushes. */
|
|
50
|
+
const ANIMATABLE = new Set((GRIDS_ANIMATABLE.advancedGrid ?? []).map((p) => p.value));
|
|
51
|
+
export function AdvancedGrid({ config = defaultMyGridConfig, groupProps, id, keyframes, mouseMove, onObjectReady, onObjectDispose }) {
|
|
41
52
|
const matRef = useRef(null);
|
|
42
53
|
const rootRef = useRef(null);
|
|
43
54
|
const meshRef = useRef(null);
|
|
44
55
|
useObjectReady(rootRef, config, onObjectReady, onObjectDispose);
|
|
45
|
-
|
|
56
|
+
// The committed config over this grid's defaults: every knob has a value to render
|
|
57
|
+
// and for a keyframe or pointer binding to start from.
|
|
58
|
+
const base = useMemo(() => withConfigDefaults(defaultMyGridConfig, config), [config]);
|
|
59
|
+
const { cellSize, size, segments, flat, displace, followMouse, reveal, revealDuration } = base;
|
|
46
60
|
const segs = segments ?? (displace > 0 ? Math.max(64, Math.ceil(size / cellSize) * 2) : 1);
|
|
47
|
-
const fade = fadeDistance ?? size * 0.5;
|
|
48
|
-
// memoize Color objects so we only re-allocate when the hex actually changes
|
|
49
|
-
const colors = useMemo(() => ({
|
|
50
|
-
line: new THREE.Color(lineColor),
|
|
51
|
-
section: new THREE.Color(sectionColor),
|
|
52
|
-
cell: new THREE.Color(cellColor),
|
|
53
|
-
glow: new THREE.Color(glowColor),
|
|
54
|
-
bg: new THREE.Color(bgColor),
|
|
55
|
-
}), [lineColor, sectionColor, cellColor, glowColor, bgColor]);
|
|
56
61
|
// Shared with every other shader-plane grid. This also fixes the pointer
|
|
57
62
|
// projection: it used to assume the XZ plane, so `followMouse` picked
|
|
58
63
|
// against the wrong plane whenever `flat` was false or a parent transform
|
|
59
64
|
// had rotated the grid.
|
|
60
65
|
useGridSurface(matRef, meshRef, { followMouse, reveal, revealDuration });
|
|
61
|
-
|
|
66
|
+
// One push point for every uniform the config owns: the committed config when the
|
|
67
|
+
// material mounts or the config commits, the merged one while anything overrides it.
|
|
68
|
+
const baseRef = useRef(base);
|
|
69
|
+
baseRef.current = base;
|
|
70
|
+
const setMaterial = useCallback((m) => {
|
|
71
|
+
matRef.current = m;
|
|
72
|
+
if (m)
|
|
73
|
+
applyGridConfig(m, baseRef.current, VARIANT, DERIVE);
|
|
74
|
+
}, []);
|
|
75
|
+
useLayoutEffect(() => { applyGridConfig(matRef.current, base, VARIANT, DERIVE); }, [base]);
|
|
76
|
+
const push = useCallback((merged) => applyGridConfig(matRef.current, merged, VARIANT, DERIVE), []);
|
|
77
|
+
useConfigDriver({ rootRef, id, family: 'grids', base, structural: STRUCTURAL, allowed: ANIMATABLE, keyframes, mouseMove, push });
|
|
78
|
+
return (_jsx("group", { ref: rootRef, ...groupProps, children: _jsxs("mesh", { ref: meshRef, rotation: flat ? [-Math.PI / 2, 0, 0] : [0, 0, 0], children: [_jsx("planeGeometry", { args: [size, size, segs, segs] }), _jsx("myGridMaterial", { ref: setMaterial, transparent: true, depthWrite: false, blending: THREE.AdditiveBlending, side: THREE.DoubleSide }, MyGridMaterial.key)] }) }));
|
|
62
79
|
}
|
|
63
80
|
export default AdvancedGrid;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AnimatedObject.d.ts","sourceRoot":"","sources":["../../src/components/AnimatedObject.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAM7D,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACtG,MAAM,WAAW,mBAAoB,SAAQ,gBAAgB;IACzD,QAAQ,EAAE,MAAM,CAAC;IACjB,kBAAkB,EAAE,iBAAiB,CAAC;IACtC,aAAa,EAAE,qBAAqB,CAAC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IACtC,iBAAiB,CAAC,EAAE,CAAC,aAAa,EAAE,qBAAqB,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC;IACjH,cAAc,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC;IACvD,cAAc,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC;IACvD,MAAM,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC7B;AAGD,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,
|
|
1
|
+
{"version":3,"file":"AnimatedObject.d.ts","sourceRoot":"","sources":["../../src/components/AnimatedObject.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAM7D,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACtG,MAAM,WAAW,mBAAoB,SAAQ,gBAAgB;IACzD,QAAQ,EAAE,MAAM,CAAC;IACjB,kBAAkB,EAAE,iBAAiB,CAAC;IACtC,aAAa,EAAE,qBAAqB,CAAC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IACtC,iBAAiB,CAAC,EAAE,CAAC,aAAa,EAAE,qBAAqB,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC;IACjH,cAAc,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC;IACvD,cAAc,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC;IACvD,MAAM,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC7B;AAGD,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAiFvD,CAAC;AAEH,eAAe,cAAc,CAAC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { jsx as _jsx,
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
2
|
import { useObjectReady } from '../hooks/useObjectReady.js';
|
|
3
3
|
import { useRef, useEffect, useCallback, memo } from 'react';
|
|
4
4
|
import { usePathAnimation } from '../hooks/usePathAnimation.js';
|
|
5
|
-
import
|
|
5
|
+
import { useObjectEffectLayers } from '../operations/useObjectEffectLayers.js';
|
|
6
6
|
import { useObjectAnimation } from '../hooks/useObjectAnimation.js';
|
|
7
7
|
import { hasHoverAnimation } from '../utils/hasHoverAnimation.js';
|
|
8
8
|
export const AnimatedObject = memo(({ stateKey, transitionSettings, createdObject,
|
|
@@ -39,6 +39,8 @@ visible = true, children, parentRef, handleObjectClick, onPointerEnter, onPointe
|
|
|
39
39
|
enabled: createdObject.type !== 'gallery', //
|
|
40
40
|
hovered,
|
|
41
41
|
}, groupRef);
|
|
42
|
+
// Effects layered on the object (frost, metalize…) — switched on / off, held while on.
|
|
43
|
+
useObjectEffectLayers(groupRef, createdObject.effects);
|
|
42
44
|
const { startPathAnimation, updatePathAnimation, isAnimating: isPathAnimating } = usePathAnimation();
|
|
43
45
|
const syncTransform = useCallback(() => {
|
|
44
46
|
const obj = groupRef.current;
|
|
@@ -64,13 +66,13 @@ visible = true, children, parentRef, handleObjectClick, onPointerEnter, onPointe
|
|
|
64
66
|
}
|
|
65
67
|
};
|
|
66
68
|
if (createdObject.type === 'particles' || createdObject.type === 'gallery' || (!hasHoverFunctionalities && !hasMouseInteraction)) {
|
|
67
|
-
return _jsx(_Fragment, { children:
|
|
69
|
+
return _jsx(_Fragment, { children: _jsx("group", { ref: groupRef, position: position, scale: scale, rotation: rotation, visible: visible,
|
|
68
70
|
// onClick={onClick}
|
|
69
71
|
// onPointerEnter={onPointerEnter}
|
|
70
72
|
// onPointerLeave={onPointerLeave}
|
|
71
|
-
name: createdObject.meshSettings.name, userData: { id: createdObject.id }, children:
|
|
73
|
+
name: createdObject.meshSettings.name, userData: { id: createdObject.id }, children: children }) });
|
|
72
74
|
}
|
|
73
|
-
return (
|
|
75
|
+
return (_jsx("group", { ref: groupRef, position: position, scale: scale, rotation: rotation, visible: visible, onClick: onClick, onPointerEnter: onPointerEnter, onPointerLeave: onPointerLeave, name: createdObject.meshSettings.name, userData: { id: createdObject.id }, children: children }));
|
|
74
76
|
});
|
|
75
77
|
AnimatedObject.displayName = 'AnimatedObject';
|
|
76
78
|
export default AnimatedObject;
|
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
import type { ObjectReadyProps } from '../types/objectReady';
|
|
2
|
-
import type { BubblesConfig } from '@3driseai/3drise-core';
|
|
2
|
+
import type { AnimationOptions, BubblesConfig, MouseMoveDomain } from '@3driseai/3drise-core';
|
|
3
3
|
import React from "react";
|
|
4
4
|
export interface BubblesProps extends ObjectReadyProps {
|
|
5
5
|
config: BubblesConfig;
|
|
6
6
|
boundingRadius?: number;
|
|
7
|
+
/** Scene object id of a standalone effect: the live-edit handle is found by it. */
|
|
8
|
+
id?: string;
|
|
9
|
+
/** Keyframes on this effect's config knobs (animations.effect.animations). */
|
|
10
|
+
keyframes?: AnimationOptions[];
|
|
11
|
+
/** Pointer bindings on this effect's config knobs (mouseMove.effect). */
|
|
12
|
+
mouseMove?: MouseMoveDomain;
|
|
7
13
|
}
|
|
8
14
|
declare const Bubbles: React.FC<BubblesProps>;
|
|
9
15
|
export default Bubbles;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Bubbles.d.ts","sourceRoot":"","sources":["../../src/components/Bubbles.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Bubbles.d.ts","sourceRoot":"","sources":["../../src/components/Bubbles.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAK7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC9F,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,MAAM,WAAW,YAAa,SAAQ,gBAAgB;IAClD,MAAM,EAAE,aAAa,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mFAAmF;IACnF,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,8EAA8E;IAC9E,SAAS,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC/B,yEAAyE;IACzE,SAAS,CAAC,EAAE,eAAe,CAAC;CAC/B;AAyBD,QAAA,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CAqGnC,CAAC;AACF,eAAe,OAAO,CAAC"}
|