@3driseai/3drise-viewer 0.1.33 → 0.1.35
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/ClipsRuntime.d.ts +9 -0
- package/dist/animationsV2/ClipsRuntime.d.ts.map +1 -1
- package/dist/animationsV2/ClipsRuntime.js +42 -1
- package/dist/animationsV2/animationLive.d.ts +7 -0
- package/dist/animationsV2/animationLive.d.ts.map +1 -0
- package/dist/animationsV2/animationLive.js +26 -0
- package/dist/animationsV2/appliers.d.ts +8 -0
- package/dist/animationsV2/appliers.d.ts.map +1 -1
- package/dist/animationsV2/appliers.js +61 -0
- package/dist/animationsV2/index.d.ts +1 -0
- package/dist/animationsV2/index.d.ts.map +1 -1
- package/dist/animationsV2/index.js +1 -0
- package/dist/animationsV2/sequenceUtils.d.ts +1 -0
- package/dist/animationsV2/sequenceUtils.d.ts.map +1 -1
- package/dist/animationsV2/sequenceUtils.js +7 -4
- package/dist/animationsV2/types.d.ts +4 -0
- package/dist/animationsV2/types.d.ts.map +1 -1
- package/dist/components/AnimatedObject.d.ts.map +1 -1
- package/dist/components/AnimatedObject.js +2 -0
- package/dist/components/CreatedObject.d.ts.map +1 -1
- package/dist/components/CreatedObject.js +4 -1
- package/dist/components/GroupMaterialContext.d.ts +25 -0
- package/dist/components/GroupMaterialContext.d.ts.map +1 -0
- package/dist/components/GroupMaterialContext.js +21 -0
- package/dist/components/LightObject.js +3 -3
- package/dist/components/ObjectNode.d.ts.map +1 -1
- package/dist/components/ObjectNode.js +13 -2
- package/dist/components/ProjectLoader.d.ts.map +1 -1
- package/dist/components/ProjectLoader.js +2 -0
- package/dist/components/candle/Candle.js +1 -1
- package/dist/components/effects/HarmonicShellEffect.d.ts.map +1 -1
- package/dist/components/effects/HarmonicShellEffect.js +6 -0
- package/dist/components/fluorescentTube/FluorescentTube.js +1 -1
- package/dist/components/ledArray/LedArray.js +1 -1
- package/dist/components/lightBulb/LightBulb.js +1 -1
- package/dist/components/spotBeam/SpotBeam.js +1 -1
- package/dist/hooks/useContinuousEffects.d.ts.map +1 -1
- package/dist/hooks/useContinuousEffects.js +34 -2
- package/dist/hooks/useLightShadow.d.ts +1 -1
- package/dist/hooks/useLightShadow.d.ts.map +1 -1
- package/dist/hooks/useLightShadow.js +10 -6
- package/dist/hooks/useMaterialApplication.d.ts.map +1 -1
- package/dist/hooks/useMaterialApplication.js +2 -1
- package/dist/hooks/useMaterialUniforms.d.ts +2 -8
- package/dist/hooks/useMaterialUniforms.d.ts.map +1 -1
- package/dist/hooks/useMaterialUniforms.js +18 -6
- package/dist/operations/catalogue/physicalHeld.d.ts.map +1 -1
- package/dist/operations/catalogue/physicalHeld.js +6 -0
- package/dist/operations/index.d.ts +1 -1
- package/dist/operations/index.d.ts.map +1 -1
- package/dist/operations/index.js +1 -1
- package/dist/operations/objectEffects.d.ts +15 -1
- package/dist/operations/objectEffects.d.ts.map +1 -1
- package/dist/operations/objectEffects.js +49 -1
- package/dist/operations/runtime.d.ts +9 -3
- package/dist/operations/runtime.d.ts.map +1 -1
- package/dist/operations/runtime.js +67 -19
- package/dist/operations/types.d.ts +5 -0
- package/dist/operations/types.d.ts.map +1 -1
- package/dist/triggers/readiness.js +1 -1
- package/dist/utils/cdnUrls.d.ts +10 -0
- package/dist/utils/cdnUrls.d.ts.map +1 -0
- package/dist/utils/cdnUrls.js +18 -0
- package/package.json +2 -2
|
@@ -126,6 +126,7 @@ const frag = /* glsl */ `
|
|
|
126
126
|
uniform float uIntensity;
|
|
127
127
|
uniform float uFilmThickness;
|
|
128
128
|
uniform float uNodalLines;
|
|
129
|
+
uniform float uTint;
|
|
129
130
|
varying vec3 vNormal;
|
|
130
131
|
varying vec3 vViewDir;
|
|
131
132
|
varying float vField;
|
|
@@ -145,6 +146,9 @@ const frag = /* glsl */ `
|
|
|
145
146
|
float cosT = sqrt(max(1.0 - (1.0 - ndv * ndv) / (1.33 * 1.33), 0.0));
|
|
146
147
|
float opd = 2.0 * 1.33 * uFilmThickness * (1.0 + 0.35 * vField) * cosT;
|
|
147
148
|
vec3 film = 0.5 + 0.5 * cos(TAU * opd / vec3(650.0, 532.0, 450.0));
|
|
149
|
+
// tint: keep the film's light and dark bands, carry them in the base colour
|
|
150
|
+
float lum = dot(film, vec3(0.299, 0.587, 0.114));
|
|
151
|
+
film = mix(film, lum * uColor * 1.7 + film * 0.12, uTint);
|
|
148
152
|
|
|
149
153
|
float fres = pow(1.0 - ndv, 3.0);
|
|
150
154
|
vec3 col = uColor * 0.25 + film * (0.2 + 0.8 * fres);
|
|
@@ -177,6 +181,7 @@ function applyConfig(u, c, bound) {
|
|
|
177
181
|
u.uFilmThickness.value = c.filmThickness;
|
|
178
182
|
u.uNodalLines.value = c.nodalLines;
|
|
179
183
|
u.uDegree.value = c.degree;
|
|
184
|
+
u.uTint.value = c.tint ?? 0;
|
|
180
185
|
}
|
|
181
186
|
const HarmonicShellEffect = ({ boundingRadius, config, id, keyframes, mouseMove, onObjectReady, onObjectDispose }) => {
|
|
182
187
|
const cfg = useMemo(() => withConfigDefaults(DEFAULT_GENERATIVE_EFFECTS.harmonicShell, config), [config]);
|
|
@@ -196,6 +201,7 @@ const HarmonicShellEffect = ({ boundingRadius, config, id, keyframes, mouseMove,
|
|
|
196
201
|
uFilmThickness: { value: 380 },
|
|
197
202
|
uNodalLines: { value: 0.6 },
|
|
198
203
|
uDegree: { value: 3 },
|
|
204
|
+
uTint: { value: 0 },
|
|
199
205
|
uW: { value: new Float32Array(24) },
|
|
200
206
|
}), []);
|
|
201
207
|
const material = useMemo(() => new THREE.ShaderMaterial({ vertexShader: vert, fragmentShader: frag, uniforms, transparent: true, depthWrite: false, blending: THREE.AdditiveBlending }), [uniforms]);
|
|
@@ -73,7 +73,7 @@ const FluorescentTube = ({ id, config, animations, mouseMove, settings, onObject
|
|
|
73
73
|
useEffect(() => { RectAreaLightUniformsLib.init(); }, []);
|
|
74
74
|
useObjectReady(groupRef, settings, onObjectReady, onObjectDispose);
|
|
75
75
|
// The shadow settings belong to the point light — the area light has no shadow.
|
|
76
|
-
useLightShadow(shadowLightRef, config.shadow);
|
|
76
|
+
useLightShadow(shadowLightRef, config.shadow, config.type);
|
|
77
77
|
const { merged } = useLightConfig(groupRef, lightRef, id, config, animations, mouseMove);
|
|
78
78
|
const tubeCount = clampInt(config.tubes, 1, 4, 1);
|
|
79
79
|
const tubeSpacing = Math.max(num(config.tubeSpacing, 0.14), 0.02);
|
|
@@ -47,7 +47,7 @@ const LedArray = ({ id, config, animations, mouseMove, settings, onObjectReady,
|
|
|
47
47
|
const glowRef = useRef(null);
|
|
48
48
|
const diffuserRef = useRef(null);
|
|
49
49
|
useObjectReady(groupRef, settings, onObjectReady, onObjectDispose);
|
|
50
|
-
useLightShadow(lightRef, config.shadow);
|
|
50
|
+
useLightShadow(lightRef, config.shadow, config.type);
|
|
51
51
|
const { merged } = useLightConfig(groupRef, lightRef, id, config, animations, mouseMove);
|
|
52
52
|
const layout = (config.layout ?? 'panel');
|
|
53
53
|
const spacing = Math.max(num(config.spacing, 0.06), 0.005);
|
|
@@ -51,7 +51,7 @@ const LightBulb = ({ id, config, animations, mouseMove, settings, onObjectReady,
|
|
|
51
51
|
const groupRef = useRef(null);
|
|
52
52
|
const lightRef = useRef(null);
|
|
53
53
|
useObjectReady(groupRef, settings, onObjectReady, onObjectDispose);
|
|
54
|
-
useLightShadow(lightRef, config.shadow);
|
|
54
|
+
useLightShadow(lightRef, config.shadow, config.type);
|
|
55
55
|
// Keyframes, pointer bindings and slider drags: the light's own knobs land on
|
|
56
56
|
// the light, and the merged config is what the filament, glow and halo read.
|
|
57
57
|
const { merged } = useLightConfig(groupRef, lightRef, id, config, animations, mouseMove);
|
|
@@ -53,7 +53,7 @@ const SpotBeam = ({ id, config, animations, mouseMove, settings, onObjectReady,
|
|
|
53
53
|
const beamRef = useRef(null);
|
|
54
54
|
const soloRef = useRef(null);
|
|
55
55
|
useObjectReady(groupRef, settings, onObjectReady, onObjectDispose);
|
|
56
|
-
useLightShadow(lightRef, config.shadow);
|
|
56
|
+
useLightShadow(lightRef, config.shadow, config.type);
|
|
57
57
|
const { merged } = useLightConfig(groupRef, lightRef, id, config, animations, mouseMove);
|
|
58
58
|
// --- geometry: a unit cone for the beam, a small emitter ---
|
|
59
59
|
const geometry = useMemo(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useContinuousEffects.d.ts","sourceRoot":"","sources":["../../src/hooks/useContinuousEffects.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useContinuousEffects.d.ts","sourceRoot":"","sources":["../../src/hooks/useContinuousEffects.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGhF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,MAAM,WAAW,2BAA2B;IACxC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,0BAA0B;IACvC,eAAe,EAAE,MAAM,OAAO,CAAC;IAC/B,cAAc,EAAE,KAAK,CAAC,gBAAgB,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;CAC9D;AAGD,eAAO,MAAM,oBAAoB,GAEjC,gBAAgB,qBAAqB,GAAG,IAAI,EAAE,UAAS,2BAAgC,EAAE,eAAe,cAAc,KAAG,0BAkJxH,CAAC;AACF,eAAe,oBAAoB,CAAC"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { useRef, useEffect } from "react";
|
|
2
|
+
import { animationLiveReader } from "../animationsV2/animationLive.js";
|
|
3
|
+
import ClipsRuntime from "../animationsV2/ClipsRuntime.js";
|
|
2
4
|
import { useFrame } from "@react-three/fiber";
|
|
3
|
-
import { animateUniforms, cacheChildrenWithMaterials, handleEdgesAnimations, handleMaterialAnimations, handleMaterialEffects, handleTransformAnimations } from "@3driseai/3drise-core";
|
|
5
|
+
import { AnimationTargetState, animateUniforms, cacheChildrenWithMaterials, handleEdgesAnimations, handleMaterialAnimations, handleMaterialEffects, handleTransformAnimations, targetRootKind } from "@3driseai/3drise-core";
|
|
4
6
|
import usePathAnimation from "./usePathAnimation.js";
|
|
5
7
|
import { resolveObject3D } from "../utils/resolveObject3D.js";
|
|
6
8
|
export const useContinuousEffects = (
|
|
@@ -19,6 +21,9 @@ objectSettings, options = {}, objectSource) => {
|
|
|
19
21
|
const startValuesRef = useRef({});
|
|
20
22
|
// Cache start values for edges animations
|
|
21
23
|
const edgesStartValuesRef = useRef({});
|
|
24
|
+
// Groups / models: rows scoped each / targets (core animationTargets.ts) — one state per object.
|
|
25
|
+
const targetsRef = useRef(null);
|
|
26
|
+
useEffect(() => () => { targetsRef.current?.dispose(); targetsRef.current = null; }, []);
|
|
22
27
|
// Transform keyframes. Effects that move the object (float, sway, spin…) are object
|
|
23
28
|
// effects now (CreatedObject.effects, the operations catalogue) and ride on top of these.
|
|
24
29
|
const transformAnimations = objectSettings?.animations?.transform?.animations || [];
|
|
@@ -74,8 +79,15 @@ objectSettings, options = {}, objectSource) => {
|
|
|
74
79
|
}, [enabled, objectSettings?.animations?.transform?.animations, objectSource, startPathAnimation, stopPathAnimation]);
|
|
75
80
|
useFrame((state, delta) => {
|
|
76
81
|
const object = resolveObject3D(objectSource);
|
|
77
|
-
if (!enabled || !object || !objectSettings)
|
|
82
|
+
if (!enabled || !object || !objectSettings) {
|
|
83
|
+
// Off: the parts the rows moved go back to their rest.
|
|
84
|
+
if (targetsRef.current) {
|
|
85
|
+
targetsRef.current.dispose();
|
|
86
|
+
targetsRef.current = null;
|
|
87
|
+
lastObjectRef.current = null;
|
|
88
|
+
}
|
|
78
89
|
return;
|
|
90
|
+
}
|
|
79
91
|
// Cache the object's materials the first frame we actually see it, and
|
|
80
92
|
// again if the caller swaps the object underneath us.
|
|
81
93
|
if (object !== lastObjectRef.current) {
|
|
@@ -83,7 +95,11 @@ objectSettings, options = {}, objectSource) => {
|
|
|
83
95
|
childrenWithMaterialsRef.current = cacheChildrenWithMaterials(object);
|
|
84
96
|
startValuesRef.current = {};
|
|
85
97
|
edgesStartValuesRef.current = {};
|
|
98
|
+
targetsRef.current?.dispose();
|
|
99
|
+
targetsRef.current = targetRootKind(object) ? new AnimationTargetState(object) : null;
|
|
86
100
|
}
|
|
101
|
+
const targets = targetsRef.current;
|
|
102
|
+
targets?.beginFrame();
|
|
87
103
|
const time = state.clock.getElapsedTime();
|
|
88
104
|
const mouse = state.pointer;
|
|
89
105
|
const currentTime = Date.now();
|
|
@@ -97,6 +113,19 @@ objectSettings, options = {}, objectSource) => {
|
|
|
97
113
|
object,
|
|
98
114
|
meshSettings: objectSettings.meshSettings || {},
|
|
99
115
|
pathIsActive,
|
|
116
|
+
targets: targets ?? undefined,
|
|
117
|
+
// a timeline clip driving a row's value (live, while it runs)
|
|
118
|
+
liveTo: animationLiveReader(objectSettings.id),
|
|
119
|
+
// a clip driving this transform (the object, a child, a model's part) has full control
|
|
120
|
+
takenOver: (target, property) => {
|
|
121
|
+
const ownId = objectSettings.id;
|
|
122
|
+
if (!target)
|
|
123
|
+
return !!ownId && ClipsRuntime.takesOver(ownId, property);
|
|
124
|
+
const childId = target.userData?.id;
|
|
125
|
+
if (childId && ClipsRuntime.takesOver(childId, property))
|
|
126
|
+
return true;
|
|
127
|
+
return !!ownId && objectSettings.type === 'model' && !!target.name && ClipsRuntime.takesOver(ownId, property, target.name);
|
|
128
|
+
},
|
|
100
129
|
}, activeTransformAnimations, currentTime, hovered, delta);
|
|
101
130
|
}
|
|
102
131
|
if (hasEdgesAnimations) {
|
|
@@ -109,6 +138,7 @@ objectSettings, options = {}, objectSource) => {
|
|
|
109
138
|
object,
|
|
110
139
|
materialSettings: objectSettings.materialSettings || {},
|
|
111
140
|
startValuesCache: startValuesRef.current,
|
|
141
|
+
targets: targets ?? undefined,
|
|
112
142
|
}, activeMaterialAnimations, currentTime, hovered);
|
|
113
143
|
}
|
|
114
144
|
// Handle material effects (color effects)
|
|
@@ -116,6 +146,8 @@ objectSettings, options = {}, objectSource) => {
|
|
|
116
146
|
handleMaterialEffects(object, enabledMaterialEffects, time, delta, effectStateRef, applyToChildren);
|
|
117
147
|
}
|
|
118
148
|
}
|
|
149
|
+
// Targets the rows stopped driving go back to their rest.
|
|
150
|
+
targets?.endFrame();
|
|
119
151
|
animateUniforms(childrenWithMaterialsRef.current, time * speed, mouse, state.camera.position);
|
|
120
152
|
});
|
|
121
153
|
return {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { RefObject } from 'react';
|
|
2
2
|
import type { DirectionalLight, PointLight, SpotLight } from "three";
|
|
3
3
|
type ShadowLight = DirectionalLight | SpotLight | PointLight;
|
|
4
|
-
export declare const useLightShadow: (lightRef: RefObject<ShadowLight | null>,
|
|
4
|
+
export declare const useLightShadow: (lightRef: RefObject<ShadowLight | null>, saved: Record<string, any> | undefined, lightType: string | undefined) => void;
|
|
5
5
|
export {};
|
|
6
6
|
//# sourceMappingURL=useLightShadow.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useLightShadow.d.ts","sourceRoot":"","sources":["../../src/hooks/useLightShadow.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useLightShadow.d.ts","sourceRoot":"","sources":["../../src/hooks/useLightShadow.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAErE,KAAK,WAAW,GAAG,gBAAgB,GAAG,SAAS,GAAG,UAAU,CAAC;AAG7D,eAAO,MAAM,cAAc,GAAI,UAAU,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,EAAE,OAAO,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,EAAE,WAAW,MAAM,GAAG,SAAS,KAAG,IA4C/I,CAAC"}
|
|
@@ -9,20 +9,24 @@
|
|
|
9
9
|
// texture is created, the existing texture must be disposed and `light.shadow.map`
|
|
10
10
|
// set to null so the renderer recreates it at the new resolution.
|
|
11
11
|
//
|
|
12
|
+
// The saved shadow is laid over the light type's defaults (core resolveLightShadow),
|
|
13
|
+
// the same table the studio's Shadow tab shows: an unset `enabled` is the type's
|
|
14
|
+
// default (point-type lights: off), never a blanket "on".
|
|
15
|
+
//
|
|
12
16
|
// All known fields across the three shadow-camera kinds are applied if defined
|
|
13
|
-
// on the
|
|
17
|
+
// on the resolved shadow. Fields irrelevant to the actual light type
|
|
14
18
|
// (e.g. cameraLeft on a SpotLight's perspective camera) are simply ignored by
|
|
15
19
|
// Three.js, so it's safe to apply them defensively.
|
|
16
20
|
//
|
|
17
21
|
import { useEffect } from 'react';
|
|
18
|
-
|
|
22
|
+
import { resolveLightShadow } from '@3driseai/3drise-core';
|
|
23
|
+
export const useLightShadow = (lightRef, saved, lightType) => {
|
|
19
24
|
useEffect(() => {
|
|
20
25
|
const light = lightRef.current;
|
|
21
26
|
if (!light)
|
|
22
27
|
return;
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
return;
|
|
28
|
+
const shadow = resolveLightShadow(lightType, saved);
|
|
29
|
+
light.castShadow = shadow.enabled === true;
|
|
26
30
|
if (shadow.mapSize !== undefined) {
|
|
27
31
|
const previous = light.shadow.mapSize.x;
|
|
28
32
|
light.shadow.mapSize.set(shadow.mapSize, shadow.mapSize);
|
|
@@ -59,5 +63,5 @@ export const useLightShadow = (lightRef, shadow, enabledFallback = true) => {
|
|
|
59
63
|
if (shadow.focus !== undefined)
|
|
60
64
|
light.shadow.focus = shadow.focus;
|
|
61
65
|
cam.updateProjectionMatrix();
|
|
62
|
-
}, [lightRef,
|
|
66
|
+
}, [lightRef, saved, lightType]);
|
|
63
67
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMaterialApplication.d.ts","sourceRoot":"","sources":["../../src/hooks/useMaterialApplication.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAG9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG/D,eAAO,MAAM,sBAAsB,GAAI,QAAQ,cAAc,EAAE,kBAAkB,gBAAgB,EAAE,4BAA4B,OAAO,EAAE,YAAY,MAAM,IAAI,KAAG,
|
|
1
|
+
{"version":3,"file":"useMaterialApplication.d.ts","sourceRoot":"","sources":["../../src/hooks/useMaterialApplication.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAG9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG/D,eAAO,MAAM,sBAAsB,GAAI,QAAQ,cAAc,EAAE,kBAAkB,gBAAgB,EAAE,4BAA4B,OAAO,EAAE,YAAY,MAAM,IAAI,KAAG,IAyIhK,CAAC"}
|
|
@@ -96,11 +96,12 @@ export const useMaterialApplication = (source, materialSettings, shouldApply3dri
|
|
|
96
96
|
onApplied?.();
|
|
97
97
|
return;
|
|
98
98
|
}
|
|
99
|
+
// Stops at child scene objects: they apply their own material.
|
|
99
100
|
traverseSkippingEdgesAndEffects(obj, true, (child) => {
|
|
100
101
|
if (child && child.material) {
|
|
101
102
|
applyMaterialToChild(child, variant, resolvedSettings);
|
|
102
103
|
}
|
|
103
|
-
});
|
|
104
|
+
}, true);
|
|
104
105
|
}
|
|
105
106
|
// traverseSkippingEdges(originObject!, true, (child: any) => {
|
|
106
107
|
// if (child && child.material) {
|
|
@@ -1,14 +1,8 @@
|
|
|
1
1
|
import type { Material, Object3D } from "three";
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
* Usage pattern (like SkyControllerUi):
|
|
6
|
-
* - On slider drag → updateProperty(key, value) — instant visual feedback, no Redux
|
|
7
|
-
* - On slider end → updateProperty(key, value) + dispatch to Redux
|
|
8
|
-
* - On color change → updateColor(key, hex) + dispatch to Redux
|
|
9
|
-
* - On variant change → changeMaterial(variant, settings) + dispatch to Redux
|
|
3
|
+
* `object` may be several objects (a group's Material tab edits the children it applies to).
|
|
10
4
|
*/
|
|
11
|
-
export declare function useMaterialUniforms(object: Object3D | null | undefined): {
|
|
5
|
+
export declare function useMaterialUniforms(object: Object3D | Object3D[] | null | undefined): {
|
|
12
6
|
getMaterial: () => Material | null;
|
|
13
7
|
updateProperty: (key: string, value: any) => void;
|
|
14
8
|
updateColor: (key: string, hexValue: string) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMaterialUniforms.d.ts","sourceRoot":"","sources":["../../src/hooks/useMaterialUniforms.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"useMaterialUniforms.d.ts","sourceRoot":"","sources":["../../src/hooks/useMaterialUniforms.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAmBhD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,QAAQ,GAAG,QAAQ,EAAE,GAAG,IAAI,GAAG,SAAS,GAAG;IAC/E,WAAW,EAAE,MAAM,QAAQ,GAAG,IAAI,CAAC;IACnC,cAAc,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IAClD,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACrD,gBAAgB,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC;IAC1D,cAAc,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC;CAC5E,CAoFJ"}
|
|
@@ -9,6 +9,18 @@ import { applySingleProperty, applyColorProperty, createAndApplyMaterial, MATERI
|
|
|
9
9
|
* - On color change → updateColor(key, hex) + dispatch to Redux
|
|
10
10
|
* - On variant change → changeMaterial(variant, settings) + dispatch to Redux
|
|
11
11
|
*/
|
|
12
|
+
/** Every material-bearing node of the object(s) — never inside child scene objects (they have their own material). */
|
|
13
|
+
function eachNode(object, cb) {
|
|
14
|
+
if (!object)
|
|
15
|
+
return;
|
|
16
|
+
for (const root of Array.isArray(object) ? object : [object]) {
|
|
17
|
+
if (root)
|
|
18
|
+
traverseSkippingEdgesAndEffects(root, true, cb, true);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* `object` may be several objects (a group's Material tab edits the children it applies to).
|
|
23
|
+
*/
|
|
12
24
|
export function useMaterialUniforms(object) {
|
|
13
25
|
/**
|
|
14
26
|
* Get the material from the first non-edges child mesh that has one.
|
|
@@ -16,10 +28,10 @@ export function useMaterialUniforms(object) {
|
|
|
16
28
|
const getMaterial = useCallback(() => {
|
|
17
29
|
if (!object)
|
|
18
30
|
return null;
|
|
19
|
-
if (object.material)
|
|
31
|
+
if (!Array.isArray(object) && object.material)
|
|
20
32
|
return object.material;
|
|
21
33
|
let found = null;
|
|
22
|
-
|
|
34
|
+
eachNode(object, (child) => {
|
|
23
35
|
if (!found && child.material) {
|
|
24
36
|
found = child.material;
|
|
25
37
|
}
|
|
@@ -33,7 +45,7 @@ export function useMaterialUniforms(object) {
|
|
|
33
45
|
const updateProperty = useCallback((key, value) => {
|
|
34
46
|
if (!object)
|
|
35
47
|
return;
|
|
36
|
-
|
|
48
|
+
eachNode(object, (child) => {
|
|
37
49
|
if (child.material) {
|
|
38
50
|
applySingleProperty(child.material, key, value);
|
|
39
51
|
}
|
|
@@ -45,7 +57,7 @@ export function useMaterialUniforms(object) {
|
|
|
45
57
|
const updateColor = useCallback((key, hexValue) => {
|
|
46
58
|
if (!object)
|
|
47
59
|
return;
|
|
48
|
-
|
|
60
|
+
eachNode(object, (child) => {
|
|
49
61
|
if (child.material) {
|
|
50
62
|
applyColorProperty(child.material, key, hexValue);
|
|
51
63
|
}
|
|
@@ -58,7 +70,7 @@ export function useMaterialUniforms(object) {
|
|
|
58
70
|
const applyAllSettings = useCallback((settings) => {
|
|
59
71
|
if (!object)
|
|
60
72
|
return;
|
|
61
|
-
|
|
73
|
+
eachNode(object, (child) => {
|
|
62
74
|
if (child.material) {
|
|
63
75
|
MaterialRegistryAPI.applySettings(child.material, settings);
|
|
64
76
|
}
|
|
@@ -71,7 +83,7 @@ export function useMaterialUniforms(object) {
|
|
|
71
83
|
const changeMaterial = useCallback((variant, settings) => {
|
|
72
84
|
if (!object)
|
|
73
85
|
return;
|
|
74
|
-
|
|
86
|
+
eachNode(object, (child) => {
|
|
75
87
|
if (child.material) {
|
|
76
88
|
const oldInstance = child.userData[MATERIAL_INSTANCE_KEY];
|
|
77
89
|
if (oldInstance) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"physicalHeld.d.ts","sourceRoot":"","sources":["../../../src/operations/catalogue/physicalHeld.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AACzF,OAAO,EAAqB,KAAK,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,eAAe,CAAC;AAE9E,MAAM,WAAW,SAAS,CAAC,CAAC;IACxB,6CAA6C;IAC7C,GAAG,EAAE;QAAE,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACnB,gEAAgE;IAChE,CAAC,EAAE,eAAe,CAAC;IACnB,IAAI,EAAE,OAAO,CAAC;IACd,8CAA8C;IAC9C,GAAG,EAAE,CAAC,CAAC;IACP,oCAAoC;IACpC,GAAG,EAAE,OAAO,CAAC;IACb,kFAAkF;IAClF,CAAC,EAAE,MAAM,CAAC;IACV,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,gBAAgB,CAAC,CAAC;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAC3C,0DAA0D;IAC1D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iGAAiG;IACjG,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,eAAe,KAAK,CAAC,CAAC;IACjD,oHAAoH;IACpH,IAAI,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1E,qDAAqD;IACrD,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;CACtC;AAED,gCAAgC;AAChC,eAAO,MAAM,QAAQ,EAAE,OAAO,CAAC,kBAAkB,EAAE;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAgL,CAAC;AAEtP,gGAAgG;AAChG,eAAO,MAAM,YAAY,GAAI,UAAU,MAAM,WAAgD,CAAC;AAE9F,wBAAgB,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,mBAAmB,
|
|
1
|
+
{"version":3,"file":"physicalHeld.d.ts","sourceRoot":"","sources":["../../../src/operations/catalogue/physicalHeld.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AACzF,OAAO,EAAqB,KAAK,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,eAAe,CAAC;AAE9E,MAAM,WAAW,SAAS,CAAC,CAAC;IACxB,6CAA6C;IAC7C,GAAG,EAAE;QAAE,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACnB,gEAAgE;IAChE,CAAC,EAAE,eAAe,CAAC;IACnB,IAAI,EAAE,OAAO,CAAC;IACd,8CAA8C;IAC9C,GAAG,EAAE,CAAC,CAAC;IACP,oCAAoC;IACpC,GAAG,EAAE,OAAO,CAAC;IACb,kFAAkF;IAClF,CAAC,EAAE,MAAM,CAAC;IACV,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,gBAAgB,CAAC,CAAC;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAC3C,0DAA0D;IAC1D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iGAAiG;IACjG,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,eAAe,KAAK,CAAC,CAAC;IACjD,oHAAoH;IACpH,IAAI,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1E,qDAAqD;IACrD,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;CACtC;AAED,gCAAgC;AAChC,eAAO,MAAM,QAAQ,EAAE,OAAO,CAAC,kBAAkB,EAAE;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAgL,CAAC;AAEtP,gGAAgG;AAChG,eAAO,MAAM,YAAY,GAAI,UAAU,MAAM,WAAgD,CAAC;AAE9F,wBAAgB,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,mBAAmB,CAwD9E"}
|
|
@@ -62,6 +62,12 @@ export function heldPhysical(spec) {
|
|
|
62
62
|
st.out = false;
|
|
63
63
|
return run(target, st, 1, easeTime(p));
|
|
64
64
|
},
|
|
65
|
+
// a motion reads its params every frame: a new speed / height just takes over
|
|
66
|
+
live(target, p) {
|
|
67
|
+
const st = target.userData[KEY];
|
|
68
|
+
if (st)
|
|
69
|
+
st.p = { ...p, __backward: st.p.__backward };
|
|
70
|
+
},
|
|
65
71
|
revert(target, p) {
|
|
66
72
|
const st = target.userData[KEY];
|
|
67
73
|
if (!st)
|
|
@@ -5,7 +5,7 @@ export { bakeProject, collectBakeJobs, setBakeSource, type BakeSource, type Bake
|
|
|
5
5
|
export { installStallLog, stallLogEnabled } from '../utils/stallLog';
|
|
6
6
|
export { runEffect, runEffectClip, setEffectClipTemplates, getEffectClipTemplate, effectClipFromAsset, EFFECT_CLIP_ASSET, applyOperation, revertOperation, runOf, isOperationOn, resolveEffectTargets, runActionEffects, previewEffect, previewEffects, isPreviewing, prewarmEffect, areActionEffectsOn, subscribeActionEffects, registerOperationTools, } from './runtime';
|
|
7
7
|
export { useOperationsRuntime } from './useOperationsRuntime';
|
|
8
|
-
export { ObjectEffectsController, runningObjectEffects, objectEffectParams, isObjectOperation, surfaceSignature, playObjectEffect, playbackOf, clipFollowsVisibility, setObjectEffectsVisible, currentEffectStep } from './objectEffects';
|
|
8
|
+
export { ObjectEffectsController, runningObjectEffects, objectEffectParams, isObjectOperation, surfaceSignature, playObjectEffect, setObjectEffectParam, playbackOf, clipFollowsVisibility, setObjectEffectsVisible, currentEffectStep } from './objectEffects';
|
|
9
9
|
export { useObjectEffectLayers } from './useObjectEffectLayers';
|
|
10
10
|
export { usePresentedVisibility } from './usePresentedVisibility';
|
|
11
11
|
export { captureFrameImage } from './clipPreview';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/operations/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC/F,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,UAAU,CAAC;AAClF,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,aAAa,EAAE,KAAK,UAAU,EAAE,KAAK,UAAU,EAAE,MAAM,QAAQ,CAAC;AACvG,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,EACH,SAAS,EAAE,aAAa,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,cAAc,EAAE,eAAe,EAAE,KAAK,EAAE,aAAa,EAAE,oBAAoB,EAC5L,gBAAgB,EAAE,aAAa,EAAE,cAAc,EAAE,YAAY,EAAE,aAAa,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,sBAAsB,GACnJ,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,UAAU,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/operations/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC/F,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,UAAU,CAAC;AAClF,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,aAAa,EAAE,KAAK,UAAU,EAAE,KAAK,UAAU,EAAE,MAAM,QAAQ,CAAC;AACvG,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,EACH,SAAS,EAAE,aAAa,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,cAAc,EAAE,eAAe,EAAE,KAAK,EAAE,aAAa,EAAE,oBAAoB,EAC5L,gBAAgB,EAAE,aAAa,EAAE,cAAc,EAAE,YAAY,EAAE,aAAa,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,sBAAsB,GACnJ,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,UAAU,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAChQ,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC"}
|
package/dist/operations/index.js
CHANGED
|
@@ -5,7 +5,7 @@ export { bakeProject, collectBakeJobs, setBakeSource } from './bake.js';
|
|
|
5
5
|
export { installStallLog, stallLogEnabled } from '../utils/stallLog.js';
|
|
6
6
|
export { runEffect, runEffectClip, setEffectClipTemplates, getEffectClipTemplate, effectClipFromAsset, EFFECT_CLIP_ASSET, applyOperation, revertOperation, runOf, isOperationOn, resolveEffectTargets, runActionEffects, previewEffect, previewEffects, isPreviewing, prewarmEffect, areActionEffectsOn, subscribeActionEffects, registerOperationTools, } from './runtime.js';
|
|
7
7
|
export { useOperationsRuntime } from './useOperationsRuntime.js';
|
|
8
|
-
export { ObjectEffectsController, runningObjectEffects, objectEffectParams, isObjectOperation, surfaceSignature, playObjectEffect, playbackOf, clipFollowsVisibility, setObjectEffectsVisible, currentEffectStep } from './objectEffects.js';
|
|
8
|
+
export { ObjectEffectsController, runningObjectEffects, objectEffectParams, isObjectOperation, surfaceSignature, playObjectEffect, setObjectEffectParam, playbackOf, clipFollowsVisibility, setObjectEffectsVisible, currentEffectStep } from './objectEffects.js';
|
|
9
9
|
export { useObjectEffectLayers } from './useObjectEffectLayers.js';
|
|
10
10
|
export { usePresentedVisibility } from './usePresentedVisibility.js';
|
|
11
11
|
export { captureFrameImage } from './clipPreview.js';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Object3D } from 'three';
|
|
2
|
-
import type { EffectPlayback, EffectSpread, EffectStep, EffectSteps, ObjectEffect } from '@3driseai/3drise-core';
|
|
2
|
+
import type { EffectPlayback, EffectSpread, EffectStep, EffectSteps, ObjectEffect, OperationParamValue } from '@3driseai/3drise-core';
|
|
3
3
|
import type { OperationDefinition, OperationParams } from './types';
|
|
4
4
|
/** An operation can be an object effect (one-shots too: they have no way back, and play with loop). */
|
|
5
5
|
export declare const isObjectOperation: (def: OperationDefinition | undefined) => def is OperationDefinition;
|
|
@@ -17,6 +17,12 @@ export declare const objectEffectParams: (def: OperationDefinition, effect: Pick
|
|
|
17
17
|
export declare const playbackOf: (effect: Pick<ObjectEffect, "playback">) => Required<EffectPlayback>;
|
|
18
18
|
/** An object's effects controller; `create` makes one for an object that has no effects of its own yet. */
|
|
19
19
|
export declare function objectEffectsControllerFor(root: Object3D, create?: boolean): ObjectEffectsController | undefined;
|
|
20
|
+
/**
|
|
21
|
+
* A timeline track on one of an object's effects' params (`effects.<effectId>.<param>`): set it on
|
|
22
|
+
* the running effect (undefined = back to the effect's own). False when the object has no controller
|
|
23
|
+
* or no such effect yet (a model still loading).
|
|
24
|
+
*/
|
|
25
|
+
export declare function setObjectEffectParam(root: Object3D | null | undefined, effectId: string, key: string, value: OperationParamValue | undefined): boolean;
|
|
20
26
|
/** The step of an object's effect steps that is on now (-1: none) — for the editor. */
|
|
21
27
|
export declare function currentEffectStep(root: Object3D | null | undefined): number;
|
|
22
28
|
/** An object's own effect clip follows its visibility (`visible`) and has an effect that is on. */
|
|
@@ -76,6 +82,8 @@ export declare class ObjectEffectsController {
|
|
|
76
82
|
private spread;
|
|
77
83
|
/** Added effects that follow visibility: a group's effects on this child, when the group's follow it. */
|
|
78
84
|
private addedFollows;
|
|
85
|
+
/** Timeline-driven params (effect id → param → value), laid over the row's own while a clip drives them. */
|
|
86
|
+
private liveParams;
|
|
79
87
|
constructor(root: Object3D);
|
|
80
88
|
/** The object's targets for an effect: the object, or its named nodes. */
|
|
81
89
|
private targetsOf;
|
|
@@ -176,6 +184,12 @@ export declare class ObjectEffectsController {
|
|
|
176
184
|
/** Loop / yoyo / reverse, sequenced from apply (forward) and revert (backward). Reads r.params each pass. */
|
|
177
185
|
private cycle;
|
|
178
186
|
/** Play an effect out and leave it waiting (it stays in the list, ready to play again). */
|
|
187
|
+
/**
|
|
188
|
+
* A timeline track drives one of the effect's params: lay it over the row's own (undefined puts
|
|
189
|
+
* the row's own back). A running motion takes it at once (its `live` hook); anything else picks
|
|
190
|
+
* it up on its next pass — nothing replays.
|
|
191
|
+
*/
|
|
192
|
+
setLiveParam(effectId: string, key: string, value: OperationParamValue | undefined): boolean;
|
|
179
193
|
stop(effectId: string): boolean;
|
|
180
194
|
/** Play an effect from its start (see playObjectEffect). */
|
|
181
195
|
play(effectId: string): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"objectEffects.d.ts","sourceRoot":"","sources":["../../src/operations/objectEffects.ts"],"names":[],"mappings":"AAqGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEtC,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAiB,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"objectEffects.d.ts","sourceRoot":"","sources":["../../src/operations/objectEffects.ts"],"names":[],"mappings":"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"}
|
|
@@ -75,6 +75,14 @@ registerAddedEffects({
|
|
|
75
75
|
removeClip: (root, key) => !!controllers.get(root)?.removeClip(key),
|
|
76
76
|
hasClip: (root, key) => !!controllers.get(root)?.hasClip(key),
|
|
77
77
|
});
|
|
78
|
+
/**
|
|
79
|
+
* A timeline track on one of an object's effects' params (`effects.<effectId>.<param>`): set it on
|
|
80
|
+
* the running effect (undefined = back to the effect's own). False when the object has no controller
|
|
81
|
+
* or no such effect yet (a model still loading).
|
|
82
|
+
*/
|
|
83
|
+
export function setObjectEffectParam(root, effectId, key, value) {
|
|
84
|
+
return !!root && !!controllers.get(root)?.setLiveParam(effectId, key, value);
|
|
85
|
+
}
|
|
78
86
|
/** The step of an object's effect steps that is on now (-1: none) — for the editor. */
|
|
79
87
|
export function currentEffectStep(root) {
|
|
80
88
|
return (root && controllers.get(root)?.step) ?? -1;
|
|
@@ -150,6 +158,8 @@ export class ObjectEffectsController {
|
|
|
150
158
|
spread = {};
|
|
151
159
|
/** Added effects that follow visibility: a group's effects on this child, when the group's follow it. */
|
|
152
160
|
addedFollows = new Set();
|
|
161
|
+
/** Timeline-driven params (effect id → param → value), laid over the row's own while a clip drives them. */
|
|
162
|
+
liveParams = new Map();
|
|
153
163
|
constructor(root) {
|
|
154
164
|
this.root = root;
|
|
155
165
|
controllers.set(root, this);
|
|
@@ -562,7 +572,7 @@ export class ObjectEffectsController {
|
|
|
562
572
|
for (const e of next) {
|
|
563
573
|
const def = getOperation(e.operation);
|
|
564
574
|
const [follows, inStep] = this.visOf(e.id);
|
|
565
|
-
const params = objectEffectParams(def, e, follows, inStep);
|
|
575
|
+
const params = { ...objectEffectParams(def, e, follows, inStep), ...(this.liveParams.get(e.id) ?? {}) };
|
|
566
576
|
const paramsKey = JSON.stringify(params);
|
|
567
577
|
const r = this.running.get(e.id);
|
|
568
578
|
if (r && r.paramsKey === paramsKey)
|
|
@@ -1104,6 +1114,44 @@ export class ObjectEffectsController {
|
|
|
1104
1114
|
r.cycle = undefined;
|
|
1105
1115
|
}
|
|
1106
1116
|
/** Play an effect out and leave it waiting (it stays in the list, ready to play again). */
|
|
1117
|
+
/**
|
|
1118
|
+
* A timeline track drives one of the effect's params: lay it over the row's own (undefined puts
|
|
1119
|
+
* the row's own back). A running motion takes it at once (its `live` hook); anything else picks
|
|
1120
|
+
* it up on its next pass — nothing replays.
|
|
1121
|
+
*/
|
|
1122
|
+
setLiveParam(effectId, key, value) {
|
|
1123
|
+
if (this.disposed)
|
|
1124
|
+
return false;
|
|
1125
|
+
const cur = { ...(this.liveParams.get(effectId) ?? {}) };
|
|
1126
|
+
if (value === undefined)
|
|
1127
|
+
delete cur[key];
|
|
1128
|
+
else
|
|
1129
|
+
cur[key] = value;
|
|
1130
|
+
if (Object.keys(cur).length)
|
|
1131
|
+
this.liveParams.set(effectId, cur);
|
|
1132
|
+
else
|
|
1133
|
+
this.liveParams.delete(effectId);
|
|
1134
|
+
const e = this.effects.find(x => x?.id === effectId);
|
|
1135
|
+
const r = this.running.get(effectId);
|
|
1136
|
+
if (!e)
|
|
1137
|
+
return false;
|
|
1138
|
+
if (!r)
|
|
1139
|
+
return true;
|
|
1140
|
+
const def = getOperation(r.op);
|
|
1141
|
+
if (!def)
|
|
1142
|
+
return true;
|
|
1143
|
+
const [follows, inStep] = this.visOf(effectId);
|
|
1144
|
+
const params = { ...objectEffectParams(def, e, follows, inStep), ...cur };
|
|
1145
|
+
const paramsKey = JSON.stringify(params);
|
|
1146
|
+
if (paramsKey === r.paramsKey)
|
|
1147
|
+
return true;
|
|
1148
|
+
r.params = params;
|
|
1149
|
+
r.paramsKey = paramsKey;
|
|
1150
|
+
if (r.started && def.live)
|
|
1151
|
+
for (const t of r.targets)
|
|
1152
|
+
def.live(t, { ...params, __backward: !!r.cycle?.back });
|
|
1153
|
+
return true;
|
|
1154
|
+
}
|
|
1107
1155
|
stop(effectId) {
|
|
1108
1156
|
const r = this.running.get(effectId);
|
|
1109
1157
|
const def = r && getOperation(r.op);
|
|
@@ -93,9 +93,15 @@ export declare const isWarmable: (def: OperationDefinition | undefined) => def i
|
|
|
93
93
|
/**
|
|
94
94
|
* Warm an operation on these targets: build and compile everything its first real play
|
|
95
95
|
* needs — shaders (in the background), and the CPU work it caches (surface samples,
|
|
96
|
-
* geometry) — showing nothing, then take it off again. Queued, one at a time; each
|
|
97
|
-
* (operation,
|
|
98
|
-
*
|
|
96
|
+
* geometry) — showing nothing, then take it off again. Queued, one job at a time; each
|
|
97
|
+
* (operation, its shaders, parameters) once. Targets with no meshes yet (a model still
|
|
98
|
+
* loading) are skipped and warmed when it has landed.
|
|
99
|
+
*
|
|
100
|
+
* A group's members are warmed one per programKey: members that would build the same
|
|
101
|
+
* shaders share one warm. The others do their own CPU prep (surface samples) at their first
|
|
102
|
+
* play — a few ms each for a primitive — instead of all of it under the loading cover.
|
|
103
|
+
* Within a job the chosen roots are applied together and taken off together (one wait,
|
|
104
|
+
* not one per root): it is the same operation on different objects.
|
|
99
105
|
*/
|
|
100
106
|
export declare function warmEffectOn(def: OperationDefinition, targets: Object3D[], params: OperationParams, self?: Object3D | null): Promise<void>;
|
|
101
107
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/operations/runtime.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/operations/runtime.ts"],"names":[],"mappings":"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"}
|