@3driseai/3drise-core 1.0.27 → 1.0.29
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/autoAnimate/describeScene.js +1 -1
- package/dist/catalog/catalogInfo.d.ts.map +1 -1
- package/dist/catalog/catalogInfo.js +38 -19
- package/dist/catalog/objectCatalog.d.ts.map +1 -1
- package/dist/catalog/objectCatalog.js +6 -2
- package/dist/data/effectsDefaults.d.ts.map +1 -1
- package/dist/data/effectsDefaults.js +9 -1
- package/dist/data/galleryDefaults.d.ts +14 -0
- package/dist/data/galleryDefaults.d.ts.map +1 -0
- package/dist/data/galleryDefaults.js +500 -0
- package/dist/data/imageDefaults.d.ts +10 -0
- package/dist/data/imageDefaults.d.ts.map +1 -0
- package/dist/data/imageDefaults.js +212 -0
- package/dist/data/index.d.ts +2 -0
- package/dist/data/index.d.ts.map +1 -1
- package/dist/data/index.js +2 -0
- package/dist/properties/registry.d.ts +6 -2
- package/dist/properties/registry.d.ts.map +1 -1
- package/dist/properties/registry.js +24 -5
- package/dist/properties/tables/effectsProperties.d.ts.map +1 -1
- package/dist/properties/tables/effectsProperties.js +17 -0
- package/dist/properties/tables/galleryProperties.d.ts +5 -0
- package/dist/properties/tables/galleryProperties.d.ts.map +1 -0
- package/dist/properties/tables/galleryProperties.js +659 -0
- package/dist/properties/tables/imageProperties.d.ts +4 -0
- package/dist/properties/tables/imageProperties.d.ts.map +1 -0
- package/dist/properties/tables/imageProperties.js +231 -0
- package/dist/properties/tables/index.d.ts +2 -0
- package/dist/properties/tables/index.d.ts.map +1 -1
- package/dist/properties/tables/index.js +2 -0
- package/dist/properties/tables/optionalProperties.d.ts +3 -1
- package/dist/properties/tables/optionalProperties.d.ts.map +1 -1
- package/dist/properties/tables/optionalProperties.js +1 -1
- package/dist/properties/types.d.ts +3 -2
- package/dist/properties/types.d.ts.map +1 -1
- package/dist/shaders/GravWaveGridMaterial.d.ts.map +1 -1
- package/dist/shaders/GravWaveGridMaterial.js +15 -7
- package/dist/types/commands.d.ts +10 -1
- package/dist/types/commands.d.ts.map +1 -1
- package/dist/types/galleryObjects.d.ts +1317 -0
- package/dist/types/galleryObjects.d.ts.map +1 -0
- package/dist/types/galleryObjects.js +15 -0
- package/dist/types/generativeEffects.d.ts +30 -0
- package/dist/types/generativeEffects.d.ts.map +1 -1
- package/dist/types/imageObjects.d.ts +361 -0
- package/dist/types/imageObjects.d.ts.map +1 -0
- package/dist/types/imageObjects.js +17 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/objectSettings.d.ts +17 -1
- package/dist/types/objectSettings.d.ts.map +1 -1
- package/dist/types/scene3d.d.ts +1 -1
- package/dist/types/scene3d.d.ts.map +1 -1
- package/dist/utils/galleryMigration.d.ts +3 -0
- package/dist/utils/galleryMigration.d.ts.map +1 -0
- package/dist/utils/galleryMigration.js +17 -0
- package/dist/utils/generativeAnimatable.d.ts +1 -1
- package/dist/utils/generativeAnimatable.d.ts.map +1 -1
- package/dist/utils/generativeAnimatable.js +6 -0
- package/dist/utils/getAnimatableProperties.d.ts +1 -1
- package/dist/utils/getAnimatableProperties.d.ts.map +1 -1
- package/dist/utils/getAnimatableProperties.js +1 -1
- package/dist/utils/imageMigration.d.ts +3 -0
- package/dist/utils/imageMigration.d.ts.map +1 -0
- package/dist/utils/imageMigration.js +18 -0
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +2 -0
- package/dist/utils/objectMigration.d.ts.map +1 -1
- package/dist/utils/objectMigration.js +3 -1
- package/package.json +1 -1
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
// =============================================================================
|
|
2
|
+
// IMAGE OBJECTS — defaults, labels, animatable knobs
|
|
3
|
+
// =============================================================================
|
|
4
|
+
//
|
|
5
|
+
// The animatable list of each variant is what its push point applies per frame
|
|
6
|
+
// (applyConfig): numbers and colours of the motion and the look. Structural knobs
|
|
7
|
+
// (imageUrls, tilings, seeds), switches, selects and the timings (duration, interval)
|
|
8
|
+
// are never listed.
|
|
9
|
+
//
|
|
10
|
+
export const DEFAULT_IMAGE_OBJECTS = {
|
|
11
|
+
shards: { type: 'shards', enabled: true, imageUrls: [], interval: 5, intensity: 1, opacity: 1, pointerMode: 'tilt', pointerStrength: 1, pointerRadius: 0.6, pointerColor: '#9ad7ff', cols: 40, rows: 25, tiling: 0.35, aspect: 0, seed: 7, duration: 1.6, spread: 0.5, order: 'sweep', sweepAngle: 0, delayJitter: 0.15, lift: 0.35, drift: 0.08, spin: 0.6, breathe: 0.5, kenBurns: 0.5, seams: 0.12, rim: 0.8, edgeColor: '#0b0d12', rimColor: '#ffd9a6', backColor: '#101218' },
|
|
12
|
+
projector: { type: 'projector', enabled: true, imageUrls: [], interval: 5, duration: 1.8, aspect: 0, breathe: 0.5, intensity: 1, opacity: 1, pointerStrength: 1, pointerRadius: 0.5, pointerColor: '#ffd9a6', pointerMode: 'stir', dustCount: 500, throw: 2.4, lensHeight: 1.3, haze: 0.6, dust: 0.5, dustDrift: 0.5, defocus: 0.8, hunt: 0.5, vignette: 0.35, flicker: 0.15, lampColor: '#fff3e2', screenGain: 1 },
|
|
13
|
+
relief: { type: 'relief', enabled: true, imageUrls: [], interval: 5, duration: 1.8, aspect: 0, breathe: 0.5, intensity: 1, opacity: 1, pointerStrength: 1, pointerRadius: 0.6, pointerColor: '#ffffff', pointerMode: 'press', detail: 256, depth: 1, crest: 0.7, spread: 0.45, sweepAngle: 0, roughness: 0.62, paperColor: '#e9e4da', selfLight: 0.12 },
|
|
14
|
+
pinscreen: { type: 'pinscreen', enabled: true, imageUrls: [], interval: 5, duration: 2.2, aspect: 0, breathe: 0.5, intensity: 1, opacity: 1, pointerStrength: 1, pointerRadius: 0.6, pointerColor: '#ffffff', pointerMode: 'press', cols: 110, depth: 1, dip: 0.85, spread: 0.55, sweepAngle: 0, pinSize: 0.86, metal: 0.6, roughness: 0.32, selfLight: 0.15, pinColor: '#9aa0a8', plateColor: '#0c0d10' },
|
|
15
|
+
prism: { type: 'prism', enabled: true, imageUrls: [], interval: 5, duration: 2, aspect: 0, breathe: 0.5, intensity: 1, opacity: 1, pointerStrength: 1, pointerRadius: 0.6, pointerColor: '#ffffff', pointerMode: 'tilt', count: 56, vertical: true, spread: 0.6, sweepAngle: 0, settle: 0.5, gap: 0.03, roughness: 0.45, slatColor: '#15171c', selfLight: 0.1 },
|
|
16
|
+
lenticular: { type: 'lenticular', enabled: true, imageUrls: [], interval: 5, duration: 1.6, aspect: 0, breathe: 0.5, intensity: 1, opacity: 1, pointerStrength: 1, pointerRadius: 0.6, pointerColor: '#ffffff', pointerMode: 'peek', lenses: 110, thickness: 1.1, sharpness: 0.55, ghost: 0.35, ridge: 0.5, spread: 0.5, sweepAngle: 0, roughness: 0.55, gloss: 0.12, selfLight: 0.1 },
|
|
17
|
+
frost: { type: 'frost', enabled: true, imageUrls: [], interval: 5, duration: 2.6, aspect: 0, breathe: 0.5, intensity: 1, opacity: 1, pointerStrength: 1, pointerRadius: 0.22, pointerColor: '#ffffff', pointerMode: 'fog', gap: 0.06, frost: 0.75, whiteness: 0.25, feather: 0.6, rim: 0.25, refrost: 3, frostColor: '#eef3f8', selfLight: 0.12 },
|
|
18
|
+
roll: { type: 'roll', enabled: true, imageUrls: [], interval: 5, duration: 2.2, aspect: 0, breathe: 0.5, intensity: 1, opacity: 1, pointerStrength: 1, pointerRadius: 0.6, pointerColor: '#ffffff', pointerMode: 'lift', detail: 220, rollSize: 0.7, sweepAngle: 0, skew: 0.12, roughness: 0.7, paperColor: '#efebe3', selfLight: 0.1 },
|
|
19
|
+
contour: { type: 'contour', enabled: true, imageUrls: [], interval: 5, duration: 2.8, aspect: 0, breathe: 0.5, intensity: 1, opacity: 1, pointerStrength: 1, pointerRadius: 0.6, pointerColor: '#9ad7ff', pointerMode: 'open', levels: 26, lineWidth: 0.9, depth: 1, open: 0.95, smoothing: 3.2, idleLines: 0.04, tint: 0.35, spread: 1, sweepAngle: 0, lineColor: '#cfe6ff' },
|
|
20
|
+
engraving: { type: 'engraving', enabled: true, imageUrls: [], interval: 5, duration: 2.4, aspect: 0, breathe: 0.5, intensity: 1, opacity: 1, pointerStrength: 1, pointerRadius: 0.6, pointerColor: '#ffffff', pointerMode: 'comb', cols: 160, length: 2.3, weight: 0.85, relief: 1, hatch: 35, lift: 1, flow: 3.2, fill: 0.12, tint: 0.6, spread: 0.6, sweepAngle: 0, plateColor: '#ece6d9', inkColor: '#1a1c22' },
|
|
21
|
+
};
|
|
22
|
+
export const IMAGE_OBJECT_LABELS = {
|
|
23
|
+
shards: 'Shards',
|
|
24
|
+
projector: 'Projector',
|
|
25
|
+
relief: 'Relief',
|
|
26
|
+
pinscreen: 'Pinscreen',
|
|
27
|
+
prism: 'Prism',
|
|
28
|
+
lenticular: 'Lenticular',
|
|
29
|
+
frost: 'Frost',
|
|
30
|
+
roll: 'Roll',
|
|
31
|
+
contour: 'Contour',
|
|
32
|
+
engraving: 'Engraving',
|
|
33
|
+
};
|
|
34
|
+
export const IMAGE_OBJECTS_ANIMATABLE = {
|
|
35
|
+
shards: [
|
|
36
|
+
{ value: 'spread', label: 'Spread' },
|
|
37
|
+
{ value: 'delayJitter', label: 'Delay jitter' },
|
|
38
|
+
{ value: 'lift', label: 'Lift' },
|
|
39
|
+
{ value: 'drift', label: 'Drift' },
|
|
40
|
+
{ value: 'spin', label: 'Spin' },
|
|
41
|
+
{ value: 'breathe', label: 'Breathe' },
|
|
42
|
+
{ value: 'seams', label: 'Seams' },
|
|
43
|
+
{ value: 'rim', label: 'Rim light' },
|
|
44
|
+
{ value: 'intensity', label: 'Intensity' },
|
|
45
|
+
{ value: 'opacity', label: 'Opacity' },
|
|
46
|
+
{ value: 'sweepAngle', label: 'Sweep angle' },
|
|
47
|
+
{ value: 'edgeColor', label: 'Seam colour' },
|
|
48
|
+
{ value: 'rimColor', label: 'Rim colour' },
|
|
49
|
+
{ value: 'backColor', label: 'Backing colour' },
|
|
50
|
+
{ value: 'pointerColor', label: 'Pointer colour' },
|
|
51
|
+
{ value: 'pointerStrength', label: 'Pointer strength' },
|
|
52
|
+
{ value: 'pointerRadius', label: 'Pointer radius' },
|
|
53
|
+
],
|
|
54
|
+
projector: [
|
|
55
|
+
{ value: 'throw', label: 'Throw' },
|
|
56
|
+
{ value: 'lensHeight', label: 'Lens height' },
|
|
57
|
+
{ value: 'haze', label: 'Haze' },
|
|
58
|
+
{ value: 'dust', label: 'Dust' },
|
|
59
|
+
{ value: 'dustDrift', label: 'Dust drift' },
|
|
60
|
+
{ value: 'defocus', label: 'Defocus' },
|
|
61
|
+
{ value: 'hunt', label: 'Hunt' },
|
|
62
|
+
{ value: 'vignette', label: 'Vignette' },
|
|
63
|
+
{ value: 'flicker', label: 'Flicker' },
|
|
64
|
+
{ value: 'screenGain', label: 'Screen gain' },
|
|
65
|
+
{ value: 'breathe', label: 'Breathe' },
|
|
66
|
+
{ value: 'intensity', label: 'Intensity' },
|
|
67
|
+
{ value: 'opacity', label: 'Opacity' },
|
|
68
|
+
{ value: 'pointerStrength', label: 'Pointer strength' },
|
|
69
|
+
{ value: 'pointerRadius', label: 'Pointer radius' },
|
|
70
|
+
{ value: 'lampColor', label: 'Lamp colour' },
|
|
71
|
+
{ value: 'pointerColor', label: 'Pointer colour' },
|
|
72
|
+
],
|
|
73
|
+
relief: [
|
|
74
|
+
{ value: 'depth', label: 'Depth' },
|
|
75
|
+
{ value: 'crest', label: 'Crest' },
|
|
76
|
+
{ value: 'spread', label: 'Spread' },
|
|
77
|
+
{ value: 'sweepAngle', label: 'Sweep angle' },
|
|
78
|
+
{ value: 'roughness', label: 'Roughness' },
|
|
79
|
+
{ value: 'selfLight', label: 'Self light' },
|
|
80
|
+
{ value: 'breathe', label: 'Breathe' },
|
|
81
|
+
{ value: 'intensity', label: 'Intensity' },
|
|
82
|
+
{ value: 'opacity', label: 'Opacity' },
|
|
83
|
+
{ value: 'pointerStrength', label: 'Pointer strength' },
|
|
84
|
+
{ value: 'pointerRadius', label: 'Pointer radius' },
|
|
85
|
+
{ value: 'paperColor', label: 'Paper colour' },
|
|
86
|
+
{ value: 'pointerColor', label: 'Pointer colour' },
|
|
87
|
+
],
|
|
88
|
+
pinscreen: [
|
|
89
|
+
{ value: 'depth', label: 'Depth' },
|
|
90
|
+
{ value: 'dip', label: 'Dip' },
|
|
91
|
+
{ value: 'spread', label: 'Spread' },
|
|
92
|
+
{ value: 'sweepAngle', label: 'Sweep angle' },
|
|
93
|
+
{ value: 'pinSize', label: 'Head size' },
|
|
94
|
+
{ value: 'metal', label: 'Metal' },
|
|
95
|
+
{ value: 'roughness', label: 'Roughness' },
|
|
96
|
+
{ value: 'selfLight', label: 'Self light' },
|
|
97
|
+
{ value: 'breathe', label: 'Breathe' },
|
|
98
|
+
{ value: 'intensity', label: 'Intensity' },
|
|
99
|
+
{ value: 'opacity', label: 'Opacity' },
|
|
100
|
+
{ value: 'pointerStrength', label: 'Pointer strength' },
|
|
101
|
+
{ value: 'pointerRadius', label: 'Pointer radius' },
|
|
102
|
+
{ value: 'pinColor', label: 'Pin colour' },
|
|
103
|
+
{ value: 'plateColor', label: 'Plate colour' },
|
|
104
|
+
{ value: 'pointerColor', label: 'Pointer colour' },
|
|
105
|
+
],
|
|
106
|
+
prism: [
|
|
107
|
+
{ value: 'spread', label: 'Spread' },
|
|
108
|
+
{ value: 'sweepAngle', label: 'Sweep angle' },
|
|
109
|
+
{ value: 'settle', label: 'Settle' },
|
|
110
|
+
{ value: 'gap', label: 'Gap' },
|
|
111
|
+
{ value: 'roughness', label: 'Roughness' },
|
|
112
|
+
{ value: 'selfLight', label: 'Self light' },
|
|
113
|
+
{ value: 'breathe', label: 'Breathe' },
|
|
114
|
+
{ value: 'intensity', label: 'Intensity' },
|
|
115
|
+
{ value: 'opacity', label: 'Opacity' },
|
|
116
|
+
{ value: 'pointerStrength', label: 'Pointer strength' },
|
|
117
|
+
{ value: 'pointerRadius', label: 'Pointer radius' },
|
|
118
|
+
{ value: 'slatColor', label: 'Slat colour' },
|
|
119
|
+
{ value: 'pointerColor', label: 'Pointer colour' },
|
|
120
|
+
],
|
|
121
|
+
lenticular: [
|
|
122
|
+
{ value: 'lenses', label: 'Lenses' },
|
|
123
|
+
{ value: 'thickness', label: 'Thickness' },
|
|
124
|
+
{ value: 'sharpness', label: 'Sharpness' },
|
|
125
|
+
{ value: 'ghost', label: 'Ghost' },
|
|
126
|
+
{ value: 'ridge', label: 'Ridge' },
|
|
127
|
+
{ value: 'spread', label: 'Spread' },
|
|
128
|
+
{ value: 'sweepAngle', label: 'Sweep angle' },
|
|
129
|
+
{ value: 'roughness', label: 'Roughness' },
|
|
130
|
+
{ value: 'gloss', label: 'Gloss' },
|
|
131
|
+
{ value: 'selfLight', label: 'Self light' },
|
|
132
|
+
{ value: 'breathe', label: 'Breathe' },
|
|
133
|
+
{ value: 'intensity', label: 'Intensity' },
|
|
134
|
+
{ value: 'opacity', label: 'Opacity' },
|
|
135
|
+
{ value: 'pointerStrength', label: 'Pointer strength' },
|
|
136
|
+
{ value: 'pointerRadius', label: 'Pointer radius' },
|
|
137
|
+
{ value: 'pointerColor', label: 'Pointer colour' },
|
|
138
|
+
],
|
|
139
|
+
frost: [
|
|
140
|
+
{ value: 'gap', label: 'Gap' },
|
|
141
|
+
{ value: 'frost', label: 'Frost' },
|
|
142
|
+
{ value: 'whiteness', label: 'Whiteness' },
|
|
143
|
+
{ value: 'feather', label: 'Feather' },
|
|
144
|
+
{ value: 'rim', label: 'Rim' },
|
|
145
|
+
{ value: 'refrost', label: 'Refrost' },
|
|
146
|
+
{ value: 'selfLight', label: 'Self light' },
|
|
147
|
+
{ value: 'breathe', label: 'Breathe' },
|
|
148
|
+
{ value: 'intensity', label: 'Intensity' },
|
|
149
|
+
{ value: 'opacity', label: 'Opacity' },
|
|
150
|
+
{ value: 'pointerStrength', label: 'Pointer strength' },
|
|
151
|
+
{ value: 'pointerRadius', label: 'Pointer radius' },
|
|
152
|
+
{ value: 'frostColor', label: 'Frost colour' },
|
|
153
|
+
{ value: 'pointerColor', label: 'Pointer colour' },
|
|
154
|
+
],
|
|
155
|
+
roll: [
|
|
156
|
+
{ value: 'rollSize', label: 'Roll size' },
|
|
157
|
+
{ value: 'sweepAngle', label: 'Sweep angle' },
|
|
158
|
+
{ value: 'skew', label: 'Skew' },
|
|
159
|
+
{ value: 'roughness', label: 'Roughness' },
|
|
160
|
+
{ value: 'selfLight', label: 'Self light' },
|
|
161
|
+
{ value: 'breathe', label: 'Breathe' },
|
|
162
|
+
{ value: 'intensity', label: 'Intensity' },
|
|
163
|
+
{ value: 'opacity', label: 'Opacity' },
|
|
164
|
+
{ value: 'pointerStrength', label: 'Pointer strength' },
|
|
165
|
+
{ value: 'pointerRadius', label: 'Pointer radius' },
|
|
166
|
+
{ value: 'paperColor', label: 'Paper colour' },
|
|
167
|
+
{ value: 'pointerColor', label: 'Pointer colour' },
|
|
168
|
+
],
|
|
169
|
+
contour: [
|
|
170
|
+
{ value: 'levels', label: 'Levels' },
|
|
171
|
+
{ value: 'lineWidth', label: 'Line width' },
|
|
172
|
+
{ value: 'depth', label: 'Depth' },
|
|
173
|
+
{ value: 'open', label: 'Open' },
|
|
174
|
+
{ value: 'smoothing', label: 'Smoothing' },
|
|
175
|
+
{ value: 'idleLines', label: 'Idle lines' },
|
|
176
|
+
{ value: 'tint', label: 'Tint' },
|
|
177
|
+
{ value: 'spread', label: 'Spread' },
|
|
178
|
+
{ value: 'sweepAngle', label: 'Sweep angle' },
|
|
179
|
+
{ value: 'breathe', label: 'Breathe' },
|
|
180
|
+
{ value: 'intensity', label: 'Intensity' },
|
|
181
|
+
{ value: 'opacity', label: 'Opacity' },
|
|
182
|
+
{ value: 'pointerStrength', label: 'Pointer strength' },
|
|
183
|
+
{ value: 'pointerRadius', label: 'Pointer radius' },
|
|
184
|
+
{ value: 'lineColor', label: 'Line colour' },
|
|
185
|
+
{ value: 'pointerColor', label: 'Pointer colour' },
|
|
186
|
+
],
|
|
187
|
+
engraving: [
|
|
188
|
+
{ value: 'length', label: 'Length' },
|
|
189
|
+
{ value: 'weight', label: 'Weight' },
|
|
190
|
+
{ value: 'relief', label: 'Relief' },
|
|
191
|
+
{ value: 'hatch', label: 'Hatch' },
|
|
192
|
+
{ value: 'lift', label: 'Lift' },
|
|
193
|
+
{ value: 'flow', label: 'Flow' },
|
|
194
|
+
{ value: 'fill', label: 'Fill' },
|
|
195
|
+
{ value: 'tint', label: 'Tint' },
|
|
196
|
+
{ value: 'spread', label: 'Spread' },
|
|
197
|
+
{ value: 'sweepAngle', label: 'Sweep angle' },
|
|
198
|
+
{ value: 'breathe', label: 'Breathe' },
|
|
199
|
+
{ value: 'intensity', label: 'Intensity' },
|
|
200
|
+
{ value: 'opacity', label: 'Opacity' },
|
|
201
|
+
{ value: 'pointerStrength', label: 'Pointer strength' },
|
|
202
|
+
{ value: 'pointerRadius', label: 'Pointer radius' },
|
|
203
|
+
{ value: 'plateColor', label: 'Plate colour' },
|
|
204
|
+
{ value: 'inkColor', label: 'Ink colour' },
|
|
205
|
+
{ value: 'pointerColor', label: 'Pointer colour' },
|
|
206
|
+
],
|
|
207
|
+
};
|
|
208
|
+
/** True when the config is one of the image variants (type 'image', config.type set). */
|
|
209
|
+
export function isImageObjectConfig(config) {
|
|
210
|
+
const t = config?.type;
|
|
211
|
+
return typeof t === 'string' && Object.prototype.hasOwnProperty.call(DEFAULT_IMAGE_OBJECTS, t);
|
|
212
|
+
}
|
package/dist/data/index.d.ts
CHANGED
|
@@ -11,6 +11,8 @@ export * from './environmentDefaults';
|
|
|
11
11
|
export * from './spaceDefaults';
|
|
12
12
|
export * from './landDefaults';
|
|
13
13
|
export * from './textDefaults';
|
|
14
|
+
export * from './imageDefaults';
|
|
15
|
+
export * from './galleryDefaults';
|
|
14
16
|
export * from './shadowDefaults';
|
|
15
17
|
export * from './lightShadowDefaults';
|
|
16
18
|
export * from './defaults';
|
package/dist/data/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/data/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC7D,cAAc,qBAAqB,CAAC;AACpC,cAAc,SAAS,CAAC;AACxB,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/data/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC7D,cAAc,qBAAqB,CAAC;AACpC,cAAc,SAAS,CAAC;AACxB,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC"}
|
package/dist/data/index.js
CHANGED
|
@@ -11,6 +11,8 @@ export * from './environmentDefaults.js';
|
|
|
11
11
|
export * from './spaceDefaults.js';
|
|
12
12
|
export * from './landDefaults.js';
|
|
13
13
|
export * from './textDefaults.js';
|
|
14
|
+
export * from './imageDefaults.js';
|
|
15
|
+
export * from './galleryDefaults.js';
|
|
14
16
|
export * from './shadowDefaults.js';
|
|
15
17
|
export * from './lightShadowDefaults.js';
|
|
16
18
|
export * from './defaults.js';
|
|
@@ -7,7 +7,11 @@ export declare const RAIN_ANIMATABLE_KEYS: readonly ["color", "size", "opacity",
|
|
|
7
7
|
* renderer, so they have no material properties. They animate through config.
|
|
8
8
|
*/
|
|
9
9
|
export declare const SELF_MANAGED_MATERIAL_TYPES: Set<string>;
|
|
10
|
-
/**
|
|
10
|
+
/**
|
|
11
|
+
* True when the object draws with its own shaders (the object types above), or a gallery variant that does: the
|
|
12
|
+
* layout gallery's frames take a material, so gallery is decided per object (config.type, galleryTakesMaterial).
|
|
13
|
+
* Such an object gets no material specs.
|
|
14
|
+
*/
|
|
11
15
|
export declare const selfManagesMaterial: (obj: {
|
|
12
16
|
type?: string;
|
|
13
17
|
config?: unknown;
|
|
@@ -34,7 +38,7 @@ export declare function isPropertyLive(element: PropertyElement, spec: PropertyS
|
|
|
34
38
|
export declare function getAnimatableSpecs(element: PropertyElement, settings: any): PropertySpec[];
|
|
35
39
|
/**
|
|
36
40
|
* Object config families the animation timeline keys. The V2 applier drives
|
|
37
|
-
* `config.*` through the object's live config handle, which these
|
|
41
|
+
* `config.*` through the object's live config handle, which these nine register;
|
|
38
42
|
* rain and the legacy cloud object have per-frame knobs for the keyframe /
|
|
39
43
|
* mouse-move systems only.
|
|
40
44
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/properties/registry.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/properties/registry.ts"],"names":[],"mappings":"AA4DA,OAAO,EACH,KAAK,gBAAgB,EAMxB,MAAM,6BAA6B,CAAC;AAarC,OAAO,KAAK,EACR,iBAAiB,EAAE,cAAc,EAAE,eAAe,EAAE,YAAY,EAAkB,YAAY,EACjG,MAAM,SAAS,CAAC;AAMjB,0CAA0C;AAC1C,eAAO,MAAM,oBAAoB,+FAAgG,CAAC;AAWlI;;;GAGG;AACH,eAAO,MAAM,2BAA2B,aAAqG,CAAC;AAE9I;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAAI,KAAK;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,GAAG,SAAS,KAAG,OACsE,CAAC;AAmBzK,4DAA4D;AAC5D,eAAO,MAAM,aAAa,GAAI,KAAK,MAAM,KAAG,MACiC,CAAC;AAE9E,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAOpE;AAID,kGAAkG;AAClG,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,GAAG,YAAY,GAAG,IAAI,CAcxE;AAkCD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,gBAAgB,EAAE,EAAE,MAAM,SAAK,EAAE,MAAM,GAAE,cAAyB,GAAG,YAAY,EAAE,CAExH;AA2OD,+EAA+E;AAC/E,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,GAAG,GAAG,YAAY,EAAE,CAIxF;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,GAAG,OAAO,CAUnG;AAED,yEAAyE;AACzE,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,GAAG,GAAG,YAAY,EAAE,CAE1F;AAED;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,EAAE,WAAW,CAAC,cAAc,CAAiI,CAAC;AAE/L,wFAAwF;AACxF,wBAAgB,aAAa,CAAC,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,GAAG,GAAG,YAAY,EAAE,CAIrF;AAgBD;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,GAAG,GAAG,YAAY,EAAE,CAG7F;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAE9G;AAED,+CAA+C;AAC/C,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,GAAG,GAAG,iBAAiB,EAAE,CAE/F;AAED,wHAAwH;AACxH,eAAO,MAAM,cAAc,GAAI,OAAO,MAAM,KAAG,eAC+E,CAAC"}
|
|
@@ -7,6 +7,8 @@ import { ENVIRONMENT_OBJECTS_ANIMATABLE } from '../data/environmentDefaults.js';
|
|
|
7
7
|
import { LAND_OBJECTS_ANIMATABLE } from '../data/landDefaults.js';
|
|
8
8
|
import { SPACE_OBJECTS_ANIMATABLE } from '../data/spaceDefaults.js';
|
|
9
9
|
import { TEXT_OBJECTS_ANIMATABLE } from '../data/textDefaults.js';
|
|
10
|
+
import { IMAGE_OBJECTS_ANIMATABLE } from '../data/imageDefaults.js';
|
|
11
|
+
import { GALLERY_OBJECTS_ANIMATABLE, isGalleryObjectConfig, galleryTakesMaterial } from '../data/galleryDefaults.js';
|
|
10
12
|
import { CLOUD_ANIMATABLE_PROPERTIES } from '../environment/cloudConfigs.js';
|
|
11
13
|
import { skyOptionalProperties, skyStarsOptionalProperties, cloudDeckOptionalProperties, cirrusOptionalProperties, thunderOptionalProperties, oceanSurfaceOptionalProperties, terrainOptionalProperties, rainOptionalProperties, cloudsOptionalProperties, plainOptionalProperties, pathOptionalProperties, edgesOptionalProperties, } from './tables/optionalProperties.js';
|
|
12
14
|
import { SHAPE_CONTROLS, MODE_CONTROLS } from './tables/geometryProperties.js';
|
|
@@ -18,6 +20,8 @@ import { ENVIRONMENT_PROPERTIES } from './tables/environmentProperties.js';
|
|
|
18
20
|
import { LAND_PROPERTIES } from './tables/landProperties.js';
|
|
19
21
|
import { SPACE_PROPERTIES } from './tables/spaceProperties.js';
|
|
20
22
|
import { TEXT_PROPERTIES } from './tables/textProperties.js';
|
|
23
|
+
import { IMAGE_PROPERTIES } from './tables/imageProperties.js';
|
|
24
|
+
import { GALLERY_PROPERTIES } from './tables/galleryProperties.js';
|
|
21
25
|
import { MATERIAL_PROPERTY_BOUNDS } from './tables/materialBounds.js';
|
|
22
26
|
// =============================================================================
|
|
23
27
|
// Data owned here (was inline in getAnimatableProperties / the timeline)
|
|
@@ -36,9 +40,13 @@ const MATERIAL_STRUCTURAL = new Set([
|
|
|
36
40
|
* Objects that own their shader: their materialSettings (if any) never reach the
|
|
37
41
|
* renderer, so they have no material properties. They animate through config.
|
|
38
42
|
*/
|
|
39
|
-
export const SELF_MANAGED_MATERIAL_TYPES = new Set(['effect', 'grid', 'light', 'particles', 'environment', 'space', 'land', 'text']);
|
|
40
|
-
/**
|
|
41
|
-
|
|
43
|
+
export const SELF_MANAGED_MATERIAL_TYPES = new Set(['effect', 'grid', 'light', 'particles', 'environment', 'space', 'land', 'text', 'image']);
|
|
44
|
+
/**
|
|
45
|
+
* True when the object draws with its own shaders (the object types above), or a gallery variant that does: the
|
|
46
|
+
* layout gallery's frames take a material, so gallery is decided per object (config.type, galleryTakesMaterial).
|
|
47
|
+
* Such an object gets no material specs.
|
|
48
|
+
*/
|
|
49
|
+
export const selfManagesMaterial = (obj) => !!obj && (SELF_MANAGED_MATERIAL_TYPES.has(obj.type) || (obj.type === 'gallery' && isGalleryObjectConfig(obj.config) && !galleryTakesMaterial(obj.config)));
|
|
42
50
|
const CAMERA_SPECS = [
|
|
43
51
|
{ key: 'position', name: 'position', label: 'Position', kind: 'vec3', domain: 'camera', animatable: true },
|
|
44
52
|
{ key: 'controls.target', name: 'target', label: 'Target', kind: 'vec3', domain: 'camera', animatable: true },
|
|
@@ -70,6 +78,8 @@ export function kindOfValue(key, v) {
|
|
|
70
78
|
if (Array.isArray(v)) {
|
|
71
79
|
if (v.every(n => typeof n === 'number'))
|
|
72
80
|
return v.length === 3 ? 'vec3' : v.length === 2 ? 'vec2' : null;
|
|
81
|
+
if (v.every(n => typeof n === 'string'))
|
|
82
|
+
return 'objects';
|
|
73
83
|
return null;
|
|
74
84
|
}
|
|
75
85
|
if (typeof v === 'number')
|
|
@@ -88,6 +98,8 @@ export function kindOfValue(key, v) {
|
|
|
88
98
|
const OPTIONAL_KIND = {
|
|
89
99
|
number: 'number', string: 'string', boolean: 'boolean', color: 'color',
|
|
90
100
|
vector3: 'vec3', vector2: 'vec2', select: 'select',
|
|
101
|
+
object: 'string', // a scene object id (picked in the studio, stored as a string)
|
|
102
|
+
objects: 'objects', // a list of scene object ids (structural; never a track)
|
|
91
103
|
};
|
|
92
104
|
const toOptions = (p) => p.options?.length ? p.options.map((value, i) => (p.optionLabels?.[i] ? { value, label: p.optionLabels[i] } : { value })) : undefined;
|
|
93
105
|
/** One controller row → spec. `animatable` is decided by the caller's rule. */
|
|
@@ -222,6 +234,8 @@ function familyOf(obj) {
|
|
|
222
234
|
const space = () => ({ domain: 'space', list: SPACE_PROPERTIES[t] ?? [], animatable: tableOf(SPACE_OBJECTS_ANIMATABLE[t]) });
|
|
223
235
|
const land = () => ({ domain: 'land', list: LAND_PROPERTIES[t] ?? [], animatable: tableOf(LAND_OBJECTS_ANIMATABLE[t]) });
|
|
224
236
|
const text = () => ({ domain: 'text', list: TEXT_PROPERTIES[t] ?? [], animatable: tableOf(TEXT_OBJECTS_ANIMATABLE[t]) });
|
|
237
|
+
const image = () => ({ domain: 'image', list: IMAGE_PROPERTIES[t] ?? [], animatable: tableOf(IMAGE_OBJECTS_ANIMATABLE[t]) });
|
|
238
|
+
const gallery = () => ({ domain: 'gallery', list: GALLERY_PROPERTIES[t] ?? [], animatable: tableOf(GALLERY_OBJECTS_ANIMATABLE[t]) });
|
|
225
239
|
// Environment elements seen through the object view, so the Animation and
|
|
226
240
|
// MouseMove panels (getAnimatableProperties) work on them like on any object.
|
|
227
241
|
// The sky is flat — no config block — so it is keyed before the config.type gate.
|
|
@@ -252,6 +266,11 @@ function familyOf(obj) {
|
|
|
252
266
|
// Text looks only under the text object type (plain, handwriting, …).
|
|
253
267
|
if (type === 'text' && TEXT_OBJECTS_ANIMATABLE[t])
|
|
254
268
|
return text();
|
|
269
|
+
if (type === 'image' && IMAGE_OBJECTS_ANIMATABLE[t])
|
|
270
|
+
return image();
|
|
271
|
+
// Gallery variants only under the gallery object type (layout, carousel, …).
|
|
272
|
+
if (type === 'gallery' && GALLERY_OBJECTS_ANIMATABLE[t])
|
|
273
|
+
return gallery();
|
|
255
274
|
if (t === 'rain')
|
|
256
275
|
return { domain: 'rain', list: rainOptionalProperties, animatable: new Map(RAIN_ANIMATABLE_KEYS.map(k => [k, propertyLabel(k)])) };
|
|
257
276
|
if (t === 'clouds')
|
|
@@ -390,11 +409,11 @@ export function getAnimatableSpecs(element, settings) {
|
|
|
390
409
|
}
|
|
391
410
|
/**
|
|
392
411
|
* Object config families the animation timeline keys. The V2 applier drives
|
|
393
|
-
* `config.*` through the object's live config handle, which these
|
|
412
|
+
* `config.*` through the object's live config handle, which these nine register;
|
|
394
413
|
* rain and the legacy cloud object have per-frame knobs for the keyframe /
|
|
395
414
|
* mouse-move systems only.
|
|
396
415
|
*/
|
|
397
|
-
export const TRACK_CONFIG_DOMAINS = new Set(['light', 'particles', 'effect', 'grid', 'environment', 'space', 'land', 'text']);
|
|
416
|
+
export const TRACK_CONFIG_DOMAINS = new Set(['light', 'particles', 'effect', 'grid', 'environment', 'space', 'land', 'text', 'image', 'gallery']);
|
|
398
417
|
/** What an animation clip can key on this element (timeline track picker, AI clips). */
|
|
399
418
|
export function getTrackSpecs(element, settings) {
|
|
400
419
|
const specs = getAnimatableSpecs(element, settings);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"effectsProperties.d.ts","sourceRoot":"","sources":["../../../src/properties/tables/effectsProperties.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAY1E,eAAO,MAAM,yBAAyB,EAAE,gBAAgB,EAcvD,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,gBAAgB,EAevD,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,gBAAgB,EAWlD,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,gBAAgB,EAaxD,CAAC;AAEF,eAAO,MAAM,6BAA6B,EAAE,gBAAgB,EAU3D,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,gBAAgB,EAUtD,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,gBAAgB,EAcpD,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,gBAAgB,EAUtD,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,gBAAgB,EAYjD,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,gBAAgB,EASvD,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,gBAAgB,EAQpD,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,gBAAgB,EAclD,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,gBAAgB,EAQxD,CAAC;AAEF,eAAO,MAAM,6BAA6B,EAAE,gBAAgB,EAS3D,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,gBAAgB,EAcvD,CAAC;AAEF,eAAO,MAAM,2BAA2B,EAAE,gBAAgB,EAYzD,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,gBAAgB,EAWxD,CAAC;AAEF,eAAO,MAAM,6BAA6B,EAAE,gBAAgB,EAa3D,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,gBAAgB,EAYvD,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,gBAAgB,EAaxD,CAAC;AAEF,eAAO,MAAM,gCAAgC,EAAE,gBAAgB,EAa9D,CAAC;AAEF,eAAO,MAAM,6BAA6B,EAAE,gBAAgB,
|
|
1
|
+
{"version":3,"file":"effectsProperties.d.ts","sourceRoot":"","sources":["../../../src/properties/tables/effectsProperties.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAY1E,eAAO,MAAM,yBAAyB,EAAE,gBAAgB,EAcvD,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,gBAAgB,EAevD,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,gBAAgB,EAWlD,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,gBAAgB,EAaxD,CAAC;AAEF,eAAO,MAAM,6BAA6B,EAAE,gBAAgB,EAU3D,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,gBAAgB,EAUtD,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,gBAAgB,EAcpD,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,gBAAgB,EAUtD,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,gBAAgB,EAYjD,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,gBAAgB,EASvD,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,gBAAgB,EAQpD,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,gBAAgB,EAclD,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,gBAAgB,EAQxD,CAAC;AAEF,eAAO,MAAM,6BAA6B,EAAE,gBAAgB,EAS3D,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,gBAAgB,EAcvD,CAAC;AAEF,eAAO,MAAM,2BAA2B,EAAE,gBAAgB,EAYzD,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,gBAAgB,EAWxD,CAAC;AAEF,eAAO,MAAM,6BAA6B,EAAE,gBAAgB,EAa3D,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,gBAAgB,EAYvD,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,gBAAgB,EAaxD,CAAC;AAEF,eAAO,MAAM,gCAAgC,EAAE,gBAAgB,EAa9D,CAAC;AAEF,eAAO,MAAM,6BAA6B,EAAE,gBAAgB,EA6B3D,CAAC;AAMF,eAAO,MAAM,sBAAsB,EAAE,gBAAgB,EAapD,CAAC;AAEF,eAAO,MAAM,4BAA4B,EAAE,gBAAgB,EAY1D,CAAC;AAEF,eAAO,MAAM,2BAA2B,EAAE,gBAAgB,EAWzD,CAAC;AAEF,eAAO,MAAM,8BAA8B,EAAE,gBAAgB,EAe5D,CAAC;AAEF,eAAO,MAAM,6BAA6B,EAAE,gBAAgB,EAW3D,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,gBAAgB,EAWrD,CAAC;AAEF,eAAO,MAAM,6BAA6B,EAAE,gBAAgB,EAY3D,CAAC;AAEF,eAAO,MAAM,2BAA2B,EAAE,gBAAgB,EAWzD,CAAC;AAEF,eAAO,MAAM,8BAA8B,EAAE,gBAAgB,EAY5D,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,gBAAgB,EASpD,CAAC;AAEF,eAAO,MAAM,6BAA6B,EAAE,gBAAgB,EAY3D,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,gBAAgB,EASrD,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,gBAAgB,EAapD,CAAC;AAEF,eAAO,MAAM,2BAA2B,EAAE,gBAAgB,EAmBzD,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,oBAAoB,EAAE,gBAAgB,EAAE,CAqC9E,CAAC"}
|
|
@@ -285,6 +285,23 @@ export const harmonicShellEffectProperties = [
|
|
|
285
285
|
{ name: 'color', description: 'Base tint under the iridescence', type: 'color' },
|
|
286
286
|
{ name: 'rimColor', description: 'Rim and nodal-line colour', type: 'color' },
|
|
287
287
|
{ name: 'tint', description: 'How much the soap-film bands take on the base colour', type: 'number', min: 0, max: 1, step: 0.01 },
|
|
288
|
+
// the target: what the shell becomes when `morph` runs to 1
|
|
289
|
+
{ name: 'target', description: 'What the shell becomes: nothing, a word, a shape, or another scene object', type: 'select', options: ['none', 'text', 'shape', 'object'], optionLabels: ['Sphere', 'Text', 'Shape', 'Object'], animatable: false },
|
|
290
|
+
{ name: 'text', description: 'The word the shell becomes (up to 24 characters)', type: 'string', showWhen: [{ key: 'target', is: 'text' }], animatable: false },
|
|
291
|
+
{ name: 'font', description: 'Typeface of the word', type: 'select', options: ['sans', 'display', 'serif', 'mono'], optionLabels: ['Sans', 'Display', 'Serif', 'Mono'], showWhen: [{ key: 'target', is: 'text' }], animatable: false },
|
|
292
|
+
{ name: 'shape', description: 'The shape the shell becomes', type: 'select', options: ['star', 'heart', 'ring', 'hexagon', 'triangle', 'cross', 'disc', 'square', 'diamond', 'pentagon', 'octagon', 'sparkle', 'hexstar', 'crescent', 'drop', 'bolt', 'arrow', 'cloud', 'flower', 'gear', 'shield', 'leaf', 'capsule', 'infinity', 'chevron', 'hourglass', 'clover', 'spade', 'sun', 'halfmoon'], optionLabels: ['Star', 'Heart', 'Ring', 'Hexagon', 'Triangle', 'Cross', 'Disc', 'Square', 'Diamond', 'Pentagon', 'Octagon', 'Sparkle', 'Six star', 'Crescent', 'Drop', 'Bolt', 'Arrow', 'Cloud', 'Flower', 'Gear', 'Shield', 'Leaf', 'Capsule', 'Infinity', 'Chevron', 'Hourglass', 'Clover', 'Spade', 'Sun', 'Half moon'], showWhen: [{ key: 'target', is: 'shape' }], animatable: false },
|
|
293
|
+
{ name: 'targetObject', description: 'Id of the scene object the shell wraps (target: object)', type: 'string', showWhen: [{ key: 'target', is: 'object' }], animatable: false },
|
|
294
|
+
{ name: 'morph', description: 'How far the shell has become its target; animate it for the transition', type: 'number', min: 0, max: 1, step: 0.01, showWhen: [{ key: 'target', not: 'none' }] },
|
|
295
|
+
{ name: 'depth', description: 'Depth of a word or shape, as a fraction of the bounding radius', type: 'number', min: 0.05, max: 1, step: 0.01, showWhen: [{ key: 'target', not: 'none' }] },
|
|
296
|
+
{ name: 'breath', description: 'How much the harmonics keep rippling on the target', type: 'number', min: 0, max: 0.5, step: 0.01, showWhen: [{ key: 'target', not: 'none' }] },
|
|
297
|
+
{ name: 'webCut', description: 'Distance from the target surface where stray pixels fade (hides the webbing between letters)', type: 'number', min: 0.005, max: 0.1, step: 0.005, showWhen: [{ key: 'target', not: 'none' }] },
|
|
298
|
+
// what the shell does to objects that cross it (runtime only, nothing saved on them)
|
|
299
|
+
{ name: 'insideObjects', label: 'Inside', description: 'Objects that show the shell when they cross it: the inside takes the film, the crossing glows, the inside sways with the membrane (nothing is saved on them)', type: 'objects', animatable: false },
|
|
300
|
+
{ name: 'insideLook', description: 'The inside look: the shell\'s soap film, or the object tinted with the shell colour', type: 'select', options: ['film', 'ghost'], optionLabels: ['Soap film', 'Ghost tint'], animatable: false },
|
|
301
|
+
{ name: 'insideBands', description: 'Scan bands drifting through the inside', type: 'number', min: 0, max: 1, step: 0.01 },
|
|
302
|
+
{ name: 'insideSeam', description: 'The membrane glow where an object crosses the shell', type: 'number', min: 0, max: 1, step: 0.01 },
|
|
303
|
+
{ name: 'insideWarp', description: 'How much the inside of an object follows the membrane (needs a mesh with enough vertices to bend)', type: 'number', min: 0, max: 1.5, step: 0.01 },
|
|
304
|
+
{ name: 'insideCore', description: 'How stiff an object\'s centre is under the warp', type: 'number', min: 0, max: 1, step: 0.01 },
|
|
288
305
|
];
|
|
289
306
|
// =============================================================================
|
|
290
307
|
// LOOKUP MAP — keyed by GenerativeEffectType
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { OptionalProperty } from './optionalProperties';
|
|
2
|
+
import type { GalleryObjectType } from '../../types/galleryObjects';
|
|
3
|
+
export declare const layoutGalleryProperties: OptionalProperty[];
|
|
4
|
+
export declare const GALLERY_PROPERTIES: Record<GalleryObjectType, OptionalProperty[]>;
|
|
5
|
+
//# sourceMappingURL=galleryProperties.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"galleryProperties.d.ts","sourceRoot":"","sources":["../../../src/properties/tables/galleryProperties.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAG7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAUpE,eAAO,MAAM,uBAAuB,EAAE,gBAAgB,EAMrD,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,iBAAiB,EAAE,gBAAgB,EAAE,CAmoB5E,CAAC"}
|