@woosh/meep-engine 3.38.0 → 3.39.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 +11 -0
- package/src/core/binary/BinaryBuffer.d.ts.map +1 -1
- package/src/core/binary/BinaryBuffer.js +30 -0
- package/src/core/bvh2/bvh3/query/bvh_query_user_data_intersects_aabb.d.ts.map +1 -1
- package/src/core/bvh2/bvh3/query/bvh_query_user_data_intersects_aabb.js +28 -7
- package/src/core/geom/3d/aabb/aabb3_transform_oriented.d.ts +15 -0
- package/src/core/geom/3d/aabb/aabb3_transform_oriented.d.ts.map +1 -1
- package/src/core/geom/3d/aabb/aabb3_transform_oriented.js +41 -0
- package/src/core/geom/3d/aabb/aabb3_transform_oriented_inverse.d.ts +12 -0
- package/src/core/geom/3d/aabb/aabb3_transform_oriented_inverse.d.ts.map +1 -1
- package/src/core/geom/3d/aabb/aabb3_transform_oriented_inverse.js +27 -0
- package/src/core/geom/3d/gjk/gjk.js +3 -3
- package/src/core/geom/3d/gjk/gjk_distance.d.ts +94 -0
- package/src/core/geom/3d/gjk/gjk_distance.d.ts.map +1 -0
- package/src/core/geom/3d/gjk/gjk_distance.js +782 -0
- package/src/core/geom/3d/gjk/gjk_epa_penetration.d.ts +5 -4
- package/src/core/geom/3d/gjk/gjk_epa_penetration.d.ts.map +1 -1
- package/src/core/geom/3d/gjk/gjk_epa_penetration.js +14 -9
- package/src/core/geom/3d/gjk/minkowski_support.d.ts +11 -7
- package/src/core/geom/3d/gjk/minkowski_support.d.ts.map +1 -1
- package/src/core/geom/3d/gjk/minkowski_support.js +33 -9
- package/src/core/geom/3d/gjk/mpr.d.ts.map +1 -1
- package/src/core/geom/3d/gjk/mpr.js +26 -5
- package/src/core/geom/3d/line/line3_compute_segment_closest_point_to_aabb3_t.d.ts +15 -0
- package/src/core/geom/3d/line/line3_compute_segment_closest_point_to_aabb3_t.d.ts.map +1 -1
- package/src/core/geom/3d/line/line3_compute_segment_closest_point_to_aabb3_t.js +106 -33
- package/src/core/geom/3d/mat4/m4_from_rotation_translation_scale.d.ts +2 -1
- package/src/core/geom/3d/mat4/m4_from_rotation_translation_scale.d.ts.map +1 -1
- package/src/core/geom/3d/mat4/m4_from_rotation_translation_scale.js +4 -8
- package/src/core/geom/3d/mat4/m4_from_rotation_translation_scale_array.d.ts +32 -0
- package/src/core/geom/3d/mat4/m4_from_rotation_translation_scale_array.d.ts.map +1 -0
- package/src/core/geom/3d/mat4/m4_from_rotation_translation_scale_array.js +85 -0
- package/src/core/geom/3d/mat4/m4_from_rotation_translation_scale_scalar.d.ts +3 -3
- package/src/core/geom/3d/mat4/m4_from_rotation_translation_scale_scalar.d.ts.map +1 -1
- package/src/core/geom/3d/mat4/m4_from_rotation_translation_scale_scalar.js +24 -34
- package/src/core/geom/3d/quaternion/quat3_integrate.d.ts +17 -0
- package/src/core/geom/3d/quaternion/quat3_integrate.d.ts.map +1 -1
- package/src/core/geom/3d/quaternion/quat3_integrate.js +45 -4
- package/src/core/geom/3d/quaternion/quat3_multiply.d.ts +16 -0
- package/src/core/geom/3d/quaternion/quat3_multiply.d.ts.map +1 -1
- package/src/core/geom/3d/quaternion/quat3_multiply.js +25 -0
- package/src/core/geom/3d/quaternion/quat3_nlerp.d.ts +18 -0
- package/src/core/geom/3d/quaternion/quat3_nlerp.d.ts.map +1 -1
- package/src/core/geom/3d/quaternion/quat3_nlerp.js +45 -0
- package/src/core/geom/3d/quaternion/quat3_shortest_arc.d.ts +17 -0
- package/src/core/geom/3d/quaternion/quat3_shortest_arc.d.ts.map +1 -1
- package/src/core/geom/3d/quaternion/quat3_shortest_arc.js +155 -94
- package/src/core/geom/3d/quaternion/quat3_to_matrix3.d.ts +12 -0
- package/src/core/geom/3d/quaternion/quat3_to_matrix3.d.ts.map +1 -1
- package/src/core/geom/3d/quaternion/quat3_to_matrix3.js +31 -0
- package/src/core/geom/3d/shape/AbstractShape3D.d.ts +20 -6
- package/src/core/geom/3d/shape/AbstractShape3D.d.ts.map +1 -1
- package/src/core/geom/3d/shape/AbstractShape3D.js +20 -6
- package/src/core/geom/3d/shape/BoxShape3D.d.ts +1 -1
- package/src/core/geom/3d/shape/BoxShape3D.d.ts.map +1 -1
- package/src/core/geom/3d/shape/BoxShape3D.js +5 -1
- package/src/core/geom/3d/shape/CapsuleShape3D.d.ts +1 -1
- package/src/core/geom/3d/shape/CapsuleShape3D.d.ts.map +1 -1
- package/src/core/geom/3d/shape/CapsuleShape3D.js +5 -1
- package/src/core/geom/3d/shape/ConvexHullShape3D.d.ts +25 -11
- package/src/core/geom/3d/shape/ConvexHullShape3D.d.ts.map +1 -1
- package/src/core/geom/3d/shape/ConvexHullShape3D.js +392 -22
- package/src/core/geom/3d/shape/CylinderShape3D.d.ts +8 -7
- package/src/core/geom/3d/shape/CylinderShape3D.d.ts.map +1 -1
- package/src/core/geom/3d/shape/CylinderShape3D.js +12 -7
- package/src/core/geom/3d/shape/HeightMapShape3D.d.ts +51 -8
- package/src/core/geom/3d/shape/HeightMapShape3D.d.ts.map +1 -1
- package/src/core/geom/3d/shape/HeightMapShape3D.js +260 -14
- package/src/core/geom/3d/shape/MeshShape3D.d.ts +61 -7
- package/src/core/geom/3d/shape/MeshShape3D.d.ts.map +1 -1
- package/src/core/geom/3d/shape/MeshShape3D.js +111 -20
- package/src/core/geom/3d/shape/PointShape3D.d.ts +1 -1
- package/src/core/geom/3d/shape/PointShape3D.d.ts.map +1 -1
- package/src/core/geom/3d/shape/PointShape3D.js +1 -1
- package/src/core/geom/3d/shape/PosedShape3D.d.ts +9 -0
- package/src/core/geom/3d/shape/PosedShape3D.d.ts.map +1 -1
- package/src/core/geom/3d/shape/PosedShape3D.js +36 -6
- package/src/core/geom/3d/shape/SphereShape3D.d.ts +1 -1
- package/src/core/geom/3d/shape/SphereShape3D.d.ts.map +1 -1
- package/src/core/geom/3d/shape/SphereShape3D.js +5 -1
- package/src/core/geom/3d/shape/TransformedShape3D.d.ts +12 -10
- package/src/core/geom/3d/shape/TransformedShape3D.d.ts.map +1 -1
- package/src/core/geom/3d/shape/TransformedShape3D.js +53 -19
- package/src/core/geom/3d/shape/Triangle3D.d.ts +1 -1
- package/src/core/geom/3d/shape/Triangle3D.d.ts.map +1 -1
- package/src/core/geom/3d/shape/Triangle3D.js +5 -1
- package/src/core/geom/3d/shape/UnionShape3D.d.ts +1 -1
- package/src/core/geom/3d/shape/UnionShape3D.d.ts.map +1 -1
- package/src/core/geom/3d/shape/UnionShape3D.js +19 -2
- package/src/core/geom/3d/shape/sdf/sdf3_box.d.ts +14 -0
- package/src/core/geom/3d/shape/sdf/sdf3_box.d.ts.map +1 -1
- package/src/core/geom/3d/shape/sdf/sdf3_box.js +67 -5
- package/src/core/geom/3d/shape/sdf/sdf3_capsule.d.ts +14 -0
- package/src/core/geom/3d/shape/sdf/sdf3_capsule.d.ts.map +1 -1
- package/src/core/geom/3d/shape/sdf/sdf3_capsule.js +61 -3
- package/src/core/geom/3d/shape/sdf/sdf3_cylinder.d.ts +14 -0
- package/src/core/geom/3d/shape/sdf/sdf3_cylinder.d.ts.map +1 -1
- package/src/core/geom/3d/shape/sdf/sdf3_cylinder.js +63 -4
- package/src/core/geom/3d/shape/sdf/sdf3_plane.d.ts +15 -0
- package/src/core/geom/3d/shape/sdf/sdf3_plane.d.ts.map +1 -1
- package/src/core/geom/3d/shape/sdf/sdf3_plane.js +64 -2
- package/src/core/geom/3d/shape/sdf/sdf3_sphere.d.ts +21 -0
- package/src/core/geom/3d/shape/sdf/sdf3_sphere.d.ts.map +1 -1
- package/src/core/geom/3d/shape/sdf/sdf3_sphere.js +66 -3
- package/src/core/geom/3d/shape/shape3_mesh_from_geometry.d.ts +2 -0
- package/src/core/geom/3d/shape/shape3_mesh_from_geometry.d.ts.map +1 -1
- package/src/core/geom/3d/shape/shape3_mesh_from_geometry.js +7 -0
- package/src/core/geom/3d/shape/util/mesh_compute_triangle_edge_flags.d.ts +41 -0
- package/src/core/geom/3d/shape/util/mesh_compute_triangle_edge_flags.d.ts.map +1 -0
- package/src/core/geom/3d/shape/util/mesh_compute_triangle_edge_flags.js +538 -0
- package/src/core/geom/3d/sphere/harmonics/sh_basis_at.d.ts +31 -0
- package/src/core/geom/3d/sphere/harmonics/sh_basis_at.d.ts.map +1 -0
- package/src/core/geom/3d/sphere/harmonics/sh_basis_at.js +85 -0
- package/src/core/geom/3d/sphere/harmonics/sh_vmf_window.d.ts +18 -0
- package/src/core/geom/3d/sphere/harmonics/sh_vmf_window.d.ts.map +1 -0
- package/src/core/geom/3d/sphere/harmonics/sh_vmf_window.js +19 -0
- package/src/core/geom/3d/triangle/TriangleEdgeFlags.d.ts +49 -0
- package/src/core/geom/3d/triangle/TriangleEdgeFlags.d.ts.map +1 -0
- package/src/core/geom/3d/triangle/TriangleEdgeFlags.js +55 -0
- package/src/core/geom/3d/triangle/tri3_classify_shared_edge.d.ts +42 -0
- package/src/core/geom/3d/triangle/tri3_classify_shared_edge.d.ts.map +1 -0
- package/src/core/geom/3d/triangle/tri3_classify_shared_edge.js +85 -0
- package/src/core/geom/3d/triangle/tri3_closest_point.d.ts +13 -0
- package/src/core/geom/3d/triangle/tri3_closest_point.d.ts.map +1 -1
- package/src/core/geom/3d/triangle/tri3_closest_point.js +36 -1
- package/src/core/geom/3d/triangle/tri3_closest_point_barycentric.d.ts +14 -0
- package/src/core/geom/3d/triangle/tri3_closest_point_barycentric.d.ts.map +1 -1
- package/src/core/geom/3d/triangle/tri3_closest_point_barycentric.js +40 -0
- package/src/core/geom/vec3/v3_quaternion_apply.d.ts +19 -0
- package/src/core/geom/vec3/v3_quaternion_apply.d.ts.map +1 -1
- package/src/core/geom/vec3/v3_quaternion_apply.js +32 -0
- package/src/core/geom/vec3/v3_quaternion_apply_inverse.d.ts +19 -0
- package/src/core/geom/vec3/v3_quaternion_apply_inverse.d.ts.map +1 -1
- package/src/core/geom/vec3/v3_quaternion_apply_inverse.js +32 -0
- package/src/engine/control/first-person/FirstPersonPlayerControllerSystem.d.ts +135 -10
- package/src/engine/control/first-person/FirstPersonPlayerControllerSystem.d.ts.map +1 -1
- package/src/engine/control/first-person/FirstPersonPlayerControllerSystem.js +338 -105
- package/src/engine/control/first-person/abilities/Ability.d.ts +14 -5
- package/src/engine/control/first-person/abilities/Ability.d.ts.map +1 -1
- package/src/engine/control/first-person/abilities/Ability.js +14 -5
- package/src/engine/control/first-person/abilities/LedgeGrab.d.ts.map +1 -1
- package/src/engine/control/first-person/abilities/LedgeGrab.js +16 -12
- package/src/engine/control/first-person/abilities/Mantle.d.ts.map +1 -1
- package/src/engine/control/first-person/abilities/Mantle.js +5 -1
- package/src/engine/control/first-person/abilities/Slide.js +1 -1
- package/src/engine/control/first-person/collision/KinematicMover.d.ts +92 -14
- package/src/engine/control/first-person/collision/KinematicMover.d.ts.map +1 -1
- package/src/engine/control/first-person/collision/KinematicMover.js +218 -37
- package/src/engine/control/first-person/sensors/FirstPersonSensorsSystem.d.ts +5 -0
- package/src/engine/control/first-person/sensors/FirstPersonSensorsSystem.d.ts.map +1 -1
- package/src/engine/control/first-person/sensors/FirstPersonSensorsSystem.js +17 -10
- package/src/engine/ecs/EntityComponentDataset.d.ts.map +1 -1
- package/src/engine/ecs/EntityComponentDataset.js +27 -13
- package/src/engine/ecs/storage/populateEngineSerializationRegistry.d.ts.map +1 -1
- package/src/engine/ecs/storage/populateEngineSerializationRegistry.js +4 -0
- package/src/engine/ecs/transform/Transform64.d.ts +4 -2
- package/src/engine/ecs/transform/Transform64.d.ts.map +1 -1
- package/src/engine/ecs/transform/Transform64.js +10 -16
- package/src/engine/graphics/ecs/water/Water.d.ts +25 -63
- package/src/engine/graphics/ecs/water/Water.d.ts.map +1 -1
- package/src/engine/graphics/ecs/water/Water.js +110 -125
- package/src/engine/graphics/ecs/water/WaterSerializationAdapter.d.ts.map +1 -1
- package/src/engine/graphics/ecs/water/WaterSerializationAdapter.js +38 -74
- package/src/engine/graphics/ecs/water/WaterSerializationUpgrader_1_2.d.ts +1 -1
- package/src/engine/graphics/ecs/water/WaterSerializationUpgrader_1_2.d.ts.map +1 -1
- package/src/engine/graphics/ecs/water/WaterSerializationUpgrader_1_2.js +27 -18
- package/src/engine/graphics/ecs/water/WaterSerializationUpgrader_2_3.d.ts +12 -0
- package/src/engine/graphics/ecs/water/WaterSerializationUpgrader_2_3.d.ts.map +1 -0
- package/src/engine/graphics/ecs/water/WaterSerializationUpgrader_2_3.js +45 -0
- package/src/engine/graphics/ecs/water/WaterWaves.d.ts +33 -0
- package/src/engine/graphics/ecs/water/WaterWaves.d.ts.map +1 -0
- package/src/engine/graphics/ecs/water/WaterWaves.js +46 -0
- package/src/engine/graphics/ecs/water/WaterWavesSerializationAdapter.d.ts +17 -0
- package/src/engine/graphics/ecs/water/WaterWavesSerializationAdapter.d.ts.map +1 -0
- package/src/engine/graphics/ecs/water/WaterWavesSerializationAdapter.js +26 -0
- package/src/engine/graphics/texture/3d/scs3d_sample_linear.d.ts +22 -0
- package/src/engine/graphics/texture/3d/scs3d_sample_linear.d.ts.map +1 -1
- package/src/engine/graphics/texture/3d/scs3d_sample_linear.js +43 -1
- package/src/engine/graphics/texture/sampler/Sampler2D.d.ts +29 -3
- package/src/engine/graphics/texture/sampler/Sampler2D.d.ts.map +1 -1
- package/src/engine/graphics/texture/sampler/Sampler2D.js +102 -14
- package/src/engine/graphics3/WaterSystem.d.ts +39 -3
- package/src/engine/graphics3/WaterSystem.d.ts.map +1 -1
- package/src/engine/graphics3/WaterSystem.js +134 -25
- package/src/engine/interpolation/BinaryInterpolationAdapter.d.ts +10 -4
- package/src/engine/interpolation/BinaryInterpolationAdapter.d.ts.map +1 -1
- package/src/engine/interpolation/BinaryInterpolationAdapter.js +11 -5
- package/src/engine/interpolation/InterpolationLog.d.ts +11 -5
- package/src/engine/interpolation/InterpolationLog.d.ts.map +1 -1
- package/src/engine/interpolation/InterpolationLog.js +12 -6
- package/src/engine/interpolation/InterpolationSystem.d.ts.map +1 -1
- package/src/engine/interpolation/InterpolationSystem.js +39 -8
- package/src/engine/interpolation/PoseInterpolationAdapter.d.ts +1 -1
- package/src/engine/interpolation/PoseInterpolationAdapter.d.ts.map +1 -1
- package/src/engine/interpolation/PoseInterpolationAdapter.js +51 -22
- package/src/engine/interpolation/TransformPoseSerializationAdapter.d.ts.map +1 -1
- package/src/engine/interpolation/TransformPoseSerializationAdapter.js +18 -23
- package/src/engine/network/adapters/QuaternionInterpolationAdapter.d.ts +1 -1
- package/src/engine/network/adapters/QuaternionInterpolationAdapter.d.ts.map +1 -1
- package/src/engine/network/adapters/QuaternionInterpolationAdapter.js +3 -1
- package/src/engine/network/adapters/TransformInterpolationAdapter.d.ts +1 -1
- package/src/engine/network/adapters/TransformInterpolationAdapter.d.ts.map +1 -1
- package/src/engine/network/adapters/TransformInterpolationAdapter.js +3 -1
- package/src/engine/network/adapters/Vector3InterpolationAdapter.d.ts.map +1 -1
- package/src/engine/network/adapters/Vector3InterpolationAdapter.js +5 -2
- package/src/engine/physics/body/SolverBodyState.d.ts.map +1 -1
- package/src/engine/physics/body/SolverBodyState.js +4 -5
- package/src/engine/physics/broadphase/compute_fat_world_aabb.d.ts +12 -0
- package/src/engine/physics/broadphase/compute_fat_world_aabb.d.ts.map +1 -1
- package/src/engine/physics/broadphase/compute_fat_world_aabb.js +28 -3
- package/src/engine/physics/ccd/linear_sweep.d.ts +42 -12
- package/src/engine/physics/ccd/linear_sweep.d.ts.map +1 -1
- package/src/engine/physics/ccd/linear_sweep.js +1131 -97
- package/src/engine/physics/cloth/collider/ClothColliderIndex.d.ts +13 -0
- package/src/engine/physics/cloth/collider/ClothColliderIndex.d.ts.map +1 -1
- package/src/engine/physics/cloth/collider/ClothColliderIndex.js +90 -22
- package/src/engine/physics/cloth/collider/cloth_collider_bounds.js +84 -24
- package/src/engine/physics/cloth/collider/cloth_collider_sdf.d.ts +46 -3
- package/src/engine/physics/cloth/collider/cloth_collider_sdf.d.ts.map +1 -1
- package/src/engine/physics/cloth/collider/cloth_collider_sdf.js +116 -68
- package/src/engine/physics/cloth/ecs/ClothWorld.d.ts.map +1 -1
- package/src/engine/physics/cloth/ecs/ClothWorld.js +59 -47
- package/src/engine/physics/cloth/ecs/cloth_gather_colliders.d.ts.map +1 -1
- package/src/engine/physics/cloth/ecs/cloth_gather_colliders.js +62 -55
- package/src/engine/physics/cloth/ecs/cloth_reconstruct_pose.d.ts.map +1 -1
- package/src/engine/physics/cloth/ecs/cloth_reconstruct_pose.js +46 -39
- package/src/engine/physics/cloth/ecs/cloth_write_back.d.ts.map +1 -1
- package/src/engine/physics/cloth/ecs/cloth_write_back.js +41 -36
- package/src/engine/physics/cloth/playground/garment_build.js +6 -6
- package/src/engine/physics/cloth/playground/garment_main.js +18 -14
- package/src/engine/physics/cloth/solver/cloth_contact_find.d.ts.map +1 -1
- package/src/engine/physics/cloth/solver/cloth_contact_find.js +8 -5
- package/src/engine/physics/cloth/solver/cloth_solve_vertex.d.ts.map +1 -1
- package/src/engine/physics/cloth/solver/cloth_solve_vertex.js +8 -5
- package/src/engine/physics/cloth/solver/constraint/cloth_contact_row.d.ts.map +1 -1
- package/src/engine/physics/cloth/solver/constraint/cloth_contact_row.js +15 -15
- package/src/engine/physics/cloth/solver/find_non_finite_cloth_state.d.ts +5 -0
- package/src/engine/physics/cloth/solver/find_non_finite_cloth_state.d.ts.map +1 -1
- package/src/engine/physics/cloth/solver/find_non_finite_cloth_state.js +32 -9
- package/src/engine/physics/constraint/solve_constraints.d.ts +50 -8
- package/src/engine/physics/constraint/solve_constraints.d.ts.map +1 -1
- package/src/engine/physics/constraint/solve_constraints.js +703 -429
- package/src/engine/physics/contact/ManifoldStore.d.ts +12 -0
- package/src/engine/physics/contact/ManifoldStore.d.ts.map +1 -1
- package/src/engine/physics/contact/ManifoldStore.js +32 -0
- package/src/engine/physics/ecs/BodyKind.d.ts +16 -8
- package/src/engine/physics/ecs/BodyKind.d.ts.map +1 -1
- package/src/engine/physics/ecs/BodyKind.js +16 -8
- package/src/engine/physics/ecs/Collider.d.ts +7 -2
- package/src/engine/physics/ecs/Collider.d.ts.map +1 -1
- package/src/engine/physics/ecs/Collider.js +7 -2
- package/src/engine/physics/ecs/PhysicsEvents.d.ts +13 -0
- package/src/engine/physics/ecs/PhysicsEvents.d.ts.map +1 -1
- package/src/engine/physics/ecs/PhysicsEvents.js +13 -0
- package/src/engine/physics/ecs/PhysicsSystem.d.ts +320 -36
- package/src/engine/physics/ecs/PhysicsSystem.d.ts.map +1 -1
- package/src/engine/physics/ecs/PhysicsSystem.js +779 -81
- package/src/engine/physics/fluid/FluidField.d.ts.map +1 -1
- package/src/engine/physics/fluid/FluidField.js +5 -1
- package/src/engine/physics/fluid/ecs/FluidObstacleSystem.d.ts +11 -9
- package/src/engine/physics/fluid/ecs/FluidObstacleSystem.d.ts.map +1 -1
- package/src/engine/physics/fluid/ecs/FluidObstacleSystem.js +7 -5
- package/src/engine/physics/fluid/ecs/fluid_reanchor_field.d.ts.map +1 -1
- package/src/engine/physics/fluid/ecs/fluid_reanchor_field.js +9 -7
- package/src/engine/physics/fluid/effector/ImpulseFluidEffector.d.ts.map +1 -1
- package/src/engine/physics/fluid/effector/ImpulseFluidEffector.js +3 -4
- package/src/engine/physics/fluid/effector/WakeFluidEffector.d.ts.map +1 -1
- package/src/engine/physics/fluid/effector/WakeFluidEffector.js +9 -7
- package/src/engine/physics/fluid/solver/v3_mac_advect_maccormack_velocity.d.ts.map +1 -1
- package/src/engine/physics/fluid/solver/v3_mac_advect_maccormack_velocity.js +65 -43
- package/src/engine/physics/inertia/MASS_PROPERTIES_SIZE.d.ts +23 -0
- package/src/engine/physics/inertia/MASS_PROPERTIES_SIZE.d.ts.map +1 -0
- package/src/engine/physics/inertia/MASS_PROPERTIES_SIZE.js +22 -0
- package/src/engine/physics/inertia/convex_hull_mass_properties.d.ts +29 -0
- package/src/engine/physics/inertia/convex_hull_mass_properties.d.ts.map +1 -0
- package/src/engine/physics/inertia/convex_hull_mass_properties.js +117 -0
- package/src/engine/physics/inertia/mass_properties_accumulate.d.ts +24 -0
- package/src/engine/physics/inertia/mass_properties_accumulate.d.ts.map +1 -0
- package/src/engine/physics/inertia/mass_properties_accumulate.js +93 -0
- package/src/engine/physics/inertia/primitive_mass_properties.d.ts +46 -0
- package/src/engine/physics/inertia/primitive_mass_properties.d.ts.map +1 -0
- package/src/engine/physics/inertia/primitive_mass_properties.js +118 -0
- package/src/engine/physics/inertia/rigid_body_set_mass_properties.d.ts +27 -0
- package/src/engine/physics/inertia/rigid_body_set_mass_properties.d.ts.map +1 -0
- package/src/engine/physics/inertia/rigid_body_set_mass_properties.js +62 -0
- package/src/engine/physics/inertia/world_inverse_inertia.d.ts +67 -25
- package/src/engine/physics/inertia/world_inverse_inertia.d.ts.map +1 -1
- package/src/engine/physics/inertia/world_inverse_inertia.js +149 -26
- package/src/engine/physics/integration/integrate_position.d.ts +18 -19
- package/src/engine/physics/integration/integrate_position.d.ts.map +1 -1
- package/src/engine/physics/integration/integrate_position.js +40 -37
- package/src/engine/physics/integration/integrate_velocity.d.ts.map +1 -1
- package/src/engine/physics/integration/integrate_velocity.js +13 -4
- package/src/engine/physics/island/IslandBuilder.d.ts +124 -6
- package/src/engine/physics/island/IslandBuilder.d.ts.map +1 -1
- package/src/engine/physics/island/IslandBuilder.js +322 -19
- package/src/engine/physics/narrowphase/box_box_manifold.d.ts +13 -0
- package/src/engine/physics/narrowphase/box_box_manifold.d.ts.map +1 -1
- package/src/engine/physics/narrowphase/box_box_manifold.js +95 -39
- package/src/engine/physics/narrowphase/box_triangle_contact.d.ts +40 -0
- package/src/engine/physics/narrowphase/box_triangle_contact.d.ts.map +1 -1
- package/src/engine/physics/narrowphase/box_triangle_contact.js +415 -120
- package/src/engine/physics/narrowphase/capsule_contacts.d.ts +63 -0
- package/src/engine/physics/narrowphase/capsule_contacts.d.ts.map +1 -1
- package/src/engine/physics/narrowphase/capsule_contacts.js +234 -46
- package/src/engine/physics/narrowphase/capsule_triangle_contact.d.ts +13 -0
- package/src/engine/physics/narrowphase/capsule_triangle_contact.d.ts.map +1 -1
- package/src/engine/physics/narrowphase/capsule_triangle_contact.js +141 -93
- package/src/engine/physics/narrowphase/compute_penetration.d.ts +29 -11
- package/src/engine/physics/narrowphase/compute_penetration.d.ts.map +1 -1
- package/src/engine/physics/narrowphase/compute_penetration.js +157 -34
- package/src/engine/physics/narrowphase/convex_convex_manifold.d.ts +76 -0
- package/src/engine/physics/narrowphase/convex_convex_manifold.d.ts.map +1 -1
- package/src/engine/physics/narrowphase/convex_convex_manifold.js +243 -48
- package/src/engine/physics/narrowphase/decomposition/decompose_to_triangles.d.ts +13 -0
- package/src/engine/physics/narrowphase/decomposition/decompose_to_triangles.d.ts.map +1 -1
- package/src/engine/physics/narrowphase/decomposition/decompose_to_triangles.js +28 -12
- package/src/engine/physics/narrowphase/decomposition/heightmap_enumerate_triangles.d.ts +13 -0
- package/src/engine/physics/narrowphase/decomposition/heightmap_enumerate_triangles.d.ts.map +1 -1
- package/src/engine/physics/narrowphase/decomposition/heightmap_enumerate_triangles.js +27 -0
- package/src/engine/physics/narrowphase/decomposition/heightmap_triangle_edge_flags.d.ts +42 -0
- package/src/engine/physics/narrowphase/decomposition/heightmap_triangle_edge_flags.d.ts.map +1 -0
- package/src/engine/physics/narrowphase/decomposition/heightmap_triangle_edge_flags.js +250 -0
- package/src/engine/physics/narrowphase/decomposition/mesh_enumerate_triangles.d.ts +27 -11
- package/src/engine/physics/narrowphase/decomposition/mesh_enumerate_triangles.d.ts.map +1 -1
- package/src/engine/physics/narrowphase/decomposition/mesh_enumerate_triangles.js +291 -12
- package/src/engine/physics/narrowphase/decomposition/triangle_buffer_layout.d.ts +7 -1
- package/src/engine/physics/narrowphase/decomposition/triangle_buffer_layout.d.ts.map +1 -1
- package/src/engine/physics/narrowphase/decomposition/triangle_buffer_layout.js +7 -1
- package/src/engine/physics/narrowphase/decomposition/triangle_edge_flags.d.ts +35 -0
- package/src/engine/physics/narrowphase/decomposition/triangle_edge_flags.d.ts.map +1 -0
- package/src/engine/physics/narrowphase/decomposition/triangle_edge_flags.js +61 -0
- package/src/engine/physics/narrowphase/hull_sphere_contact.d.ts +54 -0
- package/src/engine/physics/narrowphase/hull_sphere_contact.d.ts.map +1 -0
- package/src/engine/physics/narrowphase/hull_sphere_contact.js +244 -0
- package/src/engine/physics/narrowphase/mesh_convex_hull.js +5 -1
- package/src/engine/physics/narrowphase/mesh_mesh_tet_manifold.d.ts +2 -0
- package/src/engine/physics/narrowphase/mesh_mesh_tet_manifold.d.ts.map +1 -1
- package/src/engine/physics/narrowphase/mesh_mesh_tet_manifold.js +56 -31
- package/src/engine/physics/narrowphase/narrowphase_step.d.ts +6 -5
- package/src/engine/physics/narrowphase/narrowphase_step.d.ts.map +1 -1
- package/src/engine/physics/narrowphase/narrowphase_step.js +2185 -483
- package/src/engine/physics/narrowphase/reduce_manifold_contacts.d.ts +56 -5
- package/src/engine/physics/narrowphase/reduce_manifold_contacts.d.ts.map +1 -1
- package/src/engine/physics/narrowphase/reduce_manifold_contacts.js +546 -5
- package/src/engine/physics/narrowphase/refine_ray_concave.d.ts +29 -2
- package/src/engine/physics/narrowphase/refine_ray_concave.d.ts.map +1 -1
- package/src/engine/physics/narrowphase/refine_ray_concave.js +628 -75
- package/src/engine/physics/narrowphase/refine_ray_hit.d.ts +3 -2
- package/src/engine/physics/narrowphase/refine_ray_hit.d.ts.map +1 -1
- package/src/engine/physics/narrowphase/refine_ray_hit.js +3 -2
- package/src/engine/physics/narrowphase/rigid_subject_pose.d.ts +27 -0
- package/src/engine/physics/narrowphase/rigid_subject_pose.d.ts.map +1 -0
- package/src/engine/physics/narrowphase/rigid_subject_pose.js +96 -0
- package/src/engine/physics/narrowphase/sphere_box_contact.d.ts +14 -0
- package/src/engine/physics/narrowphase/sphere_box_contact.d.ts.map +1 -1
- package/src/engine/physics/narrowphase/sphere_box_contact.js +51 -5
- package/src/engine/physics/narrowphase/sphere_sphere_contact.d.ts +12 -0
- package/src/engine/physics/narrowphase/sphere_sphere_contact.d.ts.map +1 -1
- package/src/engine/physics/narrowphase/sphere_sphere_contact.js +30 -0
- package/src/engine/physics/narrowphase/sphere_triangle_contact.d.ts +12 -0
- package/src/engine/physics/narrowphase/sphere_triangle_contact.d.ts.map +1 -1
- package/src/engine/physics/narrowphase/sphere_triangle_contact.js +37 -8
- package/src/engine/physics/narrowphase/support_feature_manifold.d.ts +139 -0
- package/src/engine/physics/narrowphase/support_feature_manifold.d.ts.map +1 -0
- package/src/engine/physics/narrowphase/support_feature_manifold.js +949 -0
- package/src/engine/physics/queries/PhysicsSurfacePoint.d.ts +32 -13
- package/src/engine/physics/queries/PhysicsSurfacePoint.d.ts.map +1 -1
- package/src/engine/physics/queries/PhysicsSurfacePoint.js +36 -13
- package/src/engine/physics/queries/convex_overlaps_shape.d.ts +27 -0
- package/src/engine/physics/queries/convex_overlaps_shape.d.ts.map +1 -0
- package/src/engine/physics/queries/convex_overlaps_shape.js +169 -0
- package/src/engine/physics/queries/overlap_shape.d.ts.map +1 -1
- package/src/engine/physics/queries/overlap_shape.js +57 -79
- package/src/engine/physics/queries/raycast.d.ts +10 -4
- package/src/engine/physics/queries/raycast.d.ts.map +1 -1
- package/src/engine/physics/queries/raycast.js +133 -9
- package/src/engine/physics/queries/shape_cast.d.ts +55 -24
- package/src/engine/physics/queries/shape_cast.d.ts.map +1 -1
- package/src/engine/physics/queries/shape_cast.js +2061 -245
- package/src/engine/physics/solver/apply_impulse_to_body.d.ts +32 -10
- package/src/engine/physics/solver/apply_impulse_to_body.d.ts.map +1 -1
- package/src/engine/physics/solver/apply_impulse_to_body.js +69 -28
- package/src/engine/physics/solver/solve_contacts.d.ts +65 -18
- package/src/engine/physics/solver/solve_contacts.d.ts.map +1 -1
- package/src/engine/physics/solver/solve_contacts.js +458 -234
- package/src/engine/physics/vehicle/RaycastVehicle.d.ts.map +1 -1
- package/src/engine/physics/vehicle/RaycastVehicle.js +5 -6
- package/src/shade/assets/textures/split_sum.bin +0 -0
- package/src/shade/device/mock/SoftwareGPUQueue.d.ts.map +1 -1
- package/src/shade/device/mock/SoftwareGPUQueue.js +2 -1
- package/src/shade/playground/path_traced_media/README.md +78 -0
- package/src/shade/playground/path_traced_media/capture_radiance.d.ts +33 -0
- package/src/shade/playground/path_traced_media/capture_radiance.d.ts.map +1 -0
- package/src/shade/playground/path_traced_media/capture_radiance.js +174 -0
- package/src/shade/playground/path_traced_media/checks.d.ts +160 -0
- package/src/shade/playground/path_traced_media/checks.d.ts.map +1 -0
- package/src/shade/playground/path_traced_media/checks.js +921 -0
- package/src/shade/playground/path_traced_media/index.html +71 -0
- package/src/shade/playground/path_traced_media/main.d.ts +2 -0
- package/src/shade/playground/path_traced_media/main.d.ts.map +1 -0
- package/src/shade/playground/path_traced_media/main.js +440 -0
- package/src/shade/playground/path_traced_media/make_wave_pool_geometry.d.ts +26 -0
- package/src/shade/playground/path_traced_media/make_wave_pool_geometry.d.ts.map +1 -0
- package/src/shade/playground/path_traced_media/make_wave_pool_geometry.js +117 -0
- package/src/shade/playground/path_traced_media/views.d.ts +21 -0
- package/src/shade/playground/path_traced_media/views.d.ts.map +1 -0
- package/src/shade/playground/path_traced_media/views.js +161 -0
- package/src/shade/playground/sh_exponential/README.md +43 -0
- package/src/shade/playground/sh_exponential/index.html +59 -0
- package/src/shade/playground/sh_exponential/main.d.ts +2 -0
- package/src/shade/playground/sh_exponential/main.d.ts.map +1 -0
- package/src/shade/playground/sh_exponential/main.js +571 -0
- package/src/shade/playground/sh_exponential/sh_exp_playground_shaders.d.ts +46 -0
- package/src/shade/playground/sh_exponential/sh_exp_playground_shaders.d.ts.map +1 -0
- package/src/shade/playground/sh_exponential/sh_exp_playground_shaders.js +270 -0
- package/src/shade/playground/water_refraction/README.md +24 -15
- package/src/shade/playground/water_refraction/index.html +6 -8
- package/src/shade/playground/water_refraction/main.js +12 -11
- package/src/shade/playground/water_refraction/world.d.ts +2 -0
- package/src/shade/playground/water_refraction/world.d.ts.map +1 -1
- package/src/shade/playground/water_refraction/world.js +8 -4
- package/src/shade/renderer/Renderer.d.ts +2 -0
- package/src/shade/renderer/Renderer.d.ts.map +1 -1
- package/src/shade/renderer/Renderer.js +23 -0
- package/src/shade/renderer/dynamic/shader_dynamic_mesh_avboit_draw.d.ts.map +1 -1
- package/src/shade/renderer/dynamic/shader_dynamic_mesh_avboit_draw.js +9 -1
- package/src/shade/renderer/geometry/sdf/chunk_scene_point_query_volume_sign.d.ts.map +1 -1
- package/src/shade/renderer/geometry/sdf/chunk_scene_point_query_volume_sign.js +6 -4
- package/src/shade/renderer/global_illumination/brick4/gpu/bake/brick4_bake_basic.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/brick4/gpu/bake/brick4_bake_basic.js +1 -0
- package/src/shade/renderer/global_illumination/brick4/gpu/bake/sampling/chunk_direction_by_index_rand1.d.ts +7 -0
- package/src/shade/renderer/global_illumination/brick4/gpu/bake/sampling/chunk_direction_by_index_rand1.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/brick4/gpu/bake/sampling/chunk_direction_by_index_rand1.js +12 -12
- package/src/shade/renderer/global_illumination/brick4/gpu/bake/sampling/chunk_direction_by_index_spherical.d.ts +4 -0
- package/src/shade/renderer/global_illumination/brick4/gpu/bake/sampling/chunk_direction_by_index_spherical.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/brick4/gpu/bake/sampling/chunk_direction_by_index_spherical.js +13 -9
- package/src/shade/renderer/global_illumination/brick4/gpu/bake/shader_brick4_bake_probes.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/brick4/gpu/bake/shader_brick4_bake_probes.js +2 -0
- package/src/shade/renderer/global_illumination/lpv/bake/GPULightProbeVolumeRenderer.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/lpv/bake/GPULightProbeVolumeRenderer.js +3 -0
- package/src/shade/renderer/global_illumination/lpv/deprecated/probe_trace_compute_shader_code.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/lpv/deprecated/probe_trace_compute_shader_code.js +4 -9
- package/src/shade/renderer/light/LIGHT_DATABASE_SPEC.d.ts.map +1 -1
- package/src/shade/renderer/light/LIGHT_DATABASE_SPEC.js +20 -10
- package/src/shade/renderer/light/environment/rgbe/load_environment_map.d.ts +2 -1
- package/src/shade/renderer/light/environment/rgbe/load_environment_map.d.ts.map +1 -1
- package/src/shade/renderer/light/environment/rgbe/load_environment_map.js +2 -1
- package/src/shade/renderer/light/environment/sh_exponential/README.md +171 -0
- package/src/shade/renderer/light/environment/sh_exponential/SHExpEncoder.d.ts +170 -0
- package/src/shade/renderer/light/environment/sh_exponential/SHExpEncoder.d.ts.map +1 -0
- package/src/shade/renderer/light/environment/sh_exponential/SHExpEncoder.js +377 -0
- package/src/shade/renderer/light/environment/sh_exponential/SH_EXP_ENCODE_PARAMETERS_STRUCT.d.ts +16 -0
- package/src/shade/renderer/light/environment/sh_exponential/SH_EXP_ENCODE_PARAMETERS_STRUCT.d.ts.map +1 -0
- package/src/shade/renderer/light/environment/sh_exponential/SH_EXP_ENCODE_PARAMETERS_STRUCT.js +27 -0
- package/src/shade/renderer/light/environment/sh_exponential/chunk_sh_exp_workgroup_sum.d.ts +21 -0
- package/src/shade/renderer/light/environment/sh_exponential/chunk_sh_exp_workgroup_sum.d.ts.map +1 -0
- package/src/shade/renderer/light/environment/sh_exponential/chunk_sh_exp_workgroup_sum.js +53 -0
- package/src/shade/renderer/light/environment/sh_exponential/sh_exp_design_row.d.ts +33 -0
- package/src/shade/renderer/light/environment/sh_exponential/sh_exp_design_row.d.ts.map +1 -0
- package/src/shade/renderer/light/environment/sh_exponential/sh_exp_design_row.js +90 -0
- package/src/shade/renderer/light/environment/sh_exponential/sh_exp_fit_samples.d.ts +28 -0
- package/src/shade/renderer/light/environment/sh_exponential/sh_exp_fit_samples.d.ts.map +1 -0
- package/src/shade/renderer/light/environment/sh_exponential/sh_exp_fit_samples.js +92 -0
- package/src/shade/renderer/light/environment/sh_exponential/sh_exp_layout.d.ts +39 -0
- package/src/shade/renderer/light/environment/sh_exponential/sh_exp_layout.d.ts.map +1 -0
- package/src/shade/renderer/light/environment/sh_exponential/sh_exp_layout.js +44 -0
- package/src/shade/renderer/light/environment/sh_exponential/sh_exp_solve_matrix.d.ts +42 -0
- package/src/shade/renderer/light/environment/sh_exponential/sh_exp_solve_matrix.d.ts.map +1 -0
- package/src/shade/renderer/light/environment/sh_exponential/sh_exp_solve_matrix.js +123 -0
- package/src/shade/renderer/light/environment/sh_exponential/shader_sh_exp_environment_cells.d.ts +30 -0
- package/src/shade/renderer/light/environment/sh_exponential/shader_sh_exp_environment_cells.d.ts.map +1 -0
- package/src/shade/renderer/light/environment/sh_exponential/shader_sh_exp_environment_cells.js +147 -0
- package/src/shade/renderer/light/environment/sh_exponential/shader_sh_exp_log_floor.d.ts +24 -0
- package/src/shade/renderer/light/environment/sh_exponential/shader_sh_exp_log_floor.d.ts.map +1 -0
- package/src/shade/renderer/light/environment/sh_exponential/shader_sh_exp_log_floor.js +79 -0
- package/src/shade/renderer/light/environment/sh_exponential/shader_sh_exp_project.d.ts +17 -0
- package/src/shade/renderer/light/environment/sh_exponential/shader_sh_exp_project.d.ts.map +1 -0
- package/src/shade/renderer/light/environment/sh_exponential/shader_sh_exp_project.js +99 -0
- package/src/shade/renderer/light/environment/sh_exponential/shader_sh_exp_reference_reflectance.d.ts +24 -0
- package/src/shade/renderer/light/environment/sh_exponential/shader_sh_exp_reference_reflectance.d.ts.map +1 -0
- package/src/shade/renderer/light/environment/sh_exponential/shader_sh_exp_reference_reflectance.js +104 -0
- package/src/shade/renderer/light/environment/sh_exponential/shader_sh_exp_solve.d.ts +12 -0
- package/src/shade/renderer/light/environment/sh_exponential/shader_sh_exp_solve.d.ts.map +1 -0
- package/src/shade/renderer/light/environment/sh_exponential/shader_sh_exp_solve.js +93 -0
- package/src/shade/renderer/lightmap/GPULightMap.d.ts.map +1 -1
- package/src/shade/renderer/lightmap/GPULightMap.js +1 -0
- package/src/shade/renderer/lightmap/bake/shader_lightmap_viz_to_irradiance_flat.d.ts.map +1 -1
- package/src/shade/renderer/lightmap/bake/shader_lightmap_viz_to_irradiance_flat.js +4 -0
- package/src/shade/renderer/lightmap/bake/shader_lightmap_viz_to_sh.d.ts.map +1 -1
- package/src/shade/renderer/lightmap/bake/shader_lightmap_viz_to_sh.js +4 -0
- package/src/shade/renderer/loader/gltf/tiny-gltf.d.ts +1 -1
- package/src/shade/renderer/material/PIXEL_TEXTURE_ORM.d.ts +1 -1
- package/src/shade/renderer/material/PIXEL_TEXTURE_ORM.d.ts.map +1 -1
- package/src/shade/renderer/material/StandardShadeMaterial.d.ts +15 -0
- package/src/shade/renderer/material/StandardShadeMaterial.d.ts.map +1 -1
- package/src/shade/renderer/material/StandardShadeMaterial.js +17 -0
- package/src/shade/renderer/material/resident/GPUResidentMaterialContext.d.ts +36 -2
- package/src/shade/renderer/material/resident/GPUResidentMaterialContext.d.ts.map +1 -1
- package/src/shade/renderer/material/resident/GPUResidentMaterialContext.js +218 -18
- package/src/shade/renderer/material/resident/INDIRECT_MATERIAL_STRUCT.d.ts.map +1 -1
- package/src/shade/renderer/material/resident/INDIRECT_MATERIAL_STRUCT.js +10 -0
- package/src/shade/renderer/medium/MEDIA_TABLE_STRUCT.d.ts +17 -0
- package/src/shade/renderer/medium/MEDIA_TABLE_STRUCT.d.ts.map +1 -0
- package/src/shade/renderer/medium/MEDIA_TABLE_STRUCT.js +24 -0
- package/src/shade/renderer/medium/MEDIUM_PHASE_LOBE_KIND.d.ts +24 -0
- package/src/shade/renderer/medium/MEDIUM_PHASE_LOBE_KIND.d.ts.map +1 -0
- package/src/shade/renderer/medium/MEDIUM_PHASE_LOBE_KIND.js +18 -0
- package/src/shade/renderer/medium/MEDIUM_STRUCT.d.ts +20 -0
- package/src/shade/renderer/medium/MEDIUM_STRUCT.d.ts.map +1 -0
- package/src/shade/renderer/medium/MEDIUM_STRUCT.js +43 -0
- package/src/shade/renderer/medium/ParticipatingMedium.d.ts +108 -0
- package/src/shade/renderer/medium/ParticipatingMedium.d.ts.map +1 -0
- package/src/shade/renderer/medium/ParticipatingMedium.js +204 -0
- package/src/shade/renderer/medium/chunk_medium_lobe_phase.d.ts +13 -0
- package/src/shade/renderer/medium/chunk_medium_lobe_phase.d.ts.map +1 -0
- package/src/shade/renderer/medium/chunk_medium_lobe_phase.js +33 -0
- package/src/shade/renderer/medium/participating_medium_serialization.d.ts +32 -0
- package/src/shade/renderer/medium/participating_medium_serialization.d.ts.map +1 -0
- package/src/shade/renderer/medium/participating_medium_serialization.js +181 -0
- package/src/shade/renderer/medium/phase/MediumPhaseFunction.d.ts +48 -0
- package/src/shade/renderer/medium/phase/MediumPhaseFunction.d.ts.map +1 -0
- package/src/shade/renderer/medium/phase/MediumPhaseFunction.js +42 -0
- package/src/shade/renderer/medium/phase/PhaseCornetteShanks.d.ts +23 -0
- package/src/shade/renderer/medium/phase/PhaseCornetteShanks.d.ts.map +1 -0
- package/src/shade/renderer/medium/phase/PhaseCornetteShanks.js +45 -0
- package/src/shade/renderer/medium/phase/PhaseDraine.d.ts +30 -0
- package/src/shade/renderer/medium/phase/PhaseDraine.d.ts.map +1 -0
- package/src/shade/renderer/medium/phase/PhaseDraine.js +58 -0
- package/src/shade/renderer/medium/phase/PhaseFournierForand.d.ts +24 -0
- package/src/shade/renderer/medium/phase/PhaseFournierForand.d.ts.map +1 -0
- package/src/shade/renderer/medium/phase/PhaseFournierForand.js +53 -0
- package/src/shade/renderer/medium/phase/PhaseHenyeyGreenstein.d.ts +21 -0
- package/src/shade/renderer/medium/phase/PhaseHenyeyGreenstein.d.ts.map +1 -0
- package/src/shade/renderer/medium/phase/PhaseHenyeyGreenstein.js +43 -0
- package/src/shade/renderer/medium/phase/PhaseJendersieDeon.d.ts +25 -0
- package/src/shade/renderer/medium/phase/PhaseJendersieDeon.d.ts.map +1 -0
- package/src/shade/renderer/medium/phase/PhaseJendersieDeon.js +66 -0
- package/src/shade/renderer/medium/phase/PhaseRayleigh.d.ts +9 -0
- package/src/shade/renderer/medium/phase/PhaseRayleigh.d.ts.map +1 -0
- package/src/shade/renderer/medium/phase/PhaseRayleigh.js +21 -0
- package/src/shade/renderer/medium/phase/PhaseWaterMolecular.d.ts +28 -0
- package/src/shade/renderer/medium/phase/PhaseWaterMolecular.d.ts.map +1 -0
- package/src/shade/renderer/medium/phase/PhaseWaterMolecular.js +49 -0
- package/src/shade/renderer/medium/water/WATER_DEFAULT_PATH_LENGTHS.d.ts +10 -0
- package/src/shade/renderer/medium/water/WATER_DEFAULT_PATH_LENGTHS.d.ts.map +1 -0
- package/src/shade/renderer/medium/water/WATER_DEFAULT_PATH_LENGTHS.js +25 -0
- package/src/shade/renderer/medium/water/water_iop_from_appearance.d.ts +47 -0
- package/src/shade/renderer/medium/water/water_iop_from_appearance.d.ts.map +1 -0
- package/src/shade/renderer/medium/water/water_iop_from_appearance.js +174 -0
- package/src/shade/renderer/medium/water/water_iop_from_constituents.d.ts +57 -0
- package/src/shade/renderer/medium/water/water_iop_from_constituents.d.ts.map +1 -0
- package/src/shade/renderer/medium/water/water_iop_from_constituents.js +242 -0
- package/src/shade/renderer/medium/water/water_iop_jerlov.d.ts +41 -0
- package/src/shade/renderer/medium/water/water_iop_jerlov.d.ts.map +1 -0
- package/src/shade/renderer/medium/water/water_iop_jerlov.js +231 -0
- package/src/shade/renderer/medium/water/water_iop_spectral_reference.d.ts +66 -0
- package/src/shade/renderer/medium/water/water_iop_spectral_reference.d.ts.map +1 -0
- package/src/shade/renderer/medium/water/water_iop_spectral_reference.js +223 -0
- package/src/shade/renderer/medium/water/water_medium_from_iop.d.ts +96 -0
- package/src/shade/renderer/medium/water/water_medium_from_iop.d.ts.map +1 -0
- package/src/shade/renderer/medium/water/water_medium_from_iop.js +145 -0
- package/src/shade/renderer/medium/water/water_presets.d.ts +69 -0
- package/src/shade/renderer/medium/water/water_presets.d.ts.map +1 -0
- package/src/shade/renderer/medium/water/water_presets.js +119 -0
- package/src/shade/renderer/medium/water/water_rgb_from_spectral.d.ts +69 -0
- package/src/shade/renderer/medium/water/water_rgb_from_spectral.d.ts.map +1 -0
- package/src/shade/renderer/medium/water/water_rgb_from_spectral.js +341 -0
- package/src/shade/renderer/particles/DESIGN.md +4 -2
- package/src/shade/renderer/particles/shaders/chunk_particle_avboit_voxel_fade.d.ts +26 -0
- package/src/shade/renderer/particles/shaders/chunk_particle_avboit_voxel_fade.d.ts.map +1 -0
- package/src/shade/renderer/particles/shaders/chunk_particle_avboit_voxel_fade.js +71 -0
- 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 +16 -1
- package/src/shade/renderer/particles/shaders/shader_particle_avboit_splat.d.ts.map +1 -1
- package/src/shade/renderer/particles/shaders/shader_particle_avboit_splat.js +6 -13
- package/src/shade/renderer/path_tracer/PATH_TRACED_MEDIA_PLAN_2026_10_02.md +520 -0
- package/src/shade/renderer/path_tracer/accumulating/AccumulatingPathTracer.d.ts.map +1 -1
- package/src/shade/renderer/path_tracer/accumulating/AccumulatingPathTracer.js +1 -0
- package/src/shade/renderer/path_tracer/accumulating/shader_accumulating_path_tracer.d.ts.map +1 -1
- package/src/shade/renderer/path_tracer/accumulating/shader_accumulating_path_tracer.js +2 -0
- package/src/shade/renderer/path_tracer/graph_path_trace_scene.d.ts.map +1 -1
- package/src/shade/renderer/path_tracer/graph_path_trace_scene.js +188 -185
- package/src/shade/renderer/path_tracer/shader/STANDARD_MATERIAL_DATA_STRUCT.d.ts.map +1 -1
- package/src/shade/renderer/path_tracer/shader/STANDARD_MATERIAL_DATA_STRUCT.js +4 -1
- package/src/shade/renderer/path_tracer/shader/chunk_indirect_sample_tangent_normal.d.ts +13 -0
- package/src/shade/renderer/path_tracer/shader/chunk_indirect_sample_tangent_normal.d.ts.map +1 -0
- package/src/shade/renderer/path_tracer/shader/chunk_indirect_sample_tangent_normal.js +29 -0
- package/src/shade/renderer/path_tracer/shader/chunk_render_trace_path.d.ts +79 -0
- package/src/shade/renderer/path_tracer/shader/chunk_render_trace_path.d.ts.map +1 -1
- package/src/shade/renderer/path_tracer/shader/chunk_render_trace_path.js +360 -70
- package/src/shade/renderer/path_tracer/shader/chunk_sample_material_data.d.ts.map +1 -1
- package/src/shade/renderer/path_tracer/shader/chunk_sample_material_data.js +4 -3
- package/src/shade/renderer/path_tracer/shader/manifold/chunk_manifold_beam.d.ts +24 -0
- package/src/shade/renderer/path_tracer/shader/manifold/chunk_manifold_beam.d.ts.map +1 -0
- package/src/shade/renderer/path_tracer/shader/manifold/chunk_manifold_beam.js +99 -0
- package/src/shade/renderer/path_tracer/shader/manifold/chunk_manifold_connect.d.ts +68 -0
- package/src/shade/renderer/path_tracer/shader/manifold/chunk_manifold_connect.d.ts.map +1 -0
- package/src/shade/renderer/path_tracer/shader/manifold/chunk_manifold_connect.js +263 -0
- package/src/shade/renderer/path_tracer/shader/manifold/chunk_manifold_constraint.d.ts +55 -0
- package/src/shade/renderer/path_tracer/shader/manifold/chunk_manifold_constraint.d.ts.map +1 -0
- package/src/shade/renderer/path_tracer/shader/manifold/chunk_manifold_constraint.js +148 -0
- package/src/shade/renderer/path_tracer/shader/manifold/chunk_manifold_light.d.ts +17 -0
- package/src/shade/renderer/path_tracer/shader/manifold/chunk_manifold_light.d.ts.map +1 -0
- package/src/shade/renderer/path_tracer/shader/manifold/chunk_manifold_light.js +41 -0
- package/src/shade/renderer/path_tracer/shader/manifold/chunk_manifold_light_sample.d.ts +20 -0
- package/src/shade/renderer/path_tracer/shader/manifold/chunk_manifold_light_sample.d.ts.map +1 -0
- package/src/shade/renderer/path_tracer/shader/manifold/chunk_manifold_light_sample.js +105 -0
- package/src/shade/renderer/path_tracer/shader/manifold/chunk_manifold_triangle.d.ts +28 -0
- package/src/shade/renderer/path_tracer/shader/manifold/chunk_manifold_triangle.d.ts.map +1 -0
- package/src/shade/renderer/path_tracer/shader/manifold/chunk_manifold_triangle.js +97 -0
- package/src/shade/renderer/path_tracer/shader/manifold/chunk_manifold_triangle_of_hit.d.ts +12 -0
- package/src/shade/renderer/path_tracer/shader/manifold/chunk_manifold_triangle_of_hit.d.ts.map +1 -0
- package/src/shade/renderer/path_tracer/shader/manifold/chunk_manifold_triangle_of_hit.js +46 -0
- package/src/shade/renderer/path_tracer/shader/media/chunk_medium_interface.d.ts +25 -0
- package/src/shade/renderer/path_tracer/shader/media/chunk_medium_interface.d.ts.map +1 -0
- package/src/shade/renderer/path_tracer/shader/media/chunk_medium_interface.js +75 -0
- package/src/shade/renderer/path_tracer/shader/media/chunk_medium_path.d.ts +54 -0
- package/src/shade/renderer/path_tracer/shader/media/chunk_medium_path.d.ts.map +1 -0
- package/src/shade/renderer/path_tracer/shader/media/chunk_medium_path.js +245 -0
- package/src/shade/renderer/path_tracer/shader/media/chunk_medium_phase.d.ts +42 -0
- package/src/shade/renderer/path_tracer/shader/media/chunk_medium_phase.d.ts.map +1 -0
- package/src/shade/renderer/path_tracer/shader/media/chunk_medium_phase.js +236 -0
- package/src/shade/renderer/path_tracer/shader/media/chunk_medium_scatter_nee.d.ts +24 -0
- package/src/shade/renderer/path_tracer/shader/media/chunk_medium_scatter_nee.d.ts.map +1 -0
- package/src/shade/renderer/path_tracer/shader/media/chunk_medium_scatter_nee.js +97 -0
- package/src/shade/renderer/path_tracer/shader/media/chunk_medium_stack.d.ts +57 -0
- package/src/shade/renderer/path_tracer/shader/media/chunk_medium_stack.d.ts.map +1 -0
- package/src/shade/renderer/path_tracer/shader/media/chunk_medium_stack.js +222 -0
- package/src/shade/renderer/path_tracer/shader/media/chunk_medium_transport.d.ts +88 -0
- package/src/shade/renderer/path_tracer/shader/media/chunk_medium_transport.d.ts.map +1 -0
- package/src/shade/renderer/path_tracer/shader/media/chunk_medium_transport.js +304 -0
- package/src/shade/renderer/path_tracer/shader/media/chunk_medium_volumes.d.ts +35 -0
- package/src/shade/renderer/path_tracer/shader/media/chunk_medium_volumes.d.ts.map +1 -0
- package/src/shade/renderer/path_tracer/shader/media/chunk_medium_volumes.js +137 -0
- package/src/shade/renderer/postprocess/nss/NSS.d.ts +1 -1
- package/src/shade/renderer/postprocess/ssr/reproject/chunk_ssr_sample_history.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/ssr/reproject/chunk_ssr_sample_history.js +85 -84
- package/src/shade/renderer/rasterize/native/avboit/AVBOITSettings.d.ts +8 -0
- package/src/shade/renderer/rasterize/native/avboit/AVBOITSettings.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/native/avboit/AVBOITSettings.js +9 -0
- package/src/shade/renderer/rasterize/native/avboit/AVBOITSideChannel.d.ts +12 -2
- package/src/shade/renderer/rasterize/native/avboit/AVBOITSideChannel.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/native/avboit/AVBOITSideChannel.js +12 -3
- package/src/shade/renderer/rasterize/native/avboit/AVBOIT_CONSTANTS.d.ts +13 -7
- package/src/shade/renderer/rasterize/native/avboit/AVBOIT_CONSTANTS.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/native/avboit/AVBOIT_CONSTANTS.js +13 -7
- package/src/shade/renderer/rasterize/native/avboit/AVBOIT_LEDGER.md +309 -0
- package/src/shade/renderer/rasterize/native/avboit/AVBOIT_PLAN_2026_09_03.md +54 -9
- package/src/shade/renderer/rasterize/native/avboit/avboit_draw_fragment_body.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/native/avboit/avboit_draw_fragment_body.js +9 -1
- package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_footprint_bias.d.ts +33 -0
- package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_footprint_bias.d.ts.map +1 -0
- package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_footprint_bias.js +45 -0
- package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_integral_depth_coordinate.d.ts +4 -0
- package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_integral_depth_coordinate.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_integral_depth_coordinate.js +6 -2
- package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_sample_transmittance.d.ts +2 -1
- package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_sample_transmittance.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_sample_transmittance.js +4 -2
- package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_warp_level_word.d.ts +14 -0
- package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_warp_level_word.d.ts.map +1 -0
- package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_warp_level_word.js +28 -0
- package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_warp_lut_entry.d.ts +10 -0
- package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_warp_lut_entry.d.ts.map +1 -0
- package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_warp_lut_entry.js +18 -0
- package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_warp_marks.d.ts +19 -0
- package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_warp_marks.d.ts.map +1 -0
- package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_warp_marks.js +44 -0
- package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_warp_step_count.d.ts +10 -0
- package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_warp_step_count.d.ts.map +1 -0
- package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_warp_step_count.js +17 -0
- package/src/shade/renderer/rasterize/native/avboit/graph_rasterize_meshes_transparent_avboit.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/native/avboit/graph_rasterize_meshes_transparent_avboit.js +3 -1
- package/src/shade/renderer/rasterize/native/avboit/shader_avboit_build_warp.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/native/avboit/shader_avboit_build_warp.js +163 -64
- package/src/shade/renderer/scene/GPUSceneContext.d.ts.map +1 -1
- package/src/shade/renderer/scene/GPUSceneContext.js +4 -1
- package/src/shade/renderer/scene/SCENE_DATABASE_SPEC.d.ts.map +1 -1
- package/src/shade/renderer/scene/SCENE_DATABASE_SPEC.js +5 -0
- package/src/shade/renderer/shader/chunk/atmosphere/C_MIE_SCATTERING_DECLARATION.d.ts +12 -1
- package/src/shade/renderer/shader/chunk/atmosphere/C_MIE_SCATTERING_DECLARATION.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/atmosphere/C_MIE_SCATTERING_DECLARATION.js +22 -3
- package/src/shade/renderer/shader/chunk/atmosphere/phase/chunk_sample_henyey_greenstein_cos.d.ts +18 -0
- package/src/shade/renderer/shader/chunk/atmosphere/phase/chunk_sample_henyey_greenstein_cos.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/atmosphere/phase/chunk_sample_henyey_greenstein_cos.js +31 -0
- package/src/shade/renderer/shader/chunk/atmosphere/phase/ff/chunk_phase_fournier_forand.d.ts +43 -0
- package/src/shade/renderer/shader/chunk/atmosphere/phase/ff/chunk_phase_fournier_forand.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/atmosphere/phase/ff/chunk_phase_fournier_forand.js +153 -0
- package/src/shade/renderer/shader/chunk/atmosphere/phase/ff/chunk_sample_fournier_forand.d.ts +13 -0
- package/src/shade/renderer/shader/chunk/atmosphere/phase/ff/chunk_sample_fournier_forand.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/atmosphere/phase/ff/chunk_sample_fournier_forand.js +57 -0
- package/src/shade/renderer/shader/chunk/atmosphere/phase/ff/fournier_forand_parameters_from_backscatter.d.ts +45 -0
- package/src/shade/renderer/shader/chunk/atmosphere/phase/ff/fournier_forand_parameters_from_backscatter.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/atmosphere/phase/ff/fournier_forand_parameters_from_backscatter.js +109 -0
- package/src/shade/renderer/shader/chunk/atmosphere/phase/jd/chunk_phase_draine.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/atmosphere/phase/jd/chunk_phase_draine.js +6 -3
- package/src/shade/renderer/shader/chunk/atmosphere/phase/jd/chunk_sample_draine.d.ts +24 -0
- package/src/shade/renderer/shader/chunk/atmosphere/phase/jd/chunk_sample_draine.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/atmosphere/phase/jd/chunk_sample_draine.js +49 -0
- package/src/shade/renderer/shader/chunk/atmosphere/phase/jd/chunk_sample_draine_cos.d.ts +18 -0
- package/src/shade/renderer/shader/chunk/atmosphere/phase/jd/chunk_sample_draine_cos.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/atmosphere/phase/jd/chunk_sample_draine_cos.js +18 -0
- package/src/shade/renderer/shader/chunk/brdf/dfg/chunk_integrate_brdf.d.ts +3 -0
- package/src/shade/renderer/shader/chunk/brdf/dfg/chunk_integrate_brdf.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/brdf/dfg/chunk_integrate_brdf.js +3 -0
- package/src/shade/renderer/shader/chunk/brdf/dfg/shader_split_sum_dgf_lut.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/brdf/dfg/shader_split_sum_dgf_lut.js +3 -1
- package/src/shade/renderer/shader/chunk/brdf/fresnel/chunk_F_dielectric.d.ts +24 -0
- package/src/shade/renderer/shader/chunk/brdf/fresnel/chunk_F_dielectric.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/brdf/fresnel/chunk_F_dielectric.js +53 -0
- package/src/shade/renderer/shader/chunk/geometry/ray/chunk_scene_point_query_is_inside_geometry.d.ts +7 -1
- package/src/shade/renderer/shader/chunk/geometry/ray/chunk_scene_point_query_is_inside_geometry.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/geometry/ray/chunk_scene_point_query_is_inside_geometry.js +12 -60
- package/src/shade/renderer/shader/chunk/geometry/sphere/chunk_compute_spherical_excess.d.ts +26 -6
- package/src/shade/renderer/shader/chunk/geometry/sphere/chunk_compute_spherical_excess.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/geometry/sphere/chunk_compute_spherical_excess.js +30 -20
- package/src/shade/renderer/shader/chunk/light/sample/chunk_light_importance_directional.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/light/sample/chunk_light_importance_directional.js +3 -1
- package/src/shade/renderer/shader/chunk/light/sample/chunk_light_importance_point.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/light/sample/chunk_light_importance_point.js +3 -1
- package/src/shade/renderer/shader/chunk/light/sample/chunk_light_importance_spot.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/light/sample/chunk_light_importance_spot.js +3 -1
- package/src/shade/renderer/shader/chunk/light/sample/chunk_light_receiver_cosine.d.ts +14 -0
- package/src/shade/renderer/shader/chunk/light/sample/chunk_light_receiver_cosine.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/light/sample/chunk_light_receiver_cosine.js +25 -0
- package/src/shade/renderer/shader/chunk/light/sample/chunk_select_light_importance.d.ts +9 -2
- package/src/shade/renderer/shader/chunk/light/sample/chunk_select_light_importance.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/light/sample/chunk_select_light_importance.js +33 -10
- package/src/shade/renderer/shader/chunk/screen_space/chunk_screen_space_newton_ray.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/screen_space/chunk_screen_space_newton_ray.js +71 -37
- package/src/shade/renderer/shader/chunk/spherical_harmonics/chunk_sh_band_of_index.d.ts +14 -0
- package/src/shade/renderer/shader/chunk/spherical_harmonics/chunk_sh_band_of_index.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/spherical_harmonics/chunk_sh_band_of_index.js +30 -0
- package/src/shade/renderer/shader/chunk/spherical_harmonics/chunk_sh_basis_function.d.ts +19 -0
- package/src/shade/renderer/shader/chunk/spherical_harmonics/chunk_sh_basis_function.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/spherical_harmonics/chunk_sh_basis_function.js +73 -0
- package/src/shade/renderer/shader/chunk/spherical_harmonics/chunk_sh_vmf_window.d.ts +19 -0
- package/src/shade/renderer/shader/chunk/spherical_harmonics/chunk_sh_vmf_window.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/spherical_harmonics/chunk_sh_vmf_window.js +25 -0
- package/src/shade/renderer/shader/chunk/spherical_harmonics/exponential/SH_EXP_P4Q2_PROBE_STRUCT.d.ts +17 -0
- package/src/shade/renderer/shader/chunk/spherical_harmonics/exponential/SH_EXP_P4Q2_PROBE_STRUCT.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/spherical_harmonics/exponential/SH_EXP_P4Q2_PROBE_STRUCT.js +23 -0
- package/src/shade/renderer/shader/chunk/spherical_harmonics/exponential/chunk_sh_exp_p4q2_base_reflectance.d.ts +26 -0
- package/src/shade/renderer/shader/chunk/spherical_harmonics/exponential/chunk_sh_exp_p4q2_base_reflectance.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/spherical_harmonics/exponential/chunk_sh_exp_p4q2_base_reflectance.js +55 -0
- package/src/shade/renderer/shader/chunk/spherical_harmonics/exponential/chunk_sh_exp_split_sum.d.ts +52 -0
- package/src/shade/renderer/shader/chunk/spherical_harmonics/exponential/chunk_sh_exp_split_sum.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/spherical_harmonics/exponential/chunk_sh_exp_split_sum.js +65 -0
- package/src/shade/renderer/shader/chunk/spherical_harmonics/generated/chunk_sh10_basis_at.d.ts +13 -0
- package/src/shade/renderer/shader/chunk/spherical_harmonics/generated/chunk_sh10_basis_at.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/spherical_harmonics/generated/chunk_sh10_basis_at.js +229 -0
- package/src/shade/renderer/shader/chunk/spherical_harmonics/generated/chunk_sh10_color_evaluate_vmf.d.ts +23 -0
- package/src/shade/renderer/shader/chunk/spherical_harmonics/generated/chunk_sh10_color_evaluate_vmf.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/spherical_harmonics/generated/chunk_sh10_color_evaluate_vmf.js +278 -0
- package/src/shade/renderer/shader/chunk/spherical_harmonics/generated/chunk_sh2_color_evaluate_vmf.d.ts +23 -0
- package/src/shade/renderer/shader/chunk/spherical_harmonics/generated/chunk_sh2_color_evaluate_vmf.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/spherical_harmonics/generated/chunk_sh2_color_evaluate_vmf.js +58 -0
- package/src/shade/renderer/shader/chunk/spherical_harmonics/generated/chunk_sh3_color_evaluate_vmf.d.ts +23 -0
- package/src/shade/renderer/shader/chunk/spherical_harmonics/generated/chunk_sh3_color_evaluate_vmf.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/spherical_harmonics/generated/chunk_sh3_color_evaluate_vmf.js +75 -0
- package/src/shade/renderer/shader/chunk/spherical_harmonics/generated/chunk_sh4_basis_at.d.ts +13 -0
- package/src/shade/renderer/shader/chunk/spherical_harmonics/generated/chunk_sh4_basis_at.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/spherical_harmonics/generated/chunk_sh4_basis_at.js +70 -0
- package/src/shade/renderer/shader/chunk/spherical_harmonics/generated/chunk_sh4_color_evaluate_vmf.d.ts +23 -0
- package/src/shade/renderer/shader/chunk/spherical_harmonics/generated/chunk_sh4_color_evaluate_vmf.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/spherical_harmonics/generated/chunk_sh4_color_evaluate_vmf.js +95 -0
- package/src/shade/renderer/shader/chunk/spherical_harmonics/generated/chunk_sh5_basis_at.d.ts +13 -0
- package/src/shade/renderer/shader/chunk/spherical_harmonics/generated/chunk_sh5_basis_at.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/spherical_harmonics/generated/chunk_sh5_basis_at.js +89 -0
- package/src/shade/renderer/shader/chunk/spherical_harmonics/generated/chunk_sh5_color_evaluate_vmf.d.ts +23 -0
- package/src/shade/renderer/shader/chunk/spherical_harmonics/generated/chunk_sh5_color_evaluate_vmf.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/spherical_harmonics/generated/chunk_sh5_color_evaluate_vmf.js +118 -0
- package/src/shade/renderer/shader/chunk/spherical_harmonics/generated/chunk_sh6_basis_at.d.ts +13 -0
- package/src/shade/renderer/shader/chunk/spherical_harmonics/generated/chunk_sh6_basis_at.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/spherical_harmonics/generated/chunk_sh6_basis_at.js +111 -0
- package/src/shade/renderer/shader/chunk/spherical_harmonics/generated/chunk_sh6_color_evaluate_vmf.d.ts +23 -0
- package/src/shade/renderer/shader/chunk/spherical_harmonics/generated/chunk_sh6_color_evaluate_vmf.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/spherical_harmonics/generated/chunk_sh6_color_evaluate_vmf.js +144 -0
- package/src/shade/renderer/shader/chunk/spherical_harmonics/generated/chunk_sh7_basis_at.d.ts +13 -0
- package/src/shade/renderer/shader/chunk/spherical_harmonics/generated/chunk_sh7_basis_at.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/spherical_harmonics/generated/chunk_sh7_basis_at.js +136 -0
- package/src/shade/renderer/shader/chunk/spherical_harmonics/generated/chunk_sh7_color_evaluate_vmf.d.ts +23 -0
- package/src/shade/renderer/shader/chunk/spherical_harmonics/generated/chunk_sh7_color_evaluate_vmf.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/spherical_harmonics/generated/chunk_sh7_color_evaluate_vmf.js +173 -0
- package/src/shade/renderer/shader/chunk/spherical_harmonics/generated/chunk_sh8_basis_at.d.ts +13 -0
- package/src/shade/renderer/shader/chunk/spherical_harmonics/generated/chunk_sh8_basis_at.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/spherical_harmonics/generated/chunk_sh8_basis_at.js +164 -0
- package/src/shade/renderer/shader/chunk/spherical_harmonics/generated/chunk_sh8_color_evaluate_vmf.d.ts +23 -0
- package/src/shade/renderer/shader/chunk/spherical_harmonics/generated/chunk_sh8_color_evaluate_vmf.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/spherical_harmonics/generated/chunk_sh8_color_evaluate_vmf.js +205 -0
- package/src/shade/renderer/shader/chunk/spherical_harmonics/generated/chunk_sh9_basis_at.d.ts +13 -0
- package/src/shade/renderer/shader/chunk/spherical_harmonics/generated/chunk_sh9_basis_at.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/spherical_harmonics/generated/chunk_sh9_basis_at.js +195 -0
- package/src/shade/renderer/shader/chunk/spherical_harmonics/generated/chunk_sh9_color_evaluate_vmf.d.ts +23 -0
- package/src/shade/renderer/shader/chunk/spherical_harmonics/generated/chunk_sh9_color_evaluate_vmf.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/spherical_harmonics/generated/chunk_sh9_color_evaluate_vmf.js +240 -0
- package/src/shade/renderer/shader/resource/ShaderResourceGroupDescriptor.d.ts +0 -6
- package/src/shade/renderer/shader/resource/ShaderResourceGroupDescriptor.d.ts.map +1 -1
- package/src/shade/renderer/shader/resource/ShaderResourceGroupDescriptor.js +46 -1
- package/src/shade/renderer/shadow/map/DEFAULT_SHADOWMAP_UPDATE_BUDGET.d.ts +7 -7
- package/src/shade/renderer/shadow/map/DEFAULT_SHADOWMAP_UPDATE_BUDGET.js +7 -7
- package/src/shade/renderer/shadow/map/DirectionalLightShadowmap.d.ts +42 -10
- package/src/shade/renderer/shadow/map/DirectionalLightShadowmap.d.ts.map +1 -1
- package/src/shade/renderer/shadow/map/DirectionalLightShadowmap.js +104 -48
- package/src/shade/renderer/shadow/map/GPUSceneShadowmapContext.d.ts +20 -4
- package/src/shade/renderer/shadow/map/GPUSceneShadowmapContext.d.ts.map +1 -1
- package/src/shade/renderer/shadow/map/GPUSceneShadowmapContext.js +186 -74
- package/src/shade/renderer/shadow/map/Shadowmap.d.ts +2 -1
- package/src/shade/renderer/shadow/map/Shadowmap.d.ts.map +1 -1
- package/src/shade/renderer/shadow/map/Shadowmap.js +2 -1
- package/src/shade/renderer/shadow/map/csm/CSM_CASCADE_STRUCT.d.ts +30 -0
- package/src/shade/renderer/shadow/map/csm/CSM_CASCADE_STRUCT.d.ts.map +1 -0
- package/src/shade/renderer/shadow/map/csm/CSM_CASCADE_STRUCT.js +52 -0
- package/src/shade/renderer/shadow/map/csm/CSM_SHADOWMAP_STRUCT.d.ts +14 -0
- package/src/shade/renderer/shadow/map/csm/CSM_SHADOWMAP_STRUCT.d.ts.map +1 -0
- package/src/shade/renderer/shadow/map/csm/CSM_SHADOWMAP_STRUCT.js +20 -0
- package/src/shade/renderer/shadow/map/csm/SHADOWMAP_CSM_DEFAULT_CASCADE_COUNT.d.ts +8 -0
- package/src/shade/renderer/shadow/map/csm/SHADOWMAP_CSM_DEFAULT_CASCADE_COUNT.d.ts.map +1 -0
- package/src/shade/renderer/shadow/map/csm/SHADOWMAP_CSM_DEFAULT_CASCADE_COUNT.js +7 -0
- package/src/shade/renderer/shadow/map/csm/shader/shader_csm_caster_range.d.ts +8 -6
- package/src/shade/renderer/shadow/map/csm/shader/shader_csm_caster_range.d.ts.map +1 -1
- package/src/shade/renderer/shadow/map/csm/shader/shader_csm_caster_range.js +28 -34
- package/src/shade/renderer/shadow/map/shader/chunk_shadowmap_csm_compute_cascade_blended.d.ts +3 -2
- package/src/shade/renderer/shadow/map/shader/chunk_shadowmap_csm_compute_cascade_blended.d.ts.map +1 -1
- package/src/shade/renderer/shadow/map/shader/chunk_shadowmap_csm_compute_cascade_blended.js +19 -14
- package/src/shade/renderer/shadow/map/shader/chunk_shadowmap_sample_directional.d.ts +4 -3
- package/src/shade/renderer/shadow/map/shader/chunk_shadowmap_sample_directional.d.ts.map +1 -1
- package/src/shade/renderer/shadow/map/shader/chunk_shadowmap_sample_directional.js +12 -7
- package/src/shade/renderer/shadow/map/shadowmap_budget_carry_over.d.ts +4 -4
- package/src/shade/renderer/shadow/map/shadowmap_budget_carry_over.js +4 -4
- package/src/shade/renderer/shadow/vsm/GPUViewShadowMaps.d.ts.map +1 -1
- package/src/shade/renderer/shadow/vsm/GPUViewShadowMaps.js +39 -17
- package/src/shade/renderer/shadow/vsm/GPUVirtualShadowTextureResidence.d.ts.map +1 -1
- package/src/shade/renderer/shadow/vsm/GPUVirtualShadowTextureResidence.js +5 -36
- package/src/shade/renderer/shadow/vsm/VSM_UNIFORMS_STRUCT.d.ts.map +1 -1
- package/src/shade/renderer/shadow/vsm/VSM_UNIFORMS_STRUCT.js +3 -2
- package/src/shade/renderer/shadow/vsm/VirtualShadowMap.d.ts +1 -1
- package/src/shade/renderer/shadow/vsm/VirtualShadowMap.d.ts.map +1 -1
- package/src/shade/renderer/shadow/vsm/VirtualShadowMap.js +49 -35
- package/src/shade/renderer/shadow/vsm/VirtualShadowmapRenderer.d.ts +4 -1
- package/src/shade/renderer/shadow/vsm/VirtualShadowmapRenderer.d.ts.map +1 -1
- package/src/shade/renderer/shadow/vsm/VirtualShadowmapRenderer.js +8 -9
- package/src/shade/renderer/shadow/vsm/debug_inspect_residence_buffer.js +2 -2
- package/src/shade/renderer/shadow/vsm/decode_tile_address.d.ts.map +1 -1
- package/src/shade/renderer/shadow/vsm/decode_tile_address.js +15 -23
- package/src/shade/renderer/shadow/vsm/vms_pipeline_compute_coarse_bounds.d.ts.map +1 -1
- package/src/shade/renderer/shadow/vsm/vms_pipeline_compute_coarse_bounds.js +6 -9
- package/src/shade/renderer/shadow/vsm/vsm_residence_pipeline.d.ts.map +1 -1
- package/src/shade/renderer/shadow/vsm/vsm_residence_pipeline.js +19 -9
- package/src/shade/renderer/shadow/vsm/vsm_tile_allocation_pipeline.d.ts.map +1 -1
- package/src/shade/renderer/shadow/vsm/vsm_tile_allocation_pipeline.js +18 -6
- package/src/shade/renderer/texture/util/BLACK_PIXEL_TEXTURE.d.ts +1 -1
- package/src/shade/renderer/texture/util/BLACK_PIXEL_TEXTURE.d.ts.map +1 -1
- package/src/shade/renderer/texture/util/PIXEL_TEXTURE_NORMAL.d.ts +18 -1
- package/src/shade/renderer/texture/util/PIXEL_TEXTURE_NORMAL.d.ts.map +1 -1
- package/src/shade/renderer/texture/util/PIXEL_TEXTURE_NORMAL.js +24 -3
- package/src/shade/renderer/texture/util/WHITE_PIXEL_TEXTURE.d.ts +1 -1
- package/src/shade/renderer/texture/util/WHITE_PIXEL_TEXTURE.d.ts.map +1 -1
- package/src/shade/renderer/texture/util/get_single_pixel_texture.d.ts +0 -1
- package/src/shade/renderer/texture/util/get_single_pixel_texture.d.ts.map +1 -1
- package/src/shade/renderer/texture/util/get_single_pixel_texture.js +2 -23
- package/src/shade/renderer/texture/util/single_pixel_texture_from_sampler.d.ts +11 -0
- package/src/shade/renderer/texture/util/single_pixel_texture_from_sampler.d.ts.map +1 -0
- package/src/shade/renderer/texture/util/single_pixel_texture_from_sampler.js +34 -0
- package/src/shade/renderer/volumetrics/GPUSceneVolumetrics.d.ts +17 -8
- package/src/shade/renderer/volumetrics/GPUSceneVolumetrics.d.ts.map +1 -1
- package/src/shade/renderer/volumetrics/GPUSceneVolumetrics.js +35 -64
- package/src/shade/renderer/volumetrics/chunk_participating_media_volume_sample.d.ts +21 -0
- package/src/shade/renderer/volumetrics/chunk_participating_media_volume_sample.d.ts.map +1 -0
- package/src/shade/renderer/volumetrics/chunk_participating_media_volume_sample.js +70 -0
- package/src/shade/renderer/volumetrics/chunk_participating_media_volumes_iterate.d.ts +31 -0
- package/src/shade/renderer/volumetrics/chunk_participating_media_volumes_iterate.d.ts.map +1 -0
- package/src/shade/renderer/volumetrics/chunk_participating_media_volumes_iterate.js +86 -0
- package/src/shade/renderer/volumetrics/graph_build_volumetrics.d.ts.map +1 -1
- package/src/shade/renderer/volumetrics/graph_build_volumetrics.js +2 -4
- package/src/shade/renderer/volumetrics/shader_volumetrics_build_participating_media.d.ts.map +1 -1
- package/src/shade/renderer/volumetrics/shader_volumetrics_build_participating_media.js +6 -7
- package/src/shade/renderer/volumetrics/shader_volumetrics_build_scattering_lut.js +7 -7
- package/src/shade/renderer/water/GPUWaterRenderer.d.ts +13 -1
- package/src/shade/renderer/water/GPUWaterRenderer.d.ts.map +1 -1
- package/src/shade/renderer/water/GPUWaterRenderer.js +74 -25
- package/src/shade/renderer/water/chunk_water_gi.d.ts +14 -0
- package/src/shade/renderer/water/chunk_water_gi.d.ts.map +1 -0
- package/src/shade/renderer/water/chunk_water_gi.js +56 -0
- package/src/shade/renderer/water/chunk_water_transport.d.ts +2 -0
- package/src/shade/renderer/water/chunk_water_transport.d.ts.map +1 -1
- package/src/shade/renderer/water/chunk_water_transport.js +51 -40
- package/src/shade/renderer/water/medium/GPUWaterBodies.d.ts +29 -0
- package/src/shade/renderer/water/medium/GPUWaterBodies.d.ts.map +1 -0
- package/src/shade/renderer/water/medium/GPUWaterBodies.js +116 -0
- package/src/shade/renderer/water/medium/WATER_BODIES_STRUCT.d.ts +23 -0
- package/src/shade/renderer/water/medium/WATER_BODIES_STRUCT.d.ts.map +1 -0
- package/src/shade/renderer/water/medium/WATER_BODIES_STRUCT.js +42 -0
- package/src/shade/renderer/water/medium/chunk_water_medium_derived.d.ts +9 -0
- package/src/shade/renderer/water/medium/chunk_water_medium_derived.d.ts.map +1 -0
- package/src/shade/renderer/water/medium/chunk_water_medium_derived.js +55 -0
- package/src/shade/renderer/water/medium/chunk_water_medium_scattering.d.ts +8 -0
- package/src/shade/renderer/water/medium/chunk_water_medium_scattering.d.ts.map +1 -0
- package/src/shade/renderer/water/medium/chunk_water_medium_scattering.js +17 -0
- package/src/shade/renderer/water/medium/shader_water_bodies_derive.d.ts +8 -0
- package/src/shade/renderer/water/medium/shader_water_bodies_derive.d.ts.map +1 -0
- package/src/shade/renderer/water/medium/shader_water_bodies_derive.js +30 -0
- package/src/shade/renderer/water/optics/chunk_water_inscatter.d.ts +28 -0
- package/src/shade/renderer/water/optics/chunk_water_inscatter.d.ts.map +1 -0
- package/src/shade/renderer/water/optics/chunk_water_inscatter.js +123 -0
- package/src/shade/renderer/water/optics/chunk_water_light_transmittance.d.ts +23 -0
- package/src/shade/renderer/water/optics/chunk_water_light_transmittance.d.ts.map +1 -0
- package/src/shade/renderer/water/optics/chunk_water_light_transmittance_dry.d.ts +18 -0
- package/src/shade/renderer/water/optics/chunk_water_light_transmittance_dry.d.ts.map +1 -0
- package/src/shade/renderer/water/optics/chunk_water_optics.d.ts +12 -0
- package/src/shade/renderer/water/optics/chunk_water_optics.d.ts.map +1 -0
- package/src/shade/renderer/water/optics/chunk_water_optics.js +75 -0
- package/src/shade/renderer/water/optics/chunk_water_receiver_downwelling.d.ts +27 -0
- package/src/shade/renderer/water/optics/chunk_water_receiver_downwelling.d.ts.map +1 -0
- package/src/shade/renderer/water/optics/chunk_water_receiver_downwelling.js +74 -0
- package/src/shade/renderer/water/shader_water.d.ts +10 -4
- package/src/shade/renderer/water/shader_water.d.ts.map +1 -1
- package/src/shade/renderer/water/shader_water.js +406 -384
- package/src/shade/renderer/water/shader_water_avboit.d.ts.map +1 -1
- package/src/shade/renderer/water/shader_water_avboit.js +19 -9
- package/src/shade/renderer/water/surface/GPUWaterWaveSimulation.d.ts +98 -0
- package/src/shade/renderer/water/surface/GPUWaterWaveSimulation.d.ts.map +1 -0
- package/src/shade/renderer/water/surface/GPUWaterWaveSimulation.js +408 -0
- package/src/shade/renderer/water/surface/WATER_SURFACE_VERTEX_STRUCT.d.ts +12 -0
- package/src/shade/renderer/water/surface/WATER_SURFACE_VERTEX_STRUCT.d.ts.map +1 -0
- package/src/shade/renderer/water/surface/WATER_SURFACE_VERTEX_STRUCT.js +27 -0
- package/src/shade/renderer/water/surface/WATER_WAVE_PARAMETERS_STRUCT.d.ts +14 -0
- package/src/shade/renderer/water/surface/WATER_WAVE_PARAMETERS_STRUCT.d.ts.map +1 -0
- package/src/shade/renderer/water/surface/WATER_WAVE_PARAMETERS_STRUCT.js +49 -0
- package/src/shade/renderer/water/surface/chunk_water_wave.d.ts +15 -0
- package/src/shade/renderer/water/surface/chunk_water_wave.d.ts.map +1 -0
- package/src/shade/renderer/water/surface/chunk_water_wave.js +48 -0
- package/src/shade/renderer/water/surface/chunk_water_wave_grid.d.ts +9 -0
- package/src/shade/renderer/water/surface/chunk_water_wave_grid.d.ts.map +1 -0
- package/src/shade/renderer/water/surface/chunk_water_wave_grid.js +47 -0
- package/src/shade/renderer/water/surface/shader_water_surface_write.d.ts +10 -0
- package/src/shade/renderer/water/surface/shader_water_surface_write.d.ts.map +1 -0
- package/src/shade/renderer/water/surface/shader_water_surface_write.js +51 -0
- package/src/shade/renderer/water/surface/shader_water_wave_step.d.ts +12 -0
- package/src/shade/renderer/water/surface/shader_water_wave_step.d.ts.map +1 -0
- package/src/shade/renderer/water/surface/shader_water_wave_step.js +54 -0
- package/src/shade/renderer/water/surface/water_surface_grid_indices.d.ts +13 -0
- package/src/shade/renderer/water/surface/water_surface_grid_indices.d.ts.map +1 -0
- package/src/shade/renderer/water/surface/water_surface_grid_indices.js +39 -0
- package/src/shade/renderer/water/water_missing_receiver_path.d.ts +17 -0
- package/src/shade/renderer/water/water_missing_receiver_path.d.ts.map +1 -0
- package/src/shade/renderer/water/water_missing_receiver_path.js +40 -0
- package/src/shade/wgsl/emulator/WGSLJavaScriptCompiler.d.ts.map +1 -1
- package/src/shade/wgsl/emulator/WGSLJavaScriptCompiler.js +247 -23
- package/src/shade/wgsl/emulator/WGSLLanguageCore.d.ts +18 -14
- package/src/shade/wgsl/emulator/WGSLLanguageCore.d.ts.map +1 -1
- package/src/shade/wgsl/emulator/WGSLLanguageCore.js +48 -6
- package/src/shade/renderer/shadow/map/csm/CSM_CASTER_RANGE_STRUCT.d.ts +0 -29
- package/src/shade/renderer/shadow/map/csm/CSM_CASTER_RANGE_STRUCT.d.ts.map +0 -1
- package/src/shade/renderer/shadow/map/csm/CSM_CASTER_RANGE_STRUCT.js +0 -43
- package/src/shade/renderer/shadow/map/csm/SHADOWMAP_CSM_CASCADE_COUNT.d.ts +0 -7
- package/src/shade/renderer/shadow/map/csm/SHADOWMAP_CSM_CASCADE_COUNT.d.ts.map +0 -1
- package/src/shade/renderer/shadow/map/csm/SHADOWMAP_CSM_CASCADE_COUNT.js +0 -6
|
@@ -1,10 +1,12 @@
|
|
|
1
|
+
import { assert } from "../../../../core/assert.js";
|
|
1
2
|
import Vector3 from "../../../../core/geom/Vector3.js";
|
|
2
3
|
import { Ray3 } from "../../../../core/geom/3d/ray/Ray3.js";
|
|
3
4
|
import { v3_add } from "../../../../core/geom/vec3/v3_add.js";
|
|
4
5
|
import { v3_set } from "../../../../core/geom/vec3/v3_set.js";
|
|
5
|
-
import { Transform64 } from "../../../ecs/transform/Transform64.js";
|
|
6
6
|
import { Collider } from "../../../physics/ecs/Collider.js";
|
|
7
|
+
import { is_sensor } from "../../../physics/ecs/is_sensor.js";
|
|
7
8
|
import { compute_penetration } from "../../../physics/narrowphase/compute_penetration.js";
|
|
9
|
+
import { convex_overlaps_shape } from "../../../physics/queries/convex_overlaps_shape.js";
|
|
8
10
|
import { PhysicsSurfacePoint } from "../../../physics/queries/PhysicsSurfacePoint.js";
|
|
9
11
|
|
|
10
12
|
/**
|
|
@@ -19,12 +21,21 @@ const MAX_CLIP_PLANES = 5;
|
|
|
19
21
|
/** Below this speed/length we treat the remaining motion as spent. */
|
|
20
22
|
const MIN_MOVE = 1e-6;
|
|
21
23
|
|
|
24
|
+
/**
|
|
25
|
+
* A resting body this close to the height the ground stick would put it at is already there. The
|
|
26
|
+
* footprint shape cast parks 1e-5 to 1.25e-5 m short of a touch, so two probes of one resting pose
|
|
27
|
+
* can disagree by up to 2.5e-6 m; a standing capsule measured 2.3e-8 to 4.6e-8 m a move on a box,
|
|
28
|
+
* a mesh and a 20° slope. A two-thousandth of the default skin.
|
|
29
|
+
* @type {number}
|
|
30
|
+
*/
|
|
31
|
+
const REST_TOLERANCE = 1e-5;
|
|
32
|
+
|
|
22
33
|
/**
|
|
23
34
|
* Kinematic character collision solver. See DESIGN_COLLISION.md.
|
|
24
35
|
*
|
|
25
36
|
* **The mover is controller-agnostic, and the path it lives at says otherwise.** It imports
|
|
26
|
-
* `Vector3`, `Ray3`, `
|
|
27
|
-
* nothing from `FirstPersonPlayerController`. If you have your own movement model and have decided
|
|
37
|
+
* `assert`, `Vector3`, `Ray3`, `v3_add`, `v3_set`, `Collider`, `is_sensor`, `compute_penetration`,
|
|
38
|
+
* `convex_overlaps_shape` and `PhysicsSurfacePoint` — nothing from `FirstPersonPlayerController`. If you have your own movement model and have decided
|
|
28
39
|
* that controller is not for you, **this class still is**: it carries the standoff (`skin`), the
|
|
29
40
|
* start-solid depenetration pass, Quake's five-plane crease handling and `MIN_WALK_NORMAL`, and it
|
|
30
41
|
* is the thing to build a character on. It sits under `control/first-person/` because that is where
|
|
@@ -57,11 +68,20 @@ export class KinematicMover {
|
|
|
57
68
|
_ray = new Ray3();
|
|
58
69
|
|
|
59
70
|
_hit = new PhysicsSurfacePoint();
|
|
71
|
+
/**
|
|
72
|
+
* Overlap query output. Grown by {@link _overlapAll} whenever a query fills it, and the
|
|
73
|
+
* high-water mark kept: the query caps its count at the buffer and drops the rest without a
|
|
74
|
+
* word, and the body it drops can be the one the capsule is deepest in.
|
|
75
|
+
* @type {Uint32Array}
|
|
76
|
+
*/
|
|
60
77
|
_overlapBuf = new Uint32Array(16);
|
|
61
78
|
_penDir = new Float64Array(3); // compute_penetration out
|
|
79
|
+
_otherPosition = new Float64Array(3); // pose of the collider recovery is testing, see _readPose
|
|
80
|
+
_otherRotation = new Float64Array(4);
|
|
62
81
|
_planes = new Float64Array(MAX_CLIP_PLANES * 3);
|
|
63
82
|
_cand = new Float64Array(3); // clipped-velocity candidate
|
|
64
83
|
_support = new Float64Array(3); // shape support point (forward extent)
|
|
84
|
+
_supportDir = new Float64Array(3); // the direction it is asked along
|
|
65
85
|
/**
|
|
66
86
|
* Reused result.
|
|
67
87
|
*
|
|
@@ -111,11 +131,25 @@ export class KinematicMover {
|
|
|
111
131
|
_wasGrounded = false;
|
|
112
132
|
|
|
113
133
|
/**
|
|
114
|
-
* @
|
|
115
|
-
*
|
|
116
|
-
*
|
|
117
|
-
*
|
|
118
|
-
|
|
134
|
+
* The filter of the {@link move} in progress, for {@link _solidCast}, which the shape cast
|
|
135
|
+
* calls back without it. `null` between moves.
|
|
136
|
+
* @private
|
|
137
|
+
* @type {((entity:number, collider:Collider)=>boolean)|null}
|
|
138
|
+
*/
|
|
139
|
+
_filter = null;
|
|
140
|
+
|
|
141
|
+
/**
|
|
142
|
+
* Shape-cast filter for the move in progress: {@link _isSolid} with the move's filter. Made once
|
|
143
|
+
* per mover, so a cast allocates no closure.
|
|
144
|
+
* @private
|
|
145
|
+
* @type {(entity:number, collider:Collider, body_id:number)=>boolean}
|
|
146
|
+
*/
|
|
147
|
+
_solidCast = (entity, collider, body_id) => this._isSolid(this._filter, body_id, entity, collider);
|
|
148
|
+
|
|
149
|
+
/**
|
|
150
|
+
* @param {import("../../../physics/ecs/PhysicsSystem.js").PhysicsSystem} physicsSystem the
|
|
151
|
+
* world the mover queries; recovery also takes an overlapping body's colliders, each at its
|
|
152
|
+
* own world transform, from it ({@link PhysicsSystem#collidersOf})
|
|
119
153
|
* @param {object} [options]
|
|
120
154
|
* @param {number} [options.skin=0.005] clearance left after each
|
|
121
155
|
* sweep stop / push-out so the next query doesn't start in contact.
|
|
@@ -141,9 +175,8 @@ export class KinematicMover {
|
|
|
141
175
|
* Source `sv_stepsize` is ~0.34 m; the default is just under the
|
|
142
176
|
* capsule radius so low ledges don't feel "magnetic".
|
|
143
177
|
*/
|
|
144
|
-
constructor(physicsSystem,
|
|
178
|
+
constructor(physicsSystem, options = {}) {
|
|
145
179
|
this.physicsSystem = physicsSystem;
|
|
146
|
-
this.ecd = ecd;
|
|
147
180
|
this.skin = options.skin !== undefined ? options.skin : 0.005;
|
|
148
181
|
this.maxSlideIterations = options.maxSlideIterations !== undefined ? options.maxSlideIterations : 4;
|
|
149
182
|
this.maxRecoverIterations = options.maxRecoverIterations !== undefined ? options.maxRecoverIterations : 4;
|
|
@@ -156,17 +189,38 @@ export class KinematicMover {
|
|
|
156
189
|
* Resolve one move. Mutates `position` to the resolved location and
|
|
157
190
|
* `velocity` to the corrected value.
|
|
158
191
|
*
|
|
159
|
-
* @param {Vector3} position in/out — current pose, written to the
|
|
192
|
+
* @param {Vector3|Float64Array} position in/out, `[x, y, z]` — current pose, written to the
|
|
193
|
+
* resolved pose. The caller's own array: hand it a body's live translation and the move lands
|
|
194
|
+
* in the body as it is resolved
|
|
160
195
|
* @param {ArrayLike<number>} rotation capsule orientation as `[x, y, z, w]` (read) - a
|
|
161
|
-
* Quaternion is one
|
|
196
|
+
* Quaternion is one. A Transform64's `rotation` is one too, but its getter builds a new view
|
|
197
|
+
* on every read; copy the four components into a retained array instead
|
|
162
198
|
* @param {import("../../../../core/geom/3d/shape/AbstractShape3D.js").AbstractShape3D} shape convex capsule
|
|
163
199
|
* @param {Vector3} velocity in/out — desired velocity, written to the corrected velocity
|
|
164
200
|
* @param {number} dt
|
|
165
|
-
* @param {(entity:number, collider:Collider)=>boolean} filter
|
|
166
|
-
* the
|
|
201
|
+
* @param {(entity:number, collider:Collider)=>boolean} filter required: which colliders the
|
|
202
|
+
* move collides with, asked with the owning body's entity — exclude the moving body's own
|
|
203
|
+
* colliders here; pass an accept-all function to collide with everything. Sensors (a
|
|
204
|
+
* collider or body flagged IsSensor) are never solid to the mover, whatever this says: the
|
|
205
|
+
* capsule passes through a trigger and is never pushed out of one
|
|
167
206
|
* @returns {{hit:boolean, grounded:boolean, groundNormal:Vector3, groundBody:number, groundEntity:number, stepUp:number, landed:boolean, landingSpeed:number}} reused result — see {@link _result} for what each field is for
|
|
168
207
|
*/
|
|
169
208
|
move(position, rotation, shape, velocity, dt, filter) {
|
|
209
|
+
assert.isFunction(filter, 'filter');
|
|
210
|
+
|
|
211
|
+
this._filter = filter;
|
|
212
|
+
const result = this._move(position, rotation, shape, velocity, dt, filter);
|
|
213
|
+
this._filter = null;
|
|
214
|
+
|
|
215
|
+
return result;
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
/**
|
|
219
|
+
* {@link move}, with {@link _filter} set for the shape casts.
|
|
220
|
+
* @private
|
|
221
|
+
*/
|
|
222
|
+
_move(position, rotation, shape, velocity, dt, filter) {
|
|
223
|
+
|
|
170
224
|
const result = this._result;
|
|
171
225
|
result.hit = false;
|
|
172
226
|
result.grounded = false;
|
|
@@ -314,7 +368,11 @@ export class KinematicMover {
|
|
|
314
368
|
// banned speed coupling: the climb-or-block DECISION is the
|
|
315
369
|
// step-height plane alone; the reach only governs how far ahead we
|
|
316
370
|
// look for the thing the slide already hit.
|
|
317
|
-
|
|
371
|
+
const supportDir = this._supportDir;
|
|
372
|
+
supportDir[0] = bdx;
|
|
373
|
+
supportDir[1] = 0;
|
|
374
|
+
supportDir[2] = bdz;
|
|
375
|
+
shape.support(this._support, 0, supportDir, 0);
|
|
318
376
|
const lead = this._support[0] * bdx + this._support[2] * bdz; // extent toward the wall (capsule radius)
|
|
319
377
|
const ray = this._ray;
|
|
320
378
|
ray.setOrigin(sx, sy + this.stepHeight + this.skin, sz);
|
|
@@ -341,7 +399,7 @@ export class KinematicMover {
|
|
|
341
399
|
// destination is the tell that we climbed onto a wall, not a step.
|
|
342
400
|
const stepProg = (position[0] - sx) * (position[0] - sx) + (position[2] - sz) * (position[2] - sz);
|
|
343
401
|
const heightGain = position[1] - sy;
|
|
344
|
-
const overlaps = this.
|
|
402
|
+
const overlaps = this._overlapsSolid(position, rotation, shape, filter);
|
|
345
403
|
if (stepProg > slideProg + 1e-8 && heightGain <= this.stepHeight + this.skin && !overlaps) {
|
|
346
404
|
velocity.set(svx, svy, svz); // restore horizontal; vertical settled by categorize
|
|
347
405
|
|
|
@@ -367,7 +425,7 @@ export class KinematicMover {
|
|
|
367
425
|
ray.setOrigin(position[0], position[1], position[2]);
|
|
368
426
|
ray.setDirection(dx, dy, dz);
|
|
369
427
|
ray.tMax = maxDist;
|
|
370
|
-
if (!this.physicsSystem.shapeCast(ray, shape, rotation, this._hit,
|
|
428
|
+
if (!this.physicsSystem.shapeCast(ray, shape, rotation, this._hit, this._solidCast)) return maxDist;
|
|
371
429
|
const t = this._hit.t - this.skin;
|
|
372
430
|
return t > 0 ? t : 0;
|
|
373
431
|
}
|
|
@@ -396,18 +454,25 @@ export class KinematicMover {
|
|
|
396
454
|
* cap is hit. Deepest-first converges multi-body resting contact
|
|
397
455
|
* (each pass removes the worst offender) without solving a system.
|
|
398
456
|
*
|
|
457
|
+
* The query reports BODIES, and a body is every collider attached to it, each at its own world
|
|
458
|
+
* transform - a compound body's colliders live on child entities, away from the body's pose.
|
|
459
|
+
* The query stops at the first of a body's colliders it finds overlapping, so the rest are
|
|
460
|
+
* tested again here, one by one ({@link convex_overlaps_shape}), and the depth is measured only
|
|
461
|
+
* against those the `filter` accepts AND the capsule overlaps; the body entity's own `Collider`
|
|
462
|
+
* component, when it has one, is only one of them.
|
|
463
|
+
*
|
|
399
464
|
* @private
|
|
400
465
|
*/
|
|
401
466
|
_recover(position, rotation, shape, filter) {
|
|
402
467
|
const physics = this.physicsSystem;
|
|
403
|
-
const ecd = this.ecd;
|
|
404
|
-
const buf = this._overlapBuf;
|
|
405
468
|
const dir = this._penDir;
|
|
406
469
|
|
|
407
470
|
for (let iter = 0; iter < this.maxRecoverIterations; iter++) {
|
|
408
|
-
const n =
|
|
471
|
+
const n = this._overlapAll(position, rotation, shape, filter);
|
|
409
472
|
if (n === 0) return;
|
|
410
473
|
|
|
474
|
+
const buf = this._overlapBuf;
|
|
475
|
+
|
|
411
476
|
let bestDepth = 0;
|
|
412
477
|
let bestX = 0, bestY = 0, bestZ = 0;
|
|
413
478
|
|
|
@@ -415,19 +480,37 @@ export class KinematicMover {
|
|
|
415
480
|
const bodyId = buf[i];
|
|
416
481
|
const entity = physics.entityOf(bodyId);
|
|
417
482
|
if (entity < 0) continue;
|
|
418
|
-
const
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
483
|
+
const colliders = physics.collidersOf(bodyId);
|
|
484
|
+
|
|
485
|
+
const sole = colliders.length === 1;
|
|
486
|
+
|
|
487
|
+
for (let k = 0; k < colliders.length; k++) {
|
|
488
|
+
const entry = colliders[k];
|
|
489
|
+
const collider = entry.collider;
|
|
490
|
+
if (!this._isSolid(filter, bodyId, entity, collider)) continue;
|
|
491
|
+
const otherPosition = this._otherPosition, otherRotation = this._otherRotation;
|
|
492
|
+
this._readPose(entry.transform);
|
|
493
|
+
|
|
494
|
+
// Only a collider the capsule overlaps has a depth to measure. The query
|
|
495
|
+
// reported the body on its first overlapping collider; the rest may be
|
|
496
|
+
// anywhere, and a depth taken against one the capsule does not touch is a
|
|
497
|
+
// push toward something it is not in. A body's sole collider is the one the
|
|
498
|
+
// query found overlapping, so it needs no second test.
|
|
499
|
+
if (!sole && !convex_overlaps_shape(
|
|
500
|
+
shape, position, rotation,
|
|
501
|
+
collider.shape, otherPosition, otherRotation,
|
|
502
|
+
)) continue;
|
|
503
|
+
|
|
504
|
+
// depth + unit B→A separation (A = our capsule, B = other).
|
|
505
|
+
const depth = compute_penetration(
|
|
506
|
+
dir,
|
|
507
|
+
shape, position, rotation,
|
|
508
|
+
collider.shape, otherPosition, otherRotation,
|
|
509
|
+
);
|
|
510
|
+
if (depth > bestDepth) {
|
|
511
|
+
bestDepth = depth;
|
|
512
|
+
bestX = dir[0]; bestY = dir[1]; bestZ = dir[2];
|
|
513
|
+
}
|
|
431
514
|
}
|
|
432
515
|
}
|
|
433
516
|
|
|
@@ -440,6 +523,95 @@ export class KinematicMover {
|
|
|
440
523
|
}
|
|
441
524
|
}
|
|
442
525
|
|
|
526
|
+
/**
|
|
527
|
+
* Whether a collider is something the capsule collides with: not a sensor — a trigger is not a
|
|
528
|
+
* solid surface, by its own flag or its body's ({@link is_sensor}) — and accepted by the move's
|
|
529
|
+
* `filter`. The raycast already passes through sensors by itself; the shape cast and the overlap
|
|
530
|
+
* query report them, and other callers may want them reported, so the mover drops them here.
|
|
531
|
+
*
|
|
532
|
+
* @private
|
|
533
|
+
* @param {(entity:number, collider:Collider)=>boolean} filter
|
|
534
|
+
* @param {number} body_id the body the collider belongs to
|
|
535
|
+
* @param {number} entity that body's entity
|
|
536
|
+
* @param {Collider} collider
|
|
537
|
+
* @returns {boolean}
|
|
538
|
+
*/
|
|
539
|
+
_isSolid(filter, body_id, entity, collider) {
|
|
540
|
+
const body = this.physicsSystem.bodyOf(body_id);
|
|
541
|
+
if (body === undefined || is_sensor(body, collider)) return false;
|
|
542
|
+
return filter(entity, collider);
|
|
543
|
+
}
|
|
544
|
+
|
|
545
|
+
/**
|
|
546
|
+
* Whether the shape overlaps any solid collider ({@link _isSolid}), each collider of an
|
|
547
|
+
* overlapping body tested on its own.
|
|
548
|
+
*
|
|
549
|
+
* @private
|
|
550
|
+
* @returns {boolean}
|
|
551
|
+
*/
|
|
552
|
+
_overlapsSolid(position, rotation, shape, filter) {
|
|
553
|
+
const physics = this.physicsSystem;
|
|
554
|
+
const n = this._overlapAll(position, rotation, shape, filter);
|
|
555
|
+
const buf = this._overlapBuf;
|
|
556
|
+
|
|
557
|
+
for (let i = 0; i < n; i++) {
|
|
558
|
+
const bodyId = buf[i];
|
|
559
|
+
const entity = physics.entityOf(bodyId);
|
|
560
|
+
if (entity < 0) continue;
|
|
561
|
+
const colliders = physics.collidersOf(bodyId);
|
|
562
|
+
const sole = colliders.length === 1;
|
|
563
|
+
|
|
564
|
+
for (let k = 0; k < colliders.length; k++) {
|
|
565
|
+
const entry = colliders[k];
|
|
566
|
+
if (!this._isSolid(filter, bodyId, entity, entry.collider)) continue;
|
|
567
|
+
// a body's sole collider is the one the query found overlapping
|
|
568
|
+
if (sole) return true;
|
|
569
|
+
this._readPose(entry.transform);
|
|
570
|
+
if (convex_overlaps_shape(shape, position, rotation, entry.collider.shape, this._otherPosition, this._otherRotation)) {
|
|
571
|
+
return true;
|
|
572
|
+
}
|
|
573
|
+
}
|
|
574
|
+
}
|
|
575
|
+
|
|
576
|
+
return false;
|
|
577
|
+
}
|
|
578
|
+
|
|
579
|
+
/**
|
|
580
|
+
* Copy a collider's world pose into {@link _otherPosition} / {@link _otherRotation}. A
|
|
581
|
+
* Transform64's `translation` and `rotation` getters build a new view on every read; recovery
|
|
582
|
+
* reads one pose per collider per pass, and that was the allocation it made.
|
|
583
|
+
*
|
|
584
|
+
* @private
|
|
585
|
+
* @param {import("../../../ecs/transform/Transform64.js").Transform64} transform
|
|
586
|
+
*/
|
|
587
|
+
_readPose(transform) {
|
|
588
|
+
const p = this._otherPosition, q = this._otherRotation;
|
|
589
|
+
p[0] = transform.translation_x;
|
|
590
|
+
p[1] = transform.translation_y;
|
|
591
|
+
p[2] = transform.translation_z;
|
|
592
|
+
q[0] = transform.rotation_x;
|
|
593
|
+
q[1] = transform.rotation_y;
|
|
594
|
+
q[2] = transform.rotation_z;
|
|
595
|
+
q[3] = transform.rotation_w;
|
|
596
|
+
}
|
|
597
|
+
|
|
598
|
+
/**
|
|
599
|
+
* Every body the shape overlaps, into {@link _overlapBuf}; returns the count. The query caps
|
|
600
|
+
* its count at the buffer's capacity and drops the rest silently, so a full buffer is grown
|
|
601
|
+
* (doubled) and the query run again until the count fits.
|
|
602
|
+
*
|
|
603
|
+
* @private
|
|
604
|
+
* @returns {number}
|
|
605
|
+
*/
|
|
606
|
+
_overlapAll(position, rotation, shape, filter) {
|
|
607
|
+
for (; ;) {
|
|
608
|
+
const buf = this._overlapBuf;
|
|
609
|
+
const n = this.physicsSystem.overlap(shape, position, rotation, buf, 0, filter);
|
|
610
|
+
if (n < buf.length) return n;
|
|
611
|
+
this._overlapBuf = new Uint32Array(buf.length * 2);
|
|
612
|
+
}
|
|
613
|
+
}
|
|
614
|
+
|
|
443
615
|
/**
|
|
444
616
|
* Unified 3D collide-and-slide. Faithful to Quake's `SV_FlyMove`:
|
|
445
617
|
* sweep the velocity for the remaining time, stop at contact, clip
|
|
@@ -478,7 +650,7 @@ export class KinematicMover {
|
|
|
478
650
|
ray.setDirection(ndx, ndy, ndz);
|
|
479
651
|
ray.tMax = len;
|
|
480
652
|
|
|
481
|
-
const didHit = physics.shapeCast(ray, shape, rotation, hit,
|
|
653
|
+
const didHit = physics.shapeCast(ray, shape, rotation, hit, this._solidCast);
|
|
482
654
|
|
|
483
655
|
if (!didHit) {
|
|
484
656
|
// Clear path — consume the whole remaining move.
|
|
@@ -655,7 +827,7 @@ export class KinematicMover {
|
|
|
655
827
|
ray.setOrigin(position[0], position[1] + lift, position[2]);
|
|
656
828
|
ray.setDirection(0, -1, 0);
|
|
657
829
|
ray.tMax = reach;
|
|
658
|
-
if (this.physicsSystem.shapeCast(ray, shape, rotation, hit,
|
|
830
|
+
if (this.physicsSystem.shapeCast(ray, shape, rotation, hit, this._solidCast) && hit.t > this.skin) {
|
|
659
831
|
const stepY = position[1] + lift - hit.t;
|
|
660
832
|
// With a centre surface the centre ray already vouched for
|
|
661
833
|
// walkability, so mount any step. With NONE, the footprint is the
|
|
@@ -685,8 +857,17 @@ export class KinematicMover {
|
|
|
685
857
|
result.groundEntity = hit.entity;
|
|
686
858
|
|
|
687
859
|
// Stick: rest the feet `skin` above the surface (snaps down for a
|
|
688
|
-
// descent, up onto a step / out of a grazing contact).
|
|
689
|
-
|
|
860
|
+
// descent, up onto a step / out of a grazing contact). A body already
|
|
861
|
+
// resting there, to within what the probes can tell, is left exactly
|
|
862
|
+
// where it is: they re-derive the height on every move and land a few
|
|
863
|
+
// 1e-8 m either side of the last answer, and a body moved by that much
|
|
864
|
+
// on every move never holds still. Driven by a target pose, it carries
|
|
865
|
+
// that as a velocity, and a support with any velocity at all keeps what
|
|
866
|
+
// rests on it awake.
|
|
867
|
+
const rest = surfaceY + this.skin;
|
|
868
|
+
if (Math.abs(rest - position[1]) > REST_TOLERANCE) {
|
|
869
|
+
position[1] = rest;
|
|
870
|
+
}
|
|
690
871
|
|
|
691
872
|
// Clip the into-ground velocity component (gravity on flat ground;
|
|
692
873
|
// the into-slope part on a ramp), leaving tangential motion.
|
|
@@ -64,6 +64,10 @@ export class FirstPersonSensorsSystem extends System<any> {
|
|
|
64
64
|
* standing capsule. A miss (or a much-lower hit) means the surface dropped
|
|
65
65
|
* away: a thin wall / lip you can only hang from, not stand on.
|
|
66
66
|
* @private
|
|
67
|
+
* @param {number} px
|
|
68
|
+
* @param {number} edgeY
|
|
69
|
+
* @param {number} pz
|
|
70
|
+
* @param {(entity:number)=>boolean} filter leaves out the player's own body
|
|
67
71
|
*/
|
|
68
72
|
private _probeStandable;
|
|
69
73
|
/**
|
|
@@ -77,6 +81,7 @@ export class FirstPersonSensorsSystem extends System<any> {
|
|
|
77
81
|
* will replace this with the true shape normal at the same call site.
|
|
78
82
|
*
|
|
79
83
|
* @private
|
|
84
|
+
* @param {(entity:number)=>boolean} filter leaves out the player's own body
|
|
80
85
|
*/
|
|
81
86
|
private _probeRay;
|
|
82
87
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FirstPersonSensorsSystem.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/control/first-person/sensors/FirstPersonSensorsSystem.js"],"names":[],"mappings":"AAUA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH;;IACI,0EAA0D;IAE1D;;;;;OAKG;IACH,kBAFU,iCAAiC,GAAC,IAAI,CAExB;IAExB;;;;;OAKG;IACH,eAFU,aAAa,GAAC,IAAI,CAEP;IAErB;;;;;;OAMG;IACH,mBAAwB;IAExB;;;;;;OAMG;IACH,mBAAuC;IAEvC,2CAaC;IAED,2BAIC;IAED;;OAEG;IACH,
|
|
1
|
+
{"version":3,"file":"FirstPersonSensorsSystem.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/control/first-person/sensors/FirstPersonSensorsSystem.js"],"names":[],"mappings":"AAUA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH;;IACI,0EAA0D;IAE1D;;;;;OAKG;IACH,kBAFU,iCAAiC,GAAC,IAAI,CAExB;IAExB;;;;;OAKG;IACH,eAFU,aAAa,GAAC,IAAI,CAEP;IAErB;;;;;;OAMG;IACH,mBAAwB;IAExB;;;;;;OAMG;IACH,mBAAuC;IAEvC,2CAaC;IAED,2BAIC;IAED;;OAEG;IACH,2BA0FC;IAED;;;;;;;;;;OAUG;IACH,wBAQC;IAED;;;;;;;;;;;;OAYG;IACH,kBAgBC;CACJ;uBAtOsB,wBAAwB;4BACnB,uCAAuC;4CACvB,mCAAmC;kDAC7B,yCAAyC;8BAL7D,uCAAuC"}
|
|
@@ -135,16 +135,20 @@ export class FirstPersonSensorsSystem extends System {
|
|
|
135
135
|
const wallProbeDist = cfg.body.radius * 2 + 0.05; // just past the capsule
|
|
136
136
|
const obstacleProbeDist = 1.2; // ~one stride
|
|
137
137
|
|
|
138
|
+
// Every collider of the player's own body is left out; the controller made the filter at
|
|
139
|
+
// link, so a probe allocates no closure.
|
|
140
|
+
const notSelf = runtime.notSelf;
|
|
141
|
+
|
|
138
142
|
// Wall left: probe along -right.
|
|
139
|
-
this._probeRay(sensors.wallLeft, ox, oy, oz, -rx, 0, -rz, wallProbeDist,
|
|
143
|
+
this._probeRay(sensors.wallLeft, ox, oy, oz, -rx, 0, -rz, wallProbeDist, notSelf);
|
|
140
144
|
// Wall right: probe along +right.
|
|
141
|
-
this._probeRay(sensors.wallRight, ox, oy, oz, rx, 0, rz, wallProbeDist,
|
|
145
|
+
this._probeRay(sensors.wallRight, ox, oy, oz, rx, 0, rz, wallProbeDist, notSelf);
|
|
142
146
|
// Wall front: probe along +forward.
|
|
143
|
-
this._probeRay(sensors.wallFront, ox, oy, oz, fx, 0, fz, wallProbeDist,
|
|
147
|
+
this._probeRay(sensors.wallFront, ox, oy, oz, fx, 0, fz, wallProbeDist, notSelf);
|
|
144
148
|
// Obstacle ahead: same direction as wallFront but longer reach.
|
|
145
149
|
// Used by mantle/vault; the consumer compares the hit altitude to
|
|
146
150
|
// the body height to decide vault vs. mantle vs. neither.
|
|
147
|
-
this._probeRay(sensors.obstacleAhead, ox, oy, oz, fx, 0, fz, obstacleProbeDist,
|
|
151
|
+
this._probeRay(sensors.obstacleAhead, ox, oy, oz, fx, 0, fz, obstacleProbeDist, notSelf);
|
|
148
152
|
|
|
149
153
|
// Ledge ahead — only meaningful if obstacleAhead hit something
|
|
150
154
|
// around chest height: probe down from just past the top of the
|
|
@@ -158,7 +162,7 @@ export class FirstPersonSensorsSystem extends System {
|
|
|
158
162
|
px, topY, pz,
|
|
159
163
|
0, -1, 0,
|
|
160
164
|
cfg.body.height * 0.5,
|
|
161
|
-
|
|
165
|
+
notSelf,
|
|
162
166
|
);
|
|
163
167
|
}
|
|
164
168
|
|
|
@@ -173,7 +177,7 @@ export class FirstPersonSensorsSystem extends System {
|
|
|
173
177
|
sensors.ledgeAhead.point[0] + fx * reach,
|
|
174
178
|
sensors.ledgeAhead.point[1],
|
|
175
179
|
sensors.ledgeAhead.point[2] + fz * reach,
|
|
176
|
-
|
|
180
|
+
notSelf,
|
|
177
181
|
);
|
|
178
182
|
}
|
|
179
183
|
}
|
|
@@ -184,13 +188,16 @@ export class FirstPersonSensorsSystem extends System {
|
|
|
184
188
|
* standing capsule. A miss (or a much-lower hit) means the surface dropped
|
|
185
189
|
* away: a thin wall / lip you can only hang from, not stand on.
|
|
186
190
|
* @private
|
|
191
|
+
* @param {number} px
|
|
192
|
+
* @param {number} edgeY
|
|
193
|
+
* @param {number} pz
|
|
194
|
+
* @param {(entity:number)=>boolean} filter leaves out the player's own body
|
|
187
195
|
*/
|
|
188
|
-
_probeStandable(px, edgeY, pz,
|
|
196
|
+
_probeStandable(px, edgeY, pz, filter) {
|
|
189
197
|
const ray = this._probe_ray;
|
|
190
198
|
ray.setOrigin(px, edgeY + 0.2, pz);
|
|
191
199
|
ray.setDirection(0, -1, 0);
|
|
192
200
|
ray.tMax = 0.4;
|
|
193
|
-
const filter = (e) => e !== excludeEntity;
|
|
194
201
|
const out = this._probe_hit;
|
|
195
202
|
if (!this.physicsSystem.raycast(ray, out, filter)) return false;
|
|
196
203
|
return out.position[1] > edgeY - 0.15; // surface still up near the edge height
|
|
@@ -207,8 +214,9 @@ export class FirstPersonSensorsSystem extends System {
|
|
|
207
214
|
* will replace this with the true shape normal at the same call site.
|
|
208
215
|
*
|
|
209
216
|
* @private
|
|
217
|
+
* @param {(entity:number)=>boolean} filter leaves out the player's own body
|
|
210
218
|
*/
|
|
211
|
-
_probeRay(slot, ox, oy, oz, dx, dy, dz, maxDist,
|
|
219
|
+
_probeRay(slot, ox, oy, oz, dx, dy, dz, maxDist, filter) {
|
|
212
220
|
// Exclude the player's own body from the result — downward
|
|
213
221
|
// probes from chest start inside the capsule, would otherwise
|
|
214
222
|
// hit the capsule's bottom hemisphere.
|
|
@@ -216,7 +224,6 @@ export class FirstPersonSensorsSystem extends System {
|
|
|
216
224
|
ray.setOrigin(ox, oy, oz);
|
|
217
225
|
ray.setDirection(dx, dy, dz);
|
|
218
226
|
ray.tMax = maxDist;
|
|
219
|
-
const filter = (e) => e !== excludeEntity;
|
|
220
227
|
const out = this._probe_hit;
|
|
221
228
|
if (!this.physicsSystem.raycast(ray, out, filter)) return;
|
|
222
229
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntityComponentDataset.d.ts","sourceRoot":"","sources":["../../../../src/engine/ecs/EntityComponentDataset.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"EntityComponentDataset.d.ts","sourceRoot":"","sources":["../../../../src/engine/ecs/EntityComponentDataset.js"],"names":[],"mappings":"AAirEA;;;;;;GAMG;AACH,qDAFa,MAAM,CAIlB;AAvjED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wDAfyB,MAAM;IAiB3B;;;;OAIG;IACH,wBAA+B;IAE/B;;;;;OAKG;IACH,yBAAsC;IAEtC;;;;;;;;;OASG;IACH,2BAAkC;IAElC;;;;;OAKG;IACH,yBAAsB;IAEtB;;;;OAIG;IACH,4BAAgC;IAEhC;;;;OAIG;IACH,2BAAuB;IAEvB;;;;OAIG;IACH,mBAAgB;IAEhB;;;;OAIG;IACH,oBAAgB;IAEhB;;;;;;;OAOG;IACH,mBAAe;IAEf;;;OAGG;IACH,8BAA+B;IAE/B;;;OAGG;IACH,8BAA+B;IAG/B;;;;OAIG;IACH,+BAA4B;IAE5B;;;;OAIG;IACH,kCAA+B;IAE/B;;;OAGG;IACH,kBAAe;IAGf;;;;;;OAMG;IACH,+BAJW,MAAM,iCAsChB;IAED;;;;;OAKG;IACH,sBAJW,cAAc,cACd,OAAO,GACL,OAAO,CAqDnB;IAED;;;;;OAKG;IACH,yBAJW,cAAc,cACd,OAAO,GACL,OAAO,CA6DnB;IAED;;;OAGG;IACH,kBAFa,MAAM,CAIlB;IAED;;;OAGG;IACH,yBAFa,MAAM,CAIlB;IAED;;;;;OAKG;IACH,sBAJW,MAAM,qBACN,EAAE,SAmCZ;IAED;;;;;;;OAOG;IACH,6BANW,EAAE,iBACF,MAAM,aACN,MAAM,GACJ,MAAM,CAoClB;IAED;;;;;;;OAOG;IACH,4BAJW,MAAM,GACJ,EAAE,CA0Bd;IAED;;;;;OAKG;IACH,yBAJW,KAAK,EAAE,GACL,IAAI,CAmPhB;IAED;;;;OAIG;IACH,mCAHW,KAAK,EAAE,GACL,OAAO,CAenB;IAED;;;;;OAKG;IACH,gCAHW,KAAK,WAAS,GACb,OAAO,CASlB;IAED;;;OAGG;IACH,uBAFa,KAAK,EAAE,CAInB;IAED;;;;OAIG;IACH,kCAHW,KAAK,EAAE,GACL,OAAO,CAgBnB;IAED;;;;OAIG;IACH,4BAHW,KAAK,WAAS,GACZ,OAAO,CAanB;IAED;;;;OAIG;IACH,8BAHW,KAAK,GACH,OAAO,CAkBnB;IAED;;;;OAIG;IACH,iCAHW,MAAM,GACJ,IAAI,CAmBhB;IAED;;;;;OAKG;IACH,+BAHW,MAAM,GACJ,MAAM,CAOlB;IAED;;;;OAIG;IACH,2BAiBC;IAED;;;OAGG;IACH,gBAFa,MAAM,CAQlB;IAED;;;;;OAKG;IACH,gCAJW,MAAM,GAEJ,IAAI,CAQhB;IAED;;;;OAIG;IACH,0BAHW,MAAM,GACJ,OAAO,CAMnB;IAED;;;;OAIG;IACH,qCAHW,MAAM,GACJ,OAAO,CAMnB;IAED;;;;OAIG;IACH,wBAHW,MAAM,GACJ,OAAO,CAwCnB;IAED;;;;;OAKG;IACH,2BAHW,MAAM,EAAE,GACN,IAAI,CAQhB;IAED;;;;;OAKG;IACH,qCAJW,MAAM,SACN,KAAK,GACH,IAAI,CAUhB;IAED;;;;;OAKG;IACH,4CAJW,MAAM,mBACN,MAAM,GACJ,IAAI,CAiBhB;IAED;;;;;;;OAOG;IACH,mDAgBC;IAED;;;;OAIG;IACH,iCAHW,WAAS,KAAK,GACZ,MAAM,CAalB;IAED;;;;OAIG;IACH,wCAFa,MAAM,CAUlB;IAED;;;;;;;OAOG;IACH;gBAFqB,MAAM;;MA2B1B;IAED;;;;;;;;OAQG;IACH,mCAJW,MAAM,0BAEJ,IAAI,CAqBhB;IAED;;;;;;;OAOG;IACH,4CALW,MAAM,mBACN,MAAM,4BAEJ,IAAI,CAuChB;IAED;;;;;OAKG;IACH,oCAJW,MAAM,mBACN,MAAM,OAUhB;IAED;;;;;;OAMG;IACH,6BAJW,MAAM,+DAEJ,OAAO,CAInB;IAED;;;;;OAKG;IACH,6BAJW,MAAM,mEAiBhB;IAED;;;;;;;OAOG;IACH,iCALW,MAAM,mEAahB;IAED;;;;;;;OAOG;IACH,sDALW,KAAK,sCAGH,IAAI,CAiBhB;IAED;;;;;;;;;;;;;OAaG;IACH,gEAJ6B,OAAO,YACzB,MAAM,GACJ,IAAI,CAsEhB;IAED;;;;;;;OAOG;IACH,uEAFa,IAAI,CA0DhB;IAkBD;;;;;;;;;;OAUG;IACH,qHAJiC,MAAM,KAAK,IAAI,kBAEnC,IAAI,CAahB;IAED;;;;;;OAMG;IACH,2CALW,MAAM,qCAGJ,IAAI,CAShB;IAED;;;;;;;OAOG;IACH,+CAyBC;IAED;;;;;;OAMG;IACH,iDAsBC;IAED;;;;;OAKG;IACH,wCAgCC;IAED;;;;;OAKG;IACH,0CA2BC;IAED;;;;;;;;;OASG;IACH,kCARW,MAAM,sCAGJ,IAAI,CAuBhB;IAED;;;;;;;;;OASG;IACH,qCARW,MAAM,sCAGJ,OAAO,CAkCnB;IAED;;;;;;;;;;OAUG;IACH,+BATW,MAAM,cACN,MAAM,uCAGJ,IAAI,CAiChB;IAED;;;;;;;;;;OAUG;IACH,kCATW,MAAM,cACN,MAAM,sCAGJ,OAAO,CA2CnB;IAED;;;;;;;OAOG;IACH,kBANW,MAAM,QACN,MAAM,gBAEJ,IAAI,CAmBhB;IAED;;;;OAIG;IACH,+BAHW,MAAM,GACJ,OAAO,CAenB;IAED;;;;OAIG;IACH,SAHa,IAAI,CAShB;IAED;;;;;OAKG;IACH,YAHa,IAAI,CAgBhB;IAED;;;;OAIG;IACH,yCAHW,MAAM,kEAkBhB;IAED;;;;;OAKG;IACH,mBAHW,sBAAsB,6BACpB,IAAI,CA6DhB;IAED;;;;;OAKG;IACH,qEAHW,CAAC,cAAc,EAAE,MAAM,EAAE,UAAU,OAAO,EAAE,cAAc,EAAE,MAAM,KAAK,IAAI,GACzE,IAAI,CAkEhB;IAED;;;OAGG;IACH,WAFa,OAAO,CAInB;IAED;;;;;OAKG;IACH,+BAJW,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,kBAE3B,IAAI,CAgBhB;IAGL;;;;;OAKG;IACH,mCAFU,OAAO,CAEwC;IAIzD;;OAEG;IACH,4BAnoBgB,UAAU,MAAM,CAAC,CAmoBoB;IAErD;;OAEG;IACH,iCArae,MAAM,wCAGJ,OAAO,CAka+B;IA1oBnD;;;OAGG;IACH,qBAFY,UAAU,MAAM,CAAC,CAY5B;CAwmBJ;6BArmEY,OAAO,gCAAgC,EAAE,KAAK,CAAC,CAAC,CAAC;6BAIjD,OAAO,qBAAqB,EAAE,cAAc"}
|
|
@@ -21,6 +21,19 @@ import { EventType } from "./EventType.js";
|
|
|
21
21
|
* @typedef {import("./EntityObserver.js").EntityObserver} EntityObserver
|
|
22
22
|
*/
|
|
23
23
|
|
|
24
|
+
/**
|
|
25
|
+
* Throw an assertion's message, built from the values it checks. Written
|
|
26
|
+
* `assert.ok(condition || assertion_failed(`... ${value} ...`))`, the template is evaluated only once
|
|
27
|
+
* the condition has failed. As `assert.ok`'s second argument it was built on every call that passed:
|
|
28
|
+
* on {@link EntityComponentDataset#getComponent}, every call any system makes. It is only ever
|
|
29
|
+
* reached from inside an `assert.*` argument, so a consumer that strips the assert strips it too.
|
|
30
|
+
* @param {string} message
|
|
31
|
+
* @returns {never}
|
|
32
|
+
*/
|
|
33
|
+
function assertion_failed(message) {
|
|
34
|
+
throw new Error(message);
|
|
35
|
+
}
|
|
36
|
+
|
|
24
37
|
/**
|
|
25
38
|
*
|
|
26
39
|
* @param {number} entityIndex
|
|
@@ -257,7 +270,7 @@ export class EntityComponentDataset {
|
|
|
257
270
|
*/
|
|
258
271
|
promiseComponent(entity, component_type) {
|
|
259
272
|
|
|
260
|
-
assert.ok(this.entityExists(entity)
|
|
273
|
+
assert.ok(this.entityExists(entity) || assertion_failed(`Entity ${entity} doesn't exist`));
|
|
261
274
|
|
|
262
275
|
const self = this;
|
|
263
276
|
return new Promise(function (resolve, reject) {
|
|
@@ -440,7 +453,7 @@ export class EntityComponentDataset {
|
|
|
440
453
|
* @returns {Array}
|
|
441
454
|
*/
|
|
442
455
|
getComponents(entity, component_classes) {
|
|
443
|
-
assert.ok(this.entityExists(entity)
|
|
456
|
+
assert.ok(this.entityExists(entity) || assertion_failed(`Entity ${entity} doesn't exist`));
|
|
444
457
|
|
|
445
458
|
assert.notNull(component_classes, "component_classes");
|
|
446
459
|
assert.defined(component_classes, "component_classes");
|
|
@@ -488,7 +501,7 @@ export class EntityComponentDataset {
|
|
|
488
501
|
) {
|
|
489
502
|
|
|
490
503
|
assert.isNonNegativeInteger(entity_id, 'entity_id');
|
|
491
|
-
assert.ok(this.entityExists(entity_id)
|
|
504
|
+
assert.ok(this.entityExists(entity_id) || assertion_failed(`Entity ${entity_id} doesn't exist`));
|
|
492
505
|
assert.isArray(output, "output");
|
|
493
506
|
assert.isNonNegativeInteger(output_offset, 'output_offset');
|
|
494
507
|
|
|
@@ -526,7 +539,7 @@ export class EntityComponentDataset {
|
|
|
526
539
|
*/
|
|
527
540
|
getAllComponents(entity_id) {
|
|
528
541
|
assert.isNonNegativeInteger(entity_id, 'entity_id');
|
|
529
|
-
assert.ok(this.entityExists(entity_id)
|
|
542
|
+
assert.ok(this.entityExists(entity_id) || assertion_failed(`Entity ${entity_id} doesn't exist`));
|
|
530
543
|
|
|
531
544
|
const ret = [];
|
|
532
545
|
|
|
@@ -934,7 +947,7 @@ export class EntityComponentDataset {
|
|
|
934
947
|
*/
|
|
935
948
|
getEntityGeneration(entity_id) {
|
|
936
949
|
assert.isNonNegativeInteger(entity_id, 'entity_id');
|
|
937
|
-
assert.ok(this.entityExists(entity_id)
|
|
950
|
+
assert.ok(this.entityExists(entity_id) || assertion_failed(`Entity ${entity_id} does not exist`));
|
|
938
951
|
|
|
939
952
|
return this.entityGeneration[entity_id];
|
|
940
953
|
}
|
|
@@ -1093,8 +1106,8 @@ export class EntityComponentDataset {
|
|
|
1093
1106
|
* @returns {void}
|
|
1094
1107
|
*/
|
|
1095
1108
|
removeComponentFromEntityByIndex(entity_id, component_index) {
|
|
1096
|
-
assert.ok(this.entityExists(entity_id)
|
|
1097
|
-
assert.ok(this.componentIndexExists(component_index)
|
|
1109
|
+
assert.ok(this.entityExists(entity_id) || assertion_failed(`entity ${entity_id} does not exist`));
|
|
1110
|
+
assert.ok(this.componentIndexExists(component_index) || assertion_failed(`componentIndex ${component_index} is out of bounds`));
|
|
1098
1111
|
|
|
1099
1112
|
//check if component exists
|
|
1100
1113
|
const componentOccupancyIndex = entity_id * this.componentTypeCount + component_index;
|
|
@@ -1243,12 +1256,13 @@ export class EntityComponentDataset {
|
|
|
1243
1256
|
*/
|
|
1244
1257
|
addComponentToEntityByIndex(entity_id, component_index, component_instance) {
|
|
1245
1258
|
|
|
1246
|
-
assert.ok(this.entityExists(entity_id)
|
|
1247
|
-
assert.ok(this.componentIndexExists(component_index)
|
|
1259
|
+
assert.ok(this.entityExists(entity_id) || assertion_failed(`entity ${entity_id} does not exist`));
|
|
1260
|
+
assert.ok(this.componentIndexExists(component_index) || assertion_failed(`component_index ${component_index} is out of bounds`));
|
|
1248
1261
|
|
|
1249
1262
|
assert.defined(component_instance, "component_instance");
|
|
1250
1263
|
|
|
1251
|
-
assert.
|
|
1264
|
+
assert.ok(this.getComponentByIndex(entity_id, component_index) === undefined
|
|
1265
|
+
|| assertion_failed(`entity ${entity_id} already has component ${component_index}. ${this.getComponentByIndex(entity_id, component_index)} !== undefined`));
|
|
1252
1266
|
|
|
1253
1267
|
|
|
1254
1268
|
const componentOccupancyIndex = entity_id * this.componentTypeCount + component_index;
|
|
@@ -1287,8 +1301,8 @@ export class EntityComponentDataset {
|
|
|
1287
1301
|
*/
|
|
1288
1302
|
getComponentByIndex(entity_id, component_index) {
|
|
1289
1303
|
|
|
1290
|
-
assert.ok(this.entityExists(entity_id)
|
|
1291
|
-
assert.ok(this.componentIndexExists(component_index)
|
|
1304
|
+
assert.ok(this.entityExists(entity_id) || assertion_failed(`entity ${entity_id} does not exist`));
|
|
1305
|
+
assert.ok(this.componentIndexExists(component_index) || assertion_failed(`component_index ${component_index} is out of bounds`));
|
|
1292
1306
|
|
|
1293
1307
|
|
|
1294
1308
|
return this.components[component_index][entity_id];
|
|
@@ -1313,7 +1327,7 @@ export class EntityComponentDataset {
|
|
|
1313
1327
|
*/
|
|
1314
1328
|
getComponent(entity_id, klass) {
|
|
1315
1329
|
assert.isNonNegativeInteger(entity_id, 'entity_id');
|
|
1316
|
-
assert.ok(this.entityExists(entity_id)
|
|
1330
|
+
assert.ok(this.entityExists(entity_id) || assertion_failed(`entity ${entity_id} does not exist`));
|
|
1317
1331
|
assert.defined(klass, "klass");
|
|
1318
1332
|
|
|
1319
1333
|
const componentIndex = this.computeComponentTypeIndex(klass);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"populateEngineSerializationRegistry.d.ts","sourceRoot":"","sources":["../../../../../src/engine/ecs/storage/populateEngineSerializationRegistry.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"populateEngineSerializationRegistry.d.ts","sourceRoot":"","sources":["../../../../../src/engine/ecs/storage/populateEngineSerializationRegistry.js"],"names":[],"mappings":"AAkLA;;;;;;;;GAQG;AACH,iGA4GC"}
|
|
@@ -88,6 +88,8 @@ import Water from "../../graphics/ecs/water/Water.js";
|
|
|
88
88
|
import { WaterSerializationAdapter } from "../../graphics/ecs/water/WaterSerializationAdapter.js";
|
|
89
89
|
import { WaterSerializationUpgrader_0_1 } from "../../graphics/ecs/water/WaterSerializationUpgrader_0_1.js";
|
|
90
90
|
import { WaterSerializationUpgrader_1_2 } from "../../graphics/ecs/water/WaterSerializationUpgrader_1_2.js";
|
|
91
|
+
import { WaterSerializationUpgrader_2_3 } from "../../graphics/ecs/water/WaterSerializationUpgrader_2_3.js";
|
|
92
|
+
import { WaterWavesSerializationAdapter } from "../../graphics/ecs/water/WaterWavesSerializationAdapter.js";
|
|
91
93
|
import { GridPosition2Transform } from "../../grid/grid2transform/GridPosition2Transform.js";
|
|
92
94
|
import {
|
|
93
95
|
GridPosition2TransformSerializationAdapter
|
|
@@ -216,6 +218,7 @@ export function populateEngineSerializationRegistry(registry) {
|
|
|
216
218
|
new ClingToTerrainSerializationAdapter(),
|
|
217
219
|
new TerrainSerializationAdapter(),
|
|
218
220
|
new WaterSerializationAdapter(),
|
|
221
|
+
new WaterWavesSerializationAdapter(),
|
|
219
222
|
new GridPosition2TransformSerializationAdapter(),
|
|
220
223
|
new GridObstacleSerializationAdapter(),
|
|
221
224
|
new GridPositionSerializationAdapter(),
|
|
@@ -282,6 +285,7 @@ export function populateEngineSerializationRegistry(registry) {
|
|
|
282
285
|
registry.registerUpgrader(Highlight.typeName, new HighlightSerializationUpgrader_0_1());
|
|
283
286
|
registry.registerUpgrader(Water.typeName, new WaterSerializationUpgrader_0_1());
|
|
284
287
|
registry.registerUpgrader(Water.typeName, new WaterSerializationUpgrader_1_2());
|
|
288
|
+
registry.registerUpgrader(Water.typeName, new WaterSerializationUpgrader_2_3());
|
|
285
289
|
|
|
286
290
|
registry.registerUpgrader(SoundEmitter.typeName, new SoundEmitterSerializationUpgrader_0_1());
|
|
287
291
|
registry.registerUpgrader(SoundEmitter.typeName, new SoundEmitterSerializationUpgrader_1_2());
|