@woosh/meep-engine 3.29.0 → 3.30.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/build/bundle-worker-image-decoder.js +1 -1
- package/build/bundle-worker-terrain.js +1 -1
- package/package.json +1 -1
- package/src/core/binary/BinaryBuffer.d.ts.map +1 -1
- package/src/core/binary/BinaryBuffer.js +14 -2
- package/src/core/bvh2/bvh3/BVH.d.ts.map +1 -1
- package/src/core/bvh2/bvh3/BVH.js +14 -1
- package/src/core/cache/FrequencySketch.d.ts +3 -1
- package/src/core/cache/FrequencySketch.d.ts.map +1 -1
- package/src/core/cache/FrequencySketch.js +10 -4
- package/src/core/cache/wtinylfu/CacheWTinylfu.d.ts.map +1 -1
- package/src/core/cache/wtinylfu/CacheWTinylfu.js +24 -2
- package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_compute_vertex_quadrics.d.ts +20 -0
- package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_compute_vertex_quadrics.d.ts.map +1 -1
- package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_compute_vertex_quadrics.js +69 -4
- package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_simplify.d.ts +48 -18
- package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_simplify.d.ts.map +1 -1
- package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_simplify.js +262 -70
- package/src/core/geom/3d/topology/struct/binary/query/bt_edge_collapse_fold_limit.d.ts +25 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_edge_collapse_fold_limit.d.ts.map +1 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_edge_collapse_fold_limit.js +228 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_edge_collapse_would_fold.d.ts +13 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_edge_collapse_would_fold.d.ts.map +1 -1
- package/src/core/geom/3d/topology/struct/binary/query/bt_edge_collapse_would_fold.js +10 -128
- package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_build_face_bvh.d.ts.map +1 -1
- package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_build_face_bvh.js +11 -1
- package/src/core/graph/mn_graph_collapse_weighted_edge.js +6 -6
- package/src/core/math/lookup/ParameterLookupTable.d.ts.map +1 -1
- package/src/core/math/lookup/ParameterLookupTable.js +10 -5
- package/src/core/math/noise/sdnoise.d.ts.map +1 -1
- package/src/core/math/noise/sdnoise.js +16 -10
- package/src/core/model/object/ImmutableObjectPool.d.ts.map +1 -1
- package/src/core/model/object/ImmutableObjectPool.js +17 -7
- package/src/core/process/executor/ConcurrentExecutor.d.ts +1 -5
- package/src/core/process/executor/ConcurrentExecutor.d.ts.map +1 -1
- package/src/core/process/executor/ConcurrentExecutor.js +95 -1
- package/src/core/process/task/task_find_dependency_cycle.d.ts +17 -0
- package/src/core/process/task/task_find_dependency_cycle.d.ts.map +1 -0
- package/src/core/process/task/task_find_dependency_cycle.js +81 -0
- package/src/core/wfc/WFCCellChoice.d.ts +17 -0
- package/src/core/wfc/WFCCellChoice.d.ts.map +1 -0
- package/src/core/wfc/WFCCellChoice.js +36 -0
- package/src/core/wfc/WFCLattice.d.ts +105 -0
- package/src/core/wfc/WFCLattice.d.ts.map +1 -0
- package/src/core/wfc/WFCLattice.js +235 -0
- package/src/core/wfc/WFCRuleTable.d.ts +172 -0
- package/src/core/wfc/WFCRuleTable.d.ts.map +1 -0
- package/src/core/wfc/WFCRuleTable.js +334 -0
- package/src/core/wfc/WFCState.d.ts +273 -0
- package/src/core/wfc/WFCState.d.ts.map +1 -0
- package/src/core/wfc/WFCState.js +552 -0
- package/src/core/wfc/WFCStatus.d.ts +11 -0
- package/src/core/wfc/WFCStatus.d.ts.map +1 -0
- package/src/core/wfc/WFCStatus.js +28 -0
- package/src/core/wfc/WFCTileWeights.d.ts +48 -0
- package/src/core/wfc/WFCTileWeights.d.ts.map +1 -0
- package/src/core/wfc/WFCTileWeights.js +86 -0
- package/src/core/wfc/WFC_UNRESOLVED.d.ts +12 -0
- package/src/core/wfc/WFC_UNRESOLVED.d.ts.map +1 -0
- package/src/core/wfc/WFC_UNRESOLVED.js +11 -0
- package/src/core/wfc/wfc_estimate_bytes.d.ts +24 -0
- package/src/core/wfc/wfc_estimate_bytes.d.ts.map +1 -0
- package/src/core/wfc/wfc_estimate_bytes.js +47 -0
- package/src/core/wfc/wfc_rule_table_tile_components.d.ts +27 -0
- package/src/core/wfc/wfc_rule_table_tile_components.d.ts.map +1 -0
- package/src/core/wfc/wfc_rule_table_tile_components.js +80 -0
- package/src/core/wfc/wfc_solve.d.ts +21 -0
- package/src/core/wfc/wfc_solve.d.ts.map +1 -0
- package/src/core/wfc/wfc_solve.js +154 -0
- package/src/core/wfc/wfc_state_apply_boundary.d.ts +18 -0
- package/src/core/wfc/wfc_state_apply_boundary.d.ts.map +1 -0
- package/src/core/wfc/wfc_state_apply_boundary.js +61 -0
- package/src/core/wfc/wfc_state_assign.d.ts +11 -0
- package/src/core/wfc/wfc_state_assign.d.ts.map +1 -0
- package/src/core/wfc/wfc_state_assign.js +36 -0
- package/src/core/wfc/wfc_state_ban_bits.d.ts +17 -0
- package/src/core/wfc/wfc_state_ban_bits.d.ts.map +1 -0
- package/src/core/wfc/wfc_state_ban_bits.js +81 -0
- package/src/core/wfc/wfc_state_collapse.d.ts +12 -0
- package/src/core/wfc/wfc_state_collapse.d.ts.map +1 -0
- package/src/core/wfc/wfc_state_collapse.js +73 -0
- package/src/core/wfc/wfc_state_flush_dirty.d.ts +12 -0
- package/src/core/wfc/wfc_state_flush_dirty.d.ts.map +1 -0
- package/src/core/wfc/wfc_state_flush_dirty.js +39 -0
- package/src/core/wfc/wfc_state_propagate.d.ts +14 -0
- package/src/core/wfc/wfc_state_propagate.d.ts.map +1 -0
- package/src/core/wfc/wfc_state_propagate.js +155 -0
- package/src/core/wfc/wfc_state_read.d.ts +11 -0
- package/src/core/wfc/wfc_state_read.d.ts.map +1 -0
- package/src/core/wfc/wfc_state_read.js +38 -0
- package/src/core/wfc/wfc_state_restrict.d.ts +18 -0
- package/src/core/wfc/wfc_state_restrict.d.ts.map +1 -0
- package/src/core/wfc/wfc_state_restrict.js +39 -0
- package/src/core/wfc/wfc_state_set_eligible.d.ts +24 -0
- package/src/core/wfc/wfc_state_set_eligible.d.ts.map +1 -0
- package/src/core/wfc/wfc_state_set_eligible.js +49 -0
- package/src/core/wfc/wfc_state_undo_to.d.ts +13 -0
- package/src/core/wfc/wfc_state_undo_to.d.ts.map +1 -0
- package/src/core/wfc/wfc_state_undo_to.js +84 -0
- package/src/core/wfc/wfc_words_per_cell.d.ts +11 -0
- package/src/core/wfc/wfc_words_per_cell.d.ts.map +1 -0
- package/src/core/wfc/wfc_words_per_cell.js +16 -0
- package/src/engine/ecs/EntityComponentDataset.d.ts +8 -0
- package/src/engine/ecs/EntityComponentDataset.d.ts.map +1 -1
- package/src/engine/ecs/EntityComponentDataset.js +37 -14
- package/src/engine/ecs/fow/FogOfWarRevealerSystem.d.ts +8 -1
- package/src/engine/ecs/fow/FogOfWarRevealerSystem.d.ts.map +1 -1
- package/src/engine/ecs/fow/FogOfWarRevealerSystem.js +37 -2
- package/src/engine/ecs/guid/UUID.d.ts.map +1 -1
- package/src/engine/ecs/guid/UUID.js +45 -17
- package/src/engine/ecs/ik/OneBoneSurfaceAlignmentSolver.d.ts.map +1 -1
- package/src/engine/ecs/ik/OneBoneSurfaceAlignmentSolver.js +3 -1
- package/src/engine/ecs/terrain/ecs/cling/ClingToTerrainSystem.d.ts.map +1 -1
- package/src/engine/ecs/terrain/ecs/cling/ClingToTerrainSystem.js +366 -360
- package/src/engine/graphics/texture/sampler/resize/sampler2d_scale_down_linear.d.ts.map +1 -1
- package/src/engine/graphics/texture/sampler/resize/sampler2d_scale_down_linear.js +24 -10
- package/src/engine/grid/grid2transform/GridPosition2TransformSystem.d.ts.map +1 -1
- package/src/engine/grid/grid2transform/GridPosition2TransformSystem.js +24 -5
- package/src/engine/interpolation/Interpoland.d.ts +7 -1
- package/src/engine/interpolation/Interpoland.d.ts.map +1 -1
- package/src/engine/interpolation/Interpoland.js +8 -1
- package/src/engine/interpolation/InterpolationSystem.d.ts.map +1 -1
- package/src/engine/interpolation/InterpolationSystem.js +3 -0
- package/src/engine/interpolation/TransformPoseSerializationAdapter.d.ts +5 -3
- package/src/engine/interpolation/TransformPoseSerializationAdapter.d.ts.map +1 -1
- package/src/engine/interpolation/TransformPoseSerializationAdapter.js +14 -3
- package/src/engine/interpolation/pose_interpoland.d.ts.map +1 -1
- package/src/engine/interpolation/pose_interpoland.js +2 -0
- package/src/engine/network/orchestrator/NetworkPeer.d.ts.map +1 -1
- package/src/engine/network/orchestrator/NetworkPeer.js +15 -10
- package/src/engine/physics/cloth/ecs/ClothWorld.d.ts.map +1 -1
- package/src/engine/physics/cloth/ecs/ClothWorld.js +17 -0
- package/src/engine/physics/mls-mpm/MLS_MPM.d.ts.map +1 -1
- package/src/engine/physics/mls-mpm/MLS_MPM.js +14 -0
- package/src/engine/sound/sopra/definition/clip/AbstractAudioClip.d.ts +2 -1
- package/src/engine/sound/sopra/definition/clip/AbstractAudioClip.d.ts.map +1 -1
- package/src/engine/sound/sopra/definition/clip/AbstractAudioClip.js +1 -1
- package/src/engine/sound/sopra/definition/clip/BlendContainerAudioClip.d.ts +1 -0
- package/src/engine/sound/sopra/definition/clip/BlendContainerAudioClip.d.ts.map +1 -1
- package/src/engine/sound/sopra/definition/clip/RandomContainerAudioClip.d.ts +1 -0
- package/src/engine/sound/sopra/definition/clip/RandomContainerAudioClip.d.ts.map +1 -1
- package/src/engine/sound/sopra/definition/clip/SampleAudioClip.d.ts +2 -1
- package/src/engine/sound/sopra/definition/clip/SampleAudioClip.d.ts.map +1 -1
- package/src/engine/sound/sopra/definition/clip/SampleAudioClip.js +12 -3
- package/src/engine/sound/sopra/definition/clip/SequenceContainerAudioClip.d.ts +1 -0
- package/src/engine/sound/sopra/definition/clip/SequenceContainerAudioClip.d.ts.map +1 -1
- package/src/engine/sound/sopra/definition/clip/SwitchContainerAudioClip.d.ts +1 -0
- package/src/engine/sound/sopra/definition/clip/SwitchContainerAudioClip.d.ts.map +1 -1
- package/src/engine/sound/sopra/runtime/EventInstance.d.ts.map +1 -1
- package/src/engine/sound/sopra/runtime/EventInstance.js +4 -1
- package/src/format/image/avif/av1/decode/decode_coefficients.d.ts.map +1 -1
- package/src/format/image/avif/av1/decode/decode_coefficients.js +248 -259
- package/src/format/image/avif/av1/decode/read_golomb.d.ts +21 -0
- package/src/format/image/avif/av1/decode/read_golomb.d.ts.map +1 -0
- package/src/format/image/avif/av1/decode/read_golomb.js +49 -0
- package/src/format/image/avif/av1/filter/loop_restoration.js +461 -451
- package/src/format/image/avif/av1/util/round2.d.ts +19 -2
- package/src/format/image/avif/av1/util/round2.d.ts.map +1 -1
- package/src/format/image/avif/av1/util/round2.js +51 -27
- package/src/format/image/avif/heif/parse_avif_file.js +24 -0
- package/src/shade/renderer/buffer/table/GPUTypedTable.d.ts.map +1 -1
- package/src/shade/renderer/buffer/table/GPUTypedTable.js +14 -0
- package/src/shade/renderer/geometry/virtual/VIRTUAL_GEOMETRY_DESIGN.md +46 -3
- package/src/shade/renderer/geometry/virtual/WEDGE_PLAN_2026_09_18.md +91 -1
- package/src/shade/renderer/geometry/virtual/build/VGeoBuildOptions.d.ts +0 -13
- package/src/shade/renderer/geometry/virtual/build/VGeoBuildOptions.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/build/VGeoBuildOptions.js +0 -15
- package/src/shade/renderer/geometry/virtual/build/level/vgeo_build_group_step.js +5 -5
- package/src/shade/renderer/geometry/virtual/build/mesh/VGEO_DEFAULT_ATTRIBUTE_WEIGHT_RATIOS.d.ts +11 -1
- package/src/shade/renderer/geometry/virtual/build/mesh/VGEO_DEFAULT_ATTRIBUTE_WEIGHT_RATIOS.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/build/mesh/VGEO_DEFAULT_ATTRIBUTE_WEIGHT_RATIOS.js +11 -1
- package/src/shade/renderer/geometry/virtual/build/mesh/vgeo_compute_vertex_normals.d.ts +18 -9
- package/src/shade/renderer/geometry/virtual/build/mesh/vgeo_compute_vertex_normals.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/build/mesh/vgeo_compute_vertex_normals.js +20 -26
- package/src/shade/renderer/geometry/virtual/build/mesh/vgeo_normalize_source.d.ts +1 -3
- package/src/shade/renderer/geometry/virtual/build/mesh/vgeo_normalize_source.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/build/mesh/vgeo_normalize_source.js +2 -5
- package/src/shade/renderer/geometry/virtual/build/vgeo_build.js +1 -1
- package/src/shade/renderer/geometry/virtual/runtime/VGeoResidency.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/runtime/VGeoResidency.js +14 -1
- package/src/shade/renderer/global_illumination/probe/octahedral/GPUProbeAtlas.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/probe/octahedral/GPUProbeAtlas.js +12 -3
- package/src/shade/renderer/light/environment/rgbe/RGBE_ReadPixels_RLE.d.ts.map +1 -1
- package/src/shade/renderer/light/environment/rgbe/RGBE_ReadPixels_RLE.js +7 -1
- package/src/shade/renderer/lightmap/GPULightMap.d.ts.map +1 -1
- package/src/shade/renderer/lightmap/GPULightMap.js +349 -336
- package/src/shade/renderer/loader/gltf/load_gltf.d.ts.map +1 -1
- package/src/shade/renderer/loader/gltf/load_gltf.js +1137 -1128
- package/src/shade/renderer/particles/DESIGN.md +14 -5
- package/src/shade/renderer/particles/GPUParticleSystem.d.ts +25 -10
- package/src/shade/renderer/particles/GPUParticleSystem.d.ts.map +1 -1
- package/src/shade/renderer/particles/GPUParticleSystem.js +182 -38
- package/src/shade/renderer/particles/graph/groups/simplex_reference.d.ts.map +1 -1
- package/src/shade/renderer/particles/graph/groups/simplex_reference.js +16 -10
- package/src/shade/renderer/particles/graph_particles.d.ts +4 -2
- package/src/shade/renderer/particles/graph_particles.d.ts.map +1 -1
- package/src/shade/renderer/particles/graph_particles.js +8 -2
- package/src/shade/renderer/particles/optimizer/particle_vm_semantics.d.ts.map +1 -1
- package/src/shade/renderer/particles/optimizer/particle_vm_semantics.js +8 -2
- package/src/shade/renderer/particles/optimizer/pass_fold_constants.d.ts.map +1 -1
- package/src/shade/renderer/particles/optimizer/pass_fold_constants.js +10 -4
- package/src/shade/renderer/particles/shaders/shader_particle_init_free_list.d.ts +31 -0
- package/src/shade/renderer/particles/shaders/shader_particle_init_free_list.d.ts.map +1 -0
- package/src/shade/renderer/particles/shaders/shader_particle_init_free_list.js +62 -0
- package/src/shade/renderer/particles/vm/ParticleVMReference.d.ts +13 -0
- package/src/shade/renderer/particles/vm/ParticleVMReference.d.ts.map +1 -1
- package/src/shade/renderer/particles/vm/ParticleVMReference.js +95 -17
- package/src/shade/renderer/rasterize/bucket/rasterization_has_opaque_bucket.d.ts +21 -0
- package/src/shade/renderer/rasterize/bucket/rasterization_has_opaque_bucket.d.ts.map +1 -0
- package/src/shade/renderer/rasterize/bucket/rasterization_has_opaque_bucket.js +28 -0
- package/src/shade/renderer/rasterize/fast/graph_rasterize_scene_fast.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/fast/graph_rasterize_scene_fast.js +19 -2
- package/src/shade/renderer/rasterize/standard/graph_rasterize_scene.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/standard/graph_rasterize_scene.js +19 -2
- package/src/shade/renderer/shader/type/WebGPUStruct.d.ts.map +1 -1
- package/src/shade/renderer/shader/type/WebGPUStruct.js +12 -0
- package/src/shade/renderer/texture/mipmaps/WebGPUMipmapGenerator.d.ts +8 -2
- package/src/shade/renderer/texture/mipmaps/WebGPUMipmapGenerator.d.ts.map +1 -1
- package/src/shade/renderer/texture/mipmaps/WebGPUMipmapGenerator.js +41 -6
- package/src/shade/wgsl/emulator/WGSLJavaScriptCompiler.js +2383 -2356
- package/src/view/tooltip/DomTooltipManager.d.ts +7 -0
- package/src/view/tooltip/DomTooltipManager.d.ts.map +1 -1
- package/src/view/tooltip/DomTooltipManager.js +22 -0
- package/src/view/tooltip/DomTooltipObserver.d.ts.map +1 -1
- package/src/view/tooltip/DomTooltipObserver.js +13 -3
- package/src/shade/renderer/geometry/virtual/build/mesh/VGEO_CREASE_ANGLE.js +0 -45
|
@@ -29,6 +29,13 @@ export class DomTooltipManager {
|
|
|
29
29
|
* @private
|
|
30
30
|
*/
|
|
31
31
|
private __showDelayTimeout;
|
|
32
|
+
/**
|
|
33
|
+
* Whose show the pending {@link __showDelayTimeout} belongs to, so {@link remove} can cancel one
|
|
34
|
+
* it owns without cancelling another view's.
|
|
35
|
+
* @type {DomTooltipObserver|null}
|
|
36
|
+
* @private
|
|
37
|
+
*/
|
|
38
|
+
private __showDelayObserver;
|
|
32
39
|
/**
|
|
33
40
|
* @readonly
|
|
34
41
|
* @private
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DomTooltipManager.d.ts","sourceRoot":"","sources":["../../../../src/view/tooltip/DomTooltipManager.js"],"names":[],"mappings":"AAEA;;;GAGG;AAGH;;GAEG;AACH;
|
|
1
|
+
{"version":3,"file":"DomTooltipManager.d.ts","sourceRoot":"","sources":["../../../../src/view/tooltip/DomTooltipManager.js"],"names":[],"mappings":"AAEA;;;GAGG;AAGH;;GAEG;AACH;IA8BI;;;OAGG;IACH,wBAFW,cAAc,EASxB;IAxCD;;;;OAIG;IACH,sBAAqB;IAErB;;;;OAIG;IACH,oBAAkB;IAElB;;;;OAIG;IACH,2BAAwB;IAExB;;;;;OAKG;IACH,4BAA2B;IAOvB;;;;OAIG;IACH,4BAA4B;IAGhC;;;OAGG;IACH,iBAFa,cAAc,CAI1B;IAED;;;OAGG;IACH,eAFW,kBAAkB,QAM5B;IAED;;;OAGG;IACH,eAFW,kBAAkB,QAM5B;IAED,wBAQC;IAED;;;;OAIG;IACH,gBAHW,IAAI,GACF,OAAO,CAiBnB;IAED;;;;;OAKG;IACH,aAJW,IAAI,iDAYd;IAED;;;OAGG;IACH,oBASC;IAED,0BAQC;IAED;;;OAGG;IACH,uBAIC;IAED;;;;;;OAMG;IACH,UAJW,IAAI,iDAmBd;IAED;;;OAGG;IACH,gBAFW,IAAI,QA4Bd;CACJ;mBAzNY,OAAO,YAAY,EAAE,OAAO;6BAC5B,OAAO,qBAAqB,EAAE,cAAc;mCAJtB,yBAAyB"}
|
|
@@ -31,6 +31,14 @@ export class DomTooltipManager {
|
|
|
31
31
|
*/
|
|
32
32
|
__showDelayTimeout = -1;
|
|
33
33
|
|
|
34
|
+
/**
|
|
35
|
+
* Whose show the pending {@link __showDelayTimeout} belongs to, so {@link remove} can cancel one
|
|
36
|
+
* it owns without cancelling another view's.
|
|
37
|
+
* @type {DomTooltipObserver|null}
|
|
38
|
+
* @private
|
|
39
|
+
*/
|
|
40
|
+
__showDelayObserver = null;
|
|
41
|
+
|
|
34
42
|
/**
|
|
35
43
|
*
|
|
36
44
|
* @param {TooltipManager} tipManager
|
|
@@ -127,7 +135,10 @@ export class DomTooltipManager {
|
|
|
127
135
|
requestShow(observer) {
|
|
128
136
|
this.cancelShowRequest();
|
|
129
137
|
|
|
138
|
+
this.__showDelayObserver = observer;
|
|
130
139
|
this.__showDelayTimeout = setTimeout(() => {
|
|
140
|
+
this.__showDelayObserver = null;
|
|
141
|
+
this.__showDelayTimeout = -1;
|
|
131
142
|
this.show(observer);
|
|
132
143
|
}, this.__showDelay);
|
|
133
144
|
}
|
|
@@ -138,6 +149,7 @@ export class DomTooltipManager {
|
|
|
138
149
|
//cancel timeout
|
|
139
150
|
clearTimeout(this.__showDelayTimeout);
|
|
140
151
|
this.__showDelayTimeout = -1;
|
|
152
|
+
this.__showDelayObserver = null;
|
|
141
153
|
}
|
|
142
154
|
}
|
|
143
155
|
|
|
@@ -187,6 +199,16 @@ export class DomTooltipManager {
|
|
|
187
199
|
return;
|
|
188
200
|
}
|
|
189
201
|
|
|
202
|
+
/**
|
|
203
|
+
* A show that is still pending belongs to an observer that is about to stop existing, and
|
|
204
|
+
* `on.exited` — the only other route to `cancelShowRequest` — cannot fire once the observer
|
|
205
|
+
* is torn down. Left alone, the timer fired `show` for a view that had already left the
|
|
206
|
+
* document, appending a tooltip that nothing could dismiss: `live` no longer maps the view.
|
|
207
|
+
*/
|
|
208
|
+
if (this.__showDelayObserver === observer) {
|
|
209
|
+
this.cancelShowRequest();
|
|
210
|
+
}
|
|
211
|
+
|
|
190
212
|
//hide if shown
|
|
191
213
|
this.hide(observer);
|
|
192
214
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DomTooltipObserver.d.ts","sourceRoot":"","sources":["../../../../src/view/tooltip/DomTooltipObserver.js"],"names":[],"mappings":"AAQA;;GAEG;AAEH;IACI;;;;;OAKG;IACH,kBAJW,IAAI,2CAoEd;IA/DG;;;OAGG;IACH,MAFU,IAAI,CAEE;IAEhB;;;OAGG;IACH,kBAAsB;IAItB;;;OAGG;IACH,oBAFU,SAAS,CAEyB;IAE5C;;;OAGG;IACH,KAFU,SAAS,CAEkD;IAErE;;;MAGC;IAEiB,2BAA2C;IAG7D,8BAAgC;IAGhC,0BAKC;IAGD,6BAOC;IAED,6BAOC;IAIL,yCAIC;IAED,yBAWC;IAED,2BAmBC;IAGD,6BAmBC;IAED,aAUC;IAED,
|
|
1
|
+
{"version":3,"file":"DomTooltipObserver.d.ts","sourceRoot":"","sources":["../../../../src/view/tooltip/DomTooltipObserver.js"],"names":[],"mappings":"AAQA;;GAEG;AAEH;IACI;;;;;OAKG;IACH,kBAJW,IAAI,2CAoEd;IA/DG;;;OAGG;IACH,MAFU,IAAI,CAEE;IAEhB;;;OAGG;IACH,kBAAsB;IAItB;;;OAGG;IACH,oBAFU,SAAS,CAEyB;IAE5C;;;OAGG;IACH,KAFU,SAAS,CAEkD;IAErE;;;MAGC;IAEiB,2BAA2C;IAG7D,8BAAgC;IAGhC,0BAKC;IAGD,6BAOC;IAED,6BAOC;IAIL,yCAIC;IAED,yBAWC;IAED,2BAmBC;IAGD,6BAmBC;IAED,aAUC;IAED,eAmBC;CACJ;mBA1KY,OAAO,YAAY,EAAE,OAAO;sBATnB,iCAAiC;0BAC7B,gBAAgB;mBACvB,oCAAoC;4BAC3B,qCAAqC;gCACjC,4BAA4B;8BAC9B,2CAA2C"}
|
|
@@ -160,9 +160,19 @@ export class DomTooltipObserver {
|
|
|
160
160
|
unlink() {
|
|
161
161
|
const view = this.view;
|
|
162
162
|
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
163
|
+
/**
|
|
164
|
+
* Unconditionally, and not `if (view.isLinked)`. `View.unlink` clears the flag *before* it
|
|
165
|
+
* sends `on.unlinked`, and the manager's own `remove` handler sits ahead of
|
|
166
|
+
* `__handleViewUnlinked` on that same signal — so by the time this ran the flag was already
|
|
167
|
+
* false and the teardown was skipped, and then the line below removed
|
|
168
|
+
* `__handleViewUnlinked` from the Map the dispatch was still walking, so it never ran
|
|
169
|
+
* either. Two DOM listeners and four bindings survived every link/unlink cycle.
|
|
170
|
+
*
|
|
171
|
+
* Safe to run twice: `removeEventListener` is a no-op for a listener that is gone,
|
|
172
|
+
* `SignalBinding#unlink` returns early when it is already unlinked, and the mouse-leave is
|
|
173
|
+
* gated on `isEntered`.
|
|
174
|
+
*/
|
|
175
|
+
this.__handleViewUnlinked();
|
|
166
176
|
|
|
167
177
|
view.on.linked.remove(this.__handleViewLinked, this);
|
|
168
178
|
view.on.unlinked.remove(this.__handleViewUnlinked, this);
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* How far two triangles may turn across a shared edge before the builder stops pretending the
|
|
3
|
-
* surface is smooth there, in degrees.
|
|
4
|
-
*
|
|
5
|
-
* Only ever applied to normals the builder *synthesizes*. A source that authored its own normals has
|
|
6
|
-
* already answered this question, and its answer is the one that ships.
|
|
7
|
-
*
|
|
8
|
-
* **What it is for.** Averaging every face around a vertex into one direction is right for a surface
|
|
9
|
-
* and wrong for a corner, and a mesh does not say which it is — so an angle has to. A cube is the
|
|
10
|
-
* whole argument: its eight corner vertices each meet three faces, and one direction for all three
|
|
11
|
-
* is ninety degrees wrong for two of them. Measured on Zorah's `mesh1[0]`, whose source is
|
|
12
|
-
* `POSITION`-only and so gets every normal from this pass, the angle between a shipped corner's
|
|
13
|
-
* normal and the normal of the triangle that corner belongs to ran to a mean of 8.60 degrees and a
|
|
14
|
-
* p99 of 37.66 at LOD 0 — the numbers `WEDGE_PLAN_2026_09_18.md` §1 records — before a single
|
|
15
|
-
* collapse.
|
|
16
|
-
*
|
|
17
|
-
* **Why 45.** A threshold splits a curve as readily as a corner, so it is a trade: too low and a
|
|
18
|
-
* coarsely tessellated cylinder gains a crease at every segment, too high and a box stays soft.
|
|
19
|
-
* Swept over that same primitive, over its whole DAG:
|
|
20
|
-
*
|
|
21
|
-
* | crease | vertices/triangle | LOD 0 mean | LOD 0 p99 | all levels p99 | share over 30° |
|
|
22
|
-
* |---|---|---|---|---|---|
|
|
23
|
-
* | none | 0.641 | 8.60 | 37.66 | 54.27 | 6.5% |
|
|
24
|
-
* | 60° | 0.646 | 8.42 | 35.26 | 52.60 | 6.2% |
|
|
25
|
-
* | **45°** | **0.661** | **8.05** | **32.19** | **50.29** | **5.3%** |
|
|
26
|
-
* | 30° | 0.724 | 7.04 | 26.88 | 45.97 | 3.6% |
|
|
27
|
-
* | 20° | 0.880 | 5.53 | 20.58 | 38.65 | 2.0% |
|
|
28
|
-
*
|
|
29
|
-
* A wedge is a shipped vertex, so that first column is very nearly the size of the asset: 45 degrees
|
|
30
|
-
* costs 3%, 30 costs 13% and 20 costs 37%. The curve is smooth because *this* mesh's residual is
|
|
31
|
-
* mostly tessellation rather than creases — it keeps improving as the threshold falls, right through
|
|
32
|
-
* the range where a cylinder would start faceting, which is the sign that the number below is a
|
|
33
|
-
* judgement about content and not a fact about arithmetic. Hard-surface content is where it earns
|
|
34
|
-
* its keep and where the choice is obvious: every edge of a box is ninety degrees, and any threshold
|
|
35
|
-
* under that keeps all of them.
|
|
36
|
-
*
|
|
37
|
-
* So it is also {@link VGeoBuildOptions#crease_angle}, and a conversion of one kind of content can
|
|
38
|
-
* say so.
|
|
39
|
-
*
|
|
40
|
-
* @type {number}
|
|
41
|
-
*
|
|
42
|
-
* @author Alex Goldring
|
|
43
|
-
* @copyright Company Named Limited (c) 2026
|
|
44
|
-
*/
|
|
45
|
-
export const VGEO_CREASE_ANGLE = 45;
|