@woosh/meep-engine 3.17.1 → 3.18.0
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/editor/actions/concrete/ComponentAddAction.d.ts +1 -0
- package/editor/actions/concrete/ComponentAddAction.d.ts.map +1 -1
- package/editor/actions/concrete/ComponentAddAction.js +4 -0
- package/editor/actions/concrete/ComponentRemoveAction.d.ts +1 -0
- package/editor/actions/concrete/ComponentRemoveAction.d.ts.map +1 -1
- package/editor/actions/concrete/ComponentRemoveAction.js +4 -0
- package/editor/actions/concrete/EntityCreateAction.d.ts +1 -0
- package/editor/actions/concrete/EntityCreateAction.d.ts.map +1 -1
- package/editor/actions/concrete/EntityCreateAction.js +7 -0
- package/editor/actions/concrete/EntityRemoveAction.d.ts +1 -0
- package/editor/actions/concrete/EntityRemoveAction.d.ts.map +1 -1
- package/editor/actions/concrete/EntityRemoveAction.js +4 -0
- package/editor/actions/concrete/PatchTerrainHeightAction.d.ts +10 -0
- package/editor/actions/concrete/PatchTerrainHeightAction.d.ts.map +1 -1
- package/editor/actions/concrete/PatchTerrainHeightAction.js +107 -85
- package/editor/actions/concrete/TransformModifyAction.d.ts +1 -0
- package/editor/actions/concrete/TransformModifyAction.d.ts.map +1 -1
- package/editor/actions/concrete/TransformModifyAction.js +4 -0
- package/editor/particles/effect/ParticleEffectDocument.d.ts.map +1 -1
- package/editor/particles/effect/ParticleEffectDocument.js +10 -6
- package/editor/particles/effect/ParticleReferenceSimulation.d.ts.map +1 -1
- package/editor/particles/effect/ParticleReferenceSimulation.js +98 -4
- package/editor/particles/effect/make_starter_particle_effect.d.ts.map +1 -1
- package/editor/particles/effect/make_starter_particle_effect.js +0 -2
- package/editor/tools/engine/ToolEngine.d.ts +30 -0
- package/editor/tools/engine/ToolEngine.d.ts.map +1 -1
- package/editor/tools/engine/ToolEngine.js +257 -188
- package/editor/view/ecs/EntityList.d.ts.map +1 -1
- package/editor/view/ecs/EntityList.js +6 -5
- package/editor/view/particles/effect/ParticleEmitterInspectorView.d.ts.map +1 -1
- package/editor/view/particles/effect/ParticleEmitterInspectorView.js +17 -9
- package/package.json +1 -1
- package/src/CODEC_LAYOUT_VERIFICATION.md +1 -2
- package/src/core/binary/meshopt/MESHOPT_VERTEX_BLOCK.d.ts +56 -0
- package/src/core/binary/meshopt/MESHOPT_VERTEX_BLOCK.d.ts.map +1 -0
- package/src/core/binary/meshopt/MESHOPT_VERTEX_BLOCK.js +73 -0
- package/src/core/binary/meshopt/meshopt_decode_vertex_buffer.d.ts.map +1 -1
- package/src/core/binary/meshopt/meshopt_decode_vertex_buffer.js +18 -63
- package/src/core/binary/meshopt/meshopt_encode_byte_group.d.ts +53 -0
- package/src/core/binary/meshopt/meshopt_encode_byte_group.d.ts.map +1 -0
- package/src/core/binary/meshopt/meshopt_encode_byte_group.js +140 -0
- package/src/core/binary/meshopt/meshopt_encode_data_block.d.ts +32 -0
- package/src/core/binary/meshopt/meshopt_encode_data_block.d.ts.map +1 -0
- package/src/core/binary/meshopt/meshopt_encode_data_block.js +77 -0
- package/src/core/binary/meshopt/meshopt_encode_index_sequence.d.ts +46 -0
- package/src/core/binary/meshopt/meshopt_encode_index_sequence.d.ts.map +1 -0
- package/src/core/binary/meshopt/meshopt_encode_index_sequence.js +146 -0
- package/src/core/binary/meshopt/meshopt_encode_vertex_buffer.d.ts +40 -0
- package/src/core/binary/meshopt/meshopt_encode_vertex_buffer.d.ts.map +1 -0
- package/src/core/binary/meshopt/meshopt_encode_vertex_buffer.js +700 -0
- package/src/core/binary/meshopt/meshopt_write_uint_var.d.ts +24 -0
- package/src/core/binary/meshopt/meshopt_write_uint_var.d.ts.map +1 -0
- package/src/core/binary/meshopt/meshopt_write_uint_var.js +39 -0
- package/src/core/math/random/seededRandom_Mulberry32.d.ts.map +1 -1
- package/src/core/math/random/seededRandom_Mulberry32.js +4 -2
- package/src/core/process/undo/Action.d.ts +19 -0
- package/src/core/process/undo/Action.d.ts.map +1 -1
- package/src/core/process/undo/Action.js +17 -0
- package/src/engine/graphics3/GPUParticleEmitterSystem.d.ts +78 -0
- package/src/engine/graphics3/GPUParticleEmitterSystem.d.ts.map +1 -0
- package/src/engine/graphics3/GPUParticleEmitterSystem.js +310 -0
- package/src/engine/graphics3/GraphicsEngine.d.ts +17 -0
- package/src/engine/graphics3/GraphicsEngine.d.ts.map +1 -1
- package/src/engine/graphics3/GraphicsEngine.js +30 -10
- package/src/engine/graphics3/particles/particle_gpu_records.d.ts.map +1 -1
- package/src/engine/graphics3/particles/particle_gpu_records.js +0 -2
- package/src/engine/interpolation/InterpolationSystem.d.ts +7 -0
- package/src/engine/interpolation/InterpolationSystem.d.ts.map +1 -1
- package/src/engine/interpolation/InterpolationSystem.js +10 -0
- package/src/engine/network/NetworkSession.d.ts.map +1 -1
- package/src/engine/network/NetworkSession.js +14 -34
- package/src/engine/network/time/RenderPlayout.d.ts +76 -0
- package/src/engine/network/time/RenderPlayout.d.ts.map +1 -0
- package/src/engine/network/time/RenderPlayout.js +163 -0
- package/src/engine/network/transport/adapters/WebSocketTransport.d.ts.map +1 -1
- package/src/engine/network/transport/adapters/WebSocketTransport.js +11 -4
- package/src/engine/physics/ecs/PhysicsSystem.d.ts +4 -12
- package/src/engine/physics/ecs/PhysicsSystem.d.ts.map +1 -1
- package/src/engine/physics/ecs/PhysicsSystem.js +39 -13
- package/src/engine/physics/fluid/ecs/FluidObstacleSystem.d.ts +4 -4
- package/src/engine/sound/simulation/core/VolumeField.d.ts.map +1 -1
- package/src/engine/sound/simulation/core/VolumeField.js +4 -1
- package/src/format/scene/gltf/MESHOPT_COMPRESSION_PLAN.md +23 -2
- package/src/shade/playground/particle_system/README.md +139 -139
- package/src/shade/playground/particle_system/particle_prototype.d.ts.map +1 -1
- package/src/shade/playground/particle_system/particle_prototype.js +0 -2
- package/src/shade/playground/particle_system/particle_scene.d.ts +6 -9
- package/src/shade/playground/particle_system/particle_scene.d.ts.map +1 -1
- package/src/shade/playground/particle_system/particle_scene.js +6 -13
- package/src/shade/playground/ssr_reprojection/README.md +103 -0
- package/src/shade/playground/ssr_reprojection/SpatialFilterProbe.d.ts +17 -0
- package/src/shade/playground/ssr_reprojection/SpatialFilterProbe.d.ts.map +1 -0
- package/src/shade/playground/ssr_reprojection/SpatialFilterProbe.js +68 -0
- package/src/shade/playground/ssr_reprojection/index.html +79 -0
- package/src/shade/playground/ssr_reprojection/main.d.ts +2 -0
- package/src/shade/playground/ssr_reprojection/main.d.ts.map +1 -0
- package/src/shade/playground/ssr_reprojection/main.js +245 -0
- package/src/shade/playground/ssr_reprojection/scene.d.ts +18 -0
- package/src/shade/playground/ssr_reprojection/scene.d.ts.map +1 -0
- package/src/shade/playground/ssr_reprojection/scene.js +51 -0
- package/src/shade/renderer/Renderer.d.ts +2 -23
- package/src/shade/renderer/Renderer.d.ts.map +1 -1
- package/src/shade/renderer/Renderer.js +185 -218
- package/src/shade/renderer/animation/GPUAnimationManager.d.ts +5 -8
- package/src/shade/renderer/animation/GPUAnimationManager.d.ts.map +1 -1
- package/src/shade/renderer/animation/GPUAnimationManager.js +12 -12
- package/src/shade/renderer/buffer/table/GPUTypedTable.d.ts.map +1 -1
- package/src/shade/renderer/buffer/table/GPUTypedTable.js +6 -0
- package/src/shade/renderer/buffer/table/single/GPUSingleTypeTable.d.ts.map +1 -1
- package/src/shade/renderer/buffer/table/single/GPUSingleTypeTable.js +7 -0
- package/src/shade/renderer/global_illumination/brick4/gpu/draw/chunk_brick4_sample_specular.d.ts +4 -0
- package/src/shade/renderer/global_illumination/brick4/gpu/draw/chunk_brick4_sample_specular.d.ts.map +1 -0
- package/src/shade/renderer/global_illumination/brick4/gpu/draw/chunk_brick4_sample_specular.js +51 -0
- package/src/shade/renderer/global_illumination/brick4/gpu/draw/shader_brick4_specular.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/brick4/gpu/draw/shader_brick4_specular.js +5 -35
- package/src/shade/renderer/particles/DESIGN.md +703 -514
- package/src/shade/renderer/particles/GPUParticleSystem.d.ts +16 -4
- package/src/shade/renderer/particles/GPUParticleSystem.d.ts.map +1 -1
- package/src/shade/renderer/particles/GPUParticleSystem.js +1189 -991
- package/src/shade/renderer/particles/ParticleConstants.d.ts +64 -0
- package/src/shade/renderer/particles/ParticleConstants.d.ts.map +1 -1
- package/src/shade/renderer/particles/ParticleConstants.js +71 -0
- package/src/shade/renderer/particles/bounds/chunk_particle_bounds.d.ts +57 -0
- package/src/shade/renderer/particles/bounds/chunk_particle_bounds.d.ts.map +1 -0
- package/src/shade/renderer/particles/bounds/chunk_particle_bounds.js +181 -0
- package/src/shade/renderer/particles/bounds/chunk_particle_bounds_unknown.d.ts +7 -0
- package/src/shade/renderer/particles/bounds/chunk_particle_bounds_unknown.d.ts.map +1 -0
- package/src/shade/renderer/particles/bounds/chunk_particle_bounds_unknown.js +12 -0
- package/src/shade/renderer/particles/bounds/graph_particle_bounds.d.ts +33 -0
- package/src/shade/renderer/particles/bounds/graph_particle_bounds.d.ts.map +1 -0
- package/src/shade/renderer/particles/bounds/graph_particle_bounds.js +67 -0
- package/src/shade/renderer/particles/bounds/shader_particle_bounds.d.ts +40 -0
- package/src/shade/renderer/particles/bounds/shader_particle_bounds.d.ts.map +1 -0
- package/src/shade/renderer/particles/bounds/shader_particle_bounds.js +187 -0
- package/src/shade/renderer/particles/coherence/graph_particle_bucket.d.ts +15 -2
- package/src/shade/renderer/particles/coherence/graph_particle_bucket.d.ts.map +1 -1
- package/src/shade/renderer/particles/coherence/graph_particle_bucket.js +14 -8
- package/src/shade/renderer/particles/data/PARTICLE_COUNTERS.d.ts +58 -4
- package/src/shade/renderer/particles/data/PARTICLE_COUNTERS.d.ts.map +1 -1
- package/src/shade/renderer/particles/data/PARTICLE_COUNTERS.js +79 -4
- package/src/shade/renderer/particles/data/PARTICLE_EMITTER_STATE.d.ts +23 -1
- package/src/shade/renderer/particles/data/PARTICLE_EMITTER_STATE.d.ts.map +1 -1
- package/src/shade/renderer/particles/data/PARTICLE_EMITTER_STATE.js +35 -2
- package/src/shade/renderer/particles/data/PARTICLE_EMITTER_STRUCT.d.ts +4 -2
- package/src/shade/renderer/particles/data/PARTICLE_EMITTER_STRUCT.d.ts.map +1 -1
- package/src/shade/renderer/particles/data/PARTICLE_EMITTER_STRUCT.js +5 -8
- package/src/shade/renderer/particles/data/particle_emitter_record.d.ts.map +1 -1
- package/src/shade/renderer/particles/data/particle_emitter_record.js +0 -6
- package/src/shade/renderer/particles/graph_particles.d.ts +25 -3
- package/src/shade/renderer/particles/graph_particles.d.ts.map +1 -1
- package/src/shade/renderer/particles/graph_particles.js +108 -31
- package/src/shade/renderer/particles/graph_particles_avboit.d.ts +6 -4
- package/src/shade/renderer/particles/graph_particles_avboit.d.ts.map +1 -1
- package/src/shade/renderer/particles/graph_particles_avboit.js +5 -5
- package/src/shade/renderer/particles/runtime/EmitterRegistry.d.ts +5 -0
- package/src/shade/renderer/particles/runtime/EmitterRegistry.d.ts.map +1 -1
- package/src/shade/renderer/particles/runtime/EmitterRegistry.js +27 -6
- package/src/shade/renderer/particles/runtime/GPUParticleEmitterContext.d.ts +4 -0
- package/src/shade/renderer/particles/runtime/GPUParticleEmitterContext.d.ts.map +1 -1
- package/src/shade/renderer/particles/runtime/GPUParticleEmitterContext.js +6 -1
- package/src/shade/renderer/particles/runtime/ParticleEmitter.d.ts +35 -27
- package/src/shade/renderer/particles/runtime/ParticleEmitter.d.ts.map +1 -1
- package/src/shade/renderer/particles/runtime/ParticleEmitter.js +424 -425
- package/src/shade/renderer/particles/shaders/chunk_particle_emitter_warmup.d.ts +20 -0
- package/src/shade/renderer/particles/shaders/chunk_particle_emitter_warmup.d.ts.map +1 -0
- package/src/shade/renderer/particles/shaders/chunk_particle_render_math.d.ts +4 -0
- package/src/shade/renderer/particles/shaders/chunk_particle_render_math.d.ts.map +1 -1
- package/src/shade/renderer/particles/shaders/chunk_particle_render_math.js +38 -2
- package/src/shade/renderer/particles/shaders/chunk_particle_spawn_budget.d.ts +22 -0
- package/src/shade/renderer/particles/shaders/chunk_particle_spawn_budget.d.ts.map +1 -0
- package/src/shade/renderer/particles/shaders/chunk_particle_spawn_budget.js +42 -0
- package/src/shade/renderer/particles/shaders/shader_particle_avboit_draw.js +1 -1
- package/src/shade/renderer/particles/shaders/shader_particle_avboit_occupancy.d.ts.map +1 -1
- package/src/shade/renderer/particles/shaders/shader_particle_avboit_occupancy.js +53 -22
- package/src/shade/renderer/particles/shaders/shader_particle_emitter_tick.d.ts.map +1 -1
- package/src/shade/renderer/particles/shaders/shader_particle_emitter_tick.js +213 -216
- package/src/shade/renderer/particles/shaders/shader_particle_reclaim.d.ts +50 -0
- package/src/shade/renderer/particles/shaders/shader_particle_reclaim.d.ts.map +1 -0
- package/src/shade/renderer/particles/shaders/shader_particle_render.js +1 -1
- package/src/shade/renderer/particles/warmup/chunk_particle_warmup_step.d.ts +36 -0
- package/src/shade/renderer/particles/warmup/chunk_particle_warmup_step.d.ts.map +1 -0
- package/src/shade/renderer/particles/warmup/chunk_particle_warmup_step.js +102 -0
- package/src/shade/renderer/particles/warmup/graph_particle_warmup.d.ts +102 -0
- package/src/shade/renderer/particles/warmup/graph_particle_warmup.d.ts.map +1 -0
- package/src/shade/renderer/particles/warmup/graph_particle_warmup.js +329 -0
- package/src/shade/renderer/particles/warmup/shader_particle_warmup.d.ts +112 -0
- package/src/shade/renderer/particles/warmup/shader_particle_warmup.d.ts.map +1 -0
- package/src/shade/renderer/particles/warmup/shader_particle_warmup.js +318 -0
- package/src/shade/renderer/particles/warmup/shader_particle_warmup_advance.d.ts +35 -0
- package/src/shade/renderer/particles/warmup/shader_particle_warmup_advance.d.ts.map +1 -0
- package/src/shade/renderer/particles/warmup/shader_particle_warmup_advance.js +108 -0
- package/src/shade/renderer/particles/warmup/shader_particle_warmup_advance_wide.d.ts +3 -0
- package/src/shade/renderer/particles/warmup/shader_particle_warmup_advance_wide.d.ts.map +1 -0
- package/src/shade/renderer/particles/warmup/shader_particle_warmup_advance_wide.js +70 -0
- package/src/shade/renderer/particles/warmup/warmup_schedule.d.ts +62 -0
- package/src/shade/renderer/particles/warmup/warmup_schedule.d.ts.map +1 -0
- package/src/shade/renderer/particles/warmup/warmup_schedule.js +55 -0
- package/src/shade/renderer/postprocess/PostProcess.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/PostProcess.js +2 -1
- package/src/shade/renderer/postprocess/ssr/REPROJECTION_PROPOSAL.md +286 -0
- package/src/shade/renderer/postprocess/ssr/SSR.d.ts +57 -21
- package/src/shade/renderer/postprocess/ssr/SSR.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/ssr/SSR.js +230 -129
- package/src/shade/renderer/postprocess/ssr/SSRReprojectionMode.d.ts +11 -0
- package/src/shade/renderer/postprocess/ssr/SSRReprojectionMode.d.ts.map +1 -0
- package/src/shade/renderer/postprocess/ssr/SSRReprojectionMode.js +6 -0
- package/src/shade/renderer/postprocess/ssr/chunk_ssr_metadata.d.ts +4 -0
- package/src/shade/renderer/postprocess/ssr/chunk_ssr_metadata.d.ts.map +1 -0
- package/src/shade/renderer/postprocess/ssr/chunk_ssr_metadata.js +32 -0
- package/src/shade/renderer/postprocess/ssr/chunk_ssr_spatial_variance.d.ts +4 -0
- package/src/shade/renderer/postprocess/ssr/chunk_ssr_spatial_variance.d.ts.map +1 -0
- package/src/shade/renderer/postprocess/ssr/chunk_ssr_spatial_variance.js +41 -0
- package/src/shade/renderer/postprocess/ssr/reproject/chunk_ssr_reprojection.d.ts +3 -0
- package/src/shade/renderer/postprocess/ssr/reproject/chunk_ssr_reprojection.d.ts.map +1 -0
- package/src/shade/renderer/postprocess/ssr/reproject/chunk_ssr_reprojection.js +30 -0
- package/src/shade/renderer/postprocess/ssr/reproject/chunk_ssr_sample_history.d.ts +4 -0
- package/src/shade/renderer/postprocess/ssr/reproject/chunk_ssr_sample_history.d.ts.map +1 -0
- package/src/shade/renderer/postprocess/ssr/reproject/chunk_ssr_sample_history.js +70 -0
- package/src/shade/renderer/postprocess/ssr/resolve/build_ssr_resolve_shader.d.ts +21 -0
- package/src/shade/renderer/postprocess/ssr/resolve/build_ssr_resolve_shader.d.ts.map +1 -0
- package/src/shade/renderer/postprocess/ssr/resolve/build_ssr_resolve_shader.js +363 -0
- package/src/shade/renderer/postprocess/ssr/resolve/chunk_get_neighbour_weight.js +1 -1
- package/src/shade/renderer/postprocess/ssr/resolve/ssr_resolve_shader_Brick4.d.ts +2 -0
- package/src/shade/renderer/postprocess/ssr/resolve/ssr_resolve_shader_Brick4.d.ts.map +1 -0
- package/src/shade/renderer/postprocess/ssr/resolve/ssr_resolve_shader_Brick4.js +24 -0
- package/src/shade/renderer/postprocess/ssr/resolve/ssr_resolve_shader_IBL.d.ts +1 -6
- package/src/shade/renderer/postprocess/ssr/resolve/ssr_resolve_shader_IBL.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/ssr/resolve/ssr_resolve_shader_IBL.js +16 -332
- package/src/shade/renderer/postprocess/ssr/resolve/ssr_resolve_shader_LPV.d.ts +1 -6
- package/src/shade/renderer/postprocess/ssr/resolve/ssr_resolve_shader_LPV.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/ssr/resolve/ssr_resolve_shader_LPV.js +25 -358
- package/src/shade/renderer/postprocess/ssr/ssr_reproject_shader.d.ts +0 -5
- package/src/shade/renderer/postprocess/ssr/ssr_reproject_shader.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/ssr/ssr_reproject_shader.js +201 -276
- package/src/shade/renderer/postprocess/ssr/ssr_spatial_denoise_shader.d.ts +1 -0
- package/src/shade/renderer/postprocess/ssr/ssr_spatial_denoise_shader.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/ssr/ssr_spatial_denoise_shader.js +167 -143
- package/src/shade/renderer/shader/graph/graph_create_buffer.d.ts +15 -0
- package/src/shade/renderer/shader/graph/graph_create_buffer.d.ts.map +1 -0
- package/src/shade/renderer/shader/graph/graph_create_buffer.js +20 -0
- package/src/shade/renderer/view/GPUViewContext.d.ts +3 -4
- package/src/shade/renderer/view/GPUViewContext.d.ts.map +1 -1
- package/src/shade/renderer/view/GPUViewContext.js +5 -5
- package/src/core/binary/meshopt/__meshopt_test_streams.d.ts +0 -24
- package/src/core/binary/meshopt/__meshopt_test_streams.d.ts.map +0 -1
- package/src/core/binary/meshopt/__meshopt_test_streams.js +0 -237
- package/src/core/geom/3d/atlas/atlas_test_fixtures.d.ts +0 -84
- package/src/core/geom/3d/atlas/atlas_test_fixtures.d.ts.map +0 -1
- package/src/core/geom/3d/atlas/atlas_test_fixtures.js +0 -266
- package/src/engine/asset/loaders/gltf_test_fixtures.d.ts +0 -97
- package/src/engine/asset/loaders/gltf_test_fixtures.d.ts.map +0 -1
- package/src/engine/asset/loaders/gltf_test_fixtures.js +0 -359
- package/src/engine/sound/simulation/core/OcclusionSolver.d.ts +0 -29
- package/src/engine/sound/simulation/core/OcclusionSolver.d.ts.map +0 -1
- package/src/shade/renderer/animation/skin_test_fixtures.d.ts +0 -86
- package/src/shade/renderer/animation/skin_test_fixtures.d.ts.map +0 -1
- package/src/shade/renderer/animation/skin_test_fixtures.js +0 -250
- package/src/shade/renderer/geometry/virtual/format/attribute/vgeo_layers_test_fixtures.d.ts +0 -16
- package/src/shade/renderer/geometry/virtual/format/attribute/vgeo_layers_test_fixtures.d.ts.map +0 -1
- package/src/shade/renderer/geometry/virtual/format/attribute/vgeo_layers_test_fixtures.js +0 -27
- package/src/shade/renderer/particles/particle_test_fixtures.d.ts +0 -151
- package/src/shade/renderer/particles/particle_test_fixtures.d.ts.map +0 -1
- package/src/shade/renderer/particles/particle_test_fixtures.js +0 -229
- package/src/shade/renderer/particles/shaders/chunk_particle_emitter_world_sphere.js +0 -23
- package/src/shade/renderer/postprocess/ssr/reproject/shader_ffx_denoiser_reflections_reproject.js +0 -457
|
@@ -6,6 +6,20 @@ declare class ToolEngine {
|
|
|
6
6
|
isRunning: boolean;
|
|
7
7
|
shutdownCallbacks: any[];
|
|
8
8
|
pointer: any;
|
|
9
|
+
/**
|
|
10
|
+
* Fired with the tool when a gesture starts (primary-button press accepted by a tool).
|
|
11
|
+
* @type {Signal}
|
|
12
|
+
*/
|
|
13
|
+
onGestureStart: Signal;
|
|
14
|
+
/**
|
|
15
|
+
* Fired with the tool when its gesture ends (the paired release), after `tool.stop()`.
|
|
16
|
+
* @type {Signal}
|
|
17
|
+
*/
|
|
18
|
+
onGestureEnd: Signal;
|
|
19
|
+
/**
|
|
20
|
+
* @returns {boolean}
|
|
21
|
+
*/
|
|
22
|
+
get gesture_active(): boolean;
|
|
9
23
|
activate(toolName: any): void;
|
|
10
24
|
initialize(): void;
|
|
11
25
|
/**
|
|
@@ -15,8 +29,24 @@ declare class ToolEngine {
|
|
|
15
29
|
*/
|
|
16
30
|
startup(engine: Engine, editor: Editor): void;
|
|
17
31
|
editor: Editor;
|
|
32
|
+
/**
|
|
33
|
+
* End the gesture in progress, if any: `tool.stop()`, then the flag and the signal whatever
|
|
34
|
+
* stop did. The paired release calls it; so does {@link shutdown}, since a tool torn down
|
|
35
|
+
* mid-gesture must still get its stop, and a host that closes a record per gesture (the
|
|
36
|
+
* scene editor's project session) must hear the end.
|
|
37
|
+
*/
|
|
38
|
+
/**
|
|
39
|
+
* Hand a gesture to a tool: the flag goes up, the signal fires, the tool starts. The pointer's
|
|
40
|
+
* primary press calls it; so may a host that drives a tool without a pointer (a scripted
|
|
41
|
+
* stroke, a spec). A gesture already in progress ends first.
|
|
42
|
+
* @param {Tool} tool
|
|
43
|
+
*/
|
|
44
|
+
start_gesture(tool: Tool): void;
|
|
45
|
+
end_gesture(): void;
|
|
18
46
|
shutdown(): void;
|
|
47
|
+
#private;
|
|
19
48
|
}
|
|
20
49
|
import List from '../../../src/core/collection/list/List.js';
|
|
21
50
|
import ObservedValue from '../../../src/core/model/ObservedValue.js';
|
|
51
|
+
import Signal from '../../../src/core/events/signal/Signal.js';
|
|
22
52
|
//# sourceMappingURL=ToolEngine.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToolEngine.d.ts","sourceRoot":"","sources":["../../../../editor/tools/engine/ToolEngine.js"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"ToolEngine.d.ts","sourceRoot":"","sources":["../../../../editor/tools/engine/ToolEngine.js"],"names":[],"mappings":";AAYA;IACI,iBAAmB;IACnB,sBAAiC;IACjC,YAAc;IACd,mBAAkB;IAClB,yBAAuB;IACvB,aAAe;IA2Bf;;;OAGG;IACH,gBAFU,MAAM,CAEc;IAE9B;;;OAGG;IACH,cAFU,MAAM,CAEY;IAE5B;;OAEG;IACH,8BAEC;IAED,8BAOC;IAED,mBA8BC;IAED;;;;OAIG;IACH,8CA2EC;IAzEG,eAAoB;IA2ExB;;;;;OAKG;IACH;;;;;OAKG;IACH,gCAUC;IAED,oBAeC;IAED,iBAwBC;;CACJ;iBA7PgB,2CAA2C;0BAElC,0CAA0C;mBADjD,2CAA2C"}
|
|
@@ -1,188 +1,257 @@
|
|
|
1
|
-
import List from '../../../src/core/collection/list/List.js';
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
import
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
*
|
|
23
|
-
* @
|
|
24
|
-
* @property {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
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
|
-
this.
|
|
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
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
1
|
+
import List from '../../../src/core/collection/list/List.js';
|
|
2
|
+
import Signal from '../../../src/core/events/signal/Signal.js';
|
|
3
|
+
import ObservedValue from '../../../src/core/model/ObservedValue.js';
|
|
4
|
+
import { decodeMouseEventButtons } from "../../../src/engine/input/devices/mouse/decodeMouseEventButtons.js";
|
|
5
|
+
import { PointerDevice } from '../../../src/engine/input/devices/PointerDevice.js';
|
|
6
|
+
import GridPaintTool from "../GridPaintTool.js";
|
|
7
|
+
import { TerrainHeightPaintTool } from "../paint/TerrainHeightPaintTool.js";
|
|
8
|
+
import { TerrainTexturePaintTool } from "../paint/TerrainTexturePaintTool.js";
|
|
9
|
+
|
|
10
|
+
import SelectionTool from '../SelectionTool.js';
|
|
11
|
+
import { TransformToolV2 } from "../TransformToolV2.js";
|
|
12
|
+
|
|
13
|
+
class ToolEngine {
|
|
14
|
+
tools = new List();
|
|
15
|
+
active = new ObservedValue(null);
|
|
16
|
+
engine = null;
|
|
17
|
+
isRunning = false;
|
|
18
|
+
shutdownCallbacks = [];
|
|
19
|
+
pointer = null;
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
*
|
|
23
|
+
* @constructor
|
|
24
|
+
* @property {List.<Tool>} tools
|
|
25
|
+
* @property {ObservedValue.<Tool>} active
|
|
26
|
+
*/
|
|
27
|
+
constructor() {}
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* True from the press that hands a gesture to a tool until the release that ends it. A host
|
|
31
|
+
* grouping actions into one undo step per gesture (a brush stroke is one step, however many
|
|
32
|
+
* dabs) reads this rather than second-guessing the pointer.
|
|
33
|
+
* @type {boolean}
|
|
34
|
+
*/
|
|
35
|
+
#gesture_active = false;
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* The tool a gesture was handed to by the last accepted press, null between gestures.
|
|
39
|
+
* `stop()` finishes work `start()` began — a marquee, a brush stroke — so it must only ever
|
|
40
|
+
* run against the press it pairs with. Camera navigation shares this viewport and presses
|
|
41
|
+
* the other buttons constantly.
|
|
42
|
+
* @type {Tool|null}
|
|
43
|
+
*/
|
|
44
|
+
#gesture_tool = null;
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Fired with the tool when a gesture starts (primary-button press accepted by a tool).
|
|
48
|
+
* @type {Signal}
|
|
49
|
+
*/
|
|
50
|
+
onGestureStart = new Signal();
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Fired with the tool when its gesture ends (the paired release), after `tool.stop()`.
|
|
54
|
+
* @type {Signal}
|
|
55
|
+
*/
|
|
56
|
+
onGestureEnd = new Signal();
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* @returns {boolean}
|
|
60
|
+
*/
|
|
61
|
+
get gesture_active() {
|
|
62
|
+
return this.#gesture_active;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
activate(toolName) {
|
|
66
|
+
const self = this;
|
|
67
|
+
this.tools.visitFirstMatch(function (tool) {
|
|
68
|
+
return tool.name === toolName;
|
|
69
|
+
}, function (tool) {
|
|
70
|
+
self.active.set(tool);
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
initialize() {
|
|
75
|
+
|
|
76
|
+
this.active.onChanged.add((newTool, oldTool) => {
|
|
77
|
+
if (oldTool !== null && typeof oldTool === "object") {
|
|
78
|
+
oldTool.finalize();
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
if (newTool !== null && typeof newTool === "object") {
|
|
82
|
+
newTool.editor = this.editor;
|
|
83
|
+
newTool.engine = this.engine;
|
|
84
|
+
|
|
85
|
+
newTool.initialize();
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
|
|
89
|
+
const terrainPaintToolRaise = new TerrainHeightPaintTool();
|
|
90
|
+
terrainPaintToolRaise.name = "terrain-height";
|
|
91
|
+
|
|
92
|
+
const terrainTexturePaintTool = new TerrainTexturePaintTool();
|
|
93
|
+
terrainTexturePaintTool.name = "terrain-texture";
|
|
94
|
+
|
|
95
|
+
const tools = this.tools;
|
|
96
|
+
tools
|
|
97
|
+
.add(new SelectionTool())
|
|
98
|
+
.add(new GridPaintTool())
|
|
99
|
+
.add(terrainPaintToolRaise)
|
|
100
|
+
.add(terrainTexturePaintTool)
|
|
101
|
+
;
|
|
102
|
+
|
|
103
|
+
tools.add(new TransformToolV2());
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
*
|
|
108
|
+
* @param {Engine} engine
|
|
109
|
+
* @param {Editor} editor
|
|
110
|
+
*/
|
|
111
|
+
startup(engine, editor) {
|
|
112
|
+
this.engine = engine;
|
|
113
|
+
this.editor = editor;
|
|
114
|
+
this.isRunning = true;
|
|
115
|
+
|
|
116
|
+
const self = this;
|
|
117
|
+
|
|
118
|
+
// tools tick with the engine, not on a private animation loop
|
|
119
|
+
function update(delta) {
|
|
120
|
+
const tool = self.active.get();
|
|
121
|
+
|
|
122
|
+
if (tool !== null) {
|
|
123
|
+
tool.update(delta);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
engine.ticker.onTick.add(update);
|
|
128
|
+
|
|
129
|
+
this.shutdownCallbacks.push(function () {
|
|
130
|
+
engine.ticker.onTick.remove(update);
|
|
131
|
+
});
|
|
132
|
+
|
|
133
|
+
const graphics = engine.graphics;
|
|
134
|
+
|
|
135
|
+
if (graphics === null || graphics.domElement === undefined || graphics.domElement === null) {
|
|
136
|
+
// headless engine: no viewport to receive pointer input
|
|
137
|
+
return;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
const pointer = this.pointer = new PointerDevice(graphics.domElement);
|
|
141
|
+
|
|
142
|
+
//hook up interaction controls
|
|
143
|
+
function pointerDown(position, event) {
|
|
144
|
+
const tool = self.active.get();
|
|
145
|
+
if (tool !== null) {
|
|
146
|
+
tool.modifiers.shift = event.shiftKey;
|
|
147
|
+
|
|
148
|
+
if (typeof event.buttons === "number") {
|
|
149
|
+
const decodedButtons = decodeMouseEventButtons(event.buttons);
|
|
150
|
+
|
|
151
|
+
const isPrimaryPressed = decodedButtons[0];
|
|
152
|
+
|
|
153
|
+
if (!isPrimaryPressed) {
|
|
154
|
+
//tools own the primary button only; navigation owns the rest
|
|
155
|
+
return;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
self.start_gesture(tool);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
function pointerUp(position, event) {
|
|
165
|
+
self.end_gesture();
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
|
|
169
|
+
pointer.on.down.add(pointerDown);
|
|
170
|
+
|
|
171
|
+
// a release outside the viewport still ends the gesture: dragging a marquee or a brush
|
|
172
|
+
// stroke past the edge of the canvas and letting go there is ordinary, and the tool
|
|
173
|
+
// would otherwise stay running until the next release that happened to land inside
|
|
174
|
+
pointer.on.globalUp.add(pointerUp);
|
|
175
|
+
|
|
176
|
+
pointer.start();
|
|
177
|
+
|
|
178
|
+
|
|
179
|
+
function cleanup() {
|
|
180
|
+
pointer.on.down.remove(pointerDown);
|
|
181
|
+
pointer.on.globalUp.remove(pointerUp);
|
|
182
|
+
pointer.stop();
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
this.shutdownCallbacks.push(cleanup);
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
/**
|
|
189
|
+
* End the gesture in progress, if any: `tool.stop()`, then the flag and the signal whatever
|
|
190
|
+
* stop did. The paired release calls it; so does {@link shutdown}, since a tool torn down
|
|
191
|
+
* mid-gesture must still get its stop, and a host that closes a record per gesture (the
|
|
192
|
+
* scene editor's project session) must hear the end.
|
|
193
|
+
*/
|
|
194
|
+
/**
|
|
195
|
+
* Hand a gesture to a tool: the flag goes up, the signal fires, the tool starts. The pointer's
|
|
196
|
+
* primary press calls it; so may a host that drives a tool without a pointer (a scripted
|
|
197
|
+
* stroke, a spec). A gesture already in progress ends first.
|
|
198
|
+
* @param {Tool} tool
|
|
199
|
+
*/
|
|
200
|
+
start_gesture(tool) {
|
|
201
|
+
if (this.#gesture_tool !== null) {
|
|
202
|
+
this.end_gesture();
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
this.#gesture_tool = tool;
|
|
206
|
+
this.#gesture_active = true;
|
|
207
|
+
this.onGestureStart.send1(tool);
|
|
208
|
+
|
|
209
|
+
tool.start();
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
end_gesture() {
|
|
213
|
+
const tool = this.#gesture_tool;
|
|
214
|
+
|
|
215
|
+
this.#gesture_tool = null;
|
|
216
|
+
|
|
217
|
+
if (tool === null) {
|
|
218
|
+
return;
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
try {
|
|
222
|
+
tool.stop();
|
|
223
|
+
} finally {
|
|
224
|
+
this.#gesture_active = false;
|
|
225
|
+
this.onGestureEnd.send1(tool);
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
shutdown() {
|
|
230
|
+
// before the tool is deactivated: its stop hook may still commit through the editor. A
|
|
231
|
+
// hook that throws has still ended its gesture; the teardown goes on
|
|
232
|
+
try {
|
|
233
|
+
this.end_gesture();
|
|
234
|
+
} catch (e) {
|
|
235
|
+
console.error(`ToolEngine.shutdown: the gesture's stop hook failed: ${e.message}`);
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
this.isRunning = false;
|
|
239
|
+
const toolProxy = this.active;
|
|
240
|
+
|
|
241
|
+
const tool = toolProxy.getValue();
|
|
242
|
+
|
|
243
|
+
if (tool !== null) {
|
|
244
|
+
toolProxy.set(null);
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
//execute cleanup
|
|
248
|
+
this.shutdownCallbacks.forEach(function (cb) {
|
|
249
|
+
cb();
|
|
250
|
+
});
|
|
251
|
+
|
|
252
|
+
this.shutdownCallbacks = [];
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
|
|
257
|
+
export default ToolEngine;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntityList.d.ts","sourceRoot":"","sources":["../../../../editor/view/ecs/EntityList.js"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"EntityList.d.ts","sourceRoot":"","sources":["../../../../editor/view/ecs/EntityList.js"],"names":[],"mappings":";AA6DA;IAGI;;;;OAIG;IACH,4CAmJC;IA1JD,mBAAmC;IAgB3B,OAAY;IAQhB,eAAoB;IAuGpB;;;;;;MAUC;IAmBL,eAEC;CAsCJ;iBA1PgB,2BAA2B"}
|
|
@@ -8,6 +8,7 @@ import ButtonView from '../../../src/view/elements/button/ButtonView.js';
|
|
|
8
8
|
import EmptyView from "../../../src/view/elements/EmptyView.js";
|
|
9
9
|
import View from "../../../src/view/View.js";
|
|
10
10
|
|
|
11
|
+
import EntityCreateAction from '../../actions/concrete/EntityCreateAction.js';
|
|
11
12
|
import SelectionAddAction from '../../actions/concrete/SelectionAddAction.js';
|
|
12
13
|
import SelectionRemoveAction from '../../actions/concrete/SelectionRemoveAction.js';
|
|
13
14
|
|
|
@@ -133,11 +134,11 @@ class EntityListView extends View {
|
|
|
133
134
|
const actionAdd = {
|
|
134
135
|
name: "Add",
|
|
135
136
|
action: function () {
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
137
|
+
// through an action: undoable, and a host that leases entity ids assigns one before
|
|
138
|
+
// apply (a direct createEntity would take the lowest free id and bypass both)
|
|
139
|
+
const actions = editor.actions;
|
|
140
|
+
actions.mark('add entity');
|
|
141
|
+
actions.do(new EntityCreateAction());
|
|
141
142
|
}
|
|
142
143
|
};
|
|
143
144
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ParticleEmitterInspectorView.d.ts","sourceRoot":"","sources":["../../../../../editor/view/particles/effect/ParticleEmitterInspectorView.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ParticleEmitterInspectorView.d.ts","sourceRoot":"","sources":["../../../../../editor/view/particles/effect/ParticleEmitterInspectorView.js"],"names":[],"mappings":"AAyEA;IAkDI;;;OAGG;IACH;QAFyG,MAAM,EAApG,OAAO,qDAAqD,EAAE,sBAAsB;OAqC9F;IAhCG,mBAAuC;IAIvC;;OAEG;IACH,QAFU,OAAO,qDAAqD,EAAE,sBAAsB,CAE1E;IA2BxB;;;;;;OAMG;IACH,gBAiBC;;CAiZJ;iBAnkBgB,8BAA8B"}
|
|
@@ -12,8 +12,12 @@ import View from "../../../../src/view/View.js";
|
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
14
|
* Everything about an effect that is not its simulation: how fast it emits, how its particles are
|
|
15
|
-
* blended and oriented, which per-particle attribute drives which render channel,
|
|
16
|
-
*
|
|
15
|
+
* blended and oriented, which per-particle attribute drives which render channel, and the attribute
|
|
16
|
+
* schema those channels can name.
|
|
17
|
+
*
|
|
18
|
+
* There is nothing here for bounds. An emitter has none to declare — the box the culling and
|
|
19
|
+
* occupancy passes use is measured from the live particles on the GPU — so the one bounds-related
|
|
20
|
+
* control an author gets is the `cull` toggle.
|
|
17
21
|
*
|
|
18
22
|
* It belongs to neither editing layer, and both need it — a program that writes `position` does
|
|
19
23
|
* nothing visible until something says that `position` is what the renderer should place the quad
|
|
@@ -41,12 +45,13 @@ const NUMERIC_FIELDS = [
|
|
|
41
45
|
help: "Particles per second. Integrated on the GPU — the CPU never counts particles.",
|
|
42
46
|
},
|
|
43
47
|
{
|
|
44
|
-
key: "
|
|
45
|
-
label: "
|
|
48
|
+
key: "prewarm",
|
|
49
|
+
label: "pre-warm",
|
|
46
50
|
min: 0,
|
|
47
51
|
step: 0.1,
|
|
48
|
-
help: "
|
|
49
|
-
+ "
|
|
52
|
+
help: "Seconds the effect is run forward before it is first shown, so a continuous one arrives "
|
|
53
|
+
+ "at its steady population instead of growing into it. About the particle lifetime is "
|
|
54
|
+
+ "enough; longer only costs a longer warm-up on the frame the effect appears. 0 is off.",
|
|
50
55
|
},
|
|
51
56
|
];
|
|
52
57
|
|
|
@@ -58,7 +63,12 @@ const FLAG_FIELDS = [
|
|
|
58
63
|
{ key: "lighting", label: "lighting", help: "Forward-shade the billboards with scene lighting." },
|
|
59
64
|
{ key: "soft_depth", label: "soft depth", help: "Fade against scene depth instead of cutting into it." },
|
|
60
65
|
{ key: "sort", label: "sort", help: "Depth-sort this emitter's particles." },
|
|
61
|
-
{
|
|
66
|
+
{
|
|
67
|
+
key: "cull",
|
|
68
|
+
label: "cull",
|
|
69
|
+
help: "Sleep the simulation when the emitter is out of view. The box tested is measured from "
|
|
70
|
+
+ "the live particles on the GPU, so there is nothing here to size by hand.",
|
|
71
|
+
},
|
|
62
72
|
];
|
|
63
73
|
|
|
64
74
|
export class ParticleEmitterInspectorView extends View {
|
|
@@ -212,8 +222,6 @@ export class ParticleEmitterInspectorView extends View {
|
|
|
212
222
|
section.addChild(this.#numericRow(field));
|
|
213
223
|
}
|
|
214
224
|
|
|
215
|
-
section.addChild(this.#vectorRow("bounds centre", "bounds_center", 3));
|
|
216
|
-
|
|
217
225
|
return section;
|
|
218
226
|
}
|
|
219
227
|
|
package/package.json
CHANGED
|
@@ -162,8 +162,7 @@ grep -rln "binary/lz4\|binary/zstd" --include=*.js . | grep -v "^./core/binary/"
|
|
|
162
162
|
# shade/renderer/geometry/virtual/format/frame/vgeo_*.js (zstd, three files)
|
|
163
163
|
# shade/renderer/loader/usd/usd_lz4.js (lz4)
|
|
164
164
|
grep -rn "binary/meshopt" --include=*.js . | grep -v "^./core/binary/meshopt/" | grep -v spec
|
|
165
|
-
#
|
|
166
|
-
# engine/asset/loaders/gltf_test_fixtures.js (test-only encoder)
|
|
165
|
+
# format/scene/gltf/ext/meshopt/MeshoptBufferViewExtension.js (three imports)
|
|
167
166
|
```
|
|
168
167
|
|
|
169
168
|
zstd is shared between KTX2 and the virtual-geometry frame format; lz4 is USD-only today; meshopt is
|