@woosh/meep-engine 3.19.0 → 3.21.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-terrain.js +1 -1
- package/editor/Editor.d.ts.map +1 -1
- package/editor/enableEditor.d.ts.map +1 -1
- package/editor/particles/effect/ParticleEffectDocument.d.ts.map +1 -1
- package/editor/particles/effect/ParticleReferenceSimulation.d.ts.map +1 -1
- package/editor/templates/entity_templates.d.ts.map +1 -1
- package/editor/tools/v2/GizmoNode.d.ts +1 -1
- package/editor/tools/v2/GizmoNode.d.ts.map +1 -1
- package/editor/view/ecs/HierarchicalEntityListView.d.ts +3 -3
- package/editor/view/ecs/HierarchicalEntityListView.d.ts.map +1 -1
- package/editor/view/makeEntityDecorators.d.ts.map +1 -1
- package/editor/view/node-graph/NodeGraphClipboard.d.ts.map +1 -1
- package/editor/view/particles/effect/ParticleGraphEditorView.js +2 -2
- package/editor/view/particles/effect/ParticleNodeParametersView.d.ts.map +1 -1
- package/editor/view/particles/effect/ParticleNodeParametersView.js +7 -48
- package/editor/view/tools/ToolSettingsView.d.ts +1 -1
- package/editor/view/tools/ToolSettingsView.d.ts.map +1 -1
- package/package.json +12 -12
- package/src/core/IdPool.d.ts.map +1 -1
- package/src/core/binary/32BitEncoder.d.ts.map +1 -1
- package/src/core/binary/BinaryBuffer.d.ts +1 -1
- package/src/core/binary/BinaryBuffer.d.ts.map +1 -1
- package/src/core/bvh2/binary/2/BinaryUint32BVH.d.ts +1 -1
- package/src/core/bvh2/binary/2/BinaryUint32BVH.d.ts.map +1 -1
- package/src/core/bvh2/bvh3/BVH.d.ts +3 -3
- package/src/core/bvh2/bvh3/BVH.d.ts.map +1 -1
- package/src/core/bvh2/bvh3/BVH.js +1 -2
- package/src/core/bvh2/bvh3/query/bvh_query_user_data_nearest_to_point_filtered.d.ts.map +1 -1
- package/src/core/bvh2/traversal/aabb3_detailed_volume_intersection_callback_based.d.ts.map +1 -1
- package/src/core/cache/Cache.d.ts +1 -1
- package/src/core/cache/Cache.d.ts.map +1 -1
- package/src/core/cache/wtinylfu/CacheWTinylfu.d.ts.map +1 -1
- package/src/core/collection/array/array_group_by.d.ts.map +1 -1
- package/src/core/collection/array/array_group_by.js +2 -11
- package/src/core/collection/list/List.d.ts.map +1 -1
- package/src/core/collection/list/ListForwarder.d.ts +1 -1
- package/src/core/collection/list/ListForwarder.d.ts.map +1 -1
- package/src/core/collection/map/HashMap.d.ts.map +1 -1
- package/src/core/collection/set/ArraySet.d.ts.map +1 -1
- package/src/core/collection/table/RowFirstTable.d.ts +1 -1
- package/src/core/collection/table/RowFirstTable.d.ts.map +1 -1
- package/src/core/collection/table/bind/TableRecord.d.ts +1 -1
- package/src/core/collection/table/bind/TableRecord.d.ts.map +1 -1
- package/src/core/color/Color.d.ts +8 -8
- package/src/core/color/Color.d.ts.map +1 -1
- package/src/core/color/hsv/hsv_to_rgb_uint8.d.ts.map +1 -1
- package/src/core/color/hsv/rgb_to_hsv.d.ts.map +1 -1
- package/src/core/events/signal/Signal.d.ts +1 -1
- package/src/core/events/signal/Signal.d.ts.map +1 -1
- package/src/core/events/signal/signal_aggregate_by_time_window.d.ts.map +1 -1
- package/src/core/fsm/simple/SimpleStateMachineDescription.d.ts.map +1 -1
- package/src/core/geom/2d/aabb/AABB2.d.ts +4 -4
- package/src/core/geom/2d/aabb/AABB2.d.ts.map +1 -1
- package/src/core/geom/2d/bvh/BVH2D.d.ts +1 -1
- package/src/core/geom/2d/bvh/BVH2D.d.ts.map +1 -1
- package/src/core/geom/2d/triangle/tri2_rasterize_conservative.d.ts.map +1 -1
- package/src/core/geom/3d/aabb/AABB3.d.ts +6 -6
- package/src/core/geom/3d/aabb/AABB3.d.ts.map +1 -1
- package/src/core/geom/3d/atlas/atlas_bench_lib.d.ts.map +1 -1
- package/src/core/geom/3d/atlas/atlas_compute_charts.d.ts.map +1 -1
- package/src/core/geom/3d/atlas/atlas_generate.d.ts.map +1 -1
- package/src/core/geom/3d/atlas/pack/atlas_pack_charts.d.ts.map +1 -1
- package/src/core/geom/3d/atlas/param/atlas_chart_param_validity.d.ts.map +1 -1
- package/src/core/geom/3d/atlas/param/atlas_chart_parameterize_bff.d.ts.map +1 -1
- package/src/core/geom/3d/atlas/param/atlas_chart_parameterize_lscm.d.ts.map +1 -1
- package/src/core/geom/3d/atlas/segment/atlas_compute_planar_regions.d.ts.map +1 -1
- package/src/core/geom/3d/atlas/segment/atlas_segment_charts.d.ts.map +1 -1
- package/src/core/geom/3d/atlas/segment/atlas_segment_charts_atomic.d.ts.map +1 -1
- package/src/core/geom/3d/mat4/m4_decompose.d.ts +7 -1
- package/src/core/geom/3d/mat4/m4_decompose.d.ts.map +1 -1
- package/src/core/geom/3d/quadric/Quadric3.d.ts +11 -11
- package/src/core/geom/3d/quadric/Quadric3.d.ts.map +1 -1
- package/src/core/geom/3d/ray/Ray3.d.ts +3 -3
- package/src/core/geom/3d/ray/Ray3.d.ts.map +1 -1
- package/src/core/geom/3d/shape/HeightMapShape3D.d.ts.map +1 -1
- package/src/core/geom/3d/shape/HeightMapShape3D.js +4 -9
- package/src/core/geom/3d/shape/TransformedShape3D.d.ts +1 -1
- package/src/core/geom/3d/shape/TransformedShape3D.d.ts.map +1 -1
- package/src/core/geom/3d/tetrahedra/TetrahedralMesh.d.ts.map +1 -1
- package/src/core/geom/3d/tetrahedra/delaunay/debug/push_boundary_with_validation.d.ts.map +1 -1
- package/src/core/geom/3d/tetrahedra/delaunay/debug/validate_cavity_boundary.d.ts.map +1 -1
- package/src/core/geom/3d/tetrahedra/tetrahedral_mesh_carve_outside_surface.d.ts.map +1 -1
- package/src/core/geom/3d/tetrahedra/tetrahedral_mesh_improve_quality.d.ts.map +1 -1
- package/src/core/geom/3d/tetrahedra/validate_tetrahedral_mesh.d.ts.map +1 -1
- package/src/core/geom/3d/tetrahedra/validate_tetrahedron_neighbourhood.d.ts.map +1 -1
- package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_to_indexed_geometry.d.ts.map +1 -1
- package/src/core/geom/3d/util/aabb3_emit_point_grid.d.ts.map +1 -1
- package/src/core/geom/Quaternion.d.ts +4 -4
- package/src/core/geom/Quaternion.d.ts.map +1 -1
- package/src/core/geom/Vector1.d.ts +1 -1
- package/src/core/geom/Vector1.d.ts.map +1 -1
- package/src/core/geom/Vector2.d.ts +2 -2
- package/src/core/geom/Vector2.d.ts.map +1 -1
- package/src/core/geom/Vector3.d.ts +3 -3
- package/src/core/geom/Vector3.d.ts.map +1 -1
- package/src/core/geom/Vector4.d.ts +4 -4
- package/src/core/geom/Vector4.d.ts.map +1 -1
- package/src/core/geom/packing/max-rect/find_best_container.d.ts.map +1 -1
- package/src/core/geom/vec3/v3_hash.d.ts +12 -0
- package/src/core/geom/vec3/v3_hash.d.ts.map +1 -0
- package/src/core/geom/vec3/v3_hash.js +19 -0
- package/src/core/geom/vec3/v3_lerp.d.ts +3 -1
- package/src/core/geom/vec3/v3_lerp.d.ts.map +1 -1
- package/src/core/geom/vec3/v3_set.d.ts +14 -0
- package/src/core/geom/vec3/v3_set.d.ts.map +1 -0
- package/src/core/geom/vec3/v3_set.js +17 -0
- package/src/core/geom/vec3/v3_slerp.d.ts +3 -1
- package/src/core/geom/vec3/v3_slerp.d.ts.map +1 -1
- package/src/core/geom/vec4/v4_equals_array.d.ts +11 -0
- package/src/core/geom/vec4/v4_equals_array.d.ts.map +1 -0
- package/src/core/geom/vec4/v4_equals_array.js +16 -0
- package/src/core/geom/vec4/v4_hash.d.ts +12 -0
- package/src/core/geom/vec4/v4_hash.d.ts.map +1 -0
- package/src/core/geom/vec4/v4_hash.js +18 -0
- package/src/core/geom/vec4/v4_set.d.ts +15 -0
- package/src/core/geom/vec4/v4_set.d.ts.map +1 -0
- package/src/core/geom/vec4/v4_set.js +19 -0
- package/src/core/graph/convert_graph_to_dot_string.d.ts +1 -1
- package/src/core/graph/convert_graph_to_dot_string.d.ts.map +1 -1
- package/src/core/graph/metis/native/bisection/split_graph_two_way.d.ts.map +1 -1
- package/src/core/graph/metis/native/metis_partition_kway.d.ts.map +1 -1
- package/src/core/graph/metis/native/refine/fm_kway.d.ts.map +1 -1
- package/src/core/json/abstractJSONSerializer.d.ts.map +1 -1
- package/src/core/lang/reactive/AbstractCachingParser.d.ts.map +1 -1
- package/src/core/localization/Localization.d.ts.map +1 -1
- package/src/core/math/linalg/cg/cg_solve.d.ts.map +1 -1
- package/src/core/math/noise/create_simplex_noise_2d.d.ts.map +1 -1
- package/src/core/math/physics/mie/compute_bhmie_optical_properties.d.ts.map +1 -1
- package/src/core/math/physics/mie/compute_mie_particle_properties_rgb.d.ts.map +1 -1
- package/src/core/math/random/seededRandom_Mulberry32.d.ts +1 -1
- package/src/core/math/random/seededRandom_Mulberry32.d.ts.map +1 -1
- package/src/core/model/ModuleRegistry.d.ts.map +1 -1
- package/src/core/model/node-graph/visual/layout/layout_assign_coordinates.d.ts.map +1 -1
- package/src/core/model/node-graph/visual/layout/layout_node_graph.d.ts.map +1 -1
- package/src/core/model/node-graph/visual/layout/layout_order_layers.d.ts.map +1 -1
- package/src/core/model/object/optional_clone.d.ts.map +1 -0
- package/src/{shade/descriptor/util → core/model/object}/optional_equality.d.ts +2 -2
- package/src/core/model/object/optional_equality.d.ts.map +1 -0
- package/src/{shade/descriptor/util → core/model/object}/optional_equality.js +2 -2
- package/src/{shade/descriptor/util → core/model/object}/optional_hash.d.ts +1 -1
- package/src/core/model/object/optional_hash.d.ts.map +1 -0
- package/src/{shade/descriptor/util → core/model/object}/optional_hash.js +3 -3
- package/src/core/model/reactive/model/ReactiveExpression.d.ts.map +1 -1
- package/src/core/model/validate_enum_schema.d.ts.map +1 -1
- package/src/core/process/Future.d.ts.map +1 -1
- package/src/core/process/task/Task.d.ts.map +1 -1
- package/src/core/process/task/util/countTask.d.ts.map +1 -1
- package/src/core/process/task/util/randomCountTask.d.ts.map +1 -1
- package/src/core/process/worker/WorkerBuilder.d.ts.map +1 -1
- package/src/engine/Clock.d.ts +1 -1
- package/src/engine/Clock.d.ts.map +1 -1
- package/src/engine/EngineHarness.d.ts.map +1 -1
- package/src/engine/animation/Animations.d.ts.map +1 -1
- package/src/engine/animation/EntityAnimation.d.ts.map +1 -1
- package/src/engine/animation/TransitionFunctions.d.ts.map +1 -1
- package/src/engine/animation/Tween.d.ts.map +1 -1
- package/src/engine/animation/curve/editor/uploadViaElement.d.ts.map +1 -1
- package/src/engine/animation/curve/view/AnimationCurveView.d.ts +1 -1
- package/src/engine/animation/curve/view/AnimationCurveView.d.ts.map +1 -1
- package/src/engine/asset/Asset.d.ts +1 -1
- package/src/engine/asset/Asset.d.ts.map +1 -1
- package/src/engine/asset/Asset.js +3 -1
- package/src/engine/asset/AssetManager.d.ts.map +1 -1
- package/src/engine/asset/AssetRequest.d.ts.map +1 -1
- package/src/engine/asset/loaders/AssetLoader.d.ts.map +1 -1
- package/src/engine/asset/loaders/image/avif/encode_image_source.d.ts.map +1 -1
- package/src/engine/asset/loaders/image/avif/threaded_image_encoder.d.ts.map +1 -1
- package/src/engine/browserInfo.d.ts.map +1 -1
- package/src/engine/control/first-person/FirstPersonPlayerControllerSystem.d.ts +1 -1
- package/src/engine/control/first-person/FirstPersonPlayerControllerSystem.d.ts.map +1 -1
- package/src/engine/control/first-person/abilities/LedgeGrab.js +9 -9
- package/src/engine/control/first-person/abilities/Mantle.js +8 -8
- package/src/engine/control/first-person/abilities/ScrambleUp.js +2 -2
- package/src/engine/control/first-person/abilities/WallJump.js +2 -2
- package/src/engine/control/first-person/abilities/WallRun.js +3 -3
- package/src/engine/control/first-person/collision/KinematicMover.d.ts +1 -1
- package/src/engine/control/first-person/collision/KinematicMover.d.ts.map +1 -1
- package/src/engine/control/first-person/collision/KinematicMover.js +19 -46
- package/src/engine/control/first-person/sensors/FirstPersonSensors.d.ts +17 -5
- package/src/engine/control/first-person/sensors/FirstPersonSensors.d.ts.map +1 -1
- package/src/engine/control/first-person/sensors/FirstPersonSensors.js +20 -7
- package/src/engine/control/first-person/sensors/FirstPersonSensorsSystem.d.ts.map +1 -1
- package/src/engine/control/first-person/sensors/FirstPersonSensorsSystem.js +9 -8
- package/src/engine/control/first-person/test/buildTestPlayer.d.ts.map +1 -1
- package/src/engine/ecs/EntityComponentDataset.d.ts.map +1 -1
- package/src/engine/ecs/EntityManager.d.ts.map +1 -1
- package/src/engine/ecs/EntityObserver.d.ts.map +1 -1
- package/src/engine/ecs/System.d.ts.map +1 -1
- package/src/engine/ecs/animation/Animation.d.ts +1 -1
- package/src/engine/ecs/animation/Animation.d.ts.map +1 -1
- package/src/engine/ecs/async/SystemWorkerLoopback.d.ts +3 -3
- package/src/engine/ecs/async/SystemWorkerLoopback.d.ts.map +1 -1
- package/src/engine/ecs/dynamic_actions/DynamicActorSystem.d.ts.map +1 -1
- package/src/engine/ecs/grid/pick.d.ts.map +1 -1
- package/src/engine/ecs/gui/hud/HeadsUpDisplaySystem.d.ts.map +1 -1
- package/src/engine/ecs/gui/hud/HeadsUpDisplaySystem.js +9 -10
- package/src/engine/ecs/guid/UUID.d.ts +1 -1
- package/src/engine/ecs/guid/UUID.d.ts.map +1 -1
- package/src/engine/ecs/ik/OneBoneSurfaceAlignmentSolver.d.ts.map +1 -1
- package/src/engine/ecs/ik/OneBoneSurfaceAlignmentSolver.js +26 -9
- package/src/engine/ecs/parent/EntityNode.d.ts +1 -1
- package/src/engine/ecs/parent/EntityNode.d.ts.map +1 -1
- package/src/engine/ecs/parent/FaceEditor.d.ts +7 -7
- package/src/engine/ecs/parent/FaceEditor.d.ts.map +1 -1
- package/src/engine/ecs/storage/binary/collection/BinaryCollectionDeSerializer.d.ts.map +1 -1
- package/src/engine/ecs/storage/binary/object/BinaryObjectSerializationAdapter2.d.ts +2 -2
- package/src/engine/ecs/storage/binary/object/BinaryObjectSerializationAdapter2.d.ts.map +1 -1
- package/src/engine/ecs/terrain/TerrainClouds.d.ts +1 -1
- package/src/engine/ecs/terrain/ecs/Terrain.d.ts +1 -1
- package/src/engine/ecs/terrain/ecs/Terrain.d.ts.map +1 -1
- package/src/engine/ecs/terrain/ecs/TerrainSystem.d.ts.map +1 -1
- package/src/engine/ecs/terrain/overlay/TerrainOverlay.d.ts +1 -1
- package/src/engine/ecs/terrain/overlay/TerrainOverlay.d.ts.map +1 -1
- package/src/engine/ecs/terrain/tiles/TerrainTile.d.ts +1 -1
- package/src/engine/ecs/terrain/tiles/TerrainTile.d.ts.map +1 -1
- package/src/engine/ecs/terrain/tiles/TerrainTileManager.d.ts +1 -1
- package/src/engine/ecs/terrain/tiles/TerrainTileManager.d.ts.map +1 -1
- package/src/engine/ecs/terrain/util/obtainTerrain.d.ts.map +1 -1
- package/src/engine/ecs/transform/Transform64.d.ts +6 -6
- package/src/engine/ecs/transform/Transform64.d.ts.map +1 -1
- package/src/engine/ecs/transform-attachment/TransformAttachment.d.ts +1 -1
- package/src/engine/ecs/transform-attachment/TransformAttachment.d.ts.map +1 -1
- package/src/engine/graphics/FrameRunner.d.ts.map +1 -1
- package/src/engine/graphics/ecs/camera/camera_traverse_active.d.ts.map +1 -1
- package/src/engine/graphics/ecs/camera/pp/PerfectPanner.d.ts +1 -1
- package/src/engine/graphics/ecs/camera/pp/PerfectPanner.d.ts.map +1 -1
- package/src/engine/graphics/ecs/highlight/HighlightDefinition.d.ts +1 -1
- package/src/engine/graphics/ecs/highlight/HighlightDefinition.d.ts.map +1 -1
- package/src/engine/graphics/ecs/make_bvh_depth_range_computer.d.ts.map +1 -1
- package/src/engine/graphics/ecs/mesh-v2/aggregate/SGMesh.d.ts +4 -4
- package/src/engine/graphics/ecs/mesh-v2/aggregate/SGMesh.d.ts.map +1 -1
- package/src/engine/graphics/ecs/particles/ParticleEffect.d.ts.map +1 -1
- package/src/engine/graphics/ecs/particles/ParticleEffect.js +6 -22
- package/src/engine/graphics/ecs/path/tube/TubePathStyle.d.ts +1 -1
- package/src/engine/graphics/ecs/path/tube/TubePathStyle.d.ts.map +1 -1
- package/src/engine/graphics/ecs/path/tube/build/computeFrenetFrames.d.ts.map +1 -1
- package/src/engine/graphics/ecs/trail3d/Trail3D.d.ts +3 -3
- package/src/engine/graphics/ecs/trail3d/Trail3D.d.ts.map +1 -1
- package/src/engine/graphics/geometry/buffered/build_height_field_geometry.d.ts +1 -1
- package/src/engine/graphics/geometry/buffered/build_height_field_geometry.d.ts.map +1 -1
- package/src/engine/graphics/geometry/buffered/query/GeometrySpatialQueryAccelerator.d.ts +1 -1
- package/src/engine/graphics/geometry/buffered/query/GeometrySpatialQueryAccelerator.d.ts.map +1 -1
- package/src/engine/graphics/make_ray_from_viewport_position.d.ts.map +1 -1
- package/src/engine/graphics/particles/particular/engine/emitter/ParticleEmitter.d.ts.map +1 -1
- package/src/engine/graphics/particles/particular/engine/emitter/computeEmissionFunction.d.ts.map +1 -1
- package/src/engine/graphics/particles/particular/engine/utils/distribute_points_on_indexed_triangles.d.ts.map +1 -1
- package/src/engine/graphics/particles/particular/engine/utils/distrubuteParticlesOnMesh.d.ts.map +1 -1
- package/src/engine/graphics/particles/particular/engine/utils/volume/AttributeValue.d.ts +3 -3
- package/src/engine/graphics/particles/particular/engine/utils/volume/AttributeValue.d.ts.map +1 -1
- package/src/engine/graphics/render/frame_graph/FrameGraph.d.ts.map +1 -1
- package/src/engine/graphics/render/gizmo/GizmoShapeRenderingInterface.d.ts +1 -1
- package/src/engine/graphics/render/gizmo/GizmoShapeRenderingInterface.d.ts.map +1 -1
- package/src/engine/graphics/render/layers/RenderLayer.d.ts +3 -3
- package/src/engine/graphics/render/layers/RenderLayer.d.ts.map +1 -1
- package/src/engine/graphics/render/visibility/IncrementalDeltaSet.d.ts +1 -1
- package/src/engine/graphics/render/visibility/IncrementalDeltaSet.d.ts.map +1 -1
- package/src/engine/graphics/render/visibility/VisibilityComputer.d.ts +2 -2
- package/src/engine/graphics/render/visibility/VisibilityComputer.d.ts.map +1 -1
- package/src/engine/graphics/sh3/path_tracer/PathTracedMesh.d.ts +1 -1
- package/src/engine/graphics/sh3/path_tracer/PathTracedMesh.d.ts.map +1 -1
- package/src/engine/graphics/sh3/path_tracer/populate_path_traced_scene_from_ecd.d.ts.map +1 -1
- package/src/engine/graphics/sh3/path_tracer/populate_path_traced_scene_from_ecd.js +5 -1
- package/src/engine/graphics/texture/3d/SingleChannelSampler3D.d.ts +1 -1
- package/src/engine/graphics/texture/3d/SingleChannelSampler3D.d.ts.map +1 -1
- package/src/engine/graphics/texture/sampler/Sampler2D.d.ts.map +1 -1
- package/src/engine/graphics/texture/sampler/filter/sampler2d_scale_down_generic.d.ts +1 -1
- package/src/engine/graphics/texture/sampler/filter/sampler2d_scale_down_generic.d.ts.map +1 -1
- package/src/engine/graphics/texture/sampler/sampler2d_channel_compute_max.d.ts +1 -1
- package/src/engine/graphics/texture/sampler/sampler2d_channel_compute_max.d.ts.map +1 -1
- package/src/engine/graphics/texture/sampler/sampler2d_channel_compute_min.d.ts +1 -1
- package/src/engine/graphics/texture/sampler/sampler2d_channel_compute_min.d.ts.map +1 -1
- package/src/engine/graphics/texture/sampler/sampler2d_combine.d.ts.map +1 -1
- package/src/engine/graphics/texture/sampler/sampler2d_compute_texel_value_conversion_scale_to_uint8.d.ts.map +1 -1
- package/src/engine/graphics/texture/sampler/search/make_edge_condition_channel_threshold.d.ts.map +1 -1
- package/src/engine/graphics/texture/sampler/search/sampler2d_find_pixels.d.ts.map +1 -1
- package/src/engine/graphics/texture/virtual/VirtualTextureTileLoader.d.ts +3 -3
- package/src/engine/graphics/texture/virtual/VirtualTextureTileLoader.d.ts.map +1 -1
- package/src/engine/graphics/texture/virtual/VirtualTextureUsage.d.ts +1 -1
- package/src/engine/graphics/texture/virtual/VirtualTextureUsage.d.ts.map +1 -1
- package/src/engine/graphics/texture/virtual/debug/UsageDebugView.d.ts +2 -2
- package/src/engine/graphics/texture/virtual/debug/UsageDebugView.d.ts.map +1 -1
- package/src/engine/graphics/texture/virtual/debug/UsagePyramidDebugView.d.ts +1 -1
- package/src/engine/graphics/texture/virtual/debug/UsagePyramidDebugView.d.ts.map +1 -1
- package/src/engine/graphics/texture/virtual/tile/decompose_finger_print.d.ts.map +1 -1
- package/src/engine/graphics3/HighlightOutlineSystem.d.ts.map +1 -1
- package/src/engine/graphics3/ParticipatingMedia.d.ts +1 -1
- package/src/engine/graphics3/ParticipatingMedia.d.ts.map +1 -1
- package/src/engine/graphics3/VolumetricLightMap.d.ts +1 -1
- package/src/engine/graphics3/VolumetricLightMap.d.ts.map +1 -1
- package/src/engine/graphics3/decal/graph_build_decal_clusters.d.ts.map +1 -1
- package/src/engine/graphics3/highlight/pack_highlight_table.d.ts.map +1 -1
- package/src/engine/graphics3/preview/make_model_preview_scene.d.ts.map +1 -1
- package/src/engine/graphics3/terrain/GPUTerrainSplatRenderer.d.ts.map +1 -1
- package/src/engine/graphics3/terrain/pack_terrain_row_table.d.ts.map +1 -1
- package/src/engine/grid/obstacle/GridObstacle.d.ts.map +1 -1
- package/src/engine/input/devices/GamepadDevice.d.ts +1 -1
- package/src/engine/input/devices/GamepadDevice.d.ts.map +1 -1
- package/src/engine/input/devices/PointerDevice.d.ts +1 -1
- package/src/engine/input/devices/PointerDevice.d.ts.map +1 -1
- package/src/engine/input/ecs/controllers/KeyboardCameraController.d.ts.map +1 -1
- package/src/engine/input/ecs/controllers/KeyboardCameraController.js +11 -2
- package/src/engine/intelligence/behavior/ecs/BehaviorComponent.d.ts +1 -1
- package/src/engine/intelligence/behavior/ecs/BehaviorComponent.d.ts.map +1 -1
- package/src/engine/intelligence/behavior/ecs/SendEventBehavior.d.ts.map +1 -1
- package/src/engine/intelligence/behavior/primitive/ActionBehavior.d.ts.map +1 -1
- package/src/engine/intelligence/behavior/util/RotationBehavior.d.ts.map +1 -1
- package/src/engine/intelligence/behavior/util/RotationBehavior.js +14 -2
- package/src/engine/intelligence/blackboard/Blackboard.d.ts.map +1 -1
- package/src/engine/intelligence/mcts/MonteCarlo.d.ts +1 -1
- package/src/engine/intelligence/mcts/MonteCarlo.d.ts.map +1 -1
- package/src/engine/intelligence/mcts/StateNode.d.ts.map +1 -1
- package/src/engine/intelligence/optimization/RandomOptimizer.d.ts +1 -1
- package/src/engine/intelligence/optimization/RandomOptimizer.d.ts.map +1 -1
- package/src/engine/knowledge/database/StaticKnowledgeDataTable.d.ts.map +1 -1
- package/src/engine/knowledge/database/StaticKnowledgeDatabase.d.ts +1 -1
- package/src/engine/knowledge/database/StaticKnowledgeDatabase.d.ts.map +1 -1
- package/src/engine/navigation/ecs/path_following/PathFollower.d.ts +2 -2
- package/src/engine/navigation/ecs/path_following/PathFollower.d.ts.map +1 -1
- package/src/engine/network/NetworkSession.d.ts.map +1 -1
- package/src/engine/network/PriorityFetch.d.ts +2 -2
- package/src/engine/network/PriorityFetch.d.ts.map +1 -1
- package/src/engine/network/diagnostics/BandwidthMeter.d.ts.map +1 -1
- package/src/engine/network/ecs/owner_authorization.d.ts.map +1 -1
- package/src/engine/network/orchestrator/NetworkPeer.d.ts.map +1 -1
- package/src/engine/network/orchestrator/ServerAuthoritativeServer.d.ts.map +1 -1
- package/src/engine/network/replication/Replicator.d.ts +1 -1
- package/src/engine/network/replication/Replicator.d.ts.map +1 -1
- package/src/engine/network/sim/SimActionExecutor.d.ts +1 -1
- package/src/engine/network/sim/SimActionExecutor.d.ts.map +1 -1
- package/src/engine/network/time/RenderPlayout.d.ts.map +1 -1
- package/src/engine/network/transport/Channel.d.ts.map +1 -1
- package/src/engine/network/transport/fragments/FragmentRetention.d.ts.map +1 -1
- package/src/engine/physics/body/SolverBodyState.d.ts +11 -11
- package/src/engine/physics/body/SolverBodyState.d.ts.map +1 -1
- package/src/engine/physics/body/SolverBodyState.js +13 -13
- package/src/engine/physics/broadphase/compute_fat_world_aabb.d.ts +4 -4
- package/src/engine/physics/broadphase/compute_fat_world_aabb.d.ts.map +1 -1
- package/src/engine/physics/broadphase/compute_fat_world_aabb.js +2 -2
- package/src/engine/physics/broadphase/generate_pairs.d.ts +3 -3
- package/src/engine/physics/broadphase/generate_pairs.d.ts.map +1 -1
- package/src/engine/physics/broadphase/generate_pairs.js +1 -1
- package/src/engine/physics/ccd/linear_sweep.d.ts +2 -3
- package/src/engine/physics/ccd/linear_sweep.d.ts.map +1 -1
- package/src/engine/physics/ccd/linear_sweep.js +4 -5
- package/src/engine/physics/constraint/solve_constraints.js +3 -3
- package/src/engine/physics/ecs/BodyKind.d.ts +1 -1
- package/src/engine/physics/ecs/BodyKind.js +1 -1
- package/src/engine/physics/ecs/Collider.d.ts +1 -1
- package/src/engine/physics/ecs/Collider.js +1 -1
- package/src/engine/physics/ecs/Joint.d.ts +15 -10
- package/src/engine/physics/ecs/Joint.d.ts.map +1 -1
- package/src/engine/physics/ecs/Joint.js +27 -18
- package/src/engine/physics/ecs/JointSerializationAdapter.d.ts.map +1 -1
- package/src/engine/physics/ecs/JointSerializationAdapter.js +8 -6
- package/src/engine/physics/ecs/PhysicsSystem.d.ts +40 -77
- package/src/engine/physics/ecs/PhysicsSystem.d.ts.map +1 -1
- package/src/engine/physics/ecs/PhysicsSystem.js +113 -75
- package/src/engine/physics/ecs/RigidBody.d.ts +17 -12
- package/src/engine/physics/ecs/RigidBody.d.ts.map +1 -1
- package/src/engine/physics/ecs/RigidBody.js +58 -24
- package/src/engine/physics/ecs/RigidBodySerializationAdapter.d.ts.map +1 -1
- package/src/engine/physics/ecs/RigidBodySerializationAdapter.js +13 -12
- package/src/engine/physics/ecs/find_non_finite_physics_state.d.ts +1 -1
- package/src/engine/physics/ecs/find_non_finite_physics_state.js +1 -1
- package/src/engine/physics/fluid/FluidField.d.ts.map +1 -1
- package/src/engine/physics/fluid/REVIEW_02_PLAN.md +4 -4
- package/src/engine/physics/fluid/SliceVisualiser.d.ts.map +1 -1
- package/src/engine/physics/fluid/ecs/FluidComponent.d.ts +10 -10
- package/src/engine/physics/fluid/ecs/FluidComponent.js +10 -10
- package/src/engine/physics/fluid/ecs/FluidEffectorsComponent.d.ts +2 -2
- package/src/engine/physics/fluid/ecs/FluidEffectorsComponent.js +2 -2
- package/src/engine/physics/fluid/ecs/FluidObstacle.d.ts +3 -3
- package/src/engine/physics/fluid/ecs/FluidObstacle.js +3 -3
- package/src/engine/physics/fluid/ecs/FluidObstacleSystem.d.ts +1 -1
- package/src/engine/physics/fluid/ecs/FluidObstacleSystem.js +4 -4
- package/src/engine/physics/fluid/ecs/FluidSystem.d.ts +2 -2
- package/src/engine/physics/fluid/ecs/FluidSystem.js +3 -3
- package/src/engine/physics/fluid/ecs/WorkerFluidSystem.d.ts +1 -1
- package/src/engine/physics/fluid/ecs/WorkerFluidSystem.js +2 -2
- package/src/engine/physics/fluid/ecs/fluid_reanchor_field.d.ts +3 -3
- package/src/engine/physics/fluid/ecs/fluid_reanchor_field.d.ts.map +1 -1
- package/src/engine/physics/fluid/ecs/fluid_reanchor_field.js +3 -3
- package/src/engine/physics/fluid/ecs/fluid_sync_effectors_from_transform.d.ts +3 -3
- package/src/engine/physics/fluid/ecs/fluid_sync_effectors_from_transform.d.ts.map +1 -1
- package/src/engine/physics/fluid/ecs/fluid_sync_effectors_from_transform.js +2 -2
- package/src/engine/physics/fluid/effector/AbstractFluidEffector.d.ts +3 -3
- package/src/engine/physics/fluid/effector/AbstractFluidEffector.d.ts.map +1 -1
- package/src/engine/physics/fluid/effector/AbstractFluidEffector.js +2 -2
- package/src/engine/physics/fluid/effector/ImpulseFluidEffector.js +2 -2
- package/src/engine/physics/fluid/effector/WakeFluidEffector.d.ts +4 -4
- package/src/engine/physics/fluid/effector/WakeFluidEffector.js +8 -8
- package/src/engine/physics/inertia/world_inverse_inertia.d.ts +8 -17
- package/src/engine/physics/inertia/world_inverse_inertia.d.ts.map +1 -1
- package/src/engine/physics/inertia/world_inverse_inertia.js +11 -11
- package/src/engine/physics/integration/integrate_position.d.ts +6 -7
- package/src/engine/physics/integration/integrate_position.d.ts.map +1 -1
- package/src/engine/physics/integration/integrate_position.js +5 -6
- package/src/engine/physics/integration/integrate_velocity.d.ts +4 -4
- package/src/engine/physics/integration/integrate_velocity.d.ts.map +1 -1
- package/src/engine/physics/integration/integrate_velocity.js +7 -7
- package/src/engine/physics/inverse_kinematics/fabrik/fabrik_solve.d.ts +4 -4
- package/src/engine/physics/inverse_kinematics/fabrik/fabrik_solve.d.ts.map +1 -1
- package/src/engine/physics/inverse_kinematics/fabrik/fabrik_solve.js +3 -3
- package/src/engine/physics/narrowphase/convex_decomposition.d.ts.map +1 -1
- package/src/engine/physics/narrowphase/decomposition/triangle_buffer_layout.d.ts +1 -2
- package/src/engine/physics/narrowphase/decomposition/triangle_buffer_layout.d.ts.map +1 -1
- package/src/engine/physics/narrowphase/decomposition/triangle_buffer_layout.js +1 -2
- package/src/engine/physics/narrowphase/narrowphase_step.d.ts +7 -6
- package/src/engine/physics/narrowphase/narrowphase_step.d.ts.map +1 -1
- package/src/engine/physics/narrowphase/narrowphase_step.js +8 -8
- package/src/engine/physics/queries/PhysicsSurfacePoint.d.ts +10 -5
- package/src/engine/physics/queries/PhysicsSurfacePoint.d.ts.map +1 -1
- package/src/engine/physics/queries/PhysicsSurfacePoint.js +10 -6
- package/src/engine/physics/queries/overlap_shape.d.ts +5 -14
- package/src/engine/physics/queries/overlap_shape.d.ts.map +1 -1
- package/src/engine/physics/queries/overlap_shape.js +4 -4
- package/src/engine/physics/queries/raycast.d.ts.map +1 -1
- package/src/engine/physics/queries/shape_cast.d.ts +9 -1
- package/src/engine/physics/queries/shape_cast.d.ts.map +1 -1
- package/src/engine/physics/queries/shape_cast.js +2 -2
- package/src/engine/physics/solver/solve_contacts.d.ts +2 -2
- package/src/engine/physics/solver/solve_contacts.d.ts.map +1 -1
- package/src/engine/physics/solver/solve_contacts.js +2 -2
- package/src/engine/physics/vehicle/RaycastVehicle.d.ts +4 -8
- package/src/engine/physics/vehicle/RaycastVehicle.d.ts.map +1 -1
- package/src/engine/physics/vehicle/RaycastVehicle.js +16 -12
- package/src/engine/save/Storage.d.ts.map +1 -1
- package/src/engine/sound/SoundEngine.d.ts +1 -1
- package/src/engine/sound/SoundEngine.d.ts.map +1 -1
- package/src/engine/sound/ecs/audio/AudioEmitterSystem.d.ts.map +1 -1
- package/src/engine/sound/ecs/audio/AudioEmitterSystem.js +27 -2
- package/src/engine/sound/simulation/AcousticSimulator.d.ts +2 -2
- package/src/engine/sound/simulation/AcousticSimulator.d.ts.map +1 -1
- package/src/engine/sound/simulation/core/VolumeField.d.ts +1 -1
- package/src/engine/sound/simulation/core/VolumeField.d.ts.map +1 -1
- package/src/engine/sound/simulation/probe/AcousticProbeField.d.ts.map +1 -1
- package/src/engine/sound/simulation/probe/probe_delaunay_edges.d.ts.map +1 -1
- package/src/engine/sound/simulation/probe/probe_densify_portals.d.ts.map +1 -1
- package/src/engine/sound/simulation/probe/probe_detect_portals.d.ts.map +1 -1
- package/src/engine/sound/simulation/probe/probe_place_sdf_cover.d.ts.map +1 -1
- package/src/engine/sound/simulation/probe/probe_refine_connectivity.d.ts.map +1 -1
- package/src/engine/sound/simulation/render/ProbeReverbRenderer.d.ts +1 -1
- package/src/engine/sound/simulation/render/ProbeReverbRenderer.d.ts.map +1 -1
- package/src/engine/sound/simulation/render/foaReverbImpulseResponse.d.ts.map +1 -1
- package/src/engine/sound/sopra/SopraEngine.d.ts.map +1 -1
- package/src/engine/sound/sopra/legacy/SoundEmitter.d.ts +3 -3
- package/src/engine/sound/sopra/legacy/SoundEmitter.d.ts.map +1 -1
- package/src/engine/sound/sopra/legacy/SoundTrack.d.ts +3 -3
- package/src/engine/sound/sopra/legacy/SoundTrack.d.ts.map +1 -1
- package/src/engine/sound/sopra/util/buildAttenuationCurve.d.ts.map +1 -1
- package/src/engine/ui/notification/NotificationManager.d.ts.map +1 -1
- package/src/engine/ui/notification/ViewEmitter.d.ts +1 -1
- package/src/engine/ui/notification/ViewEmitter.d.ts.map +1 -1
- package/src/engine/ui/tiles2d/TileGrid.d.ts.map +1 -1
- package/src/extractName.d.ts.map +1 -1
- package/src/format/image/avif/api/convert_to_rgba.d.ts.map +1 -1
- package/src/format/image/avif/av1/encode/encode_av1_still.d.ts.map +1 -1
- package/src/format/image/avif/heif/write_avif_file.d.ts +2 -2
- package/src/format/image/avif/heif/write_avif_file.d.ts.map +1 -1
- package/src/format/image/jpeg/JpegImage.d.ts.map +1 -1
- package/src/format/image/png/PNG.d.ts.map +1 -1
- package/src/format/image/png/chunk/png_chunk_decode_iTXt.d.ts.map +1 -1
- package/src/format/image/png/chunk/png_chunk_decode_zTXt.d.ts.map +1 -1
- package/src/format/scene/gltf/ext/GltfBufferViewExtensionSet.d.ts.map +1 -1
- package/src/format/scene/gltf/gltf_node_world_matrices.d.ts.map +1 -1
- package/src/format/scene/usd/unpack_usdz.d.ts.map +1 -1
- package/src/format/scene/usd/usd_triangulate.d.ts.map +1 -1
- package/src/format/texture/basis/astc_integer_sequence.d.ts.map +1 -1
- package/src/generation/grid/actions/ContinuousGridCellActionWriteObstacle.d.ts.map +1 -1
- package/src/generation/markers/actions/placement/MarkerNodeEntityProcessorClingToTerrain.d.ts.map +1 -1
- package/src/generation/markers/actions/placement/MarkerNodeEntityProcessorClingToTerrain.js +22 -3
- package/src/generation/markers/transform/MarkerNodeTransformerRecordPropertyClosure.d.ts.map +1 -1
- package/src/generation/theme/ThemeEngine.d.ts +2 -2
- package/src/generation/theme/ThemeEngine.d.ts.map +1 -1
- package/src/shade/descriptor/ObjectDescriptorBase.d.ts +1 -1
- package/src/shade/descriptor/ObjectDescriptorBase.d.ts.map +1 -1
- package/src/shade/descriptor/binding/BindGroupLayoutDescriptor.js +1 -1
- package/src/shade/descriptor/binding/BindGroupLayoutEntry.js +3 -3
- package/src/shade/descriptor/pipeline/PipelineDescriptorBase.js +1 -1
- package/src/shade/descriptor/pipeline/PipelineLayoutDescriptor.js +1 -1
- package/src/shade/descriptor/pipeline/render/ColorTargetState.js +3 -3
- package/src/shade/descriptor/pipeline/render/FragmentState.js +1 -1
- package/src/shade/descriptor/pipeline/render/RenderPipelineDescriptor.js +3 -3
- package/src/shade/descriptor/texture/TextureDescriptor.d.ts +1 -1
- package/src/shade/device/ShadeGPUCommandContext.d.ts +1 -1
- package/src/shade/device/ShadeGPUCommandContext.d.ts.map +1 -1
- package/src/shade/device/pass/ShadeGPUComputePassEncoder.d.ts +1 -1
- package/src/shade/device/pass/ShadeGPUComputePassEncoder.d.ts.map +1 -1
- package/src/shade/device/pass/ShadeGPURenderPassEncoder.d.ts +1 -1
- package/src/shade/device/pass/ShadeGPURenderPassEncoder.d.ts.map +1 -1
- package/src/shade/device/timing/GPUTimerArray.d.ts.map +1 -1
- package/src/shade/device/timing/GPUTimerStats.d.ts +1 -1
- package/src/shade/device/timing/GPUTimerStats.d.ts.map +1 -1
- package/src/shade/device/timing/GPU_PROFILER_PROPOSAL_2026_08_28.md +894 -894
- package/src/shade/playground/basis_textures/texture_inventory.d.ts.map +1 -1
- package/src/shade/playground/bvh_repro/bvh_repro_device.d.ts.map +1 -1
- package/src/shade/playground/ground_seam/capture_scene_color.d.ts.map +1 -1
- package/src/shade/playground/ground_seam/measure_flicker.d.ts.map +1 -1
- package/src/shade/playground/particle_editor/README.md +1 -1
- package/src/shade/playground/particle_system/index.html +0 -1
- package/src/shade/playground/particle_system/main.js +1 -2
- package/src/shade/playground/particle_system/particle_prototype.d.ts +7 -9
- package/src/shade/playground/particle_system/particle_prototype.d.ts.map +1 -1
- package/src/shade/playground/particle_system/particle_prototype.js +7 -9
- package/src/shade/playground/particle_system/particle_scene.d.ts +5 -6
- package/src/shade/playground/particle_system/particle_scene.d.ts.map +1 -1
- package/src/shade/playground/particle_system/particle_scene.js +6 -7
- package/src/shade/playground/skinned_blas_refit/sweep_views.js +2 -2
- package/src/shade/playground/skinned_blas_refit/verify_traversal_reachability.js +1 -1
- package/src/shade/playground/ssr_motion/README.md +22 -0
- package/src/shade/playground/ssr_motion/index.html +18 -0
- package/src/shade/playground/ssr_motion/main.d.ts +2 -0
- package/src/shade/playground/ssr_motion/main.d.ts.map +1 -0
- package/src/shade/playground/ssr_motion/main.js +149 -0
- package/src/shade/playground/ssr_variance/index.html +1 -0
- package/src/shade/playground/vgeo_viewer/README.md +123 -0
- package/src/shade/playground/vgeo_viewer/cut_geometry.d.ts +61 -0
- package/src/shade/playground/vgeo_viewer/cut_geometry.d.ts.map +1 -0
- package/src/shade/playground/vgeo_viewer/cut_geometry.js +497 -0
- package/src/shade/playground/vgeo_viewer/index.html +77 -0
- package/src/shade/playground/vgeo_viewer/main.d.ts +2 -0
- package/src/shade/playground/vgeo_viewer/main.d.ts.map +1 -0
- package/src/shade/playground/vgeo_viewer/main.js +1288 -0
- package/src/shade/playground/vgeo_viewer/sample_asset.d.ts +18 -0
- package/src/shade/playground/vgeo_viewer/sample_asset.d.ts.map +1 -0
- package/src/shade/playground/vgeo_viewer/sample_asset.js +117 -0
- package/src/shade/playground/vgeo_viewer/select_cut.d.ts +154 -0
- package/src/shade/playground/vgeo_viewer/select_cut.d.ts.map +1 -0
- package/src/shade/playground/vgeo_viewer/select_cut.js +437 -0
- package/src/shade/renderer/DynamicResolutionScaling.d.ts +1 -1
- package/src/shade/renderer/DynamicResolutionScaling.d.ts.map +1 -1
- package/src/shade/renderer/Renderer.d.ts +5 -5
- package/src/shade/renderer/Renderer.d.ts.map +1 -1
- package/src/shade/renderer/animation/GPUAnimationManager.d.ts.map +1 -1
- package/src/shade/renderer/animation/skin_normalize_mesh_frame.d.ts.map +1 -1
- package/src/shade/renderer/camera/Camera.d.ts +3 -3
- package/src/shade/renderer/camera/Camera.d.ts.map +1 -1
- package/src/shade/renderer/camera/GPUCameraContext.d.ts +1 -1
- package/src/shade/renderer/camera/GPUCameraContext.d.ts.map +1 -1
- package/src/shade/renderer/camera/OrthographicCamera.d.ts +4 -4
- package/src/shade/renderer/camera/OrthographicCamera.d.ts.map +1 -1
- package/src/shade/renderer/camera/PerspectiveCamera.d.ts +2 -2
- package/src/shade/renderer/camera/PerspectiveCamera.d.ts.map +1 -1
- package/src/shade/renderer/camera/orbital/OrbitalCameraController.d.ts +11 -3
- package/src/shade/renderer/camera/orbital/OrbitalCameraController.d.ts.map +1 -1
- package/src/shade/renderer/camera/orbital/OrbitalCameraController.js +25 -5
- package/src/shade/renderer/extension/FrameContext.d.ts +1 -1
- package/src/shade/renderer/extension/FrameContext.d.ts.map +1 -1
- package/src/shade/renderer/extension/GBufferTextures.d.ts +4 -4
- package/src/shade/renderer/extension/GBufferTextures.d.ts.map +1 -1
- package/src/shade/renderer/extension/PresentTarget.d.ts +1 -1
- package/src/shade/renderer/extension/PresentTarget.d.ts.map +1 -1
- package/src/shade/renderer/extension/RENDER_EXTENSION_DESIGN.md +918 -918
- package/src/shade/renderer/extension/SceneColor.d.ts +1 -1
- package/src/shade/renderer/extension/SceneColor.d.ts.map +1 -1
- package/src/shade/renderer/extension/ViewTextures.d.ts +4 -4
- package/src/shade/renderer/extension/ViewTextures.d.ts.map +1 -1
- package/src/shade/renderer/geometry/Attribute.d.ts +1 -1
- package/src/shade/renderer/geometry/Attribute.d.ts.map +1 -1
- package/src/shade/renderer/geometry/Geometry.d.ts +1 -1
- package/src/shade/renderer/geometry/Geometry.d.ts.map +1 -1
- package/src/shade/renderer/geometry/Geometry.js +4 -7
- package/src/shade/renderer/geometry/bvh/bvh2_check_bounds.d.ts.map +1 -1
- package/src/shade/renderer/geometry/bvh/bvh2_derive_topology.d.ts.map +1 -1
- package/src/shade/renderer/geometry/meshlet/MeshletBatch.d.ts +3 -3
- package/src/shade/renderer/geometry/meshlet/MeshletBatch.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/build/gltf/gltf_collect_geometries.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/format/attribute/VGEO_ATTRIBUTES.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/format/frame/vgeo_read_frame_extent.d.ts +29 -0
- package/src/shade/renderer/geometry/virtual/format/frame/vgeo_read_frame_extent.d.ts.map +1 -0
- package/src/shade/renderer/geometry/virtual/format/frame/vgeo_read_frame_extent.js +59 -0
- package/src/shade/renderer/geometry/virtual/format/frame/vgeo_scan_frames.d.ts +0 -1
- package/src/shade/renderer/geometry/virtual/format/frame/vgeo_scan_frames.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/format/frame/vgeo_scan_frames.js +2 -23
- package/src/shade/renderer/geometry/virtual/format/read/VGeoByteSource.d.ts +94 -0
- package/src/shade/renderer/geometry/virtual/format/read/VGeoByteSource.d.ts.map +1 -0
- package/src/shade/renderer/geometry/virtual/format/read/VGeoByteSource.js +170 -0
- package/src/shade/renderer/geometry/virtual/format/read/VGeoContainerHeader.d.ts +122 -0
- package/src/shade/renderer/geometry/virtual/format/read/VGeoContainerHeader.d.ts.map +1 -0
- package/src/shade/renderer/geometry/virtual/format/read/VGeoContainerHeader.js +143 -0
- package/src/shade/renderer/geometry/virtual/format/read/VGeoContainerReader.d.ts +185 -0
- package/src/shade/renderer/geometry/virtual/format/read/VGeoContainerReader.d.ts.map +1 -0
- package/src/shade/renderer/geometry/virtual/format/read/VGeoContainerReader.js +572 -0
- package/src/shade/renderer/geometry/virtual/format/read/VGeoDirectory.d.ts +64 -0
- package/src/shade/renderer/geometry/virtual/format/read/VGeoDirectory.d.ts.map +1 -0
- package/src/shade/renderer/geometry/virtual/format/read/VGeoDirectory.js +80 -0
- package/src/shade/renderer/geometry/virtual/format/read/VGeoPage.d.ts +198 -0
- package/src/shade/renderer/geometry/virtual/format/read/VGeoPage.d.ts.map +1 -0
- package/src/shade/renderer/geometry/virtual/format/read/VGeoPage.js +232 -0
- package/src/shade/renderer/geometry/virtual/format/read/VGeoPageWant.d.ts +51 -0
- package/src/shade/renderer/geometry/virtual/format/read/VGeoPageWant.d.ts.map +1 -0
- package/src/shade/renderer/geometry/virtual/format/read/VGeoPageWant.js +55 -0
- package/src/shade/renderer/geometry/virtual/format/read/VGeoReadOptions.d.ts +68 -0
- package/src/shade/renderer/geometry/virtual/format/read/VGeoReadOptions.d.ts.map +1 -0
- package/src/shade/renderer/geometry/virtual/format/read/VGeoReadOptions.js +72 -0
- package/src/shade/renderer/geometry/virtual/format/read/vgeo_fetch_byte_source.d.ts +28 -0
- package/src/shade/renderer/geometry/virtual/format/read/vgeo_fetch_byte_source.d.ts.map +1 -0
- package/src/shade/renderer/geometry/virtual/format/read/vgeo_fetch_byte_source.js +108 -0
- package/src/shade/renderer/geometry/virtual/format/read/vgeo_read_directory.d.ts +23 -0
- package/src/shade/renderer/geometry/virtual/format/read/vgeo_read_directory.d.ts.map +1 -0
- package/src/shade/renderer/geometry/virtual/format/read/vgeo_read_directory.js +83 -0
- package/src/shade/renderer/geometry/virtual/format/read/vgeo_read_header.d.ts +53 -0
- package/src/shade/renderer/geometry/virtual/format/read/vgeo_read_header.d.ts.map +1 -0
- package/src/shade/renderer/geometry/virtual/format/read/vgeo_read_header.js +211 -0
- package/src/shade/renderer/geometry/virtual/format/read/vgeo_read_page.d.ts +26 -0
- package/src/shade/renderer/geometry/virtual/format/read/vgeo_read_page.d.ts.map +1 -0
- package/src/shade/renderer/geometry/virtual/format/read/vgeo_read_page.js +271 -0
- package/src/shade/renderer/global_illumination/brick4/cpu/brick4_bake_for_scene.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/clipmap/GPUClipMap3D.d.ts +2 -2
- package/src/shade/renderer/global_illumination/clipmap/GPUClipMap3D.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/lpv/LightProbeVolume.d.ts +1 -1
- package/src/shade/renderer/global_illumination/lpv/LightProbeVolume.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/lpv/bake/GPULightProbeVolumeRenderer.d.ts +1 -1
- package/src/shade/renderer/global_illumination/lpv/bake/GPULightProbeVolumeRenderer.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/sharc/SpatialHashRadianceCache.d.ts +1 -1
- package/src/shade/renderer/global_illumination/sharc/SpatialHashRadianceCache.d.ts.map +1 -1
- package/src/shade/renderer/gpu_primitive/bvh/check_bvh_structure.d.ts.map +1 -1
- package/src/shade/renderer/light/LightCollection.d.ts +2 -2
- package/src/shade/renderer/light/LightCollection.d.ts.map +1 -1
- package/src/shade/renderer/light/model/PointLight.d.ts +1 -1
- package/src/shade/renderer/light/model/PointLight.d.ts.map +1 -1
- package/src/shade/renderer/light/model/SpotLight.d.ts +1 -1
- package/src/shade/renderer/light/model/SpotLight.d.ts.map +1 -1
- package/src/shade/renderer/loader/gltf/fix_up_material_sides.d.ts.map +1 -1
- package/src/shade/renderer/loader/gltf/gltf_create_material.d.ts +1 -1
- package/src/shade/renderer/loader/gltf/gltf_create_material.d.ts.map +1 -1
- package/src/shade/renderer/loader/gltf/tiny-gltf.d.ts +2 -2
- package/src/shade/renderer/loader/gltf/tiny-gltf.d.ts.map +1 -1
- package/src/shade/renderer/loader/usd/usd_decode_image.d.ts +1 -1
- package/src/shade/renderer/loader/usd/usd_decode_image.d.ts.map +1 -1
- package/src/shade/renderer/material/StandardShadeMaterial.js +2 -2
- package/src/shade/renderer/material/util/material_convert_metallic_roughness_to_specular_glossiness.d.ts.map +1 -1
- package/src/shade/renderer/material/util/material_convert_specular_glossiness_to_metallic_roughness.d.ts.map +1 -1
- package/src/shade/renderer/particles/DESIGN.md +27 -18
- package/src/shade/renderer/particles/GPUParticleSystem.d.ts +24 -10
- package/src/shade/renderer/particles/GPUParticleSystem.d.ts.map +1 -1
- package/src/shade/renderer/particles/GPUParticleSystem.js +80 -73
- package/src/shade/renderer/particles/coherence/graph_particle_bucket.d.ts +17 -16
- package/src/shade/renderer/particles/coherence/graph_particle_bucket.d.ts.map +1 -1
- package/src/shade/renderer/particles/coherence/graph_particle_bucket.js +35 -22
- package/src/shade/renderer/particles/graph/ParticleGroupBuilder.d.ts +7 -7
- package/src/shade/renderer/particles/graph/ParticleGroupBuilder.d.ts.map +1 -1
- package/src/shade/renderer/particles/graph/ParticleGroupBuilder.js +1 -1
- package/src/shade/renderer/particles/graph/ParticleNodeGroup.d.ts.map +1 -1
- package/src/shade/renderer/particles/graph/ParticleNodeRegistry.d.ts.map +1 -1
- package/src/shade/renderer/particles/graph/ParticleNodeRegistry.js +9 -15
- package/src/shade/renderer/particles/graph/ParticleValueType.d.ts +1 -1
- package/src/shade/renderer/particles/graph/ParticleValueType.d.ts.map +1 -1
- package/src/shade/renderer/particles/graph/make_particle_group.d.ts.map +1 -1
- package/src/shade/renderer/particles/graph/particle_graph_authoring.d.ts.map +1 -1
- package/src/shade/renderer/particles/graph/particle_group_json.d.ts.map +1 -1
- package/src/shade/renderer/particles/graph/particle_group_library.d.ts.map +1 -1
- package/src/shade/renderer/particles/graph/particle_group_library.js +8 -3
- package/src/shade/renderer/particles/graph/particle_node_parameters.d.ts +0 -2
- package/src/shade/renderer/particles/graph/particle_node_parameters.d.ts.map +1 -1
- package/src/shade/renderer/particles/graph/particle_node_parameters.js +0 -9
- package/src/shade/renderer/particles/graph/particle_node_presentation.d.ts.map +1 -1
- package/src/shade/renderer/particles/graph/particle_node_presentation.js +0 -10
- package/src/shade/renderer/particles/graph/particle_ramp.d.ts +2 -8
- package/src/shade/renderer/particles/graph/particle_ramp.d.ts.map +1 -1
- package/src/shade/renderer/particles/graph/particle_ramp.js +2 -8
- package/src/shade/renderer/particles/graph/validate_particle_graph.js +0 -6
- package/src/shade/renderer/particles/graph_particles.d.ts +11 -0
- package/src/shade/renderer/particles/graph_particles.d.ts.map +1 -1
- package/src/shade/renderer/particles/graph_particles.js +55 -37
- package/src/shade/renderer/particles/graph_particles_avboit.d.ts.map +1 -1
- package/src/shade/renderer/particles/graph_particles_avboit.js +13 -4
- package/src/shade/renderer/particles/graph_particles_billboard.d.ts.map +1 -1
- package/src/shade/renderer/particles/isa/InstructionStream.d.ts +1 -12
- package/src/shade/renderer/particles/isa/InstructionStream.d.ts.map +1 -1
- package/src/shade/renderer/particles/isa/InstructionStream.js +1 -12
- package/src/shade/renderer/particles/isa/ParticleVMISA.d.ts +54 -60
- package/src/shade/renderer/particles/isa/ParticleVMISA.d.ts.map +1 -1
- package/src/shade/renderer/particles/isa/ParticleVMISA.js +9 -17
- package/src/shade/renderer/particles/isa/particle_assembly.d.ts +0 -1
- package/src/shade/renderer/particles/isa/particle_assembly.d.ts.map +1 -1
- package/src/shade/renderer/particles/isa/particle_assembly.js +2 -16
- package/src/shade/renderer/particles/layout/ParticleLayout.d.ts.map +1 -1
- package/src/shade/renderer/particles/optimizer/dag/particle_vector_graph.d.ts +1 -1
- package/src/shade/renderer/particles/optimizer/dag/particle_vector_graph.js +1 -1
- package/src/shade/renderer/particles/optimizer/dag/particle_vector_lift.d.ts.map +1 -1
- package/src/shade/renderer/particles/optimizer/dag/particle_vector_lift.js +0 -14
- package/src/shade/renderer/particles/optimizer/dag/particle_vector_pack.d.ts.map +1 -1
- package/src/shade/renderer/particles/optimizer/dag/particle_vector_pack.js +3 -17
- package/src/shade/renderer/particles/optimizer/optimize_particle_program.d.ts +1 -1
- package/src/shade/renderer/particles/optimizer/optimize_particle_program.d.ts.map +1 -1
- package/src/shade/renderer/particles/optimizer/particle_program_analysis.d.ts.map +1 -1
- package/src/shade/renderer/particles/optimizer/particle_program_analysis.js +15 -36
- package/src/shade/renderer/particles/optimizer/particle_program_equivalence.d.ts.map +1 -1
- package/src/shade/renderer/particles/optimizer/particle_program_equivalence.js +1 -5
- package/src/shade/renderer/particles/optimizer/particle_program_fuzz.d.ts.map +1 -1
- package/src/shade/renderer/particles/optimizer/particle_program_fuzz.js +1 -8
- package/src/shade/renderer/particles/optimizer/particle_vm_semantics.d.ts +2 -11
- package/src/shade/renderer/particles/optimizer/particle_vm_semantics.d.ts.map +1 -1
- package/src/shade/renderer/particles/optimizer/particle_vm_semantics.js +2 -11
- package/src/shade/renderer/particles/runtime/create_particle_effect.d.ts.map +1 -1
- package/src/shade/renderer/particles/shaders/chunk_particle_avboit_contribution.d.ts.map +1 -1
- package/src/shade/renderer/particles/shaders/chunk_particle_avboit_contribution.js +13 -0
- package/src/shade/renderer/particles/shaders/shader_particle_avboit_draw.d.ts +3 -6
- package/src/shade/renderer/particles/shaders/shader_particle_avboit_draw.d.ts.map +1 -1
- package/src/shade/renderer/particles/shaders/shader_particle_avboit_draw.js +49 -17
- package/src/shade/renderer/particles/shaders/shader_particle_emit.d.ts.map +1 -1
- package/src/shade/renderer/particles/shaders/shader_particle_emit.js +0 -2
- package/src/shade/renderer/particles/shaders/shader_particle_emit_wide.d.ts.map +1 -1
- package/src/shade/renderer/particles/shaders/shader_particle_emit_wide.js +0 -2
- package/src/shade/renderer/particles/shaders/shader_particle_simulate.d.ts.map +1 -1
- package/src/shade/renderer/particles/shaders/shader_particle_simulate.js +1 -5
- package/src/shade/renderer/particles/shaders/shader_particle_simulate_wide.d.ts.map +1 -1
- package/src/shade/renderer/particles/shaders/shader_particle_simulate_wide.js +0 -2
- package/src/shade/renderer/particles/sort/graph_particle_sort.d.ts +17 -13
- package/src/shade/renderer/particles/sort/graph_particle_sort.d.ts.map +1 -1
- package/src/shade/renderer/particles/sort/graph_particle_sort.js +43 -33
- package/src/shade/renderer/particles/vm/ParticleVMReference.d.ts +1 -3
- package/src/shade/renderer/particles/vm/ParticleVMReference.d.ts.map +1 -1
- package/src/shade/renderer/particles/vm/ParticleVMReference.js +4 -20
- package/src/shade/renderer/particles/vm/chunk_particle_vm.d.ts.map +1 -1
- package/src/shade/renderer/particles/vm/chunk_particle_vm.js +2 -5
- package/src/shade/renderer/particles/warmup/shader_particle_warmup_advance.d.ts.map +1 -1
- package/src/shade/renderer/particles/warmup/shader_particle_warmup_advance.js +0 -2
- package/src/shade/renderer/particles/warmup/shader_particle_warmup_advance_wide.d.ts.map +1 -1
- package/src/shade/renderer/particles/warmup/shader_particle_warmup_advance_wide.js +0 -2
- package/src/shade/renderer/postprocess/denoise/LigmaDenoiser.d.ts +1 -1
- package/src/shade/renderer/postprocess/denoise/LigmaDenoiser.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/graph_pass_composit_red_as_rgba.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/nss/NSS.d.ts +4 -4
- package/src/shade/renderer/postprocess/nss/NSS.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/ssr/SSR.d.ts +3 -3
- package/src/shade/renderer/postprocess/ssr/SSR.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/ssr/reproject/chunk_ssr_reprojection.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/ssr/reproject/chunk_ssr_reprojection.js +21 -0
- package/src/shade/renderer/postprocess/ssr/reproject/chunk_ssr_temporal_accumulate.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/ssr/reproject/chunk_ssr_temporal_accumulate.js +4 -0
- package/src/shade/renderer/postprocess/ssr/ssr_reproject_shader.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/ssr/ssr_reproject_shader.js +2 -1
- package/src/shade/renderer/postprocess/taa/TAA.d.ts +2 -2
- package/src/shade/renderer/postprocess/taa/TAA.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/bucket/prepare_meshlet_draw_commands_by_material.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/native/avboit/AVBOITSideChannel.d.ts.map +1 -1
- package/src/shade/renderer/scene/InstanceBatch.d.ts +1 -1
- package/src/shade/renderer/scene/InstanceBatch.d.ts.map +1 -1
- package/src/shade/renderer/scene/Mesh.js +1 -1
- package/src/shade/renderer/scene/Node3D.d.ts +3 -3
- package/src/shade/renderer/scene/Node3D.d.ts.map +1 -1
- package/src/shade/renderer/scene/bvh/StaticSceneBVH.d.ts.map +1 -1
- package/src/shade/renderer/shader/compiler/CodeChunk.d.ts.map +1 -1
- package/src/shade/renderer/shader/graph/graph_prepare_pass_input_data.d.ts.map +1 -1
- package/src/shade/renderer/shader/graph/graph_prepare_pass_input_data.js +11 -0
- package/src/shade/renderer/shader/type/WebGPUStruct.d.ts +1 -1
- package/src/shade/renderer/shader/type/WebGPUStruct.d.ts.map +1 -1
- package/src/shade/renderer/texture/GPUTextureContext.d.ts +1 -1
- package/src/shade/renderer/texture/GPUTextureContext.d.ts.map +1 -1
- package/src/shade/renderer/texture/ShadeTexture.js +1 -1
- package/src/shade/renderer/texture/format/sampler_descriptor_unpack.d.ts.map +1 -1
- package/src/shade/renderer/texture/source/ShadeImage.d.ts +7 -7
- package/src/shade/renderer/texture/source/ShadeImage.d.ts.map +1 -1
- package/src/shade/renderer/texture/virtual/VTPageTable.d.ts.map +1 -1
- package/src/shade/renderer/view/GPUViewContext.d.ts +2 -2
- package/src/shade/renderer/view/GPUViewContext.d.ts.map +1 -1
- package/src/shade/renderer/view/GPUViewSkyContext.d.ts +1 -1
- package/src/shade/renderer/view/GPUViewSkyContext.d.ts.map +1 -1
- package/src/shade/renderer/volumetrics/GPUViewVolumetrics.d.ts +2 -2
- package/src/shade/renderer/volumetrics/GPUViewVolumetrics.d.ts.map +1 -1
- package/src/shade/renderer/volumetrics/ParticipatingMediaVolume.d.ts +1 -1
- package/src/shade/renderer/volumetrics/ParticipatingMediaVolume.d.ts.map +1 -1
- package/src/shade/wgsl/emulator/CPUBitmapData.d.ts.map +1 -1
- package/src/view/View.d.ts +1 -1
- package/src/view/View.d.ts.map +1 -1
- package/src/view/elements/button/ButtonView.d.ts +1 -1
- package/src/view/elements/button/ButtonView.d.ts.map +1 -1
- package/src/view/elements/progress/SmoothProgressBar.d.ts +2 -2
- package/src/view/elements/progress/SmoothProgressBar.d.ts.map +1 -1
- package/src/view/elements/radial/RadialMenuElement.d.ts +3 -3
- package/src/view/elements/radial/RadialMenuElement.d.ts.map +1 -1
- package/src/view/elements/windrose/WindRoseDiagram.d.ts.map +1 -1
- package/src/view/layout/DockLayoutView.d.ts.map +1 -1
- package/src/view/layout/DrawerView.d.ts +2 -2
- package/src/view/layout/DrawerView.d.ts.map +1 -1
- package/src/view/layout/SplitView.d.ts +9 -9
- package/src/view/layout/SplitView.d.ts.map +1 -1
- package/src/view/minimap/MinimapMarkerCollection.d.ts +3 -2
- package/src/view/minimap/MinimapMarkerCollection.d.ts.map +1 -1
- package/src/view/minimap/MinimapMarkerCollection.js +28 -5
- package/src/view/minimap/dom/MinimapMarkerView.js +65 -34
- package/src/view/minimap/gl/MarkerGL.d.ts +15 -3
- package/src/view/minimap/gl/MarkerGL.d.ts.map +1 -1
- package/src/view/minimap/gl/MarkerGL.js +31 -4
- package/src/engine/physics/BULLET_REVIEW.md +0 -945
- package/src/engine/physics/CANNON_REVIEW.md +0 -1300
- package/src/engine/physics/CONSTRAINT_SOLVER_BENCH_LOG.md +0 -208
- package/src/engine/physics/CONSTRAINT_SOLVER_IMPROVEMENTS_PLAN.md +0 -364
- package/src/engine/physics/INTEPOLATION_SYSTEM_PLAN.md +0 -287
- package/src/engine/physics/JOLT_REVIEW.md +0 -913
- package/src/engine/physics/PLAN.md +0 -1120
- package/src/engine/physics/RAPIER_REVIEW.md +0 -934
- package/src/engine/physics/REVIEW_001_ACTION_PLAN.md +0 -642
- package/src/engine/physics/REVIEW_002.md +0 -151
- package/src/engine/physics/REVIEW_003.md +0 -166
- package/src/shade/descriptor/util/optional_clone.d.ts.map +0 -1
- package/src/shade/descriptor/util/optional_equality.d.ts.map +0 -1
- package/src/shade/descriptor/util/optional_hash.d.ts.map +0 -1
- package/src/shade/renderer/geometry/virtual/format/prototypeVGEOFormatViewer.js +0 -2063
- package/src/shade/renderer/particles/shaders/chunk_particle_curve_animation.d.ts +0 -19
- package/src/shade/renderer/particles/shaders/chunk_particle_curve_animation.d.ts.map +0 -1
- package/src/shade/renderer/particles/shaders/chunk_particle_curve_animation.js +0 -30
- package/src/shade/renderer/particles/shaders/chunk_particle_curve_disabled.d.ts +0 -11
- package/src/shade/renderer/particles/shaders/chunk_particle_curve_disabled.d.ts.map +0 -1
- package/src/shade/renderer/particles/shaders/chunk_particle_curve_disabled.js +0 -13
- /package/src/{shade/descriptor/util → core/model/object}/optional_clone.d.ts +0 -0
- /package/src/{shade/descriptor/util → core/model/object}/optional_clone.js +0 -0
|
@@ -24,6 +24,8 @@ import { solve_joints } from "../constraint/solve_constraints.js";
|
|
|
24
24
|
import { ManifoldStore } from "../contact/ManifoldStore.js";
|
|
25
25
|
import { ContactEventBuffer, ContactEventKind } from "../events/ContactEventBuffer.js";
|
|
26
26
|
import { diff_manifolds } from "../events/diff_manifolds.js";
|
|
27
|
+
import { v3_add } from "../../../core/geom/vec3/v3_add.js";
|
|
28
|
+
import { v3_set } from "../../../core/geom/vec3/v3_set.js";
|
|
27
29
|
import { world_inverse_inertia_apply } from "../inertia/world_inverse_inertia.js";
|
|
28
30
|
import { integrate_position } from "../integration/integrate_position.js";
|
|
29
31
|
import { integrate_velocity_forces, integrate_velocity_gravity } from "../integration/integrate_velocity.js";
|
|
@@ -60,9 +62,9 @@ const scratch_angular_delta = new Float64Array(3);
|
|
|
60
62
|
/**
|
|
61
63
|
* Scratch for {@link applyImpulseAt}'s LockRot*-masked inverse-inertia
|
|
62
64
|
* diagonal (the same mask {@link SolverBodyState#gather} applies).
|
|
63
|
-
* @type {
|
|
65
|
+
* @type {Float64Array}
|
|
64
66
|
*/
|
|
65
|
-
const scratch_locked_inertia =
|
|
67
|
+
const scratch_locked_inertia = new Float64Array(3);
|
|
66
68
|
|
|
67
69
|
/**
|
|
68
70
|
* Reusable scratch buffer for world-AABB construction so the link path is
|
|
@@ -104,7 +106,7 @@ const scratch_prox_sleeper = new Float64Array(6);
|
|
|
104
106
|
/**
|
|
105
107
|
* Rigid-body physics system.
|
|
106
108
|
*
|
|
107
|
-
* v1 scope: pool + active list + two BVHs (static / dynamic),
|
|
109
|
+
* v1 scope: pool + active list + two BVHs (static / dynamic), Transform64 sync
|
|
108
110
|
* contract, and the user-facing API surface (gravity, force / impulse, layer
|
|
109
111
|
* filtering, wake / sleep, contact filter). The per-step simulation pipeline
|
|
110
112
|
* (broadphase pair generation, narrowphase, solver, islands, sleep test,
|
|
@@ -185,7 +187,7 @@ export class PhysicsSystem extends System {
|
|
|
185
187
|
* Data-oriented mirror of the per-body solver hot state (velocity,
|
|
186
188
|
* inverse mass / inertia, orientation), packed into one ArrayBuffer
|
|
187
189
|
* and indexed by body slot. Gathered from the `RigidBody` /
|
|
188
|
-
* `
|
|
190
|
+
* `Transform64` components once per step (after islands are built),
|
|
189
191
|
* mutated in place by the TGS substep loop, and the persistent
|
|
190
192
|
* velocity scattered back at the end. Keeps the solver's hottest inner
|
|
191
193
|
* loop free of component-object dereferences.
|
|
@@ -250,7 +252,8 @@ export class PhysicsSystem extends System {
|
|
|
250
252
|
contactDampingRatio = 10;
|
|
251
253
|
|
|
252
254
|
/**
|
|
253
|
-
* Reusable contact-event payload.
|
|
255
|
+
* Reusable contact-event payload. `point` and `normal` are three-element
|
|
256
|
+
* `Float64Array`s indexed `[0] [1] [2]`. Listeners must copy any fields they
|
|
254
257
|
* intend to retain past their own scope. Reset before each dispatch.
|
|
255
258
|
* @private
|
|
256
259
|
*/
|
|
@@ -259,16 +262,19 @@ export class PhysicsSystem extends System {
|
|
|
259
262
|
entityB: -1,
|
|
260
263
|
kind: 0,
|
|
261
264
|
depth: 0,
|
|
262
|
-
normal: new
|
|
263
|
-
point: new
|
|
265
|
+
normal: new Float64Array(3),
|
|
266
|
+
point: new Float64Array(3),
|
|
264
267
|
};
|
|
265
268
|
|
|
266
269
|
/**
|
|
267
|
-
* World gravity, m/s
|
|
270
|
+
* World gravity, m/s², indexed `[0] [1] [2]`. Applied each step scaled by the
|
|
271
|
+
* per-body gravityScale. Raw storage with no change signal — write it through
|
|
272
|
+
* {@link setGravity}, or with {@link v3_set} if the wake side-effect is not
|
|
273
|
+
* wanted; `gravity.set(x, y, z)` is `TypedArray.prototype.set` and writes nothing.
|
|
268
274
|
* @readonly
|
|
269
|
-
* @type {
|
|
275
|
+
* @type {Float64Array}
|
|
270
276
|
*/
|
|
271
|
-
gravity =
|
|
277
|
+
gravity = Float64Array.of(0, -9.81, 0);
|
|
272
278
|
|
|
273
279
|
/**
|
|
274
280
|
* Optional global contact filter. Called for each surviving broadphase
|
|
@@ -294,12 +300,12 @@ export class PhysicsSystem extends System {
|
|
|
294
300
|
|
|
295
301
|
/**
|
|
296
302
|
* Per-body list of attached colliders. Each entry stores the
|
|
297
|
-
* Collider component, its world
|
|
303
|
+
* Collider component, its world Transform64, the entity that owns
|
|
298
304
|
* it (the body entity for same-entity attachments, a child entity
|
|
299
305
|
* for compound bodies), and the BVH leaf id assigned at attach
|
|
300
306
|
* time. A body may have zero or more attached colliders.
|
|
301
307
|
*
|
|
302
|
-
* @type {Array<Array<{collider: Collider, transform:
|
|
308
|
+
* @type {Array<Array<{collider: Collider, transform: Transform64, entity: number, bvhNode: number}>>}
|
|
303
309
|
*/
|
|
304
310
|
__body_collider_lists = [];
|
|
305
311
|
|
|
@@ -504,10 +510,15 @@ export class PhysicsSystem extends System {
|
|
|
504
510
|
|
|
505
511
|
/**
|
|
506
512
|
* Replace the world gravity vector. Effective on the next step.
|
|
507
|
-
* @param {Vector3|
|
|
513
|
+
* @param {Vector3|ArrayLike<number>} v indexed as [x, y, z]
|
|
508
514
|
*/
|
|
509
515
|
setGravity(v) {
|
|
510
|
-
|
|
516
|
+
assert.defined(v, 'v');
|
|
517
|
+
assert.isNumber(v[0], 'v[0]');
|
|
518
|
+
assert.isNumber(v[1], 'v[1]');
|
|
519
|
+
assert.isNumber(v[2], 'v[2]');
|
|
520
|
+
|
|
521
|
+
v3_set(this.gravity, 0, v[0], v[1], v[2]);
|
|
511
522
|
}
|
|
512
523
|
|
|
513
524
|
/**
|
|
@@ -725,8 +736,8 @@ export class PhysicsSystem extends System {
|
|
|
725
736
|
* Attach a collider to an existing body. The collider can live on the
|
|
726
737
|
* same entity as the body (single-collider body) or on a child entity
|
|
727
738
|
* (compound body). The world transform passed here is the collider's
|
|
728
|
-
* own — for a same-entity collider it is the body's
|
|
729
|
-
* child collider it is the child entity's
|
|
739
|
+
* own — for a same-entity collider it is the body's Transform64; for a
|
|
740
|
+
* child collider it is the child entity's Transform64.
|
|
730
741
|
*
|
|
731
742
|
* Idempotent — re-attaching the same collider is a no-op.
|
|
732
743
|
*
|
|
@@ -902,14 +913,19 @@ export class PhysicsSystem extends System {
|
|
|
902
913
|
* Wakes the body if it is asleep.
|
|
903
914
|
*
|
|
904
915
|
* @param {RigidBody} rigidBody
|
|
905
|
-
* @param {Vector3|
|
|
916
|
+
* @param {Vector3|ArrayLike<number>} impulse indexed as [x, y, z]
|
|
906
917
|
*/
|
|
907
918
|
applyImpulse(rigidBody, impulse) {
|
|
919
|
+
assert.defined(impulse, 'impulse');
|
|
920
|
+
assert.isNumber(impulse[0], 'impulse[0]');
|
|
921
|
+
assert.isNumber(impulse[1], 'impulse[1]');
|
|
922
|
+
assert.isNumber(impulse[2], 'impulse[2]');
|
|
923
|
+
|
|
908
924
|
if (rigidBody.kind !== BodyKind.Dynamic) {
|
|
909
925
|
return;
|
|
910
926
|
}
|
|
911
927
|
const inv_m = rigidBody.mass > 0 ? 1 / rigidBody.mass : 0;
|
|
912
|
-
rigidBody.linearVelocity
|
|
928
|
+
v3_add(rigidBody.linearVelocity, 0, impulse[0] * inv_m, impulse[1] * inv_m, impulse[2] * inv_m);
|
|
913
929
|
|
|
914
930
|
this.__wake_body(rigidBody);
|
|
915
931
|
}
|
|
@@ -922,8 +938,8 @@ export class PhysicsSystem extends System {
|
|
|
922
938
|
* Wakes the body if it is asleep.
|
|
923
939
|
*
|
|
924
940
|
* @param {RigidBody} rigidBody
|
|
925
|
-
* @param {Transform64} transform body's current world
|
|
926
|
-
* @param {Vector3|
|
|
941
|
+
* @param {Transform64} transform body's current world transform (used for r and I_w)
|
|
942
|
+
* @param {Vector3|ArrayLike<number>} impulse indexed as [x, y, z]
|
|
927
943
|
* @param {Vector3|ArrayLike<number>} worldPoint world-space point indexed as [x, y, z]
|
|
928
944
|
*/
|
|
929
945
|
applyImpulseAt(
|
|
@@ -945,19 +961,15 @@ export class PhysicsSystem extends System {
|
|
|
945
961
|
|
|
946
962
|
const inv_m = rigidBody.mass > 0 ? 1 / rigidBody.mass : 0;
|
|
947
963
|
|
|
948
|
-
const impulse_x = impulse
|
|
949
|
-
const impulse_y = impulse
|
|
950
|
-
const impulse_z = impulse
|
|
964
|
+
const impulse_x = impulse[0];
|
|
965
|
+
const impulse_y = impulse[1];
|
|
966
|
+
const impulse_z = impulse[2];
|
|
951
967
|
|
|
952
|
-
assert.isNumber(impulse_x, '
|
|
953
|
-
assert.isNumber(impulse_y, '
|
|
954
|
-
assert.isNumber(impulse_z, '
|
|
968
|
+
assert.isNumber(impulse_x, 'impulse[0]');
|
|
969
|
+
assert.isNumber(impulse_y, 'impulse[1]');
|
|
970
|
+
assert.isNumber(impulse_z, 'impulse[2]');
|
|
955
971
|
|
|
956
|
-
rigidBody.linearVelocity
|
|
957
|
-
rigidBody.linearVelocity.x + impulse_x * inv_m,
|
|
958
|
-
rigidBody.linearVelocity.y + impulse_y * inv_m,
|
|
959
|
-
rigidBody.linearVelocity.z + impulse_z * inv_m
|
|
960
|
-
);
|
|
972
|
+
v3_add(rigidBody.linearVelocity, 0, impulse_x * inv_m, impulse_y * inv_m, impulse_z * inv_m);
|
|
961
973
|
|
|
962
974
|
// World points use indexed coordinates, including Transform64 translation views.
|
|
963
975
|
const rx = worldPoint[0] - transform.translation_x;
|
|
@@ -974,15 +986,14 @@ export class PhysicsSystem extends System {
|
|
|
974
986
|
// DOF either.
|
|
975
987
|
const flags = rigidBody.flags;
|
|
976
988
|
const ii = rigidBody.inverseInertiaLocal;
|
|
977
|
-
scratch_locked_inertia
|
|
978
|
-
scratch_locked_inertia
|
|
979
|
-
scratch_locked_inertia
|
|
989
|
+
scratch_locked_inertia[0] = (flags & RigidBodyFlags.LockRotX) !== 0 ? 0 : ii[0];
|
|
990
|
+
scratch_locked_inertia[1] = (flags & RigidBodyFlags.LockRotY) !== 0 ? 0 : ii[1];
|
|
991
|
+
scratch_locked_inertia[2] = (flags & RigidBodyFlags.LockRotZ) !== 0 ? 0 : ii[2];
|
|
980
992
|
world_inverse_inertia_apply(scratch_angular_delta, 0, scratch_locked_inertia, transform.rotation, tx, ty, tz);
|
|
981
993
|
|
|
982
|
-
|
|
983
|
-
rigidBody.angularVelocity
|
|
984
|
-
|
|
985
|
-
rigidBody.angularVelocity.z + scratch_angular_delta[2]
|
|
994
|
+
v3_add(
|
|
995
|
+
rigidBody.angularVelocity, 0,
|
|
996
|
+
scratch_angular_delta[0], scratch_angular_delta[1], scratch_angular_delta[2]
|
|
986
997
|
);
|
|
987
998
|
|
|
988
999
|
this.__wake_body(rigidBody);
|
|
@@ -995,17 +1006,18 @@ export class PhysicsSystem extends System {
|
|
|
995
1006
|
* Wakes the body if asleep.
|
|
996
1007
|
*
|
|
997
1008
|
* @param {RigidBody} rigidBody
|
|
998
|
-
* @param {Vector3|
|
|
1009
|
+
* @param {Vector3|ArrayLike<number>} torque indexed as [x, y, z]
|
|
999
1010
|
*/
|
|
1000
1011
|
applyTorque(rigidBody, torque) {
|
|
1012
|
+
assert.defined(torque, 'torque');
|
|
1013
|
+
assert.isNumber(torque[0], 'torque[0]');
|
|
1014
|
+
assert.isNumber(torque[1], 'torque[1]');
|
|
1015
|
+
assert.isNumber(torque[2], 'torque[2]');
|
|
1016
|
+
|
|
1001
1017
|
if (rigidBody.kind !== BodyKind.Dynamic) {
|
|
1002
1018
|
return;
|
|
1003
1019
|
}
|
|
1004
|
-
rigidBody.accumulatedTorque
|
|
1005
|
-
rigidBody.accumulatedTorque.x + torque.x,
|
|
1006
|
-
rigidBody.accumulatedTorque.y + torque.y,
|
|
1007
|
-
rigidBody.accumulatedTorque.z + torque.z
|
|
1008
|
-
);
|
|
1020
|
+
v3_add(rigidBody.accumulatedTorque, 0, torque[0], torque[1], torque[2]);
|
|
1009
1021
|
this.__wake_body(rigidBody);
|
|
1010
1022
|
}
|
|
1011
1023
|
|
|
@@ -1017,11 +1029,16 @@ export class PhysicsSystem extends System {
|
|
|
1017
1029
|
* Wakes the body if asleep.
|
|
1018
1030
|
*
|
|
1019
1031
|
* @param {RigidBody} rigidBody
|
|
1020
|
-
* @param {Transform64} transform body's current world
|
|
1021
|
-
* @param {Vector3|
|
|
1032
|
+
* @param {Transform64} transform body's current world transform
|
|
1033
|
+
* @param {Vector3|ArrayLike<number>} force indexed as [x, y, z]
|
|
1022
1034
|
* @param {Vector3|ArrayLike<number>} worldPoint world-space point indexed as [x, y, z]
|
|
1023
1035
|
*/
|
|
1024
1036
|
applyForceAt(rigidBody, transform, force, worldPoint) {
|
|
1037
|
+
assert.defined(force, 'force');
|
|
1038
|
+
assert.isNumber(force[0], 'force[0]');
|
|
1039
|
+
assert.isNumber(force[1], 'force[1]');
|
|
1040
|
+
assert.isNumber(force[2], 'force[2]');
|
|
1041
|
+
|
|
1025
1042
|
assert.defined(worldPoint, 'worldPoint');
|
|
1026
1043
|
assert.isNumber(worldPoint[0], 'worldPoint[0]');
|
|
1027
1044
|
assert.isNumber(worldPoint[1], 'worldPoint[1]');
|
|
@@ -1030,21 +1047,18 @@ export class PhysicsSystem extends System {
|
|
|
1030
1047
|
if (rigidBody.kind !== BodyKind.Dynamic) {
|
|
1031
1048
|
return;
|
|
1032
1049
|
}
|
|
1033
|
-
rigidBody.accumulatedForce
|
|
1034
|
-
rigidBody.accumulatedForce.x + force.x,
|
|
1035
|
-
rigidBody.accumulatedForce.y + force.y,
|
|
1036
|
-
rigidBody.accumulatedForce.z + force.z
|
|
1037
|
-
);
|
|
1050
|
+
v3_add(rigidBody.accumulatedForce, 0, force[0], force[1], force[2]);
|
|
1038
1051
|
|
|
1039
1052
|
// World points use indexed coordinates, including Transform64 translation views.
|
|
1040
1053
|
const rx = worldPoint[0] - transform.translation_x;
|
|
1041
1054
|
const ry = worldPoint[1] - transform.translation_y;
|
|
1042
1055
|
const rz = worldPoint[2] - transform.translation_z;
|
|
1043
1056
|
|
|
1044
|
-
|
|
1045
|
-
rigidBody.accumulatedTorque
|
|
1046
|
-
|
|
1047
|
-
|
|
1057
|
+
v3_add(
|
|
1058
|
+
rigidBody.accumulatedTorque, 0,
|
|
1059
|
+
ry * force[2] - rz * force[1],
|
|
1060
|
+
rz * force[0] - rx * force[2],
|
|
1061
|
+
rx * force[1] - ry * force[0]
|
|
1048
1062
|
);
|
|
1049
1063
|
|
|
1050
1064
|
this.__wake_body(rigidBody);
|
|
@@ -1055,13 +1069,18 @@ export class PhysicsSystem extends System {
|
|
|
1055
1069
|
* Wakes the body if asleep.
|
|
1056
1070
|
*
|
|
1057
1071
|
* @param {RigidBody} rigidBody
|
|
1058
|
-
* @param {Vector3|
|
|
1072
|
+
* @param {Vector3|ArrayLike<number>} force indexed as [x, y, z]
|
|
1059
1073
|
*/
|
|
1060
1074
|
applyForce(rigidBody, force) {
|
|
1075
|
+
assert.defined(force, 'force');
|
|
1076
|
+
assert.isNumber(force[0], 'force[0]');
|
|
1077
|
+
assert.isNumber(force[1], 'force[1]');
|
|
1078
|
+
assert.isNumber(force[2], 'force[2]');
|
|
1079
|
+
|
|
1061
1080
|
if (rigidBody.kind !== BodyKind.Dynamic) {
|
|
1062
1081
|
return;
|
|
1063
1082
|
}
|
|
1064
|
-
rigidBody.accumulatedForce
|
|
1083
|
+
v3_add(rigidBody.accumulatedForce, 0, force[0], force[1], force[2]);
|
|
1065
1084
|
this.__wake_body(rigidBody);
|
|
1066
1085
|
}
|
|
1067
1086
|
|
|
@@ -1069,10 +1088,15 @@ export class PhysicsSystem extends System {
|
|
|
1069
1088
|
* Replace the linear velocity. Wakes the body if asleep.
|
|
1070
1089
|
*
|
|
1071
1090
|
* @param {RigidBody} rigidBody
|
|
1072
|
-
* @param {Vector3|
|
|
1091
|
+
* @param {Vector3|ArrayLike<number>} v indexed as [x, y, z]
|
|
1073
1092
|
*/
|
|
1074
1093
|
setLinearVelocity(rigidBody, v) {
|
|
1075
|
-
|
|
1094
|
+
assert.defined(v, 'v');
|
|
1095
|
+
assert.isNumber(v[0], 'v[0]');
|
|
1096
|
+
assert.isNumber(v[1], 'v[1]');
|
|
1097
|
+
assert.isNumber(v[2], 'v[2]');
|
|
1098
|
+
|
|
1099
|
+
v3_set(rigidBody.linearVelocity, 0, v[0], v[1], v[2]);
|
|
1076
1100
|
if (rigidBody.kind === BodyKind.Dynamic) {
|
|
1077
1101
|
this.__wake_body(rigidBody);
|
|
1078
1102
|
}
|
|
@@ -1085,10 +1109,15 @@ export class PhysicsSystem extends System {
|
|
|
1085
1109
|
* body, so the spin is silently discarded until something else wakes it.
|
|
1086
1110
|
*
|
|
1087
1111
|
* @param {RigidBody} rigidBody
|
|
1088
|
-
* @param {Vector3|
|
|
1112
|
+
* @param {Vector3|ArrayLike<number>} v indexed as [x, y, z]
|
|
1089
1113
|
*/
|
|
1090
1114
|
setAngularVelocity(rigidBody, v) {
|
|
1091
|
-
|
|
1115
|
+
assert.defined(v, 'v');
|
|
1116
|
+
assert.isNumber(v[0], 'v[0]');
|
|
1117
|
+
assert.isNumber(v[1], 'v[1]');
|
|
1118
|
+
assert.isNumber(v[2], 'v[2]');
|
|
1119
|
+
|
|
1120
|
+
v3_set(rigidBody.angularVelocity, 0, v[0], v[1], v[2]);
|
|
1092
1121
|
if (rigidBody.kind === BodyKind.Dynamic) {
|
|
1093
1122
|
this.__wake_body(rigidBody);
|
|
1094
1123
|
}
|
|
@@ -1096,13 +1125,13 @@ export class PhysicsSystem extends System {
|
|
|
1096
1125
|
|
|
1097
1126
|
/**
|
|
1098
1127
|
* Teleport a body to a new pose, bypassing integration: writes the body's
|
|
1099
|
-
*
|
|
1128
|
+
* Transform64 directly and wakes it. For an interpolated body this also flags a
|
|
1100
1129
|
* render `snap` on its {@link Interpolated} component, so the producer keeps
|
|
1101
1130
|
* this pose (rather than restoring the previous tick over it) and the
|
|
1102
1131
|
* renderer shows the new pose without sliding across the jump.
|
|
1103
1132
|
*
|
|
1104
1133
|
* This is the authoritative way to reposition an interpolated body — a raw
|
|
1105
|
-
* `
|
|
1134
|
+
* `Transform64` write would be undone by the per-step restore. Velocity is left
|
|
1106
1135
|
* as-is; zero it via {@link setLinearVelocity} if the teleport should also
|
|
1107
1136
|
* stop the body.
|
|
1108
1137
|
*
|
|
@@ -1112,18 +1141,29 @@ export class PhysicsSystem extends System {
|
|
|
1112
1141
|
* into must react.
|
|
1113
1142
|
*
|
|
1114
1143
|
* @param {RigidBody} rigidBody
|
|
1115
|
-
* @param {Vector3|
|
|
1116
|
-
* @param {Quaternion|
|
|
1144
|
+
* @param {Vector3|ArrayLike<number>} position world position, indexed as [x, y, z]
|
|
1145
|
+
* @param {Quaternion|ArrayLike<number>} rotation world unit-quaternion rotation, indexed as [x, y, z, w]
|
|
1117
1146
|
*/
|
|
1118
1147
|
setPose(rigidBody, position, rotation) {
|
|
1148
|
+
assert.defined(position, 'position');
|
|
1149
|
+
assert.isNumber(position[0], 'position[0]');
|
|
1150
|
+
assert.isNumber(position[1], 'position[1]');
|
|
1151
|
+
assert.isNumber(position[2], 'position[2]');
|
|
1152
|
+
|
|
1153
|
+
assert.defined(rotation, 'rotation');
|
|
1154
|
+
assert.isNumber(rotation[0], 'rotation[0]');
|
|
1155
|
+
assert.isNumber(rotation[1], 'rotation[1]');
|
|
1156
|
+
assert.isNumber(rotation[2], 'rotation[2]');
|
|
1157
|
+
assert.isNumber(rotation[3], 'rotation[3]');
|
|
1158
|
+
|
|
1119
1159
|
const idx = body_id_index(rigidBody._bodyId);
|
|
1120
1160
|
const transform = this.__transforms[idx];
|
|
1121
1161
|
if (transform === undefined) {
|
|
1122
1162
|
return;
|
|
1123
1163
|
}
|
|
1124
1164
|
|
|
1125
|
-
transform.setTranslation(position
|
|
1126
|
-
transform.setRotation(rotation
|
|
1165
|
+
transform.setTranslation(position[0], position[1], position[2]);
|
|
1166
|
+
transform.setRotation(rotation[0], rotation[1], rotation[2], rotation[3]);
|
|
1127
1167
|
|
|
1128
1168
|
if (rigidBody.kind !== BodyKind.Dynamic) {
|
|
1129
1169
|
// Static AND Kinematic: the body itself never sleeps and __wake_body is a no-op for it,
|
|
@@ -1160,7 +1200,7 @@ export class PhysicsSystem extends System {
|
|
|
1160
1200
|
// CLEARS it). The renderer's update runs every render cycle while a fixed step only
|
|
1161
1201
|
// runs when the accumulator crosses the step size, so a render frame landing between
|
|
1162
1202
|
// this setPose and the next fixedUpdate clears `snap` before __interp_restore reads
|
|
1163
|
-
// it — restore then overwrites the teleported
|
|
1203
|
+
// it — restore then overwrites the teleported Transform64 with the pre-teleport tick's
|
|
1164
1204
|
// snapshot and the teleport is silently reverted in the SIMULATION. This only bites
|
|
1165
1205
|
// once InterpolationSystem is wired (the app does not wire it yet). The robust fix is
|
|
1166
1206
|
// to make the teleport authoritative independent of the shared flag — either overwrite
|
|
@@ -1743,8 +1783,6 @@ export class PhysicsSystem extends System {
|
|
|
1743
1783
|
// separation path already does via clear_contacts.
|
|
1744
1784
|
const has_contact = manifolds.is_touched(slot) && manifolds.contact_count(slot) > 0;
|
|
1745
1785
|
|
|
1746
|
-
// Scratch payload — write the point/normal components by index to
|
|
1747
|
-
// skip the Vector3 change-signal dispatch (nothing observes them).
|
|
1748
1786
|
const pt = payload.point;
|
|
1749
1787
|
const nm = payload.normal;
|
|
1750
1788
|
if (has_contact) {
|
|
@@ -1955,12 +1993,12 @@ export class PhysicsSystem extends System {
|
|
|
1955
1993
|
*/
|
|
1956
1994
|
fixedUpdate(dt) {
|
|
1957
1995
|
// Producer: restore authoritative pose (undo render interpolation)
|
|
1958
|
-
// before the sim reads any
|
|
1996
|
+
// before the sim reads any Transform64 this step.
|
|
1959
1997
|
this.__interp_restore();
|
|
1960
1998
|
|
|
1961
|
-
const gx = this.gravity
|
|
1962
|
-
const gy = this.gravity
|
|
1963
|
-
const gz = this.gravity
|
|
1999
|
+
const gx = this.gravity[0];
|
|
2000
|
+
const gy = this.gravity[1];
|
|
2001
|
+
const gz = this.gravity[2];
|
|
1964
2002
|
|
|
1965
2003
|
const storage = this.storage;
|
|
1966
2004
|
const bodies = this.__bodies;
|
|
@@ -2273,7 +2311,7 @@ export class PhysicsSystem extends System {
|
|
|
2273
2311
|
apply_restitution(manifolds, this);
|
|
2274
2312
|
|
|
2275
2313
|
// Scatter the solved persistent linear / angular velocity back onto the
|
|
2276
|
-
// RigidBody components (pose was written through to the
|
|
2314
|
+
// RigidBody components (pose was written through to the transforms each
|
|
2277
2315
|
// substep). After this the bodies are authoritative again for CCD,
|
|
2278
2316
|
// interpolation recording, and the sleep test below.
|
|
2279
2317
|
solver_state.scatter(bodies);
|
|
@@ -9,10 +9,16 @@ export const RIGID_BODY_UNALLOCATED: number;
|
|
|
9
9
|
/**
|
|
10
10
|
* Rigid-body component.
|
|
11
11
|
*
|
|
12
|
-
* Pose lives on {@link
|
|
12
|
+
* Pose lives on {@link Transform64}; this component owns the dynamic state that is not
|
|
13
13
|
* part of TRS: velocity, mass, inertia, damping, gravity scale, layer / mask
|
|
14
14
|
* filtering and a small set of bit-flags ({@link RigidBodyFlags}).
|
|
15
15
|
*
|
|
16
|
+
* The vector fields are raw three-element `Float64Array`s, indexed `[0] [1] [2]` for
|
|
17
|
+
* x, y, z. They are plain storage: no change signal, no setter dispatch, nothing to
|
|
18
|
+
* subscribe to. The solver writes them thousands of times per step and every one of
|
|
19
|
+
* those writes is a typed-array store. Use {@link v3_set} to write all three at once —
|
|
20
|
+
* `array.set(x, y, z)` is `TypedArray.prototype.set`, which silently writes nothing.
|
|
21
|
+
*
|
|
16
22
|
* Defaults are conservative: the body translates under forces but cannot rotate
|
|
17
23
|
* unless the user explicitly sets {@link inverseInertiaLocal} — forgetting to
|
|
18
24
|
* configure inertia results in a locked-rotation body, never a NaN tumble.
|
|
@@ -28,30 +34,30 @@ export class RigidBody {
|
|
|
28
34
|
/**
|
|
29
35
|
* Linear velocity in world space, m/s.
|
|
30
36
|
* @readonly
|
|
31
|
-
* @type {
|
|
37
|
+
* @type {Float64Array}
|
|
32
38
|
*/
|
|
33
|
-
readonly linearVelocity:
|
|
39
|
+
readonly linearVelocity: Float64Array;
|
|
34
40
|
/**
|
|
35
41
|
* Angular velocity in world space, rad/s.
|
|
36
42
|
* @readonly
|
|
37
|
-
* @type {
|
|
43
|
+
* @type {Float64Array}
|
|
38
44
|
*/
|
|
39
|
-
readonly angularVelocity:
|
|
45
|
+
readonly angularVelocity: Float64Array;
|
|
40
46
|
/**
|
|
41
47
|
* Accumulator for forces applied between fixed-update steps. Consumed and
|
|
42
48
|
* zeroed by the integrator. User code applies via
|
|
43
49
|
* {@link PhysicsSystem#applyForce}; do not write directly.
|
|
44
50
|
* @readonly
|
|
45
|
-
* @type {
|
|
51
|
+
* @type {Float64Array}
|
|
46
52
|
*/
|
|
47
|
-
readonly accumulatedForce:
|
|
53
|
+
readonly accumulatedForce: Float64Array;
|
|
48
54
|
/**
|
|
49
55
|
* Accumulator for torques applied between fixed-update steps. Consumed and
|
|
50
56
|
* zeroed by the integrator.
|
|
51
57
|
* @readonly
|
|
52
|
-
* @type {
|
|
58
|
+
* @type {Float64Array}
|
|
53
59
|
*/
|
|
54
|
-
readonly accumulatedTorque:
|
|
60
|
+
readonly accumulatedTorque: Float64Array;
|
|
55
61
|
/**
|
|
56
62
|
* Total mass, kg. Must be positive for Dynamic bodies; Static / Kinematic
|
|
57
63
|
* bodies behave as if mass were infinite regardless of this value.
|
|
@@ -63,9 +69,9 @@ export class RigidBody {
|
|
|
63
69
|
* corresponding rotational degree of freedom. The default of (0,0,0) means
|
|
64
70
|
* rotation is locked until the user sets a value.
|
|
65
71
|
* @readonly
|
|
66
|
-
* @type {
|
|
72
|
+
* @type {Float64Array}
|
|
67
73
|
*/
|
|
68
|
-
readonly inverseInertiaLocal:
|
|
74
|
+
readonly inverseInertiaLocal: Float64Array;
|
|
69
75
|
/**
|
|
70
76
|
* @type {number}
|
|
71
77
|
*/
|
|
@@ -221,7 +227,6 @@ export namespace RigidBody {
|
|
|
221
227
|
let typeName: string;
|
|
222
228
|
}
|
|
223
229
|
import { BodyKind } from "./BodyKind.js";
|
|
224
|
-
import Vector3 from "../../../core/geom/Vector3.js";
|
|
225
230
|
import { RigidBodyFlags } from "./RigidBodyFlags.js";
|
|
226
231
|
import { SleepState } from "./SleepState.js";
|
|
227
232
|
//# sourceMappingURL=RigidBody.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RigidBody.d.ts","sourceRoot":"","sources":["../../../../../src/engine/physics/ecs/RigidBody.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"RigidBody.d.ts","sourceRoot":"","sources":["../../../../../src/engine/physics/ecs/RigidBody.js"],"names":[],"mappings":"AAOA;;;;;;GAMG;AACH,qCAFU,MAAM,CAEyB;AA6BzC;;;;;;;;;;;;;;;;;;;GAmBG;AACH;IAEI;;OAEG;IACH,MAFU,QAAQ,GAAC,MAAM,CAED;IAExB;;;;OAIG;IACH,yBAFU,YAAY,CAEe;IAErC;;;;OAIG;IACH,0BAFU,YAAY,CAEgB;IAEtC;;;;;;OAMG;IACH,2BAFU,YAAY,CAEiB;IAEvC;;;;;OAKG;IACH,4BAFU,YAAY,CAEkB;IAExC;;;;OAIG;IACH,MAFU,MAAM,CAEP;IAET;;;;;;OAMG;IACH,8BAFU,YAAY,CAEoB;IAE1C;;OAEG;IACH,eAFU,MAAM,CAEE;IAElB;;OAEG;IACH,gBAFU,MAAM,CAEG;IAEnB;;;;OAIG;IACH,cAFU,MAAM,CAEC;IAEjB;;;OAGG;IACH,OAFU,MAAM,CAEN;IAEV;;;OAGG;IACH,MAFU,MAAM,CAEM;IAEtB;;OAEG;IACH,OAFU,cAAc,GAAC,MAAM,CAEH;IAE5B;;;;;;;;;;OAUG;IACH,YAFU,UAAU,GAAC,MAAM,CAEG;IAE9B;;;;;;;;;;;OAWG;IACH,aAFU,MAAM,CAEA;IAEhB;;;;;;;;;;;OAWG;IACH,kBAFU,MAAM,CAEM;IAEtB;;;OAGG;IACH,kBAFU,MAAM,CAEM;IAEtB;;;;OAIG;IACH,SAFU,MAAM,CAEiB;IAEjC;;;OAGG;IACH,cAFW,MAAM,GAAC,cAAc,QAI/B;IAED;;;OAGG;IACH,gBAFW,MAAM,GAAC,cAAc,QAI/B;IAED;;;;OAIG;IACH,cAHW,MAAM,GAAC,cAAc,GACnB,OAAO,CAInB;IAED;;;;OAIG;IACH,gBAHW,MAAM,GAAC,cAAc,SACrB,OAAO,QAQjB;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;MAgBC;IAED,0BAcC;IAED;;;;;;;;;;OAUG;IACH,cAHW,SAAS,GACP,OAAO,CAmBnB;IAED;;;;OAIG;IACH,QAFa,MAAM,CAiBlB;IASL;;;OAGG;IACH,sBAFU,OAAO,CAEc;CAZ9B;;kBAIS,MAAM;;yBAzUS,eAAe;+BACT,qBAAqB;2BACzB,iBAAiB"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { computeHashFloat } from "../../../core/primitives/numbers/computeHashFloat.js";
|
|
2
|
-
import
|
|
2
|
+
import { v3_equals_array } from "../../../core/geom/vec3/v3_equals_array.js";
|
|
3
|
+
import { v3_hash } from "../../../core/geom/vec3/v3_hash.js";
|
|
3
4
|
import { BodyKind } from "./BodyKind.js";
|
|
4
5
|
import { RigidBodyFlags } from "./RigidBodyFlags.js";
|
|
5
6
|
import { SleepState } from "./SleepState.js";
|
|
@@ -13,13 +14,46 @@ import { SleepState } from "./SleepState.js";
|
|
|
13
14
|
*/
|
|
14
15
|
export const RIGID_BODY_UNALLOCATED = -1;
|
|
15
16
|
|
|
17
|
+
/**
|
|
18
|
+
* Read a `{x, y, z}` (or scalar) JSON value into a 3-component span.
|
|
19
|
+
*
|
|
20
|
+
* @param {Float64Array} target
|
|
21
|
+
* @param {{x:number, y:number, z:number}|number} json
|
|
22
|
+
*/
|
|
23
|
+
function v3_from_json(target, json) {
|
|
24
|
+
if (typeof json === "number") {
|
|
25
|
+
// scalar shorthand, kept from the Vector3-backed encoding
|
|
26
|
+
target[0] = json;
|
|
27
|
+
target[1] = json;
|
|
28
|
+
target[2] = json;
|
|
29
|
+
} else {
|
|
30
|
+
target[0] = json.x;
|
|
31
|
+
target[1] = json.y;
|
|
32
|
+
target[2] = json.z;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* @param {Float64Array} v
|
|
38
|
+
* @returns {{x:number, y:number, z:number}}
|
|
39
|
+
*/
|
|
40
|
+
function v3_to_json(v) {
|
|
41
|
+
return { x: v[0], y: v[1], z: v[2] };
|
|
42
|
+
}
|
|
43
|
+
|
|
16
44
|
/**
|
|
17
45
|
* Rigid-body component.
|
|
18
46
|
*
|
|
19
|
-
* Pose lives on {@link
|
|
47
|
+
* Pose lives on {@link Transform64}; this component owns the dynamic state that is not
|
|
20
48
|
* part of TRS: velocity, mass, inertia, damping, gravity scale, layer / mask
|
|
21
49
|
* filtering and a small set of bit-flags ({@link RigidBodyFlags}).
|
|
22
50
|
*
|
|
51
|
+
* The vector fields are raw three-element `Float64Array`s, indexed `[0] [1] [2]` for
|
|
52
|
+
* x, y, z. They are plain storage: no change signal, no setter dispatch, nothing to
|
|
53
|
+
* subscribe to. The solver writes them thousands of times per step and every one of
|
|
54
|
+
* those writes is a typed-array store. Use {@link v3_set} to write all three at once —
|
|
55
|
+
* `array.set(x, y, z)` is `TypedArray.prototype.set`, which silently writes nothing.
|
|
56
|
+
*
|
|
23
57
|
* Defaults are conservative: the body translates under forces but cannot rotate
|
|
24
58
|
* unless the user explicitly sets {@link inverseInertiaLocal} — forgetting to
|
|
25
59
|
* configure inertia results in a locked-rotation body, never a NaN tumble.
|
|
@@ -37,33 +71,33 @@ export class RigidBody {
|
|
|
37
71
|
/**
|
|
38
72
|
* Linear velocity in world space, m/s.
|
|
39
73
|
* @readonly
|
|
40
|
-
* @type {
|
|
74
|
+
* @type {Float64Array}
|
|
41
75
|
*/
|
|
42
|
-
linearVelocity = new
|
|
76
|
+
linearVelocity = new Float64Array(3);
|
|
43
77
|
|
|
44
78
|
/**
|
|
45
79
|
* Angular velocity in world space, rad/s.
|
|
46
80
|
* @readonly
|
|
47
|
-
* @type {
|
|
81
|
+
* @type {Float64Array}
|
|
48
82
|
*/
|
|
49
|
-
angularVelocity = new
|
|
83
|
+
angularVelocity = new Float64Array(3);
|
|
50
84
|
|
|
51
85
|
/**
|
|
52
86
|
* Accumulator for forces applied between fixed-update steps. Consumed and
|
|
53
87
|
* zeroed by the integrator. User code applies via
|
|
54
88
|
* {@link PhysicsSystem#applyForce}; do not write directly.
|
|
55
89
|
* @readonly
|
|
56
|
-
* @type {
|
|
90
|
+
* @type {Float64Array}
|
|
57
91
|
*/
|
|
58
|
-
accumulatedForce = new
|
|
92
|
+
accumulatedForce = new Float64Array(3);
|
|
59
93
|
|
|
60
94
|
/**
|
|
61
95
|
* Accumulator for torques applied between fixed-update steps. Consumed and
|
|
62
96
|
* zeroed by the integrator.
|
|
63
97
|
* @readonly
|
|
64
|
-
* @type {
|
|
98
|
+
* @type {Float64Array}
|
|
65
99
|
*/
|
|
66
|
-
accumulatedTorque = new
|
|
100
|
+
accumulatedTorque = new Float64Array(3);
|
|
67
101
|
|
|
68
102
|
/**
|
|
69
103
|
* Total mass, kg. Must be positive for Dynamic bodies; Static / Kinematic
|
|
@@ -77,9 +111,9 @@ export class RigidBody {
|
|
|
77
111
|
* corresponding rotational degree of freedom. The default of (0,0,0) means
|
|
78
112
|
* rotation is locked until the user sets a value.
|
|
79
113
|
* @readonly
|
|
80
|
-
* @type {
|
|
114
|
+
* @type {Float64Array}
|
|
81
115
|
*/
|
|
82
|
-
inverseInertiaLocal = new
|
|
116
|
+
inverseInertiaLocal = new Float64Array(3);
|
|
83
117
|
|
|
84
118
|
/**
|
|
85
119
|
* @type {number}
|
|
@@ -210,10 +244,10 @@ export class RigidBody {
|
|
|
210
244
|
toJSON() {
|
|
211
245
|
return {
|
|
212
246
|
kind: this.kind,
|
|
213
|
-
linearVelocity: this.linearVelocity
|
|
214
|
-
angularVelocity: this.angularVelocity
|
|
247
|
+
linearVelocity: v3_to_json(this.linearVelocity),
|
|
248
|
+
angularVelocity: v3_to_json(this.angularVelocity),
|
|
215
249
|
mass: this.mass,
|
|
216
|
-
inverseInertiaLocal: this.inverseInertiaLocal
|
|
250
|
+
inverseInertiaLocal: v3_to_json(this.inverseInertiaLocal),
|
|
217
251
|
linearDamping: this.linearDamping,
|
|
218
252
|
angularDamping: this.angularDamping,
|
|
219
253
|
gravityScale: this.gravityScale,
|
|
@@ -227,10 +261,10 @@ export class RigidBody {
|
|
|
227
261
|
|
|
228
262
|
fromJSON(json) {
|
|
229
263
|
if (json.kind !== undefined) this.kind = json.kind;
|
|
230
|
-
if (json.linearVelocity !== undefined) this.linearVelocity
|
|
231
|
-
if (json.angularVelocity !== undefined) this.angularVelocity
|
|
264
|
+
if (json.linearVelocity !== undefined) v3_from_json(this.linearVelocity, json.linearVelocity);
|
|
265
|
+
if (json.angularVelocity !== undefined) v3_from_json(this.angularVelocity, json.angularVelocity);
|
|
232
266
|
if (json.mass !== undefined) this.mass = json.mass;
|
|
233
|
-
if (json.inverseInertiaLocal !== undefined) this.inverseInertiaLocal
|
|
267
|
+
if (json.inverseInertiaLocal !== undefined) v3_from_json(this.inverseInertiaLocal, json.inverseInertiaLocal);
|
|
234
268
|
if (json.linearDamping !== undefined) this.linearDamping = json.linearDamping;
|
|
235
269
|
if (json.angularDamping !== undefined) this.angularDamping = json.angularDamping;
|
|
236
270
|
if (json.gravityScale !== undefined) this.gravityScale = json.gravityScale;
|
|
@@ -266,9 +300,9 @@ export class RigidBody {
|
|
|
266
300
|
&& this.flags === other.flags
|
|
267
301
|
&& this.sleepState === other.sleepState
|
|
268
302
|
&& this.sleep_timer === other.sleep_timer
|
|
269
|
-
&& this.linearVelocity
|
|
270
|
-
&& this.angularVelocity
|
|
271
|
-
&& this.inverseInertiaLocal
|
|
303
|
+
&& v3_equals_array(this.linearVelocity, 0, other.linearVelocity, 0)
|
|
304
|
+
&& v3_equals_array(this.angularVelocity, 0, other.angularVelocity, 0)
|
|
305
|
+
&& v3_equals_array(this.inverseInertiaLocal, 0, other.inverseInertiaLocal, 0);
|
|
272
306
|
}
|
|
273
307
|
|
|
274
308
|
/**
|
|
@@ -287,9 +321,9 @@ export class RigidBody {
|
|
|
287
321
|
h = (h * 31 + (this.flags | 0)) | 0;
|
|
288
322
|
h = (h * 31 + (this.sleepState | 0)) | 0;
|
|
289
323
|
h = (h * 31 + computeHashFloat(this.sleep_timer)) | 0;
|
|
290
|
-
h = (h * 31 + this.linearVelocity
|
|
291
|
-
h = (h * 31 + this.angularVelocity
|
|
292
|
-
h = (h * 31 + this.inverseInertiaLocal
|
|
324
|
+
h = (h * 31 + v3_hash(this.linearVelocity, 0)) | 0;
|
|
325
|
+
h = (h * 31 + v3_hash(this.angularVelocity, 0)) | 0;
|
|
326
|
+
h = (h * 31 + v3_hash(this.inverseInertiaLocal, 0)) | 0;
|
|
293
327
|
return h;
|
|
294
328
|
}
|
|
295
329
|
}
|