@3driseai/3drise-core 1.0.20 → 1.0.22
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/composer.d.ts +6 -0
- package/dist/autoAnimate/composer.d.ts.map +1 -1
- package/dist/autoAnimate/composer.js +4 -3
- package/dist/autoAnimate/describeScene.js +1 -1
- package/dist/catalog/catalogInfo.d.ts +22 -0
- package/dist/catalog/catalogInfo.d.ts.map +1 -0
- package/dist/catalog/catalogInfo.js +204 -0
- package/dist/catalog/index.d.ts +3 -0
- package/dist/catalog/index.d.ts.map +1 -0
- package/dist/catalog/index.js +2 -0
- package/dist/catalog/objectCatalog.d.ts +33 -0
- package/dist/catalog/objectCatalog.d.ts.map +1 -0
- package/dist/catalog/objectCatalog.js +99 -0
- package/dist/data/allMaterials.js +2 -2
- package/dist/data/environmentDefaults.d.ts +10 -0
- package/dist/data/environmentDefaults.d.ts.map +1 -0
- package/dist/data/environmentDefaults.js +126 -0
- package/dist/data/gridsDefaults.d.ts +2 -0
- package/dist/data/gridsDefaults.d.ts.map +1 -1
- package/dist/data/gridsDefaults.js +186 -0
- package/dist/data/index.d.ts +4 -0
- package/dist/data/index.d.ts.map +1 -1
- package/dist/data/index.js +4 -0
- package/dist/data/landDefaults.d.ts +26 -0
- package/dist/data/landDefaults.d.ts.map +1 -0
- package/dist/data/landDefaults.js +76 -0
- package/dist/data/spaceDefaults.d.ts +10 -0
- package/dist/data/spaceDefaults.d.ts.map +1 -0
- package/dist/data/spaceDefaults.js +46 -0
- package/dist/data/textDefaults.d.ts +16 -0
- package/dist/data/textDefaults.d.ts.map +1 -0
- package/dist/data/textDefaults.js +199 -0
- package/dist/environment/oceanConfigs.d.ts +5 -4
- package/dist/environment/oceanConfigs.d.ts.map +1 -1
- package/dist/environment/oceanConfigs.js +2 -2
- package/dist/environment/terrainConfigs.d.ts +78 -0
- package/dist/environment/terrainConfigs.d.ts.map +1 -1
- package/dist/environment/terrainConfigs.js +72 -2
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/properties/registry.d.ts +10 -1
- package/dist/properties/registry.d.ts.map +1 -1
- package/dist/properties/registry.js +60 -9
- package/dist/properties/tables/environmentProperties.d.ts +9 -0
- package/dist/properties/tables/environmentProperties.d.ts.map +1 -0
- package/dist/properties/tables/environmentProperties.js +127 -0
- package/dist/properties/tables/gridProperties.d.ts.map +1 -1
- package/dist/properties/tables/gridProperties.js +184 -82
- package/dist/properties/tables/index.d.ts +4 -1
- package/dist/properties/tables/index.d.ts.map +1 -1
- package/dist/properties/tables/index.js +4 -1
- package/dist/properties/tables/landProperties.d.ts +5 -0
- package/dist/properties/tables/landProperties.d.ts.map +1 -0
- package/dist/properties/tables/landProperties.js +24 -0
- package/dist/properties/tables/lightProperties.js +1 -1
- package/dist/properties/tables/materialBounds.js +1 -1
- package/dist/properties/tables/optionalProperties.d.ts +1 -2
- package/dist/properties/tables/optionalProperties.d.ts.map +1 -1
- package/dist/properties/tables/optionalProperties.js +21 -0
- package/dist/properties/tables/spaceProperties.d.ts +8 -0
- package/dist/properties/tables/spaceProperties.d.ts.map +1 -0
- package/dist/properties/tables/spaceProperties.js +42 -0
- package/dist/properties/tables/textProperties.d.ts +4 -0
- package/dist/properties/tables/textProperties.d.ts.map +1 -0
- package/dist/properties/tables/textProperties.js +361 -0
- package/dist/properties/types.d.ts +1 -1
- package/dist/properties/types.d.ts.map +1 -1
- package/dist/services/MaterialRegistry.d.ts.map +1 -1
- package/dist/services/MaterialRegistry.js +2 -0
- package/dist/services/SkySystemManager.d.ts +22 -0
- package/dist/services/SkySystemManager.d.ts.map +1 -1
- package/dist/services/SkySystemManager.js +50 -18
- package/dist/services/TextureResolver.d.ts.map +1 -1
- package/dist/services/TextureResolver.js +22 -0
- package/dist/services/index.d.ts +1 -1
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +1 -1
- package/dist/shaders/ApollonianGridMaterial.d.ts +70 -0
- package/dist/shaders/ApollonianGridMaterial.d.ts.map +1 -0
- package/dist/shaders/ApollonianGridMaterial.js +289 -0
- package/dist/shaders/ConformalGridMaterial.d.ts +91 -0
- package/dist/shaders/ConformalGridMaterial.d.ts.map +1 -0
- package/dist/shaders/ConformalGridMaterial.js +335 -0
- package/dist/shaders/HilbertGridMaterial.d.ts +79 -0
- package/dist/shaders/HilbertGridMaterial.d.ts.map +1 -0
- package/dist/shaders/HilbertGridMaterial.js +329 -0
- package/dist/shaders/LensingGridMaterial.d.ts +73 -0
- package/dist/shaders/LensingGridMaterial.d.ts.map +1 -0
- package/dist/shaders/LensingGridMaterial.js +253 -0
- package/dist/shaders/ParastichyGridMaterial.d.ts +76 -0
- package/dist/shaders/ParastichyGridMaterial.d.ts.map +1 -0
- package/dist/shaders/ParastichyGridMaterial.js +282 -0
- package/dist/shaders/PhyllotaxisGridMaterial.d.ts +85 -0
- package/dist/shaders/PhyllotaxisGridMaterial.d.ts.map +1 -0
- package/dist/shaders/PhyllotaxisGridMaterial.js +532 -0
- package/dist/shaders/SkyboxMaterial.js +3 -3
- package/dist/shaders/StarsMaterial.d.ts +5 -0
- package/dist/shaders/StarsMaterial.d.ts.map +1 -1
- package/dist/shaders/StarsMaterial.js +59 -57
- package/dist/shaders/TruchetGridMaterial.d.ts +76 -0
- package/dist/shaders/TruchetGridMaterial.d.ts.map +1 -0
- package/dist/shaders/TruchetGridMaterial.js +290 -0
- package/dist/shaders/index.d.ts +7 -0
- package/dist/shaders/index.d.ts.map +1 -1
- package/dist/shaders/index.js +7 -0
- package/dist/types/actions.d.ts +6 -5
- package/dist/types/actions.d.ts.map +1 -1
- package/dist/types/commands.d.ts +61 -0
- package/dist/types/commands.d.ts.map +1 -0
- package/dist/types/commands.js +1 -0
- package/dist/types/environment.d.ts +34 -1
- package/dist/types/environment.d.ts.map +1 -1
- package/dist/types/environment.js +15 -0
- package/dist/types/environmentObjects.d.ts +152 -0
- package/dist/types/environmentObjects.d.ts.map +1 -0
- package/dist/types/environmentObjects.js +10 -0
- package/dist/types/index.d.ts +5 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/landObjects.d.ts +15 -0
- package/dist/types/landObjects.d.ts.map +1 -0
- package/dist/types/landObjects.js +1 -0
- package/dist/types/objectSettings.d.ts +187 -16
- package/dist/types/objectSettings.d.ts.map +1 -1
- package/dist/types/objectsConfigs.d.ts +0 -3
- package/dist/types/objectsConfigs.d.ts.map +1 -1
- package/dist/types/scene3d.d.ts +8 -5
- package/dist/types/scene3d.d.ts.map +1 -1
- package/dist/types/spaceObjects.d.ts +65 -0
- package/dist/types/spaceObjects.d.ts.map +1 -0
- package/dist/types/spaceObjects.js +11 -0
- package/dist/types/textObjects.d.ts +352 -0
- package/dist/types/textObjects.d.ts.map +1 -0
- package/dist/types/textObjects.js +14 -0
- package/dist/types/types.d.ts +3 -6
- package/dist/types/types.d.ts.map +1 -1
- package/dist/types/users.d.ts +3 -1
- package/dist/types/users.d.ts.map +1 -1
- package/dist/types/users.js +2 -0
- package/dist/ui/index.d.ts +5 -0
- package/dist/ui/index.d.ts.map +1 -0
- package/dist/ui/index.js +4 -0
- package/dist/ui/uiBindings.d.ts +45 -0
- package/dist/ui/uiBindings.d.ts.map +1 -0
- package/dist/ui/uiBindings.js +172 -0
- package/dist/ui/uiKeys.d.ts +14 -0
- package/dist/ui/uiKeys.d.ts.map +1 -0
- package/dist/ui/uiKeys.js +22 -0
- package/dist/ui/uiSanitize.d.ts +18 -0
- package/dist/ui/uiSanitize.d.ts.map +1 -0
- package/dist/ui/uiSanitize.js +251 -0
- package/dist/ui/uiSpec.d.ts +116 -0
- package/dist/ui/uiSpec.d.ts.map +1 -0
- package/dist/ui/uiSpec.js +173 -0
- package/dist/utils/environmentMigration.d.ts +3 -0
- package/dist/utils/environmentMigration.d.ts.map +1 -0
- package/dist/utils/environmentMigration.js +50 -0
- package/dist/utils/generativeAnimatable.d.ts +1 -1
- package/dist/utils/generativeAnimatable.d.ts.map +1 -1
- package/dist/utils/generativeAnimatable.js +12 -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/gridMigration.d.ts +3 -0
- package/dist/utils/gridMigration.d.ts.map +1 -0
- package/dist/utils/gridMigration.js +34 -0
- package/dist/utils/index.d.ts +5 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +5 -0
- package/dist/utils/objectEffects.d.ts +24 -2
- package/dist/utils/objectEffects.d.ts.map +1 -1
- package/dist/utils/objectEffects.js +29 -2
- package/dist/utils/objectMigration.d.ts +9 -0
- package/dist/utils/objectMigration.d.ts.map +1 -0
- package/dist/utils/objectMigration.js +12 -0
- package/dist/utils/skyPhase.d.ts +61 -0
- package/dist/utils/skyPhase.d.ts.map +1 -0
- package/dist/utils/skyPhase.js +93 -0
- package/dist/utils/spaceMigration.d.ts +3 -0
- package/dist/utils/spaceMigration.d.ts.map +1 -0
- package/dist/utils/spaceMigration.js +46 -0
- package/dist/utils/sunUtils.d.ts +26 -1
- package/dist/utils/sunUtils.d.ts.map +1 -1
- package/dist/utils/sunUtils.js +37 -6
- package/package.json +1 -1
|
@@ -32,90 +32,192 @@ export const GRID_SURFACE_PROPERTIES = [
|
|
|
32
32
|
{ name: 'glowColor', description: 'Glow colour of the animated highlights', type: 'color' },
|
|
33
33
|
{ name: 'bgColor', description: 'Background colour', type: 'color' },
|
|
34
34
|
{ name: 'bgOpacity', description: 'Background opacity; 0 leaves only the lines', type: 'number', min: 0, max: 1, step: 0.01 },
|
|
35
|
-
{ name: 'flat', description: 'Lie flat (on) or stand upright (off)', type: 'boolean' },
|
|
36
|
-
{ name: 'followMouse', description: 'Ripples and focus follow the pointer', type: 'boolean' },
|
|
37
35
|
{ name: 'reveal', description: 'How much of the grid is built (0 gone, 1 complete)', type: 'number', min: 0, max: 1, step: 0.01 },
|
|
38
36
|
{ name: 'revealDuration', description: 'Seconds to build or dissolve; 0 applies instantly', type: 'number', min: 0, max: 10, step: 0.1 },
|
|
39
37
|
];
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
38
|
+
/**
|
|
39
|
+
* Every grid: its own knobs, plus an optional `section` that re-describes
|
|
40
|
+
* `sectionSize` where the grid gives it its own meaning (spiral count, bloom
|
|
41
|
+
* rings, inversion levels). Grids always lie flat (the parent object's transform
|
|
42
|
+
* orients them) and leave pointer behaviour to the Pointer tab.
|
|
43
|
+
*/
|
|
44
|
+
const surfaceFor = (section) => section ? GRID_SURFACE_PROPERTIES.map((p) => (p.name === 'sectionSize' ? { ...p, ...section } : p)) : GRID_SURFACE_PROPERTIES;
|
|
45
|
+
const GRID_OWN = {
|
|
46
|
+
advancedGrid: {
|
|
47
|
+
own: [],
|
|
48
|
+
},
|
|
49
|
+
quasiGrid: {
|
|
50
|
+
own: [
|
|
51
|
+
{ name: 'symmetry', description: 'Line families, 3..9. 5 is Penrose; 4 and 6 come out periodic', type: 'number', min: 3, max: 9, step: 1 },
|
|
52
|
+
{ name: 'phase', description: 'Slides the pattern through itself', type: 'number', min: 0, max: 1, step: 0.01 },
|
|
53
|
+
],
|
|
54
|
+
},
|
|
55
|
+
hexGrid: {
|
|
56
|
+
own: [
|
|
57
|
+
{ name: 'plateau', description: 'With displacement, each hex lifts as a flat plate', type: 'boolean' },
|
|
58
|
+
],
|
|
59
|
+
},
|
|
60
|
+
circuitGrid: {
|
|
61
|
+
own: [
|
|
62
|
+
{ name: 'powered', description: 'Fraction of tiles carrying a powered trace', type: 'number', min: 0, max: 1, step: 0.01 },
|
|
63
|
+
{ name: 'chipChance', description: 'Fraction of tiles replaced by a chip; 0 disables chips', type: 'number', min: 0, max: 1, step: 0.01 },
|
|
64
|
+
{ name: 'padSize', description: 'Solder-pad size; 0 disables pads', type: 'number', min: 0, max: 2, step: 0.01 },
|
|
65
|
+
],
|
|
66
|
+
},
|
|
67
|
+
voronoiGrid: {
|
|
68
|
+
own: [
|
|
69
|
+
{ name: 'jitter', description: '0 regular lattice, 1 fully scattered seeds', type: 'number', min: 0, max: 1, step: 0.01 },
|
|
70
|
+
{ name: 'drift', description: 'How far the seeds wander; 0 freezes the cells', type: 'number', min: 0, max: 2, step: 0.01 },
|
|
71
|
+
],
|
|
72
|
+
},
|
|
73
|
+
radarGrid: {
|
|
74
|
+
own: [
|
|
75
|
+
{ name: 'spokes', description: 'Radial spokes; 0 disables them', type: 'number', min: 0, max: 72, step: 1 },
|
|
76
|
+
{ name: 'sweepWidth', description: 'Length of the sweep trail, as a fraction of a turn', type: 'number', min: 0, max: 1, step: 0.01 },
|
|
77
|
+
{ name: 'blipDensity', description: 'Chance a sector holds a blip', type: 'number', min: 0, max: 1, step: 0.01 },
|
|
78
|
+
],
|
|
79
|
+
},
|
|
80
|
+
moireGrid: {
|
|
81
|
+
own: [
|
|
82
|
+
{ name: 'shape', description: 'Lattice shape of both layers', type: 'select', options: ['square', 'hex', 'rings'], optionLabels: ['Square', 'Hex', 'Rings'] },
|
|
83
|
+
{ name: 'layerAngle', description: 'Angle between the layers, in radians; small values beat slowly', type: 'number', min: 0, max: 0.5, step: 0.001 },
|
|
84
|
+
{ name: 'layerScale', description: 'Spacing ratio of the second layer; near 1 gives long beats', type: 'number', min: 0.8, max: 1.25, step: 0.001 },
|
|
85
|
+
{ name: 'spin', description: 'Counter-rotation speed; 0 freezes the pattern', type: 'number', min: -5, max: 5, step: 0.05 },
|
|
86
|
+
],
|
|
87
|
+
},
|
|
88
|
+
fractalGrid: {
|
|
89
|
+
own: [
|
|
90
|
+
{ name: 'depth', description: 'Maximum subdivision levels', type: 'number', min: 1, max: 6, step: 1 },
|
|
91
|
+
{ name: 'splitRadius', description: 'Radius around the focus inside which cells subdivide', type: 'number', min: 0, max: 10, step: 0.05 },
|
|
92
|
+
{ name: 'splitJitter', description: 'Wobble of the split edge', type: 'number', min: 0, max: 1, step: 0.01 },
|
|
93
|
+
],
|
|
94
|
+
},
|
|
95
|
+
contourGrid: {
|
|
96
|
+
own: [
|
|
97
|
+
{ name: 'levels', description: 'Contour steps across the height range', type: 'number', min: 2, max: 64, step: 1 },
|
|
98
|
+
{ name: 'roughness', description: 'Terrain roughness: 0.35 rolling, 0.65 craggy', type: 'number', min: 0, max: 1, step: 0.01 },
|
|
99
|
+
{ name: 'warp', description: 'Bends the contours into ridges and valleys', type: 'number', min: 0, max: 2, step: 0.01 },
|
|
100
|
+
],
|
|
101
|
+
},
|
|
102
|
+
flowNetGrid: {
|
|
103
|
+
own: [
|
|
104
|
+
{ name: 'obstacleRadius', description: 'Cylinder radius, in cells', type: 'number', min: 0, max: 10, step: 0.05 },
|
|
105
|
+
{ name: 'circulation', description: 'Circulation around the cylinder (lift)', type: 'number', min: -6, max: 6, step: 1 },
|
|
106
|
+
{ name: 'flowAngle', description: 'Free-stream direction, in radians', type: 'number', min: -3.1416, max: 3.1416, step: 0.01 },
|
|
107
|
+
],
|
|
108
|
+
},
|
|
109
|
+
chladniGrid: {
|
|
110
|
+
own: [
|
|
111
|
+
{ name: 'modeN', description: 'First mode number of the standing wave', type: 'number', min: 1, max: 12, step: 1 },
|
|
112
|
+
{ name: 'modeM', description: 'Second mode number of the standing wave', type: 'number', min: 1, max: 12, step: 1 },
|
|
113
|
+
{ name: 'morph', description: 'Drift to the neighbouring resonance; 0 holds the pattern', type: 'number', min: 0, max: 2, step: 0.01 },
|
|
114
|
+
{ name: 'grain', description: 'Amount of sand on the plate', type: 'number', min: 0, max: 1, step: 0.01 },
|
|
115
|
+
],
|
|
116
|
+
},
|
|
117
|
+
hyperbolicGrid: {
|
|
118
|
+
own: [
|
|
119
|
+
{ name: 'sides', description: 'Sides of each polygon (p)', type: 'number', min: 3, max: 12, step: 1 },
|
|
120
|
+
{ name: 'valence', description: 'Polygons around each vertex (q)', type: 'number', min: 3, max: 12, step: 1 },
|
|
121
|
+
{ name: 'drift', description: 'How far the tiling glides through itself', type: 'number', min: 0, max: 1, step: 0.01 },
|
|
122
|
+
],
|
|
123
|
+
},
|
|
124
|
+
gravWaveGrid: {
|
|
125
|
+
own: [
|
|
126
|
+
{ name: 'strain', description: 'Wave amplitude; 0 leaves only the static wells', type: 'number', min: 0, max: 3, step: 0.01 },
|
|
127
|
+
{ name: 'chirpTime', description: 'Seconds per inspiral-merger-ringdown cycle', type: 'number', min: 4, max: 60, step: 0.5 },
|
|
128
|
+
{ name: 'waveSpeed', description: 'Wave speed, in cells per second', type: 'number', min: 0.5, max: 20, step: 0.1 },
|
|
129
|
+
{ name: 'massRatio', description: 'Mass ratio m2/m1', type: 'number', min: 0.1, max: 1, step: 0.01 },
|
|
130
|
+
],
|
|
131
|
+
},
|
|
132
|
+
girihGrid: {
|
|
133
|
+
own: [
|
|
134
|
+
{ name: 'tiling', description: 'Base tiling', type: 'select', options: ['0', '1', '2'], optionLabels: ['4.8.8', 'Hexagons', '3.6.3.6'] },
|
|
135
|
+
{ name: 'contactAngle', description: 'Hankin contact angle, degrees; 67.5 is the classic 8-point star', type: 'number', min: 20, max: 85, step: 0.5 },
|
|
136
|
+
{ name: 'strapWidth', description: 'Width of the strapwork band, in cells', type: 'number', min: 0, max: 0.3, step: 0.005 },
|
|
137
|
+
{ name: 'angleDrift', description: 'Degrees the contact angle drifts, morphing the pattern', type: 'number', min: 0, max: 30, step: 0.5 },
|
|
138
|
+
],
|
|
139
|
+
},
|
|
140
|
+
wallpaperGrid: {
|
|
141
|
+
own: [
|
|
142
|
+
{ name: 'group', description: 'Wallpaper group (-1 cycles through all 17)', type: 'number', min: -1, max: 16, step: 1 },
|
|
143
|
+
{ name: 'cycleTime', description: 'Seconds per group while cycling', type: 'number', min: 1, max: 60, step: 0.5 },
|
|
144
|
+
{ name: 'motif', description: 'Motif complexity', type: 'number', min: 0, max: 1, step: 0.01 },
|
|
145
|
+
{ name: 'levels', description: 'Number of contour levels', type: 'number', min: 2, max: 32, step: 1 },
|
|
146
|
+
],
|
|
147
|
+
},
|
|
148
|
+
reactionDiffusionGrid: {
|
|
149
|
+
own: [
|
|
150
|
+
{ name: 'feed', description: 'Gray-Scott feed rate F', type: 'number', min: 0.01, max: 0.08, step: 0.0005 },
|
|
151
|
+
{ name: 'kill', description: 'Gray-Scott kill rate k', type: 'number', min: 0.04, max: 0.075, step: 0.0005 },
|
|
152
|
+
{ name: 'variation', description: 'Spread of F and k across the tile, so morphologies coexist', type: 'number', min: 0, max: 1, step: 0.01 },
|
|
153
|
+
{ name: 'tileCells', description: 'Cells covered by one simulation tile', type: 'number', min: 1, max: 20, step: 1 },
|
|
154
|
+
],
|
|
155
|
+
},
|
|
156
|
+
lensingGrid: {
|
|
157
|
+
own: [
|
|
158
|
+
{ name: 'mass', description: "Einstein radius of the lens, in cells; 0 leaves the lattice undistorted", type: 'number', min: 0, max: 12, step: 0.1 },
|
|
159
|
+
{ name: 'orbit', description: "Radius the lens circles the centre on, in cells; 0 holds it at the centre", type: 'number', min: 0, max: 15, step: 0.1 },
|
|
160
|
+
{ name: 'ringGlow', description: "Brightness of the Einstein ring and its halo", type: 'number', min: 0, max: 3, step: 0.05 },
|
|
161
|
+
],
|
|
162
|
+
},
|
|
163
|
+
conformalGrid: {
|
|
164
|
+
own: [
|
|
165
|
+
{ name: 'flowMap', description: "The flow: 0 source + sink, 1 spiral vortex, 2 spinning cylinder, 3 corner", type: 'select', options: ['0', '1', '2', '3'], optionLabels: ['Source + sink', 'Spiral vortex', 'Spinning cylinder', 'Corner'] },
|
|
166
|
+
{ name: 'poleSpread', description: "Distance from the centre to the poles, or the cylinder radius, in world units", type: 'number', min: 1, max: 25, step: 0.1 },
|
|
167
|
+
{ name: 'spokes', description: "Lattice lines per turn round a pole (whole number, so the log seam closes)", type: 'number', min: 4, max: 64, step: 1 },
|
|
168
|
+
{ name: 'arms', description: "Spiral arms of the vortex flow; 0 gives a plain polar web", type: 'number', min: -8, max: 8, step: 1 },
|
|
169
|
+
{ name: 'circulation', description: "Circulation round the cylinder (lift); at ±2 both stagnation points meet", type: 'number', min: -3, max: 3, step: 0.01 },
|
|
170
|
+
{ name: 'drift', description: "How fast the lattice streams along the flow; negative reverses it", type: 'number', min: -1, max: 1, step: 0.01 },
|
|
171
|
+
{ name: 'fill', description: "Strength of the speed-coloured stream-tube fill", type: 'number', min: 0, max: 1, step: 0.01 },
|
|
172
|
+
{ name: 'dye', description: "Brightness of the dashes carried along the streamlines", type: 'number', min: 0, max: 2, step: 0.01 },
|
|
173
|
+
],
|
|
174
|
+
section: { description: "Streamlines per accent streamline" },
|
|
175
|
+
},
|
|
176
|
+
truchetGrid: {
|
|
177
|
+
own: [
|
|
178
|
+
{ name: 'flip', description: "Chance a tile re-deals its orientation each epoch; 0 freezes the paths", type: 'number', min: 0, max: 1, step: 0.01 },
|
|
179
|
+
{ name: 'bias', description: "Balance of the two tile orientations: 0.5 is a maze, the ends are stripes", type: 'number', min: 0, max: 1, step: 0.01 },
|
|
180
|
+
{ name: 'pulse', description: "Brightness of the comets travelling the loops", type: 'number', min: 0, max: 2, step: 0.01 },
|
|
181
|
+
{ name: 'regionFill', description: "Fill of one colour of the two-colouring", type: 'number', min: 0, max: 1, step: 0.01 },
|
|
182
|
+
],
|
|
183
|
+
section: { description: "Tiles per tile of the coarser Truchet accent layer" },
|
|
184
|
+
},
|
|
185
|
+
phyllotaxisGrid: {
|
|
186
|
+
own: [
|
|
187
|
+
{ name: 'divergence', description: "Angle between successive seeds, degrees; 137.508 is the golden angle", type: 'number', min: 130, max: 145, step: 0.001 },
|
|
188
|
+
{ name: 'bloomRate', description: "Speed of the bloom rings travelling rim to centre; negative reverses them", type: 'number', min: -0.3, max: 0.3, step: 0.001 },
|
|
189
|
+
{ name: 'relief', description: "Depth of the lit dome on each floret", type: 'number', min: 0, max: 1, step: 0.01 },
|
|
190
|
+
{ name: 'shape', description: "The mark each floret carries (0 draws only the domes)", type: 'select', options: ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21'], optionLabels: ['Domes only', 'Seed', 'Ring', 'Crescent', 'Sparkle', 'Reuleaux', 'Spiral', 'Target', 'Pebble', 'Dot', 'Dots (sunflower)', 'Square', 'Star', 'Hexagon', 'Triangle', 'Cross', 'Heart', 'Chevron', 'Infinity', 'Gear', 'Atom', 'Sunburst'] },
|
|
191
|
+
{ name: 'shapeSize', description: "Size of the mark relative to its floret", type: 'number', min: 0.3, max: 1.2, step: 0.01 },
|
|
192
|
+
{ name: 'shapeGlow', description: "Brightness of the marks", type: 'number', min: 0, max: 2, step: 0.01 },
|
|
193
|
+
],
|
|
194
|
+
section: { description: "Bloom rings across the head at once", min: 1, max: 6, step: 1 },
|
|
195
|
+
},
|
|
196
|
+
parastichyGrid: {
|
|
197
|
+
own: [
|
|
198
|
+
{ name: 'divergence', description: "Angle between successive seeds, degrees; 137.508 is the golden angle", type: 'number', min: 135, max: 140, step: 0.001 },
|
|
199
|
+
{ name: 'third', description: "Weight of the third spiral family that splits cells into triangles", type: 'number', min: 0, max: 1, step: 0.01 },
|
|
200
|
+
{ name: 'sap', description: "Brightness of the light running inward along the spirals", type: 'number', min: 0, max: 2, step: 0.01 },
|
|
201
|
+
{ name: 'fill', description: "Strength of the faceted cell fill", type: 'number', min: 0, max: 1, step: 0.01 },
|
|
202
|
+
],
|
|
203
|
+
section: { description: "Spirals in the main family (a Fibonacci number: 13, 21, 34, 55)", min: 3, max: 55, step: 1 },
|
|
204
|
+
},
|
|
205
|
+
apollonianGrid: {
|
|
206
|
+
own: [
|
|
207
|
+
{ name: 'depth', description: "Inversion levels: how deep the packing nests", type: 'number', min: 1, max: 24, step: 1 },
|
|
208
|
+
{ name: 'morph', description: "Strength of the Möbius flow that re-balances the packing; 0 holds it symmetric", type: 'number', min: 0, max: 0.9, step: 0.01 },
|
|
209
|
+
],
|
|
210
|
+
section: { description: "Circles shallower than this many levels get the accent rim", min: 0, max: 12, step: 1 },
|
|
211
|
+
},
|
|
212
|
+
hilbertGrid: {
|
|
213
|
+
own: [
|
|
214
|
+
{ name: 'order', description: "Curve order: the loop covers 2^order cells per side", type: 'number', min: 2, max: 8, step: 1 },
|
|
215
|
+
{ name: 'signals', description: "Signals circulating round the loop", type: 'number', min: 1, max: 32, step: 1 },
|
|
216
|
+
{ name: 'trail', description: "Length of each signal trail, in cells", type: 'number', min: 1, max: 128, step: 0.5 },
|
|
217
|
+
{ name: 'signalSpeed', description: "Signal speed, in cells per second", type: 'number', min: 0, max: 40, step: 0.1 },
|
|
218
|
+
],
|
|
219
|
+
section: { description: "Cells per cell of the coarser accent curve (a power of two)", min: 0, max: 32, step: 1 },
|
|
220
|
+
},
|
|
119
221
|
};
|
|
120
222
|
/** Every shader-plane grid's inputs: its own knobs first, then the shared surface. */
|
|
121
|
-
export const GRID_PROPERTIES = Object.fromEntries(Object.entries(
|
|
223
|
+
export const GRID_PROPERTIES = Object.fromEntries(Object.entries(GRID_OWN).map(([type, { own, section }]) => [type, [...own, ...surfaceFor(section)]]));
|
|
@@ -3,7 +3,10 @@ export * from './lightProperties';
|
|
|
3
3
|
export * from './particlesProperties';
|
|
4
4
|
export * from './effectsProperties';
|
|
5
5
|
export * from './gridProperties';
|
|
6
|
+
export * from './environmentProperties';
|
|
7
|
+
export * from './spaceProperties';
|
|
8
|
+
export * from './landProperties';
|
|
9
|
+
export * from './textProperties';
|
|
6
10
|
export * from './materialBounds';
|
|
7
|
-
export * from './getPropertyConfig';
|
|
8
11
|
export * from './geometryProperties';
|
|
9
12
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/properties/tables/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/properties/tables/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC"}
|
|
@@ -3,6 +3,9 @@ export * from './lightProperties.js';
|
|
|
3
3
|
export * from './particlesProperties.js';
|
|
4
4
|
export * from './effectsProperties.js';
|
|
5
5
|
export * from './gridProperties.js';
|
|
6
|
+
export * from './environmentProperties.js';
|
|
7
|
+
export * from './spaceProperties.js';
|
|
8
|
+
export * from './landProperties.js';
|
|
9
|
+
export * from './textProperties.js';
|
|
6
10
|
export * from './materialBounds.js';
|
|
7
|
-
export * from './getPropertyConfig.js';
|
|
8
11
|
export * from './geometryProperties.js';
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { type OptionalProperty } from './optionalProperties';
|
|
2
|
+
import type { LandObjectType } from '../../types/landObjects';
|
|
3
|
+
export declare const landOwnProperties: OptionalProperty[];
|
|
4
|
+
export declare const LAND_PROPERTIES: Record<LandObjectType, OptionalProperty[]>;
|
|
5
|
+
//# sourceMappingURL=landProperties.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"landProperties.d.ts","sourceRoot":"","sources":["../../../src/properties/tables/landProperties.ts"],"names":[],"mappings":"AACA,OAAO,EAA6B,KAAK,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAW9D,eAAO,MAAM,iBAAiB,EAAE,gBAAgB,EAI/C,CAAC;AAOF,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,cAAc,EAAE,gBAAgB,EAAE,CAKtE,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
// Property table for the land objects (type 'land'). The registry (../registry.ts) is built on these tables.
|
|
2
|
+
import { terrainOptionalProperties } from './optionalProperties.js';
|
|
3
|
+
// =============================================================================
|
|
4
|
+
// LAND OBJECTS OPTIONAL PROPERTIES
|
|
5
|
+
// The environment terrain's rows for the landform (one schema, TERRAIN_SCHEMA),
|
|
6
|
+
// minus what a land object's transform owns or the panel row already switches
|
|
7
|
+
// (`enabled`, `seaLevel`), plus the patch's own knobs.
|
|
8
|
+
// =============================================================================
|
|
9
|
+
const TRANSFORM_OWNED = new Set(['enabled', 'seaLevel']);
|
|
10
|
+
export const landOwnProperties = [
|
|
11
|
+
{ name: 'edgeFade', label: 'Edge fade', description: 'How far in from the border the land eases down to its base, as a fraction of the shorter side. 0 ends in a cliff.', type: 'number', min: 0, max: 0.5, step: 0.01, animatable: false },
|
|
12
|
+
{ name: 'seed', label: 'Seed', description: 'Which piece of the endless land this patch shows. Same shape, different seed: different land.', type: 'number', min: 1, max: 9999, step: 1, animatable: false },
|
|
13
|
+
{ name: 'quality', label: 'Quality', description: 'Grid resolution of the patch (rebuilds): low 128, medium 256, high 384 cells a side.', type: 'select', options: ['low', 'medium', 'high'], optionLabels: ['Low', 'Medium', 'High'], animatable: false },
|
|
14
|
+
];
|
|
15
|
+
const rowsFor = (type) => [
|
|
16
|
+
...terrainOptionalProperties(type).filter((p) => !TRANSFORM_OWNED.has(p.name)),
|
|
17
|
+
...landOwnProperties,
|
|
18
|
+
];
|
|
19
|
+
export const LAND_PROPERTIES = {
|
|
20
|
+
mountains: rowsFor('mountains'),
|
|
21
|
+
hills: rowsFor('hills'),
|
|
22
|
+
dunes: rowsFor('dunes'),
|
|
23
|
+
canyon: rowsFor('canyon'),
|
|
24
|
+
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
//
|
|
1
|
+
// Property table (moved from the client). The registry (../registry.ts) is built on these tables.
|
|
2
2
|
// =============================================================================
|
|
3
3
|
// lightProperties — the knobs LightControllerUi shows, per light type
|
|
4
4
|
// =============================================================================
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
//
|
|
1
|
+
// Property table (moved from the client). The registry (../registry.ts) is built on these tables.
|
|
2
2
|
// =============================================================================
|
|
3
3
|
// MATERIAL PROPERTY BOUNDS — Min/Max/Step for Slider Controls
|
|
4
4
|
// =============================================================================
|
|
@@ -19,10 +19,9 @@ export interface OptionalProperty {
|
|
|
19
19
|
default?: unknown;
|
|
20
20
|
}
|
|
21
21
|
export declare const skyOptionalProperties: OptionalProperty[];
|
|
22
|
+
export declare const skyStarsOptionalProperties: OptionalProperty[];
|
|
22
23
|
export declare const oceanOptionalProperties: OptionalProperty[];
|
|
23
24
|
import { type TerrainType, type WaterHost, type WaterType, type LandscapeHost } from '../../environment/index';
|
|
24
|
-
/** Terrain properties for a given landform. Strata, plateau, incision and the dune
|
|
25
|
-
* terms only appear on the types whose shader branch reads them. */
|
|
26
25
|
export declare const terrainOptionalProperties: (type?: TerrainType) => OptionalProperty[];
|
|
27
26
|
/** Ocean properties for a given water type and host. */
|
|
28
27
|
export declare const oceanSurfaceOptionalProperties: (type?: WaterType, host?: WaterHost) => OptionalProperty[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"optionalProperties.d.ts","sourceRoot":"","sources":["../../../src/properties/tables/optionalProperties.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,gBAAgB;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;IACnF,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,gFAAgF;IAChF,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,uGAAuG;IACvG,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;gFAC4E;IAC5E,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,4DAA4D;IAC5D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oEAAoE;IACpE,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB;AAID,eAAO,MAAM,qBAAqB,EAAE,gBAAgB,EAOnD,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,gBAAgB,EAmCrD,CAAC;AAKF,OAAO,EAIH,KAAK,WAAW,EAIhB,KAAK,SAAS,EACd,KAAK,SAAS,EAKd,KAAK,aAAa,EACrB,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"optionalProperties.d.ts","sourceRoot":"","sources":["../../../src/properties/tables/optionalProperties.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,16 @@ export const skyOptionalProperties = [
|
|
|
8
8
|
{ name: 'elevation', label: 'Elevation', description: 'Height of the sun above the horizon (negative = below it)', type: 'number', min: -90, max: 90, step: 1, unit: '°' },
|
|
9
9
|
{ name: 'azimuth', label: 'Azimuth', description: 'Compass direction of the sun', type: 'number', min: -180, max: 180, step: 1, unit: '°' },
|
|
10
10
|
];
|
|
11
|
+
// The sky's built-in stars (SkyStars): keyed under `stars.` on SkySettings. count and
|
|
12
|
+
// milkyWay rebuild the dome, so they are structural; the rest are uniforms.
|
|
13
|
+
export const skyStarsOptionalProperties = [
|
|
14
|
+
{ name: 'brightness', label: 'Brightness', description: 'How bright the stars are once it is dark', type: 'number', min: 0, max: 4, step: 0.05, default: 1 },
|
|
15
|
+
{ name: 'count', label: 'Count', description: 'How many stars fill the sky', type: 'number', min: 500, max: 20000, step: 100, animatable: false, default: 4000 },
|
|
16
|
+
{ name: 'size', label: 'Size', description: 'Size of the star points', type: 'number', min: 0.3, max: 3, step: 0.05, default: 1 },
|
|
17
|
+
{ name: 'twinkle', label: 'Twinkle', description: 'How much the stars flicker. 0 holds them steady', type: 'number', min: 0, max: 1, step: 0.01, default: 0.5 },
|
|
18
|
+
{ name: 'milkyWay', label: 'Milky Way', description: 'Gathers part of the stars into a dense band across the sky', type: 'number', min: 0, max: 1, step: 0.01, animatable: false, default: 0 },
|
|
19
|
+
{ name: 'warmth', label: 'Colour Spread', description: 'Colour temperature spread: 0 is all white, 1 shows blue giants and orange dwarfs', type: 'number', min: 0, max: 1, step: 0.01, default: 0.5 },
|
|
20
|
+
];
|
|
11
21
|
export const oceanOptionalProperties = [
|
|
12
22
|
{
|
|
13
23
|
name: 'sunColor',
|
|
@@ -75,9 +85,20 @@ const terrainEnabled = {
|
|
|
75
85
|
};
|
|
76
86
|
/** Terrain properties for a given landform. Strata, plateau, incision and the dune
|
|
77
87
|
* terms only appear on the types whose shader branch reads them. */
|
|
88
|
+
// The four splat colours. TERRAIN_SCHEMA is numbers only, so they were missing
|
|
89
|
+
// from the registry entirely: no panel row, no timeline track, no keyframe or
|
|
90
|
+
// pointer binding (the agent facade had a hand-written env.terrain.colors()).
|
|
91
|
+
// The renderer reads them every frame (applyTerrainUniforms), so they animate.
|
|
92
|
+
const terrainColors = [
|
|
93
|
+
{ name: 'lowColor', label: 'Low colour', description: 'Ground at the bottom of the height range', type: 'color' },
|
|
94
|
+
{ name: 'midColor', label: 'Mid colour', description: 'Ground at mid height', type: 'color' },
|
|
95
|
+
{ name: 'rockColor', label: 'Rock colour', description: 'Exposed rock, placed by slope rather than height, so cliffs read as cliffs at any altitude', type: 'color' },
|
|
96
|
+
{ name: 'peakColor', label: 'Peak colour', description: 'Snow, salt or bleached stone at the top of the range', type: 'color' },
|
|
97
|
+
];
|
|
78
98
|
export const terrainOptionalProperties = (type) => [
|
|
79
99
|
terrainEnabled,
|
|
80
100
|
...toTerrainOptional(TERRAIN_SCHEMA, type),
|
|
101
|
+
...terrainColors,
|
|
81
102
|
];
|
|
82
103
|
/**
|
|
83
104
|
* Ocean rows from the renderer's schema.
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { OptionalProperty } from './optionalProperties';
|
|
2
|
+
import type { SpaceObjectType } from '../../types/spaceObjects';
|
|
3
|
+
export declare const starsSpaceProperties: OptionalProperty[];
|
|
4
|
+
export declare const earthSpaceProperties: OptionalProperty[];
|
|
5
|
+
export declare const solarSystemSpaceProperties: OptionalProperty[];
|
|
6
|
+
export declare const shootingStarsSpaceProperties: OptionalProperty[];
|
|
7
|
+
export declare const SPACE_PROPERTIES: Record<SpaceObjectType, OptionalProperty[]>;
|
|
8
|
+
//# sourceMappingURL=spaceProperties.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spaceProperties.d.ts","sourceRoot":"","sources":["../../../src/properties/tables/spaceProperties.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAOhE,eAAO,MAAM,oBAAoB,EAAE,gBAAgB,EAKlD,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,gBAAgB,EAKlD,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,gBAAgB,EAUxD,CAAC;AAEF,eAAO,MAAM,4BAA4B,EAAE,gBAAgB,EAQ1D,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,eAAe,EAAE,gBAAgB,EAAE,CAKxE,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
// =============================================================================
|
|
2
|
+
// SPACE OBJECTS OPTIONAL PROPERTIES
|
|
3
|
+
// Order: base numbers, variant numbers, switches / ranges, colours.
|
|
4
|
+
// =============================================================================
|
|
5
|
+
export const starsSpaceProperties = [
|
|
6
|
+
{ name: 'count', description: 'Number of stars (rebuilds the field)', type: 'number', min: 500, max: 20000, step: 100 },
|
|
7
|
+
{ name: 'starSize', description: 'Size of every star sprite', type: 'number', min: 0.2, max: 3, step: 0.01 },
|
|
8
|
+
{ name: 'opacity', description: 'Overall opacity of the starfield', type: 'number', min: 0, max: 1, step: 0.01 },
|
|
9
|
+
{ name: 'color', description: 'Tint over the stars’ own white, blue and yellow mix', type: 'color' },
|
|
10
|
+
];
|
|
11
|
+
export const earthSpaceProperties = [
|
|
12
|
+
{ name: 'radius', description: 'Globe radius (rebuilds; scale the object to size it instead)', type: 'number', min: 0.1, max: 10, step: 0.01 },
|
|
13
|
+
{ name: 'sunPosition', description: 'Where the sun is, relative to the globe: sets the day side and the terminator', type: 'vector3', min: -10, max: 10, step: 0.1 },
|
|
14
|
+
{ name: 'atmosphereDayColor', description: 'Colour of the atmosphere rim on the day side', type: 'color' },
|
|
15
|
+
{ name: 'atmosphereTwilightColor', description: 'Colour of the atmosphere along the terminator', type: 'color' },
|
|
16
|
+
];
|
|
17
|
+
export const solarSystemSpaceProperties = [
|
|
18
|
+
{ name: 'orbitSpeedMultiplier', description: 'Time scale of the orbits and planet spins', type: 'number', min: 0, max: 5, step: 0.01 },
|
|
19
|
+
{ name: 'sunRadius', description: 'Size of the sun (rebuilds)', type: 'number', min: 1, max: 20, step: 0.1 },
|
|
20
|
+
{ name: 'sunIntensity', description: 'Brightness of the sun and of the light it casts on the planets', type: 'number', min: 0, max: 10, step: 0.1 },
|
|
21
|
+
{ name: 'orbitRingOpacity', description: 'Opacity of the orbit rings', type: 'number', min: 0, max: 1, step: 0.01 },
|
|
22
|
+
{ name: 'enableOrbit', description: 'Planets travel along their orbits', type: 'boolean' },
|
|
23
|
+
{ name: 'enableSelfRotation', description: 'Planets turn on their own axes', type: 'boolean' },
|
|
24
|
+
{ name: 'showOrbitRings', description: 'Draw each planet’s orbit', type: 'boolean' },
|
|
25
|
+
{ name: 'sunColor', description: 'Tint of the sun’s surface, corona and light', type: 'color' },
|
|
26
|
+
{ name: 'orbitRingColor', description: 'Colour of the orbit rings', type: 'color' },
|
|
27
|
+
];
|
|
28
|
+
export const shootingStarsSpaceProperties = [
|
|
29
|
+
{ name: 'count', description: 'Meteors in flight at once (rebuilds)', type: 'number', min: 1, max: 50, step: 1 },
|
|
30
|
+
{ name: 'speedRange', description: 'Min and max speed of the meteors', type: 'vector2', min: 0, max: 1, step: 0.01 },
|
|
31
|
+
{ name: 'lengthRange', description: 'Min and max distance a meteor travels before it fades', type: 'vector2', min: 1, max: 500, step: 1 },
|
|
32
|
+
{ name: 'intervalRange', description: 'Min and max seconds before a finished meteor is relaunched', type: 'vector2', min: 0, max: 30, step: 0.1, unit: 's' },
|
|
33
|
+
{ name: 'trailLengthRange', description: 'Min and max length of the trails', type: 'vector2', min: 2, max: 300, step: 1 },
|
|
34
|
+
{ name: 'followMouse', description: 'Steer the meteors toward the cursor', type: 'boolean' },
|
|
35
|
+
{ name: 'color', description: 'Colour of the meteors and their trails', type: 'color' },
|
|
36
|
+
];
|
|
37
|
+
export const SPACE_PROPERTIES = {
|
|
38
|
+
stars: starsSpaceProperties,
|
|
39
|
+
earth: earthSpaceProperties,
|
|
40
|
+
solarSystem: solarSystemSpaceProperties,
|
|
41
|
+
shootingStars: shootingStarsSpaceProperties,
|
|
42
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"textProperties.d.ts","sourceRoot":"","sources":["../../../src/properties/tables/textProperties.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAO9D,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,cAAc,EAAE,gBAAgB,EAAE,CAoWtE,CAAC"}
|