@zephyr3d/scene 0.9.1 → 0.9.2
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/animation/animationset.js +135 -133
- package/dist/animation/animationset.js.map +1 -1
- package/dist/animation/cloth/gpu_cloth_system.js +9 -1
- package/dist/animation/cloth/gpu_cloth_system.js.map +1 -1
- package/dist/animation/fixed_geometry_cache_track.js +5 -1
- package/dist/animation/fixed_geometry_cache_track.js.map +1 -1
- package/dist/animation/geometry_cache_utils.js +20 -4
- package/dist/animation/geometry_cache_utils.js.map +1 -1
- package/dist/animation/ik/ik_angle_constraint.js +2 -6
- package/dist/animation/ik/ik_angle_constraint.js.map +1 -1
- package/dist/animation/ik/two_bone_ik_solver.js +2 -6
- package/dist/animation/ik/two_bone_ik_solver.js.map +1 -1
- package/dist/animation/joint_dynamics/collision.js +60 -12
- package/dist/animation/joint_dynamics/collision.js.map +1 -1
- package/dist/animation/joint_dynamics/constraints.js +20 -4
- package/dist/animation/joint_dynamics/constraints.js.map +1 -1
- package/dist/animation/joint_dynamics/controller.js +151 -103
- package/dist/animation/joint_dynamics/controller.js.map +1 -1
- package/dist/animation/joint_dynamics/solver.js +21 -11
- package/dist/animation/joint_dynamics/solver.js.map +1 -1
- package/dist/animation/joint_dynamics/types.js +15 -3
- package/dist/animation/joint_dynamics/types.js.map +1 -1
- package/dist/animation/pca_geometry_cache_track.js +5 -1
- package/dist/animation/pca_geometry_cache_track.js.map +1 -1
- package/dist/animation/skeleton.js +2 -2
- package/dist/animation/skeleton.js.map +1 -1
- package/dist/animation/skeleton_modifier.js +2 -6
- package/dist/animation/skeleton_modifier.js.map +1 -1
- package/dist/animation/spring/spring_system.js +87 -114
- package/dist/animation/spring/spring_system.js.map +1 -1
- package/dist/app/app.js.map +1 -1
- package/dist/app/engine.js +1 -1
- package/dist/app/engine.js.map +1 -1
- package/dist/app/screen.js +4 -4
- package/dist/app/screen.js.map +1 -1
- package/dist/app/scriptingsystem.js +24 -1
- package/dist/app/scriptingsystem.js.map +1 -1
- package/dist/app/scriptregistry.js +22 -1
- package/dist/app/scriptregistry.js.map +1 -1
- package/dist/asset/assetmanager.js +2 -2
- package/dist/asset/assetmanager.js.map +1 -1
- package/dist/asset/model.js +3 -3
- package/dist/asset/model.js.map +1 -1
- package/dist/camera/camera.js +185 -185
- package/dist/camera/camera.js.map +1 -1
- package/dist/camera/orbit.js.map +1 -1
- package/dist/index.d.ts +794 -261
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/material/material.js +290 -288
- package/dist/material/material.js.map +1 -1
- package/dist/material/mixins/lightmodel/pbrmetallicroughness.js.map +1 -1
- package/dist/material/sprite.js +6 -6
- package/dist/material/sprite.js.map +1 -1
- package/dist/material/terrain-cm.js +2 -2
- package/dist/material/terrain-cm.js.map +1 -1
- package/dist/posteffect/taa.js +31 -39
- package/dist/posteffect/taa.js.map +1 -1
- package/dist/render/drawable.js +5 -1
- package/dist/render/drawable.js.map +1 -1
- package/dist/render/rendergraph/device_pool_allocator.js +29 -3
- package/dist/render/rendergraph/device_pool_allocator.js.map +1 -1
- package/dist/render/rendergraph/executor.js +283 -33
- package/dist/render/rendergraph/executor.js.map +1 -1
- package/dist/render/rendergraph/forward_plus_builder.js +338 -108
- package/dist/render/rendergraph/forward_plus_builder.js.map +1 -1
- package/dist/render/rendergraph/history_resource_manager.js +236 -156
- package/dist/render/rendergraph/history_resource_manager.js.map +1 -1
- package/dist/render/rendergraph/history_resources.js +10 -0
- package/dist/render/rendergraph/history_resources.js.map +1 -0
- package/dist/render/rendergraph/rendergraph.js +162 -35
- package/dist/render/rendergraph/rendergraph.js.map +1 -1
- package/dist/render/rendergraph/types.js +36 -16
- package/dist/render/rendergraph/types.js.map +1 -1
- package/dist/render/rendertarget.js +5 -1
- package/dist/render/rendertarget.js.map +1 -1
- package/dist/render/screenrendertarget.js +5 -1
- package/dist/render/screenrendertarget.js.map +1 -1
- package/dist/render/sky.js +4 -4
- package/dist/render/sky.js.map +1 -1
- package/dist/scene/basesprite.js +2 -2
- package/dist/scene/basesprite.js.map +1 -1
- package/dist/scene/graph_node.js +1 -1
- package/dist/scene/graph_node.js.map +1 -1
- package/dist/scene/mesh.js +4 -20
- package/dist/scene/mesh.js.map +1 -1
- package/dist/scene/particlesys.js +1 -1
- package/dist/scene/particlesys.js.map +1 -1
- package/dist/scene/scene_node.js +2 -2
- package/dist/scene/scene_node.js.map +1 -1
- package/dist/scene/script_attachment.js +15 -3
- package/dist/scene/script_attachment.js.map +1 -1
- package/dist/scene/terrain-cm/terrain-cm.js +3 -3
- package/dist/scene/terrain-cm/terrain-cm.js.map +1 -1
- package/dist/shadow/shadowmapper.js.map +1 -1
- package/dist/shapes/box.js +1 -1
- package/dist/shapes/box.js.map +1 -1
- package/dist/shapes/capsule.js +0 -3
- package/dist/shapes/capsule.js.map +1 -1
- package/dist/shapes/cylinder.js +0 -3
- package/dist/shapes/cylinder.js.map +1 -1
- package/dist/shapes/plane.js +0 -3
- package/dist/shapes/plane.js.map +1 -1
- package/dist/shapes/tetrahedron.js +3 -9
- package/dist/shapes/tetrahedron.js.map +1 -1
- package/dist/shapes/torus.js +4 -7
- package/dist/shapes/torus.js.map +1 -1
- package/dist/utility/blueprint/material/inputs.js +3 -3
- package/dist/utility/blueprint/material/inputs.js.map +1 -1
- package/dist/utility/blueprint/material/ir.js +493 -493
- package/dist/utility/blueprint/material/ir.js.map +1 -1
- package/dist/utility/serialization/manager.js +34 -3
- package/dist/utility/serialization/manager.js.map +1 -1
- package/dist/utility/serialization/scene/animation.js +45 -0
- package/dist/utility/serialization/scene/animation.js.map +1 -1
- package/dist/utility/serialization/scene/camera.js +53 -0
- package/dist/utility/serialization/scene/camera.js.map +1 -1
- package/dist/utility/serialization/scene/common.js +10 -0
- package/dist/utility/serialization/scene/common.js.map +1 -1
- package/dist/utility/serialization/scene/light.js +30 -0
- package/dist/utility/serialization/scene/light.js.map +1 -1
- package/dist/utility/serialization/scene/material.js +63 -0
- package/dist/utility/serialization/scene/material.js.map +1 -1
- package/dist/utility/serialization/scene/mesh.js +11 -0
- package/dist/utility/serialization/scene/mesh.js.map +1 -1
- package/dist/utility/serialization/scene/misc.js +2 -0
- package/dist/utility/serialization/scene/misc.js.map +1 -1
- package/dist/utility/serialization/scene/node.js +19 -0
- package/dist/utility/serialization/scene/node.js.map +1 -1
- package/dist/utility/serialization/scene/particle.js +22 -0
- package/dist/utility/serialization/scene/particle.js.map +1 -1
- package/dist/utility/serialization/scene/primitive.js +33 -0
- package/dist/utility/serialization/scene/primitive.js.map +1 -1
- package/dist/utility/serialization/scene/scene.js +39 -0
- package/dist/utility/serialization/scene/scene.js.map +1 -1
- package/dist/utility/serialization/scene/script.js +2 -0
- package/dist/utility/serialization/scene/script.js.map +1 -1
- package/dist/utility/serialization/scene/sprite.js +6 -0
- package/dist/utility/serialization/scene/sprite.js.map +1 -1
- package/dist/utility/serialization/scene/terrain.js +9 -0
- package/dist/utility/serialization/scene/terrain.js.map +1 -1
- package/dist/utility/serialization/scene/water.js +21 -0
- package/dist/utility/serialization/scene/water.js.map +1 -1
- package/dist/utility/serialization/types.js +5 -1
- package/dist/utility/serialization/types.js.map +1 -1
- package/package.json +2 -2
|
@@ -51,6 +51,7 @@ import '../../../scene/raycast_visitor.js';
|
|
|
51
51
|
return defineProps([
|
|
52
52
|
{
|
|
53
53
|
name: 'WorldSpace',
|
|
54
|
+
description: 'If true, particle positions will be calculated in world space',
|
|
54
55
|
type: 'bool',
|
|
55
56
|
default: true,
|
|
56
57
|
get (value) {
|
|
@@ -62,6 +63,7 @@ import '../../../scene/raycast_visitor.js';
|
|
|
62
63
|
},
|
|
63
64
|
{
|
|
64
65
|
name: 'MaxParticleCount',
|
|
66
|
+
description: 'Maximum particle count',
|
|
65
67
|
type: 'int',
|
|
66
68
|
default: 100,
|
|
67
69
|
get (value) {
|
|
@@ -73,6 +75,7 @@ import '../../../scene/raycast_visitor.js';
|
|
|
73
75
|
},
|
|
74
76
|
{
|
|
75
77
|
name: 'EmitInterval',
|
|
78
|
+
description: 'Particle emit interval in millionseconds',
|
|
76
79
|
type: 'int',
|
|
77
80
|
default: 100,
|
|
78
81
|
get (value) {
|
|
@@ -84,6 +87,7 @@ import '../../../scene/raycast_visitor.js';
|
|
|
84
87
|
},
|
|
85
88
|
{
|
|
86
89
|
name: 'EmitCount',
|
|
90
|
+
description: 'How many particles will be emitted at once',
|
|
87
91
|
type: 'int',
|
|
88
92
|
default: 1,
|
|
89
93
|
get (value) {
|
|
@@ -95,6 +99,7 @@ import '../../../scene/raycast_visitor.js';
|
|
|
95
99
|
},
|
|
96
100
|
{
|
|
97
101
|
name: 'Gravity',
|
|
102
|
+
description: 'Gravity acceleration applied to particles',
|
|
98
103
|
type: 'vec3',
|
|
99
104
|
default: [
|
|
100
105
|
0,
|
|
@@ -116,6 +121,7 @@ import '../../../scene/raycast_visitor.js';
|
|
|
116
121
|
},
|
|
117
122
|
{
|
|
118
123
|
name: 'Wind',
|
|
124
|
+
description: 'Wind velocity applied to particles',
|
|
119
125
|
type: 'vec3',
|
|
120
126
|
default: [
|
|
121
127
|
0,
|
|
@@ -137,6 +143,7 @@ import '../../../scene/raycast_visitor.js';
|
|
|
137
143
|
},
|
|
138
144
|
{
|
|
139
145
|
name: 'Scalar',
|
|
146
|
+
description: 'Size scale for particles',
|
|
140
147
|
type: 'float',
|
|
141
148
|
default: 1,
|
|
142
149
|
options: {
|
|
@@ -151,6 +158,7 @@ import '../../../scene/raycast_visitor.js';
|
|
|
151
158
|
},
|
|
152
159
|
{
|
|
153
160
|
name: 'Aspect',
|
|
161
|
+
description: 'Particle aspect ratio',
|
|
154
162
|
type: 'float',
|
|
155
163
|
default: 1,
|
|
156
164
|
options: {
|
|
@@ -165,6 +173,7 @@ import '../../../scene/raycast_visitor.js';
|
|
|
165
173
|
},
|
|
166
174
|
{
|
|
167
175
|
name: 'AirResistence',
|
|
176
|
+
description: 'If true, particles are slowed by air resistance',
|
|
168
177
|
type: 'bool',
|
|
169
178
|
default: false,
|
|
170
179
|
get (value) {
|
|
@@ -176,6 +185,7 @@ import '../../../scene/raycast_visitor.js';
|
|
|
176
185
|
},
|
|
177
186
|
{
|
|
178
187
|
name: 'JitterSpeed',
|
|
188
|
+
description: 'Speed of random particle jitter',
|
|
179
189
|
type: 'float',
|
|
180
190
|
default: 1,
|
|
181
191
|
options: {
|
|
@@ -190,6 +200,7 @@ import '../../../scene/raycast_visitor.js';
|
|
|
190
200
|
},
|
|
191
201
|
{
|
|
192
202
|
name: 'JitterPower',
|
|
203
|
+
description: 'Strength of random particle jitter',
|
|
193
204
|
type: 'float',
|
|
194
205
|
default: 0,
|
|
195
206
|
options: {
|
|
@@ -204,6 +215,7 @@ import '../../../scene/raycast_visitor.js';
|
|
|
204
215
|
},
|
|
205
216
|
{
|
|
206
217
|
name: 'EmitterShape',
|
|
218
|
+
description: 'Shape of the particle emission volume',
|
|
207
219
|
type: 'string',
|
|
208
220
|
options: {
|
|
209
221
|
enum: {
|
|
@@ -233,6 +245,7 @@ import '../../../scene/raycast_visitor.js';
|
|
|
233
245
|
},
|
|
234
246
|
{
|
|
235
247
|
name: 'EmitterBehavior',
|
|
248
|
+
description: 'Whether particles spawn on the surface or throughout the volume',
|
|
236
249
|
type: 'string',
|
|
237
250
|
options: {
|
|
238
251
|
enum: {
|
|
@@ -256,6 +269,7 @@ import '../../../scene/raycast_visitor.js';
|
|
|
256
269
|
},
|
|
257
270
|
{
|
|
258
271
|
name: 'Directional',
|
|
272
|
+
description: 'If true, emitted particles follow the emitter direction',
|
|
259
273
|
type: 'bool',
|
|
260
274
|
default: false,
|
|
261
275
|
get (value) {
|
|
@@ -267,6 +281,7 @@ import '../../../scene/raycast_visitor.js';
|
|
|
267
281
|
},
|
|
268
282
|
{
|
|
269
283
|
name: 'Rotation',
|
|
284
|
+
description: 'Min/Max value of particle rotation',
|
|
270
285
|
type: 'vec2',
|
|
271
286
|
default: [
|
|
272
287
|
0,
|
|
@@ -286,6 +301,7 @@ import '../../../scene/raycast_visitor.js';
|
|
|
286
301
|
},
|
|
287
302
|
{
|
|
288
303
|
name: 'ConeRadius',
|
|
304
|
+
description: 'min/max radius of particle emit cone',
|
|
289
305
|
type: 'vec2',
|
|
290
306
|
default: [
|
|
291
307
|
0,
|
|
@@ -305,6 +321,7 @@ import '../../../scene/raycast_visitor.js';
|
|
|
305
321
|
},
|
|
306
322
|
{
|
|
307
323
|
name: 'Velocity',
|
|
324
|
+
description: 'min/max value of initial speed of particles',
|
|
308
325
|
type: 'vec2',
|
|
309
326
|
default: [
|
|
310
327
|
2,
|
|
@@ -324,6 +341,7 @@ import '../../../scene/raycast_visitor.js';
|
|
|
324
341
|
},
|
|
325
342
|
{
|
|
326
343
|
name: 'Life',
|
|
344
|
+
description: 'min/max value of particle life in seconds',
|
|
327
345
|
type: 'vec2',
|
|
328
346
|
default: [
|
|
329
347
|
1,
|
|
@@ -343,6 +361,7 @@ import '../../../scene/raycast_visitor.js';
|
|
|
343
361
|
},
|
|
344
362
|
{
|
|
345
363
|
name: 'Size1',
|
|
364
|
+
description: 'min/max value of initial size of particles',
|
|
346
365
|
type: 'vec2',
|
|
347
366
|
default: [
|
|
348
367
|
0.4,
|
|
@@ -362,6 +381,7 @@ import '../../../scene/raycast_visitor.js';
|
|
|
362
381
|
},
|
|
363
382
|
{
|
|
364
383
|
name: 'Size2',
|
|
384
|
+
description: 'min/max value of end size of particles',
|
|
365
385
|
type: 'vec2',
|
|
366
386
|
default: [
|
|
367
387
|
0,
|
|
@@ -381,6 +401,7 @@ import '../../../scene/raycast_visitor.js';
|
|
|
381
401
|
},
|
|
382
402
|
{
|
|
383
403
|
name: 'Acceleration',
|
|
404
|
+
description: 'min/max value of particle speed acceleration',
|
|
384
405
|
type: 'vec2',
|
|
385
406
|
default: [
|
|
386
407
|
-0.01,
|
|
@@ -400,6 +421,7 @@ import '../../../scene/raycast_visitor.js';
|
|
|
400
421
|
},
|
|
401
422
|
{
|
|
402
423
|
name: 'Material',
|
|
424
|
+
description: 'Material object',
|
|
403
425
|
type: 'object',
|
|
404
426
|
default: null,
|
|
405
427
|
options: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"particle.js","sources":["../../../../src/utility/serialization/scene/particle.ts"],"sourcesContent":["import { GraphNode, type EmitterBehavior, type EmitterShape } from '../../../scene';\r\nimport type { SceneNode } from '../../../scene/scene_node';\r\nimport { ParticleSystem } from '../../../scene/particlesys';\r\nimport { defineProps, type SerializableClass } from '../types';\r\nimport { ParticleMaterial } from '../../../material';\r\n\r\n/** @internal */\r\nexport function getParticleNodeClass(): SerializableClass {\r\n return {\r\n ctor: ParticleSystem,\r\n name: 'ParticleSystem',\r\n parent: GraphNode,\r\n createFunc(ctx: SceneNode) {\r\n const node = new ParticleSystem(ctx.scene!);\r\n node.parent = ctx;\r\n return { obj: node };\r\n },\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'WorldSpace',\r\n type: 'bool',\r\n default: true,\r\n get(this: ParticleSystem, value) {\r\n value.bool[0] = this.worldSpace;\r\n },\r\n set(this: ParticleSystem, value) {\r\n this.worldSpace = value.bool[0];\r\n }\r\n },\r\n {\r\n name: 'MaxParticleCount',\r\n type: 'int',\r\n default: 100,\r\n get(this: ParticleSystem, value) {\r\n value.num[0] = this.maxParticleCount;\r\n },\r\n set(this: ParticleSystem, value) {\r\n this.maxParticleCount = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'EmitInterval',\r\n type: 'int',\r\n default: 100,\r\n get(this: ParticleSystem, value) {\r\n value.num[0] = this.emitInterval;\r\n },\r\n set(this: ParticleSystem, value) {\r\n this.emitInterval = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'EmitCount',\r\n type: 'int',\r\n default: 1,\r\n get(this: ParticleSystem, value) {\r\n value.num[0] = this.emitCount;\r\n },\r\n set(this: ParticleSystem, value) {\r\n this.emitCount = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'Gravity',\r\n type: 'vec3',\r\n default: [0, 0, 0],\r\n options: {\r\n animatable: true\r\n },\r\n get(this: ParticleSystem, value) {\r\n const gravity = this.gravity;\r\n value.num[0] = gravity.x;\r\n value.num[1] = gravity.y;\r\n value.num[2] = gravity.z;\r\n },\r\n set(this: ParticleSystem, value) {\r\n this.gravity.setXYZ(value.num[0], value.num[1], value.num[2]);\r\n }\r\n },\r\n {\r\n name: 'Wind',\r\n type: 'vec3',\r\n default: [0, 0, 0],\r\n options: {\r\n animatable: true\r\n },\r\n get(this: ParticleSystem, value) {\r\n const wind = this.wind;\r\n value.num[0] = wind.x;\r\n value.num[1] = wind.y;\r\n value.num[2] = wind.z;\r\n },\r\n set(this: ParticleSystem, value) {\r\n this.wind.setXYZ(value.num[0], value.num[1], value.num[2]);\r\n }\r\n },\r\n {\r\n name: 'Scalar',\r\n type: 'float',\r\n default: 1,\r\n options: {\r\n animatable: true\r\n },\r\n get(this: ParticleSystem, value) {\r\n value.num[0] = this.scalar;\r\n },\r\n set(this: ParticleSystem, value) {\r\n this.scalar = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'Aspect',\r\n type: 'float',\r\n default: 1,\r\n options: {\r\n animatable: true\r\n },\r\n get(this: ParticleSystem, value) {\r\n value.num[0] = this.aspect;\r\n },\r\n set(this: ParticleSystem, value) {\r\n this.aspect = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'AirResistence',\r\n type: 'bool',\r\n default: false,\r\n get(this: ParticleSystem, value) {\r\n value.bool[0] = this.airResistence;\r\n },\r\n set(this: ParticleSystem, value) {\r\n this.airResistence = value.bool[0];\r\n }\r\n },\r\n {\r\n name: 'JitterSpeed',\r\n type: 'float',\r\n default: 1,\r\n options: {\r\n animatable: true\r\n },\r\n get(this: ParticleSystem, value) {\r\n value.num[0] = this.jitterSpeed;\r\n },\r\n set(this: ParticleSystem, value) {\r\n this.jitterSpeed = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'JitterPower',\r\n type: 'float',\r\n default: 0,\r\n options: {\r\n animatable: true\r\n },\r\n get(this: ParticleSystem, value) {\r\n value.num[0] = this.jitterPower;\r\n },\r\n set(this: ParticleSystem, value) {\r\n this.jitterPower = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'EmitterShape',\r\n type: 'string',\r\n options: {\r\n enum: {\r\n labels: ['Point', 'Sphere', 'Box', 'Cylinder', 'Cone'],\r\n values: ['point', 'sphere', 'box', 'cylinder', 'cone']\r\n }\r\n },\r\n default: 'point',\r\n get(this: ParticleSystem, value) {\r\n value.str[0] = this.emitterShape;\r\n },\r\n set(this: ParticleSystem, value) {\r\n this.emitterShape = value.str[0] as EmitterShape;\r\n }\r\n },\r\n {\r\n name: 'EmitterBehavior',\r\n type: 'string',\r\n options: {\r\n enum: {\r\n labels: ['Surface', 'Volume'],\r\n values: ['surface', 'volume']\r\n }\r\n },\r\n default: 'surface',\r\n get(this: ParticleSystem, value) {\r\n value.str[0] = this.emitterBehavior;\r\n },\r\n set(this: ParticleSystem, value) {\r\n this.emitterBehavior = value.str[0] as EmitterBehavior;\r\n }\r\n },\r\n {\r\n name: 'Directional',\r\n type: 'bool',\r\n default: false,\r\n get(this: ParticleSystem, value) {\r\n value.bool[0] = this.directional;\r\n },\r\n set(this: ParticleSystem, value) {\r\n this.directional = value.bool[0];\r\n }\r\n },\r\n {\r\n name: 'Rotation',\r\n type: 'vec2',\r\n default: [0, 0],\r\n options: {\r\n animatable: true\r\n },\r\n get(this: ParticleSystem, value) {\r\n value.num[0] = this.particleRotationMin;\r\n value.num[1] = this.particleRotationMax;\r\n },\r\n set(this: ParticleSystem, value) {\r\n this.particleRotationMin = value.num[0];\r\n this.particleRotationMax = value.num[1];\r\n }\r\n },\r\n {\r\n name: 'ConeRadius',\r\n type: 'vec2',\r\n default: [0, 0.1],\r\n options: {\r\n animatable: true\r\n },\r\n get(this: ParticleSystem, value) {\r\n value.num[0] = this.emitterConeRadiusMin;\r\n value.num[1] = this.emitterConeRadiusMax;\r\n },\r\n set(this: ParticleSystem, value) {\r\n this.emitterConeRadiusMin = value.num[0];\r\n this.emitterConeRadiusMax = value.num[1];\r\n }\r\n },\r\n {\r\n name: 'Velocity',\r\n type: 'vec2',\r\n default: [2, 3],\r\n options: {\r\n animatable: true\r\n },\r\n get(this: ParticleSystem, value) {\r\n value.num[0] = this.particleVelocityMin;\r\n value.num[1] = this.particleVelocityMax;\r\n },\r\n set(this: ParticleSystem, value) {\r\n this.particleVelocityMin = value.num[0];\r\n this.particleVelocityMax = value.num[1];\r\n }\r\n },\r\n {\r\n name: 'Life',\r\n type: 'vec2',\r\n default: [1, 1.5],\r\n options: {\r\n animatable: true\r\n },\r\n get(this: ParticleSystem, value) {\r\n value.num[0] = this.particleLifeMin;\r\n value.num[1] = this.particleLifeMax;\r\n },\r\n set(this: ParticleSystem, value) {\r\n this.particleLifeMin = value.num[0];\r\n this.particleLifeMax = value.num[1];\r\n }\r\n },\r\n {\r\n name: 'Size1',\r\n type: 'vec2',\r\n default: [0.4, 0.5],\r\n options: {\r\n animatable: true\r\n },\r\n get(this: ParticleSystem, value) {\r\n value.num[0] = this.particleSize1Min;\r\n value.num[1] = this.particleSize1Max;\r\n },\r\n set(this: ParticleSystem, value) {\r\n this.particleSize1Min = value.num[0];\r\n this.particleSize1Max = value.num[1];\r\n }\r\n },\r\n {\r\n name: 'Size2',\r\n type: 'vec2',\r\n default: [0, 0.1],\r\n options: {\r\n animatable: true\r\n },\r\n get(this: ParticleSystem, value) {\r\n value.num[0] = this.particleSize2Min;\r\n value.num[1] = this.particleSize2Max;\r\n },\r\n set(this: ParticleSystem, value) {\r\n this.particleSize2Min = value.num[0];\r\n this.particleSize2Max = value.num[1];\r\n }\r\n },\r\n {\r\n name: 'Acceleration',\r\n type: 'vec2',\r\n default: [-0.01, -0.02],\r\n options: {\r\n animatable: true\r\n },\r\n get(this: ParticleSystem, value) {\r\n value.num[0] = this.particleAccelMin;\r\n value.num[1] = this.particleAccelMax;\r\n },\r\n set(this: ParticleSystem, value) {\r\n this.particleAccelMin = value.num[0];\r\n this.particleAccelMax = value.num[1];\r\n }\r\n },\r\n {\r\n name: 'Material',\r\n type: 'object',\r\n default: null,\r\n options: {\r\n objectTypes: [ParticleMaterial]\r\n },\r\n get(this: ParticleSystem, value) {\r\n value.object[0] = this.getMaterial();\r\n },\r\n set(this: ParticleSystem, value) {\r\n if (!value.object[0]) {\r\n this.material = null;\r\n } else if (value.object[0] instanceof ParticleMaterial) {\r\n this.material = value.object[0];\r\n } else {\r\n console.error('Invalid material type');\r\n }\r\n }\r\n }\r\n ]);\r\n }\r\n };\r\n}\r\n"],"names":["getParticleNodeClass","ctor","ParticleSystem","name","parent","GraphNode","createFunc","ctx","node","scene","obj","getProps","defineProps","type","default","get","value","bool","worldSpace","set","num","maxParticleCount","emitInterval","emitCount","options","animatable","gravity","x","y","z","setXYZ","wind","scalar","aspect","airResistence","jitterSpeed","jitterPower","enum","labels","values","str","emitterShape","emitterBehavior","directional","particleRotationMin","particleRotationMax","emitterConeRadiusMin","emitterConeRadiusMax","particleVelocityMin","particleVelocityMax","particleLifeMin","particleLifeMax","particleSize1Min","particleSize1Max","particleSize2Min","particleSize2Max","particleAccelMin","particleAccelMax","objectTypes","ParticleMaterial","object","getMaterial","material","console","error"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"particle.js","sources":["../../../../src/utility/serialization/scene/particle.ts"],"sourcesContent":["import { GraphNode, type EmitterBehavior, type EmitterShape } from '../../../scene';\nimport type { SceneNode } from '../../../scene/scene_node';\nimport { ParticleSystem } from '../../../scene/particlesys';\nimport { defineProps, type SerializableClass } from '../types';\nimport { ParticleMaterial } from '../../../material';\n\n/** @internal */\nexport function getParticleNodeClass(): SerializableClass {\n return {\n ctor: ParticleSystem,\n name: 'ParticleSystem',\n parent: GraphNode,\n createFunc(ctx: SceneNode) {\n const node = new ParticleSystem(ctx.scene!);\n node.parent = ctx;\n return { obj: node };\n },\n getProps() {\n return defineProps([\n {\n name: 'WorldSpace',\n description: 'If true, particle positions will be calculated in world space',\n type: 'bool',\n default: true,\n get(this: ParticleSystem, value) {\n value.bool[0] = this.worldSpace;\n },\n set(this: ParticleSystem, value) {\n this.worldSpace = value.bool[0];\n }\n },\n {\n name: 'MaxParticleCount',\n description: 'Maximum particle count',\n type: 'int',\n default: 100,\n get(this: ParticleSystem, value) {\n value.num[0] = this.maxParticleCount;\n },\n set(this: ParticleSystem, value) {\n this.maxParticleCount = value.num[0];\n }\n },\n {\n name: 'EmitInterval',\n description: 'Particle emit interval in millionseconds',\n type: 'int',\n default: 100,\n get(this: ParticleSystem, value) {\n value.num[0] = this.emitInterval;\n },\n set(this: ParticleSystem, value) {\n this.emitInterval = value.num[0];\n }\n },\n {\n name: 'EmitCount',\n description: 'How many particles will be emitted at once',\n type: 'int',\n default: 1,\n get(this: ParticleSystem, value) {\n value.num[0] = this.emitCount;\n },\n set(this: ParticleSystem, value) {\n this.emitCount = value.num[0];\n }\n },\n {\n name: 'Gravity',\n description: 'Gravity acceleration applied to particles',\n type: 'vec3',\n default: [0, 0, 0],\n options: {\n animatable: true\n },\n get(this: ParticleSystem, value) {\n const gravity = this.gravity;\n value.num[0] = gravity.x;\n value.num[1] = gravity.y;\n value.num[2] = gravity.z;\n },\n set(this: ParticleSystem, value) {\n this.gravity.setXYZ(value.num[0], value.num[1], value.num[2]);\n }\n },\n {\n name: 'Wind',\n description: 'Wind velocity applied to particles',\n type: 'vec3',\n default: [0, 0, 0],\n options: {\n animatable: true\n },\n get(this: ParticleSystem, value) {\n const wind = this.wind;\n value.num[0] = wind.x;\n value.num[1] = wind.y;\n value.num[2] = wind.z;\n },\n set(this: ParticleSystem, value) {\n this.wind.setXYZ(value.num[0], value.num[1], value.num[2]);\n }\n },\n {\n name: 'Scalar',\n description: 'Size scale for particles',\n type: 'float',\n default: 1,\n options: {\n animatable: true\n },\n get(this: ParticleSystem, value) {\n value.num[0] = this.scalar;\n },\n set(this: ParticleSystem, value) {\n this.scalar = value.num[0];\n }\n },\n {\n name: 'Aspect',\n description: 'Particle aspect ratio',\n type: 'float',\n default: 1,\n options: {\n animatable: true\n },\n get(this: ParticleSystem, value) {\n value.num[0] = this.aspect;\n },\n set(this: ParticleSystem, value) {\n this.aspect = value.num[0];\n }\n },\n {\n name: 'AirResistence',\n description: 'If true, particles are slowed by air resistance',\n type: 'bool',\n default: false,\n get(this: ParticleSystem, value) {\n value.bool[0] = this.airResistence;\n },\n set(this: ParticleSystem, value) {\n this.airResistence = value.bool[0];\n }\n },\n {\n name: 'JitterSpeed',\n description: 'Speed of random particle jitter',\n type: 'float',\n default: 1,\n options: {\n animatable: true\n },\n get(this: ParticleSystem, value) {\n value.num[0] = this.jitterSpeed;\n },\n set(this: ParticleSystem, value) {\n this.jitterSpeed = value.num[0];\n }\n },\n {\n name: 'JitterPower',\n description: 'Strength of random particle jitter',\n type: 'float',\n default: 0,\n options: {\n animatable: true\n },\n get(this: ParticleSystem, value) {\n value.num[0] = this.jitterPower;\n },\n set(this: ParticleSystem, value) {\n this.jitterPower = value.num[0];\n }\n },\n {\n name: 'EmitterShape',\n description: 'Shape of the particle emission volume',\n type: 'string',\n options: {\n enum: {\n labels: ['Point', 'Sphere', 'Box', 'Cylinder', 'Cone'],\n values: ['point', 'sphere', 'box', 'cylinder', 'cone']\n }\n },\n default: 'point',\n get(this: ParticleSystem, value) {\n value.str[0] = this.emitterShape;\n },\n set(this: ParticleSystem, value) {\n this.emitterShape = value.str[0] as EmitterShape;\n }\n },\n {\n name: 'EmitterBehavior',\n description: 'Whether particles spawn on the surface or throughout the volume',\n type: 'string',\n options: {\n enum: {\n labels: ['Surface', 'Volume'],\n values: ['surface', 'volume']\n }\n },\n default: 'surface',\n get(this: ParticleSystem, value) {\n value.str[0] = this.emitterBehavior;\n },\n set(this: ParticleSystem, value) {\n this.emitterBehavior = value.str[0] as EmitterBehavior;\n }\n },\n {\n name: 'Directional',\n description: 'If true, emitted particles follow the emitter direction',\n type: 'bool',\n default: false,\n get(this: ParticleSystem, value) {\n value.bool[0] = this.directional;\n },\n set(this: ParticleSystem, value) {\n this.directional = value.bool[0];\n }\n },\n {\n name: 'Rotation',\n description: 'Min/Max value of particle rotation',\n type: 'vec2',\n default: [0, 0],\n options: {\n animatable: true\n },\n get(this: ParticleSystem, value) {\n value.num[0] = this.particleRotationMin;\n value.num[1] = this.particleRotationMax;\n },\n set(this: ParticleSystem, value) {\n this.particleRotationMin = value.num[0];\n this.particleRotationMax = value.num[1];\n }\n },\n {\n name: 'ConeRadius',\n description: 'min/max radius of particle emit cone',\n type: 'vec2',\n default: [0, 0.1],\n options: {\n animatable: true\n },\n get(this: ParticleSystem, value) {\n value.num[0] = this.emitterConeRadiusMin;\n value.num[1] = this.emitterConeRadiusMax;\n },\n set(this: ParticleSystem, value) {\n this.emitterConeRadiusMin = value.num[0];\n this.emitterConeRadiusMax = value.num[1];\n }\n },\n {\n name: 'Velocity',\n description: 'min/max value of initial speed of particles',\n type: 'vec2',\n default: [2, 3],\n options: {\n animatable: true\n },\n get(this: ParticleSystem, value) {\n value.num[0] = this.particleVelocityMin;\n value.num[1] = this.particleVelocityMax;\n },\n set(this: ParticleSystem, value) {\n this.particleVelocityMin = value.num[0];\n this.particleVelocityMax = value.num[1];\n }\n },\n {\n name: 'Life',\n description: 'min/max value of particle life in seconds',\n type: 'vec2',\n default: [1, 1.5],\n options: {\n animatable: true\n },\n get(this: ParticleSystem, value) {\n value.num[0] = this.particleLifeMin;\n value.num[1] = this.particleLifeMax;\n },\n set(this: ParticleSystem, value) {\n this.particleLifeMin = value.num[0];\n this.particleLifeMax = value.num[1];\n }\n },\n {\n name: 'Size1',\n description: 'min/max value of initial size of particles',\n type: 'vec2',\n default: [0.4, 0.5],\n options: {\n animatable: true\n },\n get(this: ParticleSystem, value) {\n value.num[0] = this.particleSize1Min;\n value.num[1] = this.particleSize1Max;\n },\n set(this: ParticleSystem, value) {\n this.particleSize1Min = value.num[0];\n this.particleSize1Max = value.num[1];\n }\n },\n {\n name: 'Size2',\n description: 'min/max value of end size of particles',\n type: 'vec2',\n default: [0, 0.1],\n options: {\n animatable: true\n },\n get(this: ParticleSystem, value) {\n value.num[0] = this.particleSize2Min;\n value.num[1] = this.particleSize2Max;\n },\n set(this: ParticleSystem, value) {\n this.particleSize2Min = value.num[0];\n this.particleSize2Max = value.num[1];\n }\n },\n {\n name: 'Acceleration',\n description: 'min/max value of particle speed acceleration',\n type: 'vec2',\n default: [-0.01, -0.02],\n options: {\n animatable: true\n },\n get(this: ParticleSystem, value) {\n value.num[0] = this.particleAccelMin;\n value.num[1] = this.particleAccelMax;\n },\n set(this: ParticleSystem, value) {\n this.particleAccelMin = value.num[0];\n this.particleAccelMax = value.num[1];\n }\n },\n {\n name: 'Material',\n description: 'Material object',\n type: 'object',\n default: null,\n options: {\n objectTypes: [ParticleMaterial]\n },\n get(this: ParticleSystem, value) {\n value.object[0] = this.getMaterial();\n },\n set(this: ParticleSystem, value) {\n if (!value.object[0]) {\n this.material = null;\n } else if (value.object[0] instanceof ParticleMaterial) {\n this.material = value.object[0];\n } else {\n console.error('Invalid material type');\n }\n }\n }\n ]);\n }\n };\n}\n"],"names":["getParticleNodeClass","ctor","ParticleSystem","name","parent","GraphNode","createFunc","ctx","node","scene","obj","getProps","defineProps","description","type","default","get","value","bool","worldSpace","set","num","maxParticleCount","emitInterval","emitCount","options","animatable","gravity","x","y","z","setXYZ","wind","scalar","aspect","airResistence","jitterSpeed","jitterPower","enum","labels","values","str","emitterShape","emitterBehavior","directional","particleRotationMin","particleRotationMax","emitterConeRadiusMin","emitterConeRadiusMax","particleVelocityMin","particleVelocityMax","particleLifeMin","particleLifeMax","particleSize1Min","particleSize1Max","particleSize2Min","particleSize2Max","particleAccelMin","particleAccelMax","objectTypes","ParticleMaterial","object","getMaterial","material","console","error"],"mappings":"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"}
|
|
@@ -39,6 +39,7 @@ import { TetrahedronShape } from '../../../shapes/tetrahedron.js';
|
|
|
39
39
|
return defineProps([
|
|
40
40
|
{
|
|
41
41
|
name: 'Size',
|
|
42
|
+
description: 'Box size in (X, Y, Z) axis',
|
|
42
43
|
type: 'vec3',
|
|
43
44
|
default: [
|
|
44
45
|
1,
|
|
@@ -61,6 +62,7 @@ import { TetrahedronShape } from '../../../shapes/tetrahedron.js';
|
|
|
61
62
|
},
|
|
62
63
|
{
|
|
63
64
|
name: 'Anchor',
|
|
65
|
+
description: 'Anchor point of the box',
|
|
64
66
|
type: 'vec3',
|
|
65
67
|
default: [
|
|
66
68
|
0.5,
|
|
@@ -94,6 +96,7 @@ import { TetrahedronShape } from '../../../shapes/tetrahedron.js';
|
|
|
94
96
|
return defineProps([
|
|
95
97
|
{
|
|
96
98
|
name: 'Radius',
|
|
99
|
+
description: 'capsule radius',
|
|
97
100
|
type: 'float',
|
|
98
101
|
default: 1,
|
|
99
102
|
get (value) {
|
|
@@ -108,6 +111,7 @@ import { TetrahedronShape } from '../../../shapes/tetrahedron.js';
|
|
|
108
111
|
},
|
|
109
112
|
{
|
|
110
113
|
name: 'Height',
|
|
114
|
+
description: 'capsule height',
|
|
111
115
|
type: 'float',
|
|
112
116
|
default: 1,
|
|
113
117
|
get (value) {
|
|
@@ -122,6 +126,7 @@ import { TetrahedronShape } from '../../../shapes/tetrahedron.js';
|
|
|
122
126
|
},
|
|
123
127
|
{
|
|
124
128
|
name: 'RadialDetail',
|
|
129
|
+
description: 'Number of radial segments around the capsule',
|
|
125
130
|
type: 'int',
|
|
126
131
|
default: 20,
|
|
127
132
|
get (value) {
|
|
@@ -136,6 +141,7 @@ import { TetrahedronShape } from '../../../shapes/tetrahedron.js';
|
|
|
136
141
|
},
|
|
137
142
|
{
|
|
138
143
|
name: 'HemisphereDetail',
|
|
144
|
+
description: 'Number of segments used for each capsule hemisphere',
|
|
139
145
|
type: 'int',
|
|
140
146
|
default: 10,
|
|
141
147
|
get (value) {
|
|
@@ -150,6 +156,7 @@ import { TetrahedronShape } from '../../../shapes/tetrahedron.js';
|
|
|
150
156
|
},
|
|
151
157
|
{
|
|
152
158
|
name: 'HeightDetail',
|
|
159
|
+
description: 'Number of segments along the straight section of the capsule',
|
|
153
160
|
type: 'int',
|
|
154
161
|
default: 1,
|
|
155
162
|
get (value) {
|
|
@@ -164,6 +171,7 @@ import { TetrahedronShape } from '../../../shapes/tetrahedron.js';
|
|
|
164
171
|
},
|
|
165
172
|
{
|
|
166
173
|
name: 'Anchor',
|
|
174
|
+
description: 'Normalized anchor position along the capsule height',
|
|
167
175
|
type: 'float',
|
|
168
176
|
default: 0.5,
|
|
169
177
|
get (value) {
|
|
@@ -189,6 +197,7 @@ import { TetrahedronShape } from '../../../shapes/tetrahedron.js';
|
|
|
189
197
|
return defineProps([
|
|
190
198
|
{
|
|
191
199
|
name: 'Size',
|
|
200
|
+
description: 'Box size in (X, Y, Z) axis',
|
|
192
201
|
type: 'vec3',
|
|
193
202
|
default: [
|
|
194
203
|
1,
|
|
@@ -211,6 +220,7 @@ import { TetrahedronShape } from '../../../shapes/tetrahedron.js';
|
|
|
211
220
|
},
|
|
212
221
|
{
|
|
213
222
|
name: 'Anchor',
|
|
223
|
+
description: 'Anchor point of the box frame',
|
|
214
224
|
type: 'vec3',
|
|
215
225
|
default: [
|
|
216
226
|
0.5,
|
|
@@ -244,6 +254,7 @@ import { TetrahedronShape } from '../../../shapes/tetrahedron.js';
|
|
|
244
254
|
return defineProps([
|
|
245
255
|
{
|
|
246
256
|
name: 'NumSlices',
|
|
257
|
+
description: 'Number of slices around the torus ring',
|
|
247
258
|
type: 'int',
|
|
248
259
|
options: {
|
|
249
260
|
minValue: 3,
|
|
@@ -262,6 +273,7 @@ import { TetrahedronShape } from '../../../shapes/tetrahedron.js';
|
|
|
262
273
|
},
|
|
263
274
|
{
|
|
264
275
|
name: 'NumSegments',
|
|
276
|
+
description: 'Number of segments around the torus tube',
|
|
265
277
|
type: 'int',
|
|
266
278
|
options: {
|
|
267
279
|
minValue: 3,
|
|
@@ -280,6 +292,7 @@ import { TetrahedronShape } from '../../../shapes/tetrahedron.js';
|
|
|
280
292
|
},
|
|
281
293
|
{
|
|
282
294
|
name: 'OuterRadius',
|
|
295
|
+
description: 'Outer radius from the torus center to the tube center',
|
|
283
296
|
type: 'float',
|
|
284
297
|
options: {
|
|
285
298
|
minValue: 0,
|
|
@@ -298,6 +311,7 @@ import { TetrahedronShape } from '../../../shapes/tetrahedron.js';
|
|
|
298
311
|
},
|
|
299
312
|
{
|
|
300
313
|
name: 'InnerRadius',
|
|
314
|
+
description: 'Radius of the torus tube',
|
|
301
315
|
type: 'float',
|
|
302
316
|
options: {
|
|
303
317
|
minValue: 0,
|
|
@@ -316,6 +330,7 @@ import { TetrahedronShape } from '../../../shapes/tetrahedron.js';
|
|
|
316
330
|
},
|
|
317
331
|
{
|
|
318
332
|
name: 'RadialDetail',
|
|
333
|
+
description: 'Number of radial segments around the torus tube',
|
|
319
334
|
type: 'int',
|
|
320
335
|
options: {
|
|
321
336
|
minValue: 3,
|
|
@@ -345,6 +360,7 @@ import { TetrahedronShape } from '../../../shapes/tetrahedron.js';
|
|
|
345
360
|
return defineProps([
|
|
346
361
|
{
|
|
347
362
|
name: 'Size',
|
|
363
|
+
description: 'width and height of the plane in (X, Z) axis',
|
|
348
364
|
type: 'vec2',
|
|
349
365
|
default: [
|
|
350
366
|
1,
|
|
@@ -364,6 +380,7 @@ import { TetrahedronShape } from '../../../shapes/tetrahedron.js';
|
|
|
364
380
|
},
|
|
365
381
|
{
|
|
366
382
|
name: 'Resolution',
|
|
383
|
+
description: 'Subdivision counts of the plane along its X and Z axes',
|
|
367
384
|
type: 'int2',
|
|
368
385
|
default: [
|
|
369
386
|
1,
|
|
@@ -383,6 +400,7 @@ import { TetrahedronShape } from '../../../shapes/tetrahedron.js';
|
|
|
383
400
|
},
|
|
384
401
|
{
|
|
385
402
|
name: 'Anchor',
|
|
403
|
+
description: 'Anchor point of the plane in normalized local coordinates',
|
|
386
404
|
type: 'vec2',
|
|
387
405
|
default: [
|
|
388
406
|
0.5,
|
|
@@ -406,6 +424,7 @@ import { TetrahedronShape } from '../../../shapes/tetrahedron.js';
|
|
|
406
424
|
},
|
|
407
425
|
{
|
|
408
426
|
name: 'TwoSided',
|
|
427
|
+
description: 'If true, the plane is rendered on both sides',
|
|
409
428
|
type: 'bool',
|
|
410
429
|
default: false,
|
|
411
430
|
get (value) {
|
|
@@ -431,6 +450,7 @@ import { TetrahedronShape } from '../../../shapes/tetrahedron.js';
|
|
|
431
450
|
return defineProps([
|
|
432
451
|
{
|
|
433
452
|
name: 'Height',
|
|
453
|
+
description: 'Height of the cylinder',
|
|
434
454
|
type: 'float',
|
|
435
455
|
default: 1,
|
|
436
456
|
get (value) {
|
|
@@ -445,6 +465,7 @@ import { TetrahedronShape } from '../../../shapes/tetrahedron.js';
|
|
|
445
465
|
},
|
|
446
466
|
{
|
|
447
467
|
name: 'BottomRadius',
|
|
468
|
+
description: 'Radius of the bottom cap of the cylinder',
|
|
448
469
|
type: 'float',
|
|
449
470
|
default: 1,
|
|
450
471
|
options: {
|
|
@@ -463,6 +484,7 @@ import { TetrahedronShape } from '../../../shapes/tetrahedron.js';
|
|
|
463
484
|
},
|
|
464
485
|
{
|
|
465
486
|
name: 'TopRadius',
|
|
487
|
+
description: 'Radius of the top cap of the cylinder',
|
|
466
488
|
type: 'float',
|
|
467
489
|
default: 1,
|
|
468
490
|
options: {
|
|
@@ -481,6 +503,7 @@ import { TetrahedronShape } from '../../../shapes/tetrahedron.js';
|
|
|
481
503
|
},
|
|
482
504
|
{
|
|
483
505
|
name: 'HeightDetail',
|
|
506
|
+
description: 'Number of segments along the cylinder height',
|
|
484
507
|
type: 'int',
|
|
485
508
|
default: 1,
|
|
486
509
|
options: {
|
|
@@ -499,6 +522,7 @@ import { TetrahedronShape } from '../../../shapes/tetrahedron.js';
|
|
|
499
522
|
},
|
|
500
523
|
{
|
|
501
524
|
name: 'RadialDetail',
|
|
525
|
+
description: 'Number of radial segments around the cylinder',
|
|
502
526
|
type: 'int',
|
|
503
527
|
default: 20,
|
|
504
528
|
options: {
|
|
@@ -517,6 +541,7 @@ import { TetrahedronShape } from '../../../shapes/tetrahedron.js';
|
|
|
517
541
|
},
|
|
518
542
|
{
|
|
519
543
|
name: 'Anchor',
|
|
544
|
+
description: 'Normalized anchor position along the cylinder height',
|
|
520
545
|
type: 'float',
|
|
521
546
|
default: 0,
|
|
522
547
|
options: {
|
|
@@ -535,6 +560,7 @@ import { TetrahedronShape } from '../../../shapes/tetrahedron.js';
|
|
|
535
560
|
},
|
|
536
561
|
{
|
|
537
562
|
name: 'TopCap',
|
|
563
|
+
description: 'If true, generates a top cap for the cylinder',
|
|
538
564
|
type: 'bool',
|
|
539
565
|
default: true,
|
|
540
566
|
get (value) {
|
|
@@ -549,6 +575,7 @@ import { TetrahedronShape } from '../../../shapes/tetrahedron.js';
|
|
|
549
575
|
},
|
|
550
576
|
{
|
|
551
577
|
name: 'BottomCap',
|
|
578
|
+
description: 'If true, generates a bottom cap for the cylinder',
|
|
552
579
|
type: 'bool',
|
|
553
580
|
default: true,
|
|
554
581
|
get (value) {
|
|
@@ -574,6 +601,7 @@ import { TetrahedronShape } from '../../../shapes/tetrahedron.js';
|
|
|
574
601
|
return defineProps([
|
|
575
602
|
{
|
|
576
603
|
name: 'Radius',
|
|
604
|
+
description: 'Radius of the sphere',
|
|
577
605
|
type: 'float',
|
|
578
606
|
default: 1,
|
|
579
607
|
get (value) {
|
|
@@ -588,6 +616,7 @@ import { TetrahedronShape } from '../../../shapes/tetrahedron.js';
|
|
|
588
616
|
},
|
|
589
617
|
{
|
|
590
618
|
name: 'VerticalDetail',
|
|
619
|
+
description: 'Number of vertical segments of the sphere',
|
|
591
620
|
type: 'int',
|
|
592
621
|
options: {
|
|
593
622
|
minValue: 2,
|
|
@@ -606,6 +635,7 @@ import { TetrahedronShape } from '../../../shapes/tetrahedron.js';
|
|
|
606
635
|
},
|
|
607
636
|
{
|
|
608
637
|
name: 'HorizontalDetail',
|
|
638
|
+
description: 'Number of horizontal segments of the sphere',
|
|
609
639
|
type: 'int',
|
|
610
640
|
options: {
|
|
611
641
|
minValue: 2,
|
|
@@ -635,6 +665,7 @@ import { TetrahedronShape } from '../../../shapes/tetrahedron.js';
|
|
|
635
665
|
return defineProps([
|
|
636
666
|
{
|
|
637
667
|
name: 'Height',
|
|
668
|
+
description: 'Height of the tetrahedron',
|
|
638
669
|
type: 'float',
|
|
639
670
|
default: 1,
|
|
640
671
|
get (value) {
|
|
@@ -649,6 +680,7 @@ import { TetrahedronShape } from '../../../shapes/tetrahedron.js';
|
|
|
649
680
|
},
|
|
650
681
|
{
|
|
651
682
|
name: 'SizeX',
|
|
683
|
+
description: 'Width of the tetrahedron base along the X axis',
|
|
652
684
|
type: 'float',
|
|
653
685
|
get (value) {
|
|
654
686
|
value.num[0] = this.options.sizeX;
|
|
@@ -662,6 +694,7 @@ import { TetrahedronShape } from '../../../shapes/tetrahedron.js';
|
|
|
662
694
|
},
|
|
663
695
|
{
|
|
664
696
|
name: 'SizeZ',
|
|
697
|
+
description: 'Depth of the tetrahedron base along the Z axis',
|
|
665
698
|
type: 'float',
|
|
666
699
|
get (value) {
|
|
667
700
|
value.num[0] = this.options.sizeZ;
|