@woosh/meep-engine 2.163.10 → 2.164.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/bundle-worker-terrain.js +1 -1
- package/editor/ecs/component/editors/ecs/Trail3DEditor.js +45 -0
- package/editor/ecs/component/prototypeObjectEditor.js +3 -0
- package/editor/tools/v2/BlenderCameraOrientationGizmo.js +2 -2
- package/editor/view/node-graph/connection_wire_geometry.js +2 -2
- package/package.json +1 -1
- package/src/core/bvh2/binary/2/BinaryUint32BVH.js +2 -2
- package/src/core/bvh2/binary/2/bvh32_query_user_data_ray.d.ts.map +1 -1
- package/src/core/bvh2/binary/2/bvh32_query_user_data_ray.js +2 -4
- package/src/core/bvh2/bvh3/BVH.d.ts +388 -55
- package/src/core/bvh2/bvh3/BVH.d.ts.map +1 -1
- package/src/core/bvh2/bvh3/BVH.js +11 -5
- package/src/core/bvh2/bvh3/BvhClient.d.ts +31 -11
- package/src/core/bvh2/bvh3/bvh_build_from_unindexed_triangles.d.ts.map +1 -0
- package/src/core/bvh2/bvh3/ebvh_build_for_geometry_incremental.js +2 -2
- package/src/core/bvh2/bvh3/ebvh_build_hierarchy.d.ts.map +1 -1
- package/src/core/bvh2/bvh3/ebvh_build_hierarchy.js +8 -0
- package/src/core/bvh2/bvh3/ebvh_geometry_query_any_triangle_ray.d.ts +22 -0
- package/src/core/bvh2/bvh3/ebvh_geometry_query_any_triangle_ray.d.ts.map +1 -0
- package/src/core/bvh2/bvh3/ebvh_geometry_query_any_triangle_ray.js +149 -0
- package/src/core/bvh2/bvh3/ebvh_geometry_query_nearest_triangle_ray.d.ts +5 -2
- package/src/core/bvh2/bvh3/ebvh_geometry_query_nearest_triangle_ray.d.ts.map +1 -1
- package/src/core/bvh2/bvh3/ebvh_geometry_query_nearest_triangle_ray.js +16 -10
- package/src/core/bvh2/bvh3/ebvh_optimize_treelet.d.ts.map +1 -1
- package/src/core/bvh2/bvh3/ebvh_optimize_treelet.js +19 -6
- package/src/core/bvh2/bvh3/ebvh_sort_for_traversal_depth_first.d.ts +14 -3
- package/src/core/bvh2/bvh3/ebvh_sort_for_traversal_depth_first.d.ts.map +1 -1
- package/src/core/bvh2/bvh3/ebvh_sort_for_traversal_depth_first.js +96 -116
- package/src/core/bvh2/bvh3/query/backtracking/bvh_backtracking_query_leaves_ray.d.ts +3 -3
- package/src/core/bvh2/bvh3/query/backtracking/bvh_backtracking_query_leaves_ray.d.ts.map +1 -1
- package/src/core/bvh2/bvh3/query/backtracking/bvh_backtracking_query_leaves_ray.js +3 -3
- package/src/core/bvh2/bvh3/query/bvh_query_depth_range_in_frustum.js +2 -2
- package/src/core/bvh2/bvh3/query/bvh_query_leaves_generic.d.ts +12 -5
- package/src/core/bvh2/bvh3/query/bvh_query_leaves_generic.d.ts.map +1 -1
- package/src/core/bvh2/bvh3/query/bvh_query_leaves_generic.js +11 -4
- package/src/core/bvh2/bvh3/query/bvh_query_leaves_ray.d.ts +3 -3
- package/src/core/bvh2/bvh3/query/bvh_query_leaves_ray.d.ts.map +1 -1
- package/src/core/bvh2/bvh3/query/bvh_query_leaves_ray.js +3 -3
- package/src/core/bvh2/bvh3/query/bvh_query_leaves_ray_segment.d.ts +3 -3
- package/src/core/bvh2/bvh3/query/bvh_query_leaves_ray_segment.d.ts.map +1 -1
- package/src/core/bvh2/bvh3/query/bvh_query_leaves_ray_segment.js +3 -3
- package/src/core/bvh2/bvh3/query/bvh_query_user_data_generic.d.ts +12 -5
- package/src/core/bvh2/bvh3/query/bvh_query_user_data_generic.d.ts.map +1 -1
- package/src/core/bvh2/bvh3/query/bvh_query_user_data_generic.js +11 -4
- package/src/core/bvh2/bvh3/query/bvh_query_user_data_intersects_aabb.d.ts +9 -0
- package/src/core/bvh2/bvh3/query/bvh_query_user_data_intersects_aabb.d.ts.map +1 -0
- package/src/core/bvh2/bvh3/query/{bvh_query_user_data_overlaps_aabb.js → bvh_query_user_data_intersects_aabb.js} +1 -1
- package/src/core/bvh2/bvh3/query/bvh_query_user_data_intersects_capsule.d.ts +22 -0
- package/src/core/bvh2/bvh3/query/bvh_query_user_data_intersects_capsule.d.ts.map +1 -0
- package/src/core/bvh2/bvh3/query/bvh_query_user_data_intersects_capsule.js +101 -0
- package/src/core/bvh2/bvh3/query/bvh_query_user_data_intersects_frustum.d.ts +9 -0
- package/src/core/bvh2/bvh3/query/bvh_query_user_data_intersects_frustum.d.ts.map +1 -0
- package/src/core/bvh2/bvh3/query/{bvh_query_user_data_overlaps_frustum.js → bvh_query_user_data_intersects_frustum.js} +3 -3
- package/src/core/bvh2/bvh3/query/{bvh_query_user_data_overlaps_sphere.d.ts → bvh_query_user_data_intersects_sphere.d.ts} +2 -2
- package/src/core/bvh2/bvh3/query/bvh_query_user_data_intersects_sphere.d.ts.map +1 -0
- package/src/core/bvh2/bvh3/query/{bvh_query_user_data_overlaps_sphere.js → bvh_query_user_data_intersects_sphere.js} +1 -1
- package/src/core/bvh2/bvh3/query/bvh_query_user_data_nearest_to_point_filtered.d.ts +23 -0
- package/src/core/bvh2/bvh3/query/bvh_query_user_data_nearest_to_point_filtered.d.ts.map +1 -0
- package/src/core/bvh2/bvh3/query/bvh_query_user_data_nearest_to_point_filtered.js +86 -0
- package/src/core/bvh2/bvh3/query/bvh_query_user_data_ray.d.ts +3 -3
- package/src/core/bvh2/bvh3/query/bvh_query_user_data_ray.d.ts.map +1 -1
- package/src/core/bvh2/bvh3/query/bvh_query_user_data_ray.js +3 -3
- package/src/core/bvh2/bvh3/query/bvh_query_user_data_ray_segment.d.ts +3 -3
- package/src/core/bvh2/bvh3/query/bvh_query_user_data_ray_segment.d.ts.map +1 -1
- package/src/core/bvh2/bvh3/query/bvh_query_user_data_ray_segment.js +3 -3
- package/src/core/bvh2/traversal/aabb3_detailed_volume_intersection_callback_based.js +2 -2
- package/src/core/bvh8/bvh8_node_child_surface_area.js +2 -2
- package/src/core/bvh8/bvh8_quality.js +2 -2
- package/src/core/collection/SCRATCH_UINT32_TRAVERSAL_STACK.d.ts +12 -0
- package/src/core/collection/SCRATCH_UINT32_TRAVERSAL_STACK.d.ts.map +1 -1
- package/src/core/collection/SCRATCH_UINT32_TRAVERSAL_STACK.js +12 -0
- package/src/core/collection/heap/IndexedFloatMinHeap.d.ts +62 -0
- package/src/core/collection/heap/IndexedFloatMinHeap.d.ts.map +1 -0
- package/src/core/collection/heap/IndexedFloatMinHeap.js +268 -0
- package/src/core/color/tonemap/tonemap_aces.d.ts +21 -0
- package/src/core/color/tonemap/tonemap_aces.d.ts.map +1 -0
- package/src/core/color/tonemap/tonemap_aces.js +41 -0
- package/src/core/geom/2d/Rectangle.js +2 -2
- package/src/core/geom/2d/aabb/AABB2.d.ts.map +1 -1
- package/src/core/geom/2d/aabb/AABB2.js +11 -13
- package/src/core/geom/2d/aabb/aabb2_area.d.ts +10 -0
- package/src/core/geom/2d/aabb/aabb2_area.d.ts.map +1 -0
- package/src/core/geom/2d/aabb/aabb2_area.js +14 -0
- package/src/core/geom/2d/aabb/aabb2_array_combine.d.ts +4 -8
- package/src/core/geom/2d/aabb/aabb2_array_combine.d.ts.map +1 -1
- package/src/core/geom/2d/aabb/aabb2_array_combine.js +7 -35
- package/src/core/geom/2d/aabb/aabb2_center_from_aabb2_buffer.d.ts +8 -0
- package/src/core/geom/2d/aabb/aabb2_center_from_aabb2_buffer.d.ts.map +1 -0
- package/src/core/geom/2d/aabb/aabb2_center_from_aabb2_buffer.js +24 -0
- package/src/core/geom/2d/aabb/aabb2_compute_area.d.ts +4 -7
- package/src/core/geom/2d/aabb/aabb2_compute_area.d.ts.map +1 -1
- package/src/core/geom/2d/aabb/aabb2_compute_area.js +7 -14
- package/src/core/geom/2d/aabb/aabb2_compute_center_from_multiple.d.ts +4 -5
- package/src/core/geom/2d/aabb/aabb2_compute_center_from_multiple.d.ts.map +1 -1
- package/src/core/geom/2d/aabb/aabb2_compute_center_from_multiple.js +7 -24
- package/src/core/geom/2d/aabb/aabb2_compute_intersection.d.ts +15 -0
- package/src/core/geom/2d/aabb/aabb2_compute_intersection.d.ts.map +1 -0
- package/src/core/geom/2d/aabb/aabb2_compute_intersection.js +42 -0
- package/src/core/geom/2d/aabb/aabb2_compute_overlap.d.ts +4 -12
- package/src/core/geom/2d/aabb/aabb2_compute_overlap.d.ts.map +1 -1
- package/src/core/geom/2d/aabb/aabb2_compute_overlap.js +7 -42
- package/src/core/geom/2d/aabb/aabb2_contains_point.d.ts +12 -0
- package/src/core/geom/2d/aabb/aabb2_contains_point.d.ts.map +1 -0
- package/src/core/geom/2d/aabb/aabb2_contains_point.js +17 -0
- package/src/core/geom/2d/aabb/aabb2_from_rectangle.d.ts +8 -0
- package/src/core/geom/2d/aabb/aabb2_from_rectangle.d.ts.map +1 -0
- package/src/core/geom/2d/aabb/aabb2_from_rectangle.js +29 -0
- package/src/core/geom/2d/aabb/aabb2_from_v2_array.d.ts +4 -5
- package/src/core/geom/2d/aabb/aabb2_from_v2_array.d.ts.map +1 -1
- package/src/core/geom/2d/aabb/aabb2_from_v2_array.js +7 -33
- package/src/core/geom/2d/aabb/aabb2_from_v2_buffer.d.ts +8 -0
- package/src/core/geom/2d/aabb/aabb2_from_v2_buffer.d.ts.map +1 -0
- package/src/core/geom/2d/aabb/aabb2_from_v2_buffer.js +33 -0
- package/src/core/geom/2d/aabb/aabb2_intersects_aabb2.d.ts +14 -0
- package/src/core/geom/2d/aabb/aabb2_intersects_aabb2.d.ts.map +1 -0
- package/src/core/geom/2d/aabb/aabb2_intersects_aabb2.js +21 -0
- package/src/core/geom/2d/aabb/aabb2_intersects_point.d.ts +4 -9
- package/src/core/geom/2d/aabb/aabb2_intersects_point.d.ts.map +1 -1
- package/src/core/geom/2d/aabb/aabb2_intersects_point.js +7 -17
- package/src/core/geom/2d/aabb/aabb2_overlap_exists.d.ts +4 -11
- package/src/core/geom/2d/aabb/aabb2_overlap_exists.d.ts.map +1 -1
- package/src/core/geom/2d/aabb/aabb2_overlap_exists.js +7 -21
- package/src/core/geom/2d/aabb/aabb2_union_array.d.ts +11 -0
- package/src/core/geom/2d/aabb/aabb2_union_array.d.ts.map +1 -0
- package/src/core/geom/2d/aabb/aabb2_union_array.js +35 -0
- package/src/core/geom/2d/bvh/BVH2D.js +5 -5
- package/src/core/geom/2d/circle/circle_compute_circle_intersection.d.ts +4 -11
- package/src/core/geom/2d/circle/circle_compute_circle_intersection.d.ts.map +1 -1
- package/src/core/geom/2d/circle/circle_compute_circle_intersection.js +7 -64
- package/src/core/geom/2d/circle/circle_compute_circle_penetration.d.ts +4 -9
- package/src/core/geom/2d/circle/circle_compute_circle_penetration.d.ts.map +1 -1
- package/src/core/geom/2d/circle/circle_compute_circle_penetration.js +7 -32
- package/src/core/geom/2d/circle/circle_compute_intersection.d.ts +14 -0
- package/src/core/geom/2d/circle/circle_compute_intersection.d.ts.map +1 -0
- package/src/core/geom/2d/circle/circle_compute_intersection.js +64 -0
- package/src/core/geom/2d/circle/circle_compute_penetration.d.ts +12 -0
- package/src/core/geom/2d/circle/circle_compute_penetration.d.ts.map +1 -0
- package/src/core/geom/2d/circle/circle_compute_penetration.js +32 -0
- package/src/core/geom/2d/circle/circle_contains_point.d.ts +11 -0
- package/src/core/geom/2d/circle/circle_contains_point.d.ts.map +1 -0
- package/src/core/geom/2d/circle/circle_contains_point.js +16 -0
- package/src/core/geom/2d/circle/circle_intersects_point.d.ts +4 -8
- package/src/core/geom/2d/circle/circle_intersects_point.d.ts.map +1 -1
- package/src/core/geom/2d/circle/circle_intersects_point.js +7 -16
- package/src/core/geom/2d/compute_polygon_area_2d.d.ts +4 -5
- package/src/core/geom/2d/compute_polygon_area_2d.d.ts.map +1 -1
- package/src/core/geom/2d/compute_polygon_area_2d.js +7 -34
- package/src/core/geom/2d/convex-hull/convex_hull_fixed_count_2d_bruteforce.d.ts +17 -0
- package/src/core/geom/2d/convex-hull/convex_hull_fixed_count_2d_bruteforce.d.ts.map +1 -0
- package/src/core/geom/2d/convex-hull/convex_hull_fixed_count_2d_bruteforce.js +156 -0
- package/src/core/geom/2d/convex-hull/convex_hull_fixed_count_2d_relaxation.d.ts +17 -0
- package/src/core/geom/2d/convex-hull/convex_hull_fixed_count_2d_relaxation.d.ts.map +1 -0
- package/src/core/geom/2d/convex-hull/convex_hull_fixed_count_2d_relaxation.js +288 -0
- package/src/core/geom/2d/convex-hull/convex_hull_jarvis_2d.js +2 -2
- package/src/core/geom/2d/convex-hull/convex_hull_monotone_2d.js +3 -3
- package/src/core/geom/2d/convex-hull/fixed_convex_hull_humus.d.ts +4 -14
- package/src/core/geom/2d/convex-hull/fixed_convex_hull_humus.d.ts.map +1 -1
- package/src/core/geom/2d/convex-hull/fixed_convex_hull_humus.js +7 -156
- package/src/core/geom/2d/convex-hull/fixed_convex_hull_relaxation.d.ts +4 -14
- package/src/core/geom/2d/convex-hull/fixed_convex_hull_relaxation.d.ts.map +1 -1
- package/src/core/geom/2d/convex-hull/fixed_convex_hull_relaxation.js +7 -288
- package/src/core/geom/2d/convex-hull/orient2d_indexed.d.ts +10 -0
- package/src/core/geom/2d/convex-hull/orient2d_indexed.d.ts.map +1 -0
- package/src/core/geom/2d/convex-hull/orient2d_indexed.js +22 -0
- package/src/core/geom/2d/convex-hull/orientation3_array.d.ts +4 -7
- package/src/core/geom/2d/convex-hull/orientation3_array.d.ts.map +1 -1
- package/src/core/geom/2d/convex-hull/orientation3_array.js +7 -22
- package/src/core/geom/2d/hash-grid/shg_query_elements_line.js +3 -3
- package/src/core/geom/2d/intersect_ray_2d.d.ts +4 -13
- package/src/core/geom/2d/intersect_ray_2d.d.ts.map +1 -1
- package/src/core/geom/2d/intersect_ray_2d.js +7 -49
- package/src/core/geom/2d/line/line2_compute_segment_point_distance_sqr.d.ts +11 -0
- package/src/core/geom/2d/line/line2_compute_segment_point_distance_sqr.d.ts.map +1 -0
- package/src/core/geom/2d/line/line2_compute_segment_point_distance_sqr.js +39 -0
- package/src/core/geom/2d/line/line2_distance_to_point_sqr.d.ts +4 -8
- package/src/core/geom/2d/line/line2_distance_to_point_sqr.d.ts.map +1 -1
- package/src/core/geom/2d/line/line2_distance_to_point_sqr.js +7 -39
- package/src/core/geom/2d/line/line2_segment_intersection_fraction_2d.d.ts +23 -0
- package/src/core/geom/2d/line/line2_segment_intersection_fraction_2d.d.ts.map +1 -0
- package/src/core/geom/2d/line/line2_segment_intersection_fraction_2d.js +44 -0
- package/src/core/geom/2d/line/line_segment_compute_line_segment_intersection_2d.d.ts +4 -11
- package/src/core/geom/2d/line/line_segment_compute_line_segment_intersection_2d.d.ts.map +1 -1
- package/src/core/geom/2d/line/line_segment_compute_line_segment_intersection_2d.js +7 -35
- package/src/core/geom/2d/line/line_segment_compute_line_segment_intersection_array_2d.d.ts +4 -17
- package/src/core/geom/2d/line/line_segment_compute_line_segment_intersection_array_2d.d.ts.map +1 -1
- package/src/core/geom/2d/line/line_segment_compute_line_segment_intersection_array_2d.js +7 -51
- package/src/core/geom/2d/line/line_segment_compute_line_segment_intersection_vectors_2d.d.ts +4 -7
- package/src/core/geom/2d/line/line_segment_compute_line_segment_intersection_vectors_2d.d.ts.map +1 -1
- package/src/core/geom/2d/line/line_segment_compute_line_segment_intersection_vectors_2d.js +7 -15
- package/src/core/geom/2d/line/line_segment_compute_line_segment_intersection_vectors_array_2d.d.ts +4 -6
- package/src/core/geom/2d/line/line_segment_compute_line_segment_intersection_vectors_array_2d.d.ts.map +1 -1
- package/src/core/geom/2d/line/line_segment_compute_line_segment_intersection_vectors_array_2d.js +7 -30
- package/src/core/geom/2d/line/line_segment_intersection_fraction_2d.d.ts +4 -20
- package/src/core/geom/2d/line/line_segment_intersection_fraction_2d.d.ts.map +1 -1
- package/src/core/geom/2d/line/line_segment_intersection_fraction_2d.js +4 -41
- package/src/core/geom/2d/line/line_segment_line_segment_intersection_exists_2d.d.ts +4 -12
- package/src/core/geom/2d/line/line_segment_line_segment_intersection_exists_2d.d.ts.map +1 -1
- package/src/core/geom/2d/line/line_segment_line_segment_intersection_exists_2d.js +7 -29
- package/src/core/geom/2d/line/ray2_ray2_compute_intersection_array_2d.d.ts +16 -0
- package/src/core/geom/2d/line/ray2_ray2_compute_intersection_array_2d.d.ts.map +1 -0
- package/src/core/geom/2d/line/ray2_ray2_compute_intersection_array_2d.js +49 -0
- package/src/core/geom/2d/line/segment2_intersects_segment2_2d.d.ts +15 -0
- package/src/core/geom/2d/line/segment2_intersects_segment2_2d.d.ts.map +1 -0
- package/src/core/geom/2d/line/segment2_intersects_segment2_2d.js +29 -0
- package/src/core/geom/2d/line/segment2_segment_compute_intersection_array_2d.d.ts +20 -0
- package/src/core/geom/2d/line/segment2_segment_compute_intersection_array_2d.d.ts.map +1 -0
- package/src/core/geom/2d/line/segment2_segment_compute_intersection_array_2d.js +51 -0
- package/src/core/geom/2d/line/segment2_segment_compute_intersection_to_new_array_2d.d.ts +9 -0
- package/src/core/geom/2d/line/segment2_segment_compute_intersection_to_new_array_2d.d.ts.map +1 -0
- package/src/core/geom/2d/line/segment2_segment_compute_intersection_to_new_array_2d.js +28 -0
- package/src/core/geom/2d/line/segment2_segment_compute_intersection_v2_2d.d.ts +14 -0
- package/src/core/geom/2d/line/segment2_segment_compute_intersection_v2_2d.d.ts.map +1 -0
- package/src/core/geom/2d/line/segment2_segment_compute_intersection_v2_2d.js +33 -0
- package/src/core/geom/2d/line/segment2_segment_compute_intersection_v2_objects_2d.d.ts +10 -0
- package/src/core/geom/2d/line/segment2_segment_compute_intersection_v2_objects_2d.d.ts.map +1 -0
- package/src/core/geom/2d/line/segment2_segment_compute_intersection_v2_objects_2d.js +13 -0
- package/src/core/geom/2d/polygon/polygon2_clip_halfplane.d.ts +17 -0
- package/src/core/geom/2d/polygon/polygon2_clip_halfplane.d.ts.map +1 -0
- package/src/core/geom/2d/polygon/polygon2_clip_halfplane.js +50 -0
- package/src/core/geom/2d/polygon/polygon2_signed_area.d.ts +8 -0
- package/src/core/geom/2d/polygon/polygon2_signed_area.d.ts.map +1 -0
- package/src/core/geom/2d/polygon/polygon2_signed_area.js +34 -0
- package/src/core/geom/2d/quad-tree/qt_collect_by_box.js +3 -3
- package/src/core/geom/2d/quad-tree/qt_collect_by_point.js +3 -3
- package/src/core/geom/2d/quad-tree/qt_query_closest_to_point.d.ts +12 -0
- package/src/core/geom/2d/quad-tree/qt_query_closest_to_point.d.ts.map +1 -0
- package/src/core/geom/2d/quad-tree/qt_query_closest_to_point.js +62 -0
- package/src/core/geom/2d/quad-tree/qt_query_data_nearest_to_point.d.ts +4 -9
- package/src/core/geom/2d/quad-tree/qt_query_data_nearest_to_point.d.ts.map +1 -1
- package/src/core/geom/2d/quad-tree/qt_query_data_nearest_to_point.js +7 -62
- package/src/core/geom/2d/r-tree/StaticR2Tree.js +3 -3
- package/src/core/geom/2d/rectangle_to_aabb.d.ts +4 -5
- package/src/core/geom/2d/rectangle_to_aabb.d.ts.map +1 -1
- package/src/core/geom/2d/rectangle_to_aabb.js +7 -29
- package/src/core/geom/2d/spline2_quadratic_bezier.d.ts +13 -0
- package/src/core/geom/2d/spline2_quadratic_bezier.d.ts.map +1 -0
- package/src/core/geom/2d/spline2_quadratic_bezier.js +26 -0
- package/src/core/geom/2d/spline_bezier2_2d.d.ts +4 -10
- package/src/core/geom/2d/spline_bezier2_2d.d.ts.map +1 -1
- package/src/core/geom/2d/spline_bezier2_2d.js +7 -26
- package/src/core/geom/2d/triangle/tri2_compute_barycentric.d.ts +15 -0
- package/src/core/geom/2d/triangle/tri2_compute_barycentric.d.ts.map +1 -0
- package/src/core/geom/2d/triangle/tri2_compute_barycentric.js +48 -0
- package/src/core/geom/2d/triangle/tri2_contains_point.d.ts +14 -0
- package/src/core/geom/2d/triangle/tri2_contains_point.d.ts.map +1 -0
- package/src/core/geom/2d/triangle/tri2_contains_point.js +39 -0
- package/src/core/geom/2d/triangle/tri2_signed_area.d.ts +12 -0
- package/src/core/geom/2d/triangle/tri2_signed_area.d.ts.map +1 -0
- package/src/core/geom/2d/triangle/tri2_signed_area.js +23 -0
- package/src/core/geom/2d/triangle2d_compute_area.d.ts +4 -9
- package/src/core/geom/2d/triangle2d_compute_area.d.ts.map +1 -1
- package/src/core/geom/2d/triangle2d_compute_area.js +7 -23
- package/src/core/geom/2d/triangle2d_contains_point.d.ts +4 -11
- package/src/core/geom/2d/triangle2d_contains_point.d.ts.map +1 -1
- package/src/core/geom/2d/triangle2d_contains_point.js +7 -39
- package/src/core/geom/2d/triangle2d_get_barycentric.d.ts +4 -12
- package/src/core/geom/2d/triangle2d_get_barycentric.d.ts.map +1 -1
- package/src/core/geom/2d/triangle2d_get_barycentric.js +7 -48
- package/src/core/geom/3d/aabb/AABB3.js +6 -6
- package/src/core/geom/3d/aabb/aabb3_array_intersects_frustum_degree.d.ts +4 -6
- package/src/core/geom/3d/aabb/aabb3_array_intersects_frustum_degree.d.ts.map +1 -1
- package/src/core/geom/3d/aabb/aabb3_array_intersects_frustum_degree.js +7 -29
- package/src/core/geom/3d/aabb/aabb3_array_near_distance_to_intersection_ray_segment.js +2 -2
- package/src/core/geom/3d/aabb/aabb3_box_surface_area_2.d.ts +4 -4
- package/src/core/geom/3d/aabb/aabb3_box_surface_area_2.d.ts.map +1 -1
- package/src/core/geom/3d/aabb/aabb3_box_surface_area_2.js +7 -10
- package/src/core/geom/3d/aabb/aabb3_build_frustum.d.ts +11 -0
- package/src/core/geom/3d/aabb/aabb3_build_frustum.d.ts.map +1 -1
- package/src/core/geom/3d/aabb/aabb3_build_frustum.js +6 -1
- package/src/core/geom/3d/aabb/aabb3_classify_against_frustum.d.ts +13 -0
- package/src/core/geom/3d/aabb/aabb3_classify_against_frustum.d.ts.map +1 -0
- package/src/core/geom/3d/aabb/aabb3_classify_against_frustum.js +46 -0
- package/src/core/geom/3d/aabb/aabb3_classify_against_frustum_array.d.ts +9 -0
- package/src/core/geom/3d/aabb/aabb3_classify_against_frustum_array.d.ts.map +1 -0
- package/src/core/geom/3d/aabb/aabb3_classify_against_frustum_array.js +29 -0
- package/src/core/geom/3d/aabb/aabb3_closest_point_on_surface.d.ts +15 -0
- package/src/core/geom/3d/aabb/aabb3_closest_point_on_surface.d.ts.map +1 -0
- package/src/core/geom/3d/aabb/aabb3_closest_point_on_surface.js +57 -0
- package/src/core/geom/3d/aabb/aabb3_combined_surface_area.d.ts +4 -5
- package/src/core/geom/3d/aabb/aabb3_combined_surface_area.d.ts.map +1 -1
- package/src/core/geom/3d/aabb/aabb3_combined_surface_area.js +7 -21
- package/src/core/geom/3d/aabb/aabb3_compute_clipping_volume_intersection.d.ts +22 -0
- package/src/core/geom/3d/aabb/aabb3_compute_clipping_volume_intersection.d.ts.map +1 -0
- package/src/core/geom/3d/aabb/aabb3_compute_clipping_volume_intersection.js +298 -0
- package/src/core/geom/3d/aabb/aabb3_compute_half_surface_area.d.ts +4 -9
- package/src/core/geom/3d/aabb/aabb3_compute_half_surface_area.d.ts.map +1 -1
- package/src/core/geom/3d/aabb/aabb3_compute_half_surface_area.js +7 -19
- package/src/core/geom/3d/aabb/aabb3_compute_projected_area.d.ts +4 -6
- package/src/core/geom/3d/aabb/aabb3_compute_projected_area.d.ts.map +1 -1
- package/src/core/geom/3d/aabb/aabb3_compute_projected_area.js +7 -86
- package/src/core/geom/3d/aabb/aabb3_compute_surface_area.d.ts +4 -9
- package/src/core/geom/3d/aabb/aabb3_compute_surface_area.d.ts.map +1 -1
- package/src/core/geom/3d/aabb/aabb3_compute_surface_area.js +7 -16
- package/src/core/geom/3d/aabb/aabb3_detailed_volume_intersection.d.ts +4 -19
- package/src/core/geom/3d/aabb/aabb3_detailed_volume_intersection.d.ts.map +1 -1
- package/src/core/geom/3d/aabb/aabb3_detailed_volume_intersection.js +7 -298
- package/src/core/geom/3d/aabb/aabb3_estimate_projected_area.d.ts +8 -0
- package/src/core/geom/3d/aabb/aabb3_estimate_projected_area.d.ts.map +1 -0
- package/src/core/geom/3d/aabb/aabb3_estimate_projected_area.js +59 -0
- package/src/core/geom/3d/aabb/aabb3_estimate_projected_area2.d.ts +4 -5
- package/src/core/geom/3d/aabb/aabb3_estimate_projected_area2.d.ts.map +1 -1
- package/src/core/geom/3d/aabb/aabb3_estimate_projected_area2.js +7 -59
- package/src/core/geom/3d/aabb/aabb3_from_three_geometry.d.ts +7 -0
- package/src/core/geom/3d/aabb/aabb3_from_three_geometry.d.ts.map +1 -0
- package/src/core/geom/3d/aabb/aabb3_from_three_geometry.js +18 -0
- package/src/core/geom/3d/aabb/aabb3_from_threejs_geometry.d.ts +4 -4
- package/src/core/geom/3d/aabb/aabb3_from_threejs_geometry.d.ts.map +1 -1
- package/src/core/geom/3d/aabb/aabb3_from_threejs_geometry.js +7 -18
- package/src/core/geom/3d/aabb/aabb3_from_triangle_group.d.ts +12 -0
- package/src/core/geom/3d/aabb/aabb3_from_triangle_group.d.ts.map +1 -0
- package/src/core/geom/3d/aabb/aabb3_from_triangle_group.js +46 -0
- package/src/core/geom/3d/aabb/aabb3_half_surface_area.d.ts +7 -0
- package/src/core/geom/3d/aabb/aabb3_half_surface_area.d.ts.map +1 -0
- package/src/core/geom/3d/aabb/aabb3_half_surface_area.js +10 -0
- package/src/core/geom/3d/aabb/aabb3_half_surface_area_extents.d.ts +12 -0
- package/src/core/geom/3d/aabb/aabb3_half_surface_area_extents.d.ts.map +1 -0
- package/src/core/geom/3d/aabb/aabb3_half_surface_area_extents.js +19 -0
- package/src/core/geom/3d/aabb/aabb3_intersects_frustum_degree.d.ts +4 -10
- package/src/core/geom/3d/aabb/aabb3_intersects_frustum_degree.d.ts.map +1 -1
- package/src/core/geom/3d/aabb/aabb3_intersects_frustum_degree.js +7 -46
- package/src/core/geom/3d/aabb/aabb3_intersects_line_segment.d.ts +4 -15
- package/src/core/geom/3d/aabb/aabb3_intersects_line_segment.d.ts.map +1 -1
- package/src/core/geom/3d/aabb/aabb3_intersects_line_segment.js +7 -77
- package/src/core/geom/3d/aabb/aabb3_intersects_ray_segment.d.ts +13 -0
- package/src/core/geom/3d/aabb/aabb3_intersects_ray_segment.d.ts.map +1 -1
- package/src/core/geom/3d/aabb/aabb3_intersects_ray_segment.js +27 -6
- package/src/core/geom/3d/aabb/aabb3_intersects_segment3.d.ts +18 -0
- package/src/core/geom/3d/aabb/aabb3_intersects_segment3.d.ts.map +1 -0
- package/src/core/geom/3d/aabb/aabb3_intersects_segment3.js +77 -0
- package/src/core/geom/3d/aabb/aabb3_near_distance_to_intersection_ray_segment.d.ts +4 -17
- package/src/core/geom/3d/aabb/aabb3_near_distance_to_intersection_ray_segment.d.ts.map +1 -1
- package/src/core/geom/3d/aabb/aabb3_near_distance_to_intersection_ray_segment.js +7 -70
- package/src/core/geom/3d/aabb/aabb3_nearest_point_on_surface.d.ts +4 -12
- package/src/core/geom/3d/aabb/aabb3_nearest_point_on_surface.d.ts.map +1 -1
- package/src/core/geom/3d/aabb/aabb3_nearest_point_on_surface.js +4 -54
- package/src/core/geom/3d/aabb/aabb3_projected_area.d.ts +9 -0
- package/src/core/geom/3d/aabb/aabb3_projected_area.d.ts.map +1 -0
- package/src/core/geom/3d/aabb/aabb3_projected_area.js +86 -0
- package/src/core/geom/3d/aabb/aabb3_ray_segment_entry_distance.d.ts +38 -0
- package/src/core/geom/3d/aabb/aabb3_ray_segment_entry_distance.d.ts.map +1 -0
- package/src/core/geom/3d/aabb/aabb3_ray_segment_entry_distance.js +95 -0
- package/src/core/geom/3d/aabb/aabb3_raycast.d.ts +4 -22
- package/src/core/geom/3d/aabb/aabb3_raycast.d.ts.map +1 -1
- package/src/core/geom/3d/aabb/aabb3_raycast.js +7 -109
- package/src/core/geom/3d/aabb/aabb3_raycast_hit_point.d.ts +25 -0
- package/src/core/geom/3d/aabb/aabb3_raycast_hit_point.d.ts.map +1 -0
- package/src/core/geom/3d/aabb/aabb3_raycast_hit_point.js +109 -0
- package/src/core/geom/3d/aabb/aabb3_score_boxes_SAH.js +2 -2
- package/src/core/geom/3d/aabb/aabb3_score_boxes_SAH_delta.d.ts +7 -1
- package/src/core/geom/3d/aabb/aabb3_score_boxes_SAH_delta.d.ts.map +1 -1
- package/src/core/geom/3d/aabb/aabb3_score_boxes_SAH_delta.js +8 -5
- package/src/core/geom/3d/aabb/aabb3_surface_area.d.ts +12 -0
- package/src/core/geom/3d/aabb/aabb3_surface_area.d.ts.map +1 -0
- package/src/core/geom/3d/aabb/aabb3_surface_area.js +16 -0
- package/src/core/geom/3d/aabb/aabb3_transform_oriented_inverse.js +2 -2
- package/src/core/geom/3d/aabb/aabb3_transformed_compute_plane_side.d.ts.map +1 -1
- package/src/core/geom/3d/aabb/aabb3_transformed_compute_plane_side.js +4 -1
- package/src/core/geom/3d/aabb/aabb3_union_half_surface_area.d.ts +8 -0
- package/src/core/geom/3d/aabb/aabb3_union_half_surface_area.d.ts.map +1 -0
- package/src/core/geom/3d/aabb/aabb3_union_half_surface_area.js +21 -0
- package/src/core/geom/3d/aabb/aabb_nd_from_points.d.ts +10 -0
- package/src/core/geom/3d/aabb/aabb_nd_from_points.d.ts.map +1 -0
- package/src/core/geom/3d/aabb/aabb_nd_from_points.js +39 -0
- package/src/core/geom/3d/aabb/compute_aabb_from_points.d.ts +4 -7
- package/src/core/geom/3d/aabb/compute_aabb_from_points.d.ts.map +1 -1
- package/src/core/geom/3d/aabb/compute_aabb_from_points.js +7 -39
- package/src/core/geom/3d/aabb/compute_triangle_group_aabb3.d.ts +4 -9
- package/src/core/geom/3d/aabb/compute_triangle_group_aabb3.d.ts.map +1 -1
- package/src/core/geom/3d/aabb/compute_triangle_group_aabb3.js +4 -43
- package/src/core/geom/3d/capsule/capsule_intersects_aabb3_closed.d.ts +40 -0
- package/src/core/geom/3d/capsule/capsule_intersects_aabb3_closed.d.ts.map +1 -0
- package/src/core/geom/3d/capsule/capsule_intersects_aabb3_closed.js +67 -0
- package/src/core/geom/3d/capsule/capsule_intersects_aabb3_iterative.d.ts +45 -0
- package/src/core/geom/3d/capsule/capsule_intersects_aabb3_iterative.d.ts.map +1 -0
- package/src/core/geom/3d/capsule/capsule_intersects_aabb3_iterative.js +137 -0
- package/src/core/geom/3d/circle3_compute_bounding_box.d.ts +14 -0
- package/src/core/geom/3d/circle3_compute_bounding_box.d.ts.map +1 -0
- package/src/core/geom/3d/circle3_compute_bounding_box.js +35 -0
- package/src/core/geom/3d/compute_circle_bounding_box.d.ts +4 -11
- package/src/core/geom/3d/compute_circle_bounding_box.d.ts.map +1 -1
- package/src/core/geom/3d/compute_circle_bounding_box.js +7 -35
- package/src/core/geom/3d/cone/computeConeBoundingBox.d.ts +4 -11
- package/src/core/geom/3d/cone/computeConeBoundingBox.d.ts.map +1 -1
- package/src/core/geom/3d/cone/computeConeBoundingBox.js +7 -58
- package/src/core/geom/3d/cone/computeConePlaneSide.d.ts +4 -16
- package/src/core/geom/3d/cone/computeConePlaneSide.d.ts.map +1 -1
- package/src/core/geom/3d/cone/computeConePlaneSide.js +7 -86
- package/src/core/geom/3d/cone/compute_bounding_cone_of_2_cones.d.ts +4 -5
- package/src/core/geom/3d/cone/compute_bounding_cone_of_2_cones.d.ts.map +1 -1
- package/src/core/geom/3d/cone/compute_bounding_cone_of_2_cones.js +7 -97
- package/src/core/geom/3d/cone/cone_compute_bounding_box.d.ts +14 -0
- package/src/core/geom/3d/cone/cone_compute_bounding_box.d.ts.map +1 -0
- package/src/core/geom/3d/cone/cone_compute_bounding_box.js +58 -0
- package/src/core/geom/3d/cone/cone_compute_bounding_of_2_cones.d.ts +8 -0
- package/src/core/geom/3d/cone/cone_compute_bounding_of_2_cones.d.ts.map +1 -0
- package/src/core/geom/3d/cone/cone_compute_bounding_of_2_cones.js +97 -0
- package/src/core/geom/3d/cone/cone_compute_plane_side.d.ts +19 -0
- package/src/core/geom/3d/cone/cone_compute_plane_side.d.ts.map +1 -0
- package/src/core/geom/3d/cone/cone_compute_plane_side.js +86 -0
- package/src/core/geom/3d/frustum/clipping_volume_matrix4_project.d.ts +4 -8
- package/src/core/geom/3d/frustum/clipping_volume_matrix4_project.d.ts.map +1 -1
- package/src/core/geom/3d/frustum/clipping_volume_matrix4_project.js +7 -45
- package/src/core/geom/3d/frustum/frustum3_computeNearestPointToPoint.d.ts +4 -9
- package/src/core/geom/3d/frustum/frustum3_computeNearestPointToPoint.d.ts.map +1 -1
- package/src/core/geom/3d/frustum/frustum3_computeNearestPointToPoint.js +7 -112
- package/src/core/geom/3d/frustum/frustum3_compute_closest_point.d.ts +12 -0
- package/src/core/geom/3d/frustum/frustum3_compute_closest_point.d.ts.map +1 -0
- package/src/core/geom/3d/frustum/frustum3_compute_closest_point.js +110 -0
- package/src/core/geom/3d/frustum/frustum3_from_aabb.d.ts +19 -0
- package/src/core/geom/3d/frustum/frustum3_from_aabb.d.ts.map +1 -0
- package/src/core/geom/3d/frustum/frustum3_from_aabb.js +60 -0
- package/src/core/geom/3d/frustum/frustum3_matrix4_project.d.ts +10 -0
- package/src/core/geom/3d/frustum/frustum3_matrix4_project.d.ts.map +1 -0
- package/src/core/geom/3d/frustum/frustum3_matrix4_project.js +18 -0
- package/src/core/geom/3d/frustum/frustum3_matrix4_project_n.d.ts +11 -0
- package/src/core/geom/3d/frustum/frustum3_matrix4_project_n.d.ts.map +1 -0
- package/src/core/geom/3d/frustum/frustum3_matrix4_project_n.js +45 -0
- package/src/core/geom/3d/frustum/frustum3_planes_to_flat_from_three.d.ts +7 -0
- package/src/core/geom/3d/frustum/frustum3_planes_to_flat_from_three.d.ts.map +1 -0
- package/src/core/geom/3d/frustum/frustum3_planes_to_flat_from_three.js +26 -0
- package/src/core/geom/3d/frustum/frustum3_slice_linear_to_points.d.ts +10 -0
- package/src/core/geom/3d/frustum/frustum3_slice_linear_to_points.d.ts.map +1 -0
- package/src/core/geom/3d/frustum/frustum3_slice_linear_to_points.js +96 -0
- package/src/core/geom/3d/frustum/frustum_compute_corners.js +9 -9
- package/src/core/geom/3d/frustum/frustum_matrix4_project.d.ts +4 -7
- package/src/core/geom/3d/frustum/frustum_matrix4_project.d.ts.map +1 -1
- package/src/core/geom/3d/frustum/frustum_matrix4_project.js +7 -18
- package/src/core/geom/3d/frustum/hexahedron_from_aabb.d.ts +4 -16
- package/src/core/geom/3d/frustum/hexahedron_from_aabb.d.ts.map +1 -1
- package/src/core/geom/3d/frustum/hexahedron_from_aabb.js +7 -60
- package/src/core/geom/3d/frustum/read_three_planes_to_array.d.ts.map +1 -1
- package/src/core/geom/3d/frustum/read_three_planes_to_array.js +7 -26
- package/src/core/geom/3d/frustum/slice_frustum_linear_to_points.d.ts +4 -7
- package/src/core/geom/3d/frustum/slice_frustum_linear_to_points.d.ts.map +1 -1
- package/src/core/geom/3d/frustum/slice_frustum_linear_to_points.js +7 -96
- package/src/core/geom/3d/funnel_string_pull.d.ts.map +1 -0
- package/src/{engine/navigation/mesh → core/geom/3d}/funnel_string_pull.js +1 -1
- package/src/core/geom/3d/gjk/GJK_REVIEW_NOTES.md +146 -0
- package/src/core/geom/3d/gjk/gjk.js +4 -4
- package/src/core/geom/3d/gjk/gjk_epa_penetration.js +13 -13
- package/src/core/geom/3d/line/line3_closest_points_segment_segment.d.ts +4 -24
- package/src/core/geom/3d/line/line3_closest_points_segment_segment.d.ts.map +1 -1
- package/src/core/geom/3d/line/line3_closest_points_segment_segment.js +4 -85
- package/src/core/geom/3d/line/line3_compute_nearest_point_to_point.d.ts.map +1 -1
- package/src/core/geom/3d/line/line3_compute_nearest_point_to_point.js +7 -34
- package/src/core/geom/3d/line/line3_compute_segment_closest_point.d.ts +16 -0
- package/src/core/geom/3d/line/line3_compute_segment_closest_point.d.ts.map +1 -0
- package/src/core/geom/3d/line/line3_compute_segment_closest_point.js +34 -0
- package/src/core/geom/3d/line/line3_compute_segment_closest_point_t.d.ts +19 -0
- package/src/core/geom/3d/line/line3_compute_segment_closest_point_t.d.ts.map +1 -0
- package/src/core/geom/3d/line/line3_compute_segment_closest_point_t.js +48 -0
- package/src/core/geom/3d/line/line3_compute_segment_closest_point_to_aabb3_t.d.ts +44 -0
- package/src/core/geom/3d/line/line3_compute_segment_closest_point_to_aabb3_t.d.ts.map +1 -0
- package/src/core/geom/3d/line/line3_compute_segment_closest_point_to_aabb3_t.js +153 -0
- package/src/core/geom/3d/line/line3_compute_segment_nearest_point_to_aabb3_t.d.ts +7 -0
- package/src/core/geom/3d/line/line3_compute_segment_nearest_point_to_aabb3_t.d.ts.map +1 -0
- package/src/core/geom/3d/line/line3_compute_segment_nearest_point_to_aabb3_t.js +7 -0
- package/src/core/geom/3d/line/line3_compute_segment_nearest_point_to_point_t.d.ts +4 -16
- package/src/core/geom/3d/line/line3_compute_segment_nearest_point_to_point_t.d.ts.map +1 -1
- package/src/core/geom/3d/line/line3_compute_segment_nearest_point_to_point_t.js +7 -48
- package/src/core/geom/3d/line/line3_compute_segment_point_distance_sqr.d.ts +1 -1
- package/src/core/geom/3d/line/line3_compute_segment_point_distance_sqr.js +2 -2
- package/src/core/geom/3d/line/line3_compute_segment_segment_closest_points.d.ts +27 -0
- package/src/core/geom/3d/line/line3_compute_segment_segment_closest_points.d.ts.map +1 -0
- package/src/core/geom/3d/line/line3_compute_segment_segment_closest_points.js +88 -0
- package/src/core/geom/3d/line/segment3_point_distance_to_segments.d.ts +11 -0
- package/src/core/geom/3d/line/segment3_point_distance_to_segments.d.ts.map +1 -0
- package/src/core/geom/3d/line/segment3_point_distance_to_segments.js +25 -0
- package/src/core/geom/3d/mat4/allocate_m4.d.ts +4 -3
- package/src/core/geom/3d/mat4/allocate_m4.d.ts.map +1 -1
- package/src/core/geom/3d/mat4/allocate_m4.js +7 -16
- package/src/core/geom/3d/mat4/apply_mat4_transform_to_direction_v3_array.d.ts +4 -9
- package/src/core/geom/3d/mat4/apply_mat4_transform_to_direction_v3_array.d.ts.map +1 -1
- package/src/core/geom/3d/mat4/apply_mat4_transform_to_direction_v3_array.js +7 -55
- package/src/core/geom/3d/mat4/apply_mat4_transform_to_v3_array.d.ts +4 -9
- package/src/core/geom/3d/mat4/apply_mat4_transform_to_v3_array.d.ts.map +1 -1
- package/src/core/geom/3d/mat4/apply_mat4_transform_to_v3_array.js +7 -30
- package/src/core/geom/3d/mat4/compose_matrix4_array.d.ts +4 -19
- package/src/core/geom/3d/mat4/compose_matrix4_array.d.ts.map +1 -1
- package/src/core/geom/3d/mat4/compose_matrix4_array.js +7 -53
- package/src/core/geom/3d/mat4/decompose_matrix_4_array.d.ts +4 -6
- package/src/core/geom/3d/mat4/decompose_matrix_4_array.d.ts.map +1 -1
- package/src/core/geom/3d/mat4/decompose_matrix_4_array.js +7 -76
- package/src/core/geom/3d/mat4/eulerAnglesFromMatrix.d.ts +4 -30
- package/src/core/geom/3d/mat4/eulerAnglesFromMatrix.d.ts.map +1 -1
- package/src/core/geom/3d/mat4/eulerAnglesFromMatrix.js +7 -124
- package/src/core/geom/3d/mat4/m4_allocate.d.ts +6 -0
- package/src/core/geom/3d/mat4/m4_allocate.d.ts.map +1 -0
- package/src/core/geom/3d/mat4/m4_allocate.js +16 -0
- package/src/core/geom/3d/mat4/m4_compose.d.ts +22 -0
- package/src/core/geom/3d/mat4/m4_compose.d.ts.map +1 -0
- package/src/core/geom/3d/mat4/m4_compose.js +53 -0
- package/src/core/geom/3d/mat4/m4_compute_normal_matrix3.d.ts +7 -0
- package/src/core/geom/3d/mat4/m4_compute_normal_matrix3.d.ts.map +1 -0
- package/src/core/geom/3d/mat4/m4_compute_normal_matrix3.js +7 -0
- package/src/core/geom/3d/mat4/m4_decompose.d.ts +9 -0
- package/src/core/geom/3d/mat4/m4_decompose.d.ts.map +1 -0
- package/src/core/geom/3d/mat4/m4_decompose.js +76 -0
- package/src/core/geom/3d/mat4/m4_euler_angles.d.ts +33 -0
- package/src/core/geom/3d/mat4/m4_euler_angles.d.ts.map +1 -0
- package/src/core/geom/3d/mat4/m4_euler_angles.js +124 -0
- package/src/core/geom/3d/mat4/m4_normal_matrix3.d.ts +20 -0
- package/src/core/geom/3d/mat4/m4_normal_matrix3.d.ts.map +1 -0
- package/src/core/geom/3d/mat4/m4_normal_matrix3.js +39 -0
- package/src/core/geom/3d/mat4/m4_transform_direction_v3_buffer.d.ts +12 -0
- package/src/core/geom/3d/mat4/m4_transform_direction_v3_buffer.d.ts.map +1 -0
- package/src/core/geom/3d/mat4/m4_transform_direction_v3_buffer.js +55 -0
- package/src/core/geom/3d/mat4/m4_transform_v3_buffer.d.ts +12 -0
- package/src/core/geom/3d/mat4/m4_transform_v3_buffer.d.ts.map +1 -0
- package/src/core/geom/3d/mat4/m4_transform_v3_buffer.js +30 -0
- package/src/core/geom/3d/morton/mortonEncode_LUT.d.ts +4 -9
- package/src/core/geom/3d/morton/mortonEncode_LUT.d.ts.map +1 -1
- package/src/core/geom/3d/morton/mortonEncode_LUT.js +7 -143
- package/src/core/geom/3d/morton/mortonEncode_magicbits.d.ts +4 -9
- package/src/core/geom/3d/morton/mortonEncode_magicbits.d.ts.map +1 -1
- package/src/core/geom/3d/morton/mortonEncode_magicbits.js +7 -20
- package/src/core/geom/3d/morton/v3_morton_encode.d.ts +2 -2
- package/src/core/geom/3d/morton/v3_morton_encode.d.ts.map +1 -1
- package/src/core/geom/3d/morton/v3_morton_encode.js +2 -2
- package/src/core/geom/3d/morton/v3_morton_encode_bounded.d.ts +2 -2
- package/src/core/geom/3d/morton/v3_morton_encode_bounded.d.ts.map +1 -1
- package/src/core/geom/3d/morton/v3_morton_encode_bounded.js +1 -1
- package/src/core/geom/3d/morton/v3_morton_encode_lut.d.ts +12 -0
- package/src/core/geom/3d/morton/v3_morton_encode_lut.d.ts.map +1 -0
- package/src/core/geom/3d/morton/v3_morton_encode_lut.js +143 -0
- package/src/core/geom/3d/morton/v3_morton_encode_magicbits.d.ts +12 -0
- package/src/core/geom/3d/morton/v3_morton_encode_magicbits.d.ts.map +1 -0
- package/src/core/geom/3d/morton/v3_morton_encode_magicbits.js +20 -0
- package/src/core/geom/3d/normal/hemioct/encode_unit3_hemioct.d.ts +1 -14
- package/src/core/geom/3d/normal/hemioct/encode_unit3_hemioct.d.ts.map +1 -1
- package/src/core/geom/3d/normal/hemioct/encode_unit3_hemioct.js +5 -29
- package/src/core/geom/3d/normal/hemioct/encode_unit_to_hemioct.d.ts +15 -0
- package/src/core/geom/3d/normal/hemioct/encode_unit_to_hemioct.d.ts.map +1 -0
- package/src/core/geom/3d/normal/hemioct/encode_unit_to_hemioct.js +28 -0
- package/src/core/geom/3d/normal/lambert_azimuth/decode_azimuth_to_unit.d.ts +9 -0
- package/src/core/geom/3d/normal/lambert_azimuth/decode_azimuth_to_unit.d.ts.map +1 -0
- package/src/core/geom/3d/normal/{lamber_azimuth/transform.js → lambert_azimuth/decode_azimuth_to_unit.js} +30 -61
- package/src/core/geom/3d/normal/lambert_azimuth/encode_unit_to_azimuth.d.ts +10 -0
- package/src/core/geom/3d/normal/lambert_azimuth/encode_unit_to_azimuth.d.ts.map +1 -0
- package/src/core/geom/3d/normal/lambert_azimuth/encode_unit_to_azimuth.js +19 -0
- package/src/core/geom/3d/normal/spherical/decode_spheremap_to_unit.d.ts +9 -0
- package/src/core/geom/3d/normal/spherical/decode_spheremap_to_unit.d.ts.map +1 -0
- package/src/core/geom/3d/normal/spherical/decode_spheremap_to_unit.js +38 -0
- package/src/core/geom/3d/normal/spherical/{sphere_map_transform.d.ts → encode_unit_to_spheremap.d.ts} +2 -2
- package/src/core/geom/3d/normal/spherical/encode_unit_to_spheremap.d.ts.map +1 -0
- package/src/core/geom/3d/normal/spherical/encode_unit_to_spheremap.js +30 -0
- package/src/core/geom/3d/octahedra/octahedral_uv_to_direction.js +2 -2
- package/src/core/geom/3d/plane/is_point_within_planes.d.ts +4 -10
- package/src/core/geom/3d/plane/is_point_within_planes.d.ts.map +1 -1
- package/src/core/geom/3d/plane/is_point_within_planes.js +7 -46
- package/src/core/geom/3d/plane/plane3_compute_3_plane_intersection.d.ts +25 -0
- package/src/core/geom/3d/plane/plane3_compute_3_plane_intersection.d.ts.map +1 -0
- package/src/core/geom/3d/plane/plane3_compute_3_plane_intersection.js +72 -0
- package/src/core/geom/3d/plane/plane3_compute_3_plane_intersection_from_three.d.ts +11 -0
- package/src/core/geom/3d/plane/plane3_compute_3_plane_intersection_from_three.d.ts.map +1 -0
- package/src/core/geom/3d/plane/plane3_compute_3_plane_intersection_from_three.js +27 -0
- package/src/core/geom/3d/plane/plane3_compute_convex_3_plane_intersection.d.ts +4 -22
- package/src/core/geom/3d/plane/plane3_compute_convex_3_plane_intersection.d.ts.map +1 -1
- package/src/core/geom/3d/plane/plane3_compute_convex_3_plane_intersection.js +7 -72
- package/src/core/geom/3d/plane/plane3_compute_intersection.d.ts +17 -0
- package/src/core/geom/3d/plane/plane3_compute_intersection.d.ts.map +1 -0
- package/src/core/geom/3d/plane/plane3_compute_intersection.js +76 -0
- package/src/core/geom/3d/plane/plane3_compute_intersection_objects.d.ts +14 -0
- package/src/core/geom/3d/plane/plane3_compute_intersection_objects.d.ts.map +1 -0
- package/src/core/geom/3d/plane/plane3_compute_intersection_objects.js +82 -0
- package/src/core/geom/3d/plane/plane3_compute_plane_intersection.d.ts +4 -11
- package/src/core/geom/3d/plane/plane3_compute_plane_intersection.d.ts.map +1 -1
- package/src/core/geom/3d/plane/plane3_compute_plane_intersection.js +7 -82
- package/src/core/geom/3d/plane/plane3_contains_point_within_set.d.ts +13 -0
- package/src/core/geom/3d/plane/plane3_contains_point_within_set.d.ts.map +1 -0
- package/src/core/geom/3d/plane/plane3_contains_point_within_set.js +46 -0
- package/src/core/geom/3d/plane/plane3_intersect_plane.d.ts +4 -14
- package/src/core/geom/3d/plane/plane3_intersect_plane.d.ts.map +1 -1
- package/src/core/geom/3d/plane/plane3_intersect_plane.js +7 -76
- package/src/core/geom/3d/plane/plane3_matrix4_project.js +4 -4
- package/src/core/geom/3d/plane/plane3_three_compute_convex_3_plane_intersection.d.ts +4 -8
- package/src/core/geom/3d/plane/plane3_three_compute_convex_3_plane_intersection.d.ts.map +1 -1
- package/src/core/geom/3d/plane/plane3_three_compute_convex_3_plane_intersection.js +7 -27
- package/src/core/geom/3d/quaternion/quat3_createFromAxisAngle.d.ts +4 -5
- package/src/core/geom/3d/quaternion/quat3_createFromAxisAngle.d.ts.map +1 -1
- package/src/core/geom/3d/quaternion/quat3_createFromAxisAngle.js +7 -11
- package/src/core/geom/3d/quaternion/quat3_decode_from_uint32.d.ts +12 -0
- package/src/core/geom/3d/quaternion/quat3_decode_from_uint32.d.ts.map +1 -0
- package/src/core/geom/3d/quaternion/quat3_decode_from_uint32.js +66 -0
- package/src/core/geom/3d/quaternion/quat3_encode_to_uint32.d.ts +14 -0
- package/src/core/geom/3d/quaternion/quat3_encode_to_uint32.d.ts.map +1 -0
- package/src/core/geom/3d/quaternion/quat3_encode_to_uint32.js +110 -0
- package/src/core/geom/3d/quaternion/quat3_from_axis_angle.d.ts +8 -0
- package/src/core/geom/3d/quaternion/quat3_from_axis_angle.d.ts.map +1 -0
- package/src/core/geom/3d/quaternion/quat3_from_axis_angle.js +11 -0
- package/src/core/geom/3d/quaternion/quat_decode_from_uint32.d.ts +4 -9
- package/src/core/geom/3d/quaternion/quat_decode_from_uint32.d.ts.map +1 -1
- package/src/core/geom/3d/quaternion/quat_decode_from_uint32.js +7 -57
- package/src/core/geom/3d/quaternion/quat_encode_to_uint32.d.ts +4 -11
- package/src/core/geom/3d/quaternion/quat_encode_to_uint32.d.ts.map +1 -1
- package/src/core/geom/3d/quaternion/quat_encode_to_uint32.js +7 -110
- package/src/core/geom/3d/ray/Ray3.js +4 -4
- package/src/core/geom/3d/ray/ray3_array_apply_matrix4.js +2 -2
- package/src/core/geom/3d/ray/ray3_array_compose.d.ts +4 -9
- package/src/core/geom/3d/ray/ray3_array_compose.d.ts.map +1 -1
- package/src/core/geom/3d/ray/ray3_array_compose.js +7 -19
- package/src/core/geom/3d/ray/ray3_compose_array.d.ts +12 -0
- package/src/core/geom/3d/ray/ray3_compose_array.d.ts.map +1 -0
- package/src/core/geom/3d/ray/ray3_compose_array.js +19 -0
- package/src/core/geom/3d/ray/ray3_compute_closest_point.d.ts +16 -0
- package/src/core/geom/3d/ray/ray3_compute_closest_point.d.ts.map +1 -0
- package/src/core/geom/3d/ray/ray3_compute_closest_point.js +43 -0
- package/src/core/geom/3d/ray/ray3_compute_nearest_point_to_point.d.ts +4 -13
- package/src/core/geom/3d/ray/ray3_compute_nearest_point_to_point.d.ts.map +1 -1
- package/src/core/geom/3d/ray/ray3_compute_nearest_point_to_point.js +7 -43
- package/src/core/geom/3d/ray/ray3_compute_point_projection_t.d.ts +15 -0
- package/src/core/geom/3d/ray/ray3_compute_point_projection_t.d.ts.map +1 -0
- package/src/core/geom/3d/ray/ray3_compute_point_projection_t.js +31 -0
- package/src/core/geom/3d/ray/ray3_distance_to_point.d.ts +4 -12
- package/src/core/geom/3d/ray/ray3_distance_to_point.d.ts.map +1 -1
- package/src/core/geom/3d/ray/ray3_distance_to_point.js +7 -31
- package/src/core/geom/3d/ray/ray3_shift_origin_along_direction.d.ts +4 -7
- package/src/core/geom/3d/ray/ray3_shift_origin_along_direction.d.ts.map +1 -1
- package/src/core/geom/3d/ray/ray3_shift_origin_along_direction.js +7 -35
- package/src/core/geom/3d/ray/ray3_shift_origin_along_direction_array.d.ts +10 -0
- package/src/core/geom/3d/ray/ray3_shift_origin_along_direction_array.d.ts.map +1 -0
- package/src/core/geom/3d/ray/ray3_shift_origin_along_direction_array.js +35 -0
- package/src/core/geom/3d/shape/AbstractShape3D.d.ts +13 -0
- package/src/core/geom/3d/shape/AbstractShape3D.d.ts.map +1 -1
- package/src/core/geom/3d/shape/AbstractShape3D.js +16 -0
- package/src/core/geom/3d/shape/BoxShape3D.d.ts +1 -0
- package/src/core/geom/3d/shape/BoxShape3D.d.ts.map +1 -1
- package/src/core/geom/3d/shape/BoxShape3D.js +21 -5
- package/src/core/geom/3d/shape/CapsuleShape3D.d.ts +1 -0
- package/src/core/geom/3d/shape/CapsuleShape3D.d.ts.map +1 -1
- package/src/core/geom/3d/shape/CapsuleShape3D.js +23 -4
- package/src/core/geom/3d/shape/ConvexHullShape3D.js +3 -3
- package/src/core/geom/3d/shape/CylinderShape3D.js +2 -2
- package/src/core/geom/3d/shape/MeshShape3D.d.ts +39 -4
- package/src/core/geom/3d/shape/MeshShape3D.d.ts.map +1 -1
- package/src/core/geom/3d/shape/MeshShape3D.js +120 -11
- package/src/core/geom/3d/shape/SphereShape3D.d.ts +1 -0
- package/src/core/geom/3d/shape/SphereShape3D.d.ts.map +1 -1
- package/src/core/geom/3d/shape/SphereShape3D.js +17 -2
- package/src/core/geom/3d/shape/TransformedShape3D.d.ts +7 -3
- package/src/core/geom/3d/shape/TransformedShape3D.d.ts.map +1 -1
- package/src/core/geom/3d/shape/TransformedShape3D.js +3 -1
- package/src/core/geom/3d/shape/Triangle3D.d.ts +1 -1
- package/src/core/geom/3d/shape/Triangle3D.js +5 -5
- package/src/core/geom/3d/shape/shape3_mesh_from_geometry.d.ts +30 -0
- package/src/core/geom/3d/shape/shape3_mesh_from_geometry.d.ts.map +1 -0
- package/src/core/geom/3d/shape/shape3_mesh_from_geometry.js +64 -0
- package/src/core/geom/3d/shape/shape_mesh_from_geometry.d.ts +4 -27
- package/src/core/geom/3d/shape/shape_mesh_from_geometry.d.ts.map +1 -1
- package/src/core/geom/3d/shape/shape_mesh_from_geometry.js +4 -61
- package/src/core/geom/3d/shape/util/shape3_voxelize_to_grid.d.ts +61 -0
- package/src/core/geom/3d/shape/util/shape3_voxelize_to_grid.d.ts.map +1 -0
- package/src/core/geom/3d/shape/util/shape3_voxelize_to_grid.js +153 -0
- package/src/core/geom/3d/shape/util/shape3d_voxelize_to_grid.d.ts +4 -58
- package/src/core/geom/3d/shape/util/shape3d_voxelize_to_grid.d.ts.map +1 -1
- package/src/core/geom/3d/shape/util/shape3d_voxelize_to_grid.js +7 -153
- package/src/core/geom/3d/sphere/compute_bounding_sphere_of_2_spheres.d.ts +4 -5
- package/src/core/geom/3d/sphere/compute_bounding_sphere_of_2_spheres.d.ts.map +1 -1
- package/src/core/geom/3d/sphere/compute_bounding_sphere_of_2_spheres.js +7 -74
- package/src/core/geom/3d/sphere/harmonics/sh3_dering_optimize_positive.js +2 -2
- package/src/core/geom/3d/sphere/harmonics/sh3_rotate.d.ts +8 -0
- package/src/core/geom/3d/sphere/harmonics/sh3_rotate.d.ts.map +1 -0
- package/src/core/geom/3d/sphere/harmonics/sh3_rotate.js +94 -0
- package/src/core/geom/3d/sphere/harmonics/sh3_rotate_bl.d.ts +4 -5
- package/src/core/geom/3d/sphere/harmonics/sh3_rotate_bl.d.ts.map +1 -1
- package/src/core/geom/3d/sphere/harmonics/sh3_rotate_bl.js +7 -94
- package/src/core/geom/3d/sphere/harmonics/sh_compute_K.d.ts +4 -6
- package/src/core/geom/3d/sphere/harmonics/sh_compute_K.d.ts.map +1 -1
- package/src/core/geom/3d/sphere/harmonics/sh_compute_K.js +7 -17
- package/src/core/geom/3d/sphere/harmonics/sh_normalization_factor.d.ts +9 -0
- package/src/core/geom/3d/sphere/harmonics/sh_normalization_factor.d.ts.map +1 -0
- package/src/core/geom/3d/sphere/harmonics/sh_normalization_factor.js +17 -0
- package/src/core/geom/3d/sphere/sphere_array_intersects_point.d.ts +4 -7
- package/src/core/geom/3d/sphere/sphere_array_intersects_point.d.ts.map +1 -1
- package/src/core/geom/3d/sphere/sphere_array_intersects_point.js +7 -15
- package/src/core/geom/3d/sphere/sphere_array_intersects_ray.d.ts +4 -10
- package/src/core/geom/3d/sphere/sphere_array_intersects_ray.d.ts.map +1 -1
- package/src/core/geom/3d/sphere/sphere_array_intersects_ray.js +7 -25
- package/src/core/geom/3d/sphere/sphere_compute_bounding_of_2_spheres.d.ts +8 -0
- package/src/core/geom/3d/sphere/sphere_compute_bounding_of_2_spheres.d.ts.map +1 -0
- package/src/core/geom/3d/sphere/sphere_compute_bounding_of_2_spheres.js +74 -0
- package/src/core/geom/3d/sphere/sphere_contains_point.d.ts +13 -0
- package/src/core/geom/3d/sphere/sphere_contains_point.d.ts.map +1 -0
- package/src/core/geom/3d/sphere/sphere_contains_point.js +29 -0
- package/src/core/geom/3d/sphere/sphere_fibonacci_point.d.ts +2 -2
- package/src/core/geom/3d/sphere/sphere_fibonacci_point.d.ts.map +1 -1
- package/src/core/geom/3d/sphere/sphere_fibonacci_point.js +1 -1
- package/src/core/geom/3d/sphere/sphere_intersects_point.d.ts +4 -10
- package/src/core/geom/3d/sphere/sphere_intersects_point.d.ts.map +1 -1
- package/src/core/geom/3d/sphere/sphere_intersects_point.js +7 -29
- package/src/core/geom/3d/sphere/sphere_matrix4_transform.d.ts +7 -0
- package/src/core/geom/3d/sphere/sphere_matrix4_transform.d.ts.map +1 -1
- package/src/core/geom/3d/sphere/sphere_matrix4_transform.js +6 -2
- package/src/core/geom/3d/sphere/sphere_packed_contains_point.d.ts +10 -0
- package/src/core/geom/3d/sphere/sphere_packed_contains_point.d.ts.map +1 -0
- package/src/core/geom/3d/sphere/sphere_packed_contains_point.js +15 -0
- package/src/core/geom/3d/sphere/sphere_packed_intersects_ray.d.ts +13 -0
- package/src/core/geom/3d/sphere/sphere_packed_intersects_ray.d.ts.map +1 -0
- package/src/core/geom/3d/sphere/sphere_packed_intersects_ray.js +25 -0
- package/src/core/geom/3d/sphere/sphere_project.js +2 -2
- package/src/core/geom/3d/sphere/sphere_projected_radius_sqr.d.ts +9 -0
- package/src/core/geom/3d/sphere/sphere_projected_radius_sqr.d.ts.map +1 -0
- package/src/core/geom/3d/sphere/sphere_projected_radius_sqr.js +45 -0
- package/src/core/geom/3d/sphere/sphere_projected_sphere_radius_sqr.d.ts +4 -6
- package/src/core/geom/3d/sphere/sphere_projected_sphere_radius_sqr.d.ts.map +1 -1
- package/src/core/geom/3d/sphere/sphere_projected_sphere_radius_sqr.js +7 -45
- package/src/core/geom/3d/sphere/sphere_radius_sqr_from_v3_array_transformed.d.ts +4 -6
- package/src/core/geom/3d/sphere/sphere_radius_sqr_from_v3_array_transformed.d.ts.map +1 -1
- package/src/core/geom/3d/sphere/sphere_radius_sqr_from_v3_array_transformed.js +7 -32
- package/src/core/geom/3d/sphere/sphere_radius_sqr_from_v3_buffer_transformed.d.ts +9 -0
- package/src/core/geom/3d/sphere/sphere_radius_sqr_from_v3_buffer_transformed.d.ts.map +1 -0
- package/src/core/geom/3d/sphere/sphere_radius_sqr_from_v3_buffer_transformed.js +32 -0
- package/src/core/geom/3d/sphere/sphere_spherical_from_cartesian.d.ts +10 -0
- package/src/core/geom/3d/sphere/sphere_spherical_from_cartesian.d.ts.map +1 -0
- package/src/core/geom/3d/sphere/sphere_spherical_from_cartesian.js +29 -0
- package/src/core/geom/3d/sphere/spherical_from_cartesian.d.ts +4 -7
- package/src/core/geom/3d/sphere/spherical_from_cartesian.d.ts.map +1 -1
- package/src/core/geom/3d/sphere/spherical_from_cartesian.js +7 -29
- package/src/core/geom/3d/tetrahedra/compute_bounding_simplex_3d.js +5 -5
- package/src/core/geom/3d/tetrahedra/compute_tetrahedral_mesh_from_surface.d.ts.map +1 -1
- package/src/core/geom/3d/tetrahedra/compute_tetrahedral_mesh_from_surface.js +3 -5
- package/src/core/geom/3d/tetrahedra/compute_tetrahedron_quality.d.ts +4 -12
- package/src/core/geom/3d/tetrahedra/compute_tetrahedron_quality.d.ts.map +1 -1
- package/src/core/geom/3d/tetrahedra/compute_tetrahedron_quality.js +4 -19
- package/src/core/geom/3d/tetrahedra/compute_tetrahedron_volume.d.ts +4 -6
- package/src/core/geom/3d/tetrahedra/compute_tetrahedron_volume.d.ts.map +1 -1
- package/src/core/geom/3d/tetrahedra/compute_tetrahedron_volume.js +7 -18
- package/src/core/geom/3d/tetrahedra/delaunay/compute_delaunay_tetrahedral_mesh.js +2 -2
- package/src/core/geom/3d/tetrahedra/delaunay/fill_in_a_cavity.d.ts +4 -7
- package/src/core/geom/3d/tetrahedra/delaunay/fill_in_a_cavity.d.ts.map +1 -1
- package/src/core/geom/3d/tetrahedra/delaunay/fill_in_a_cavity.js +7 -166
- package/src/core/geom/3d/tetrahedra/delaunay/tetrahedral_mesh_fill_cavity.d.ts +10 -0
- package/src/core/geom/3d/tetrahedra/delaunay/tetrahedral_mesh_fill_cavity.d.ts.map +1 -0
- package/src/core/geom/3d/tetrahedra/delaunay/tetrahedral_mesh_fill_cavity.js +166 -0
- package/src/core/geom/3d/tetrahedra/prototypeTetrahedraBuilder.js +2 -2
- package/src/core/geom/3d/tetrahedra/prototype_tetrahedrize_mesh.js +6 -8
- package/src/core/geom/3d/tetrahedra/tetrahedral_mesh_carve_outside_surface.js +3 -3
- package/src/core/geom/3d/tetrahedra/tetrahedral_mesh_compute_tet_quality.d.ts +15 -0
- package/src/core/geom/3d/tetrahedra/tetrahedral_mesh_compute_tet_quality.d.ts.map +1 -0
- package/src/core/geom/3d/tetrahedra/tetrahedral_mesh_compute_tet_quality.js +22 -0
- package/src/core/geom/3d/tetrahedra/tetrahedral_mesh_compute_tet_volume.d.ts +9 -0
- package/src/core/geom/3d/tetrahedra/tetrahedral_mesh_compute_tet_volume.d.ts.map +1 -0
- package/src/core/geom/3d/tetrahedra/tetrahedral_mesh_compute_tet_volume.js +18 -0
- package/src/core/geom/3d/tetrahedra/tetrahedral_mesh_get_neighbours.d.ts +24 -0
- package/src/core/geom/3d/tetrahedra/tetrahedral_mesh_get_neighbours.d.ts.map +1 -0
- package/src/core/geom/3d/tetrahedra/tetrahedral_mesh_get_neighbours.js +39 -0
- package/src/core/geom/3d/tetrahedra/tetrahedral_mesh_improve_quality.js +12 -12
- package/src/core/geom/3d/tetrahedra/tetrahedral_mesh_tet_get_neighbours.d.ts +4 -21
- package/src/core/geom/3d/tetrahedra/tetrahedral_mesh_tet_get_neighbours.d.ts.map +1 -1
- package/src/core/geom/3d/tetrahedra/tetrahedral_mesh_tet_get_neighbours.js +7 -39
- package/src/core/geom/3d/tetrahedra/tetrahedron_compute_quality.js +5 -5
- package/src/core/geom/3d/tetrahedra/tetrahedron_compute_signed_volume.js +2 -2
- package/src/core/geom/3d/tetrahedra/triangle/prototype.js +5 -4
- package/src/core/geom/3d/tetrahedra/triangle/trace_triangular_depth_map.js +2 -2
- package/src/core/geom/3d/tetrahedra/triangle/triangle_decode_depth.d.ts +2 -0
- package/src/core/geom/3d/tetrahedra/triangle/triangle_decode_depth.d.ts.map +1 -0
- package/src/core/geom/3d/tetrahedra/triangle/{triangle_encode_rasterized_depth.js → triangle_decode_depth.js} +59 -112
- package/src/core/geom/3d/tetrahedra/triangle/triangle_rasterized_depth_sample_index.d.ts +12 -0
- package/src/core/geom/3d/tetrahedra/triangle/triangle_rasterized_depth_sample_index.d.ts.map +1 -0
- package/src/core/geom/3d/tetrahedra/triangle/triangle_rasterized_depth_sample_index.js +54 -0
- package/src/core/geom/3d/tetrahedra/validate_neighbour.d.ts +10 -0
- package/src/core/geom/3d/tetrahedra/validate_neighbour.d.ts.map +1 -0
- package/src/core/geom/3d/tetrahedra/validate_neighbour.js +70 -0
- package/src/core/geom/3d/tetrahedra/validate_tetrahedral_mesh.d.ts +0 -16
- package/src/core/geom/3d/tetrahedra/validate_tetrahedral_mesh.d.ts.map +1 -1
- package/src/core/geom/3d/tetrahedra/validate_tetrahedral_mesh.js +69 -186
- package/src/core/geom/3d/tetrahedra/validate_tetrahedron_neighbourhood.d.ts +9 -0
- package/src/core/geom/3d/tetrahedra/validate_tetrahedron_neighbourhood.d.ts.map +1 -0
- package/src/core/geom/3d/tetrahedra/validate_tetrahedron_neighbourhood.js +50 -0
- package/src/core/geom/3d/topology/bounds/computeTopoMeshBoundingSphere.d.ts +4 -4
- package/src/core/geom/3d/topology/bounds/computeTopoMeshBoundingSphere.d.ts.map +1 -1
- package/src/core/geom/3d/topology/bounds/computeTopoMeshBoundingSphere.js +7 -37
- package/src/core/geom/3d/topology/bounds/computeTopoMeshBoundiningBox.d.ts +4 -4
- package/src/core/geom/3d/topology/bounds/computeTopoMeshBoundiningBox.d.ts.map +1 -1
- package/src/core/geom/3d/topology/bounds/computeTopoMeshBoundiningBox.js +7 -16
- package/src/core/geom/3d/topology/bounds/computeTriangleClusterNormalBoundingCone.d.ts +4 -6
- package/src/core/geom/3d/topology/bounds/computeTriangleClusterNormalBoundingCone.d.ts.map +1 -1
- package/src/core/geom/3d/topology/bounds/computeTriangleClusterNormalBoundingCone.js +7 -87
- package/src/core/geom/3d/topology/bounds/compute_topo_mesh_bounding_box.d.ts +7 -0
- package/src/core/geom/3d/topology/bounds/compute_topo_mesh_bounding_box.d.ts.map +1 -0
- package/src/core/geom/3d/topology/bounds/compute_topo_mesh_bounding_box.js +16 -0
- package/src/core/geom/3d/topology/bounds/compute_topo_mesh_bounding_sphere.d.ts +7 -0
- package/src/core/geom/3d/topology/bounds/compute_topo_mesh_bounding_sphere.d.ts.map +1 -0
- package/src/core/geom/3d/topology/bounds/compute_topo_mesh_bounding_sphere.js +37 -0
- package/src/core/geom/3d/topology/bounds/compute_triangle_cluster_normal_bounding_cone.d.ts +9 -0
- package/src/core/geom/3d/topology/bounds/compute_triangle_cluster_normal_bounding_cone.d.ts.map +1 -0
- package/src/core/geom/3d/topology/bounds/compute_triangle_cluster_normal_bounding_cone.js +87 -0
- package/src/core/geom/3d/topology/build_face_graph_from_mesh.d.ts +0 -7
- package/src/core/geom/3d/topology/build_face_graph_from_mesh.d.ts.map +1 -1
- package/src/core/geom/3d/topology/build_face_graph_from_mesh.js +78 -113
- package/src/core/geom/3d/topology/compareEdges.d.ts +6 -1
- package/src/core/geom/3d/topology/compareEdges.d.ts.map +1 -1
- package/src/core/geom/3d/topology/compareEdges.js +7 -16
- package/src/core/geom/3d/topology/compare_edges.d.ts +8 -0
- package/src/core/geom/3d/topology/compare_edges.d.ts.map +1 -0
- package/src/core/geom/3d/topology/compare_edges.js +16 -0
- package/src/core/geom/3d/topology/computeTopoMeshVertexDuplicates.d.ts +4 -6
- package/src/core/geom/3d/topology/computeTopoMeshVertexDuplicates.d.ts.map +1 -1
- package/src/core/geom/3d/topology/computeTopoMeshVertexDuplicates.js +7 -108
- package/src/core/geom/3d/topology/compute_topo_mesh_vertex_duplicates.d.ts +9 -0
- package/src/core/geom/3d/topology/compute_topo_mesh_vertex_duplicates.d.ts.map +1 -0
- package/src/core/geom/3d/topology/compute_topo_mesh_vertex_duplicates.js +108 -0
- package/src/core/geom/3d/topology/expandConnectivityByLocality.js +2 -2
- package/src/core/geom/3d/topology/graph_create_off_mesh_links.d.ts +8 -0
- package/src/core/geom/3d/topology/graph_create_off_mesh_links.d.ts.map +1 -0
- package/src/core/geom/3d/topology/graph_create_off_mesh_links.js +35 -0
- package/src/core/geom/3d/topology/samples/prototypeFloodFill.js +4 -4
- package/src/core/geom/3d/topology/simplify/EdgeCollapseCandidate.d.ts.map +1 -1
- package/src/core/geom/3d/topology/simplify/EdgeCollapseCandidate.js +9 -8
- package/src/core/geom/3d/topology/simplify/collapse_degenerate_edge.js +2 -2
- package/src/core/geom/3d/topology/simplify/collapse_edge.d.ts +11 -0
- package/src/core/geom/3d/topology/simplify/collapse_edge.d.ts.map +1 -0
- package/src/core/geom/3d/topology/simplify/collapse_edge.js +21 -0
- package/src/core/geom/3d/topology/simplify/computeEdgeCollapseCost.d.ts +4 -8
- package/src/core/geom/3d/topology/simplify/computeEdgeCollapseCost.d.ts.map +1 -1
- package/src/core/geom/3d/topology/simplify/computeEdgeCollapseCost.js +7 -82
- package/src/core/geom/3d/topology/simplify/compute_edge_collapse_cost.d.ts +11 -0
- package/src/core/geom/3d/topology/simplify/compute_edge_collapse_cost.d.ts.map +1 -0
- package/src/core/geom/3d/topology/simplify/compute_edge_collapse_cost.js +82 -0
- package/src/core/geom/3d/topology/simplify/compute_face_normal_change_dot_product.js +3 -3
- package/src/core/geom/3d/topology/simplify/decimate_edge_collapse_snap.js +2 -2
- package/src/core/geom/3d/topology/simplify/edge_collapse_quadratic.js +2 -2
- package/src/core/geom/3d/topology/simplify/partial_edge_collapse.d.ts +11 -0
- package/src/core/geom/3d/topology/simplify/partial_edge_collapse.d.ts.map +1 -0
- package/src/core/geom/3d/topology/simplify/{collapseEdge.js → partial_edge_collapse.js} +118 -167
- package/src/core/geom/3d/topology/simplify/prototypeMeshSimplification.js +2 -2
- package/src/core/geom/3d/topology/simplify/quadratic/apply_border_penalties_to_vertex_quadrics.d.ts +9 -0
- package/src/core/geom/3d/topology/simplify/quadratic/apply_border_penalties_to_vertex_quadrics.d.ts.map +1 -0
- package/src/core/geom/3d/topology/simplify/quadratic/apply_border_penalties_to_vertex_quadrics.js +16 -0
- package/src/core/geom/3d/topology/simplify/quadratic/apply_border_penalty_to_vertex_quadrics.d.ts +10 -0
- package/src/core/geom/3d/topology/simplify/quadratic/apply_border_penalty_to_vertex_quadrics.d.ts.map +1 -0
- package/src/core/geom/3d/topology/simplify/quadratic/apply_border_penalty_to_vertex_quadrics.js +47 -0
- package/src/core/geom/3d/topology/simplify/quadratic/build_vertex_quadrics.d.ts +9 -0
- package/src/core/geom/3d/topology/simplify/quadratic/build_vertex_quadrics.d.ts.map +1 -0
- package/src/core/geom/3d/topology/simplify/quadratic/build_vertex_quadrics.js +95 -0
- package/src/core/geom/3d/topology/simplify/quadratic/compute_edge_collapse_cost_quadratic.d.ts +4 -7
- package/src/core/geom/3d/topology/simplify/quadratic/compute_edge_collapse_cost_quadratic.d.ts.map +1 -1
- package/src/core/geom/3d/topology/simplify/quadratic/compute_edge_collapse_cost_quadratic.js +7 -28
- package/src/core/geom/3d/topology/simplify/quadratic/compute_edge_collapse_cost_quadric.d.ts +10 -0
- package/src/core/geom/3d/topology/simplify/quadratic/compute_edge_collapse_cost_quadric.d.ts.map +1 -0
- package/src/core/geom/3d/topology/simplify/quadratic/compute_edge_collapse_cost_quadric.js +28 -0
- package/src/core/geom/3d/topology/simplify/quadratic/deep_copy_vertex_quadrics.d.ts +8 -0
- package/src/core/geom/3d/topology/simplify/quadratic/deep_copy_vertex_quadrics.d.ts.map +1 -0
- package/src/core/geom/3d/topology/simplify/quadratic/deep_copy_vertex_quadrics.js +20 -0
- package/src/core/geom/3d/topology/simplify/simplifyTopoMesh.js +2 -2
- package/src/core/geom/3d/topology/simplify/simplifyTopoMesh2.js +2 -2
- package/src/core/geom/3d/topology/struct/TopoMesh.d.ts +3 -3
- package/src/core/geom/3d/topology/struct/TopoMesh.js +10 -10
- package/src/core/geom/3d/topology/struct/TopoTriangle.js +2 -2
- package/src/core/geom/3d/topology/struct/binary/BinaryTopology.d.ts.map +1 -1
- package/src/core/geom/3d/topology/struct/binary/BinaryTopology.js +18 -7
- package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_bridge_islands.js +4 -4
- package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_cleanup_faceless_references.js +2 -2
- package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_close_boundary_holes.js +2 -2
- package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_compute_face_normals.js +2 -2
- package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_compute_vertex_quadratics.d.ts +4 -11
- package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_compute_vertex_quadratics.d.ts.map +1 -1
- package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_compute_vertex_quadratics.js +4 -92
- package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_compute_vertex_quadrics.d.ts +14 -0
- package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_compute_vertex_quadrics.d.ts.map +1 -0
- package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_compute_vertex_quadrics.js +95 -0
- package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_face_decouple_islands.js +2 -2
- package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_face_island_erode.d.ts.map +1 -1
- package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_face_island_erode.js +6 -8
- package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_fill_small_holes.js +2 -2
- package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_resolve_t_junctions.d.ts +6 -0
- package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_resolve_t_junctions.d.ts.map +1 -1
- package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_resolve_t_junctions.js +139 -95
- package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_simplify.js +6 -6
- package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_simplify_by_error.d.ts.map +1 -1
- package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_simplify_by_error.js +45 -10
- package/src/core/geom/3d/topology/struct/binary/io/edge/bt_edge_collapse.js +2 -2
- package/src/core/geom/3d/topology/struct/binary/io/face/bt_face_poke.d.ts +14 -0
- package/src/core/geom/3d/topology/struct/binary/io/face/bt_face_poke.d.ts.map +1 -1
- package/src/core/geom/3d/topology/struct/binary/io/face/bt_face_poke.js +6 -2
- package/src/core/geom/3d/topology/struct/binary/io/vertex/bt_kill_only_vert.d.ts +4 -4
- package/src/core/geom/3d/topology/struct/binary/io/vertex/bt_kill_only_vert.d.ts.map +1 -1
- package/src/core/geom/3d/topology/struct/binary/io/vertex/bt_kill_only_vert.js +7 -8
- package/src/core/geom/3d/topology/struct/binary/io/vertex/bt_merge_vertices_by_distance.d.ts +10 -0
- package/src/core/geom/3d/topology/struct/binary/io/vertex/bt_merge_vertices_by_distance.d.ts.map +1 -0
- package/src/core/geom/3d/topology/struct/binary/io/vertex/bt_merge_vertices_by_distance.js +165 -0
- package/src/core/geom/3d/topology/struct/binary/io/vertex/bt_merge_verts_by_distance.d.ts +4 -7
- package/src/core/geom/3d/topology/struct/binary/io/vertex/bt_merge_verts_by_distance.d.ts.map +1 -1
- package/src/core/geom/3d/topology/struct/binary/io/vertex/bt_merge_verts_by_distance.js +7 -165
- package/src/core/geom/3d/topology/struct/binary/io/vertex/bt_vert_fuse_duplicate_edges.d.ts +4 -19
- package/src/core/geom/3d/topology/struct/binary/io/vertex/bt_vert_fuse_duplicate_edges.d.ts.map +1 -1
- package/src/core/geom/3d/topology/struct/binary/io/vertex/bt_vert_fuse_duplicate_edges.js +4 -145
- package/src/core/geom/3d/topology/struct/binary/io/vertex/bt_vert_kill.d.ts +4 -4
- package/src/core/geom/3d/topology/struct/binary/io/vertex/bt_vert_kill.d.ts.map +1 -1
- package/src/core/geom/3d/topology/struct/binary/io/vertex/bt_vert_kill.js +7 -21
- package/src/core/geom/3d/topology/struct/binary/io/vertex/bt_vertex_fuse_duplicate_edges.d.ts +22 -0
- package/src/core/geom/3d/topology/struct/binary/io/vertex/bt_vertex_fuse_duplicate_edges.d.ts.map +1 -0
- package/src/core/geom/3d/topology/struct/binary/io/vertex/bt_vertex_fuse_duplicate_edges.js +148 -0
- package/src/core/geom/3d/topology/struct/binary/io/vertex/bt_vertex_kill.d.ts +7 -0
- package/src/core/geom/3d/topology/struct/binary/io/vertex/bt_vertex_kill.d.ts.map +1 -0
- package/src/core/geom/3d/topology/struct/binary/io/vertex/bt_vertex_kill.js +21 -0
- package/src/core/geom/3d/topology/struct/binary/io/vertex/bt_vertex_kill_only.d.ts +7 -0
- package/src/core/geom/3d/topology/struct/binary/io/vertex/bt_vertex_kill_only.d.ts.map +1 -0
- package/src/core/geom/3d/topology/struct/binary/io/vertex/bt_vertex_kill_only.js +8 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_collect_boundary_segments.d.ts +14 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_collect_boundary_segments.d.ts.map +1 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_collect_boundary_segments.js +29 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_edge_is_boundary.d.ts +11 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_edge_is_boundary.d.ts.map +1 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_edge_is_boundary.js +20 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_face_get_attached_faces.d.ts +4 -9
- package/src/core/geom/3d/topology/struct/binary/query/bt_face_get_attached_faces.d.ts.map +1 -1
- package/src/core/geom/3d/topology/struct/binary/query/bt_face_get_attached_faces.js +7 -96
- package/src/core/geom/3d/topology/struct/binary/query/bt_face_get_edge_adjacent_faces.d.ts +12 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_face_get_edge_adjacent_faces.d.ts.map +1 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_face_get_edge_adjacent_faces.js +74 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_face_get_incenter.js +2 -2
- package/src/core/geom/3d/topology/struct/binary/query/bt_face_get_neighbour_faces.d.ts +4 -9
- package/src/core/geom/3d/topology/struct/binary/query/bt_face_get_neighbour_faces.d.ts.map +1 -1
- package/src/core/geom/3d/topology/struct/binary/query/bt_face_get_neighbour_faces.js +7 -74
- package/src/core/geom/3d/topology/struct/binary/query/bt_face_get_shared_loop.d.ts +15 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_face_get_shared_loop.d.ts.map +1 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_face_get_shared_loop.js +48 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_face_get_vertex_adjacent_faces.d.ts +12 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_face_get_vertex_adjacent_faces.d.ts.map +1 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_face_get_vertex_adjacent_faces.js +96 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_face_island_flood_fill.js +2 -2
- package/src/core/geom/3d/topology/struct/binary/query/bt_faces_shared_loop.d.ts +4 -12
- package/src/core/geom/3d/topology/struct/binary/query/bt_faces_shared_loop.d.ts.map +1 -1
- package/src/core/geom/3d/topology/struct/binary/query/bt_faces_shared_loop.js +4 -45
- package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_build_boundary_euclidean_distance_field.d.ts +0 -23
- package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_build_boundary_euclidean_distance_field.d.ts.map +1 -1
- package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_build_boundary_euclidean_distance_field.js +2 -54
- package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_build_face_bvh.d.ts +9 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_build_face_bvh.d.ts.map +1 -0
- package/src/{engine/navigation/mesh/bvh_build_from_bt_mesh.js → core/geom/3d/topology/struct/binary/query/bt_mesh_build_face_bvh.js} +5 -3
- package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_face_find_path.d.ts.map +1 -0
- package/src/{engine/navigation/mesh → core/geom/3d/topology/struct/binary/query}/bt_mesh_face_find_path.js +7 -9
- package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_face_find_path_polyanya.d.ts.map +1 -0
- package/src/{engine/navigation/mesh → core/geom/3d/topology/struct/binary/query}/bt_mesh_face_find_path_polyanya.js +16 -16
- package/src/{engine/navigation/mesh/bvh_query_nearest_face.d.ts → core/geom/3d/topology/struct/binary/query/bt_mesh_find_nearest_face.d.ts} +3 -3
- package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_find_nearest_face.d.ts.map +1 -0
- package/src/{engine/navigation/mesh/bvh_query_nearest_face.js → core/geom/3d/topology/struct/binary/query/bt_mesh_find_nearest_face.js} +9 -11
- package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_sample_interior_grid_points.js +3 -3
- package/src/{engine/navigation/mesh/bvh_segment_penetrates_mesh.d.ts → core/geom/3d/topology/struct/binary/query/bt_mesh_segment_penetrates_surface.d.ts} +3 -3
- package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_segment_penetrates_surface.d.ts.map +1 -0
- package/src/{engine/navigation/mesh/bvh_segment_penetrates_mesh.js → core/geom/3d/topology/struct/binary/query/bt_mesh_segment_penetrates_surface.js} +4 -4
- package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_walk_boundary_loops.js +3 -3
- package/src/core/geom/3d/topology/struct/binary/query/bt_query_edge_is_boundary.d.ts +4 -8
- package/src/core/geom/3d/topology/struct/binary/query/bt_query_edge_is_boundary.d.ts.map +1 -1
- package/src/core/geom/3d/topology/struct/binary/query/bt_query_edge_is_boundary.js +4 -17
- package/src/core/geom/3d/topology/tm_edge_kill.js +2 -2
- package/src/core/geom/3d/topology/tm_edge_kill_only.d.ts +7 -0
- package/src/core/geom/3d/topology/tm_edge_kill_only.d.ts.map +1 -0
- package/src/core/geom/3d/topology/tm_edge_kill_only.js +35 -0
- package/src/core/geom/3d/topology/tm_face_area.js +2 -2
- package/src/core/geom/3d/topology/tm_face_kill.js +2 -2
- package/src/core/geom/3d/topology/tm_face_kill_only.d.ts +7 -0
- package/src/core/geom/3d/topology/tm_face_kill_only.d.ts.map +1 -0
- package/src/core/geom/3d/topology/tm_face_kill_only.js +12 -0
- package/src/core/geom/3d/topology/tm_face_normal.js +2 -2
- package/src/core/geom/3d/topology/tm_kill_only_edge.d.ts +4 -4
- package/src/core/geom/3d/topology/tm_kill_only_edge.d.ts.map +1 -1
- package/src/core/geom/3d/topology/tm_kill_only_edge.js +7 -35
- package/src/core/geom/3d/topology/tm_kill_only_face.d.ts +4 -4
- package/src/core/geom/3d/topology/tm_kill_only_face.d.ts.map +1 -1
- package/src/core/geom/3d/topology/tm_kill_only_face.js +7 -12
- package/src/core/geom/3d/topology/tm_kill_only_vert.d.ts +4 -4
- package/src/core/geom/3d/topology/tm_kill_only_vert.d.ts.map +1 -1
- package/src/core/geom/3d/topology/tm_kill_only_vert.js +7 -14
- package/src/core/geom/3d/topology/tm_vert_kill.d.ts +4 -4
- package/src/core/geom/3d/topology/tm_vert_kill.d.ts.map +1 -1
- package/src/core/geom/3d/topology/tm_vert_kill.js +7 -19
- package/src/core/geom/3d/topology/tm_vert_splice.d.ts +4 -9
- package/src/core/geom/3d/topology/tm_vert_splice.d.ts.map +1 -1
- package/src/core/geom/3d/topology/tm_vert_splice.js +7 -64
- package/src/core/geom/3d/topology/tm_vertex_compute_normal.js +2 -2
- package/src/core/geom/3d/topology/tm_vertex_kill.d.ts +7 -0
- package/src/core/geom/3d/topology/tm_vertex_kill.d.ts.map +1 -0
- package/src/core/geom/3d/topology/tm_vertex_kill.js +19 -0
- package/src/core/geom/3d/topology/tm_vertex_kill_only.d.ts +7 -0
- package/src/core/geom/3d/topology/tm_vertex_kill_only.d.ts.map +1 -0
- package/src/core/geom/3d/topology/tm_vertex_kill_only.js +14 -0
- package/src/core/geom/3d/topology/tm_vertex_splice.d.ts +12 -0
- package/src/core/geom/3d/topology/tm_vertex_splice.d.ts.map +1 -0
- package/src/core/geom/3d/topology/tm_vertex_splice.js +64 -0
- package/src/core/geom/3d/topology/tm_weld_duplicate_vertices.js +4 -4
- package/src/core/geom/3d/triangle/computeTriangleClosestPointToPointBarycentric.d.ts +4 -17
- package/src/core/geom/3d/triangle/computeTriangleClosestPointToPointBarycentric.d.ts.map +1 -1
- package/src/core/geom/3d/triangle/computeTriangleClosestPointToPointBarycentric.js +7 -167
- package/src/core/geom/3d/triangle/computeTriangleRayIntersection.d.ts +4 -20
- package/src/core/geom/3d/triangle/computeTriangleRayIntersection.d.ts.map +1 -1
- package/src/core/geom/3d/triangle/computeTriangleRayIntersection.js +4 -157
- package/src/core/geom/3d/triangle/computeTriangleRayIntersectionBarycentric.d.ts +4 -22
- package/src/core/geom/3d/triangle/computeTriangleRayIntersectionBarycentric.d.ts.map +1 -1
- package/src/core/geom/3d/triangle/computeTriangleRayIntersectionBarycentric.js +4 -93
- package/src/core/geom/3d/triangle/computeTriangleRayIntersectionBarycentricEdge.d.ts +4 -23
- package/src/core/geom/3d/triangle/computeTriangleRayIntersectionBarycentricEdge.d.ts.map +1 -1
- package/src/core/geom/3d/triangle/computeTriangleRayIntersectionBarycentricEdge.js +7 -95
- package/src/core/geom/3d/triangle/computeTriangleRayIntersectionBarycentricGeometry.d.ts +4 -13
- package/src/core/geom/3d/triangle/computeTriangleRayIntersectionBarycentricGeometry.d.ts.map +1 -1
- package/src/core/geom/3d/triangle/computeTriangleRayIntersectionBarycentricGeometry.js +7 -55
- package/src/core/geom/3d/triangle/compute_triangle_area_3d.d.ts +4 -12
- package/src/core/geom/3d/triangle/compute_triangle_area_3d.d.ts.map +1 -1
- package/src/core/geom/3d/triangle/compute_triangle_area_3d.js +7 -50
- package/src/core/geom/3d/triangle/compute_triangle_normal.d.ts +4 -18
- package/src/core/geom/3d/triangle/compute_triangle_normal.d.ts.map +1 -1
- package/src/core/geom/3d/triangle/compute_triangle_normal.js +7 -25
- package/src/core/geom/3d/triangle/rayTriangleIntersection.d.ts +4 -10
- package/src/core/geom/3d/triangle/rayTriangleIntersection.d.ts.map +1 -1
- package/src/core/geom/3d/triangle/rayTriangleIntersection.js +7 -37
- package/src/core/geom/3d/triangle/tri3_area.d.ts +15 -0
- package/src/core/geom/3d/triangle/tri3_area.d.ts.map +1 -0
- package/src/core/geom/3d/triangle/tri3_area.js +50 -0
- package/src/core/geom/3d/triangle/tri3_closest_point_barycentric.d.ts +20 -0
- package/src/core/geom/3d/triangle/tri3_closest_point_barycentric.d.ts.map +1 -0
- package/src/core/geom/3d/triangle/tri3_closest_point_barycentric.js +167 -0
- package/src/core/geom/3d/triangle/tri3_compute_normal.d.ts +16 -0
- package/src/core/geom/3d/triangle/tri3_compute_normal.d.ts.map +1 -0
- package/src/core/geom/3d/triangle/tri3_compute_normal.js +57 -0
- package/src/core/geom/3d/triangle/tri3_compute_normal_v3_objects.d.ts +21 -0
- package/src/core/geom/3d/triangle/tri3_compute_normal_v3_objects.d.ts.map +1 -0
- package/src/core/geom/3d/triangle/tri3_compute_normal_v3_objects.js +25 -0
- package/src/core/geom/3d/triangle/tri3_compute_plane_side.d.ts +24 -0
- package/src/core/geom/3d/triangle/tri3_compute_plane_side.d.ts.map +1 -0
- package/src/core/geom/3d/triangle/tri3_compute_plane_side.js +39 -0
- package/src/core/geom/3d/triangle/tri3_compute_signed_volume.d.ts +17 -0
- package/src/core/geom/3d/triangle/tri3_compute_signed_volume.d.ts.map +1 -0
- package/src/core/geom/3d/triangle/tri3_compute_signed_volume.js +33 -0
- package/src/core/geom/3d/triangle/tri3_incenter.d.ts +19 -0
- package/src/core/geom/3d/triangle/tri3_incenter.d.ts.map +1 -0
- package/src/core/geom/3d/triangle/tri3_incenter.js +60 -0
- package/src/core/geom/3d/triangle/tri3_intersects_clipping_volume.d.ts +17 -0
- package/src/core/geom/3d/triangle/tri3_intersects_clipping_volume.d.ts.map +1 -0
- package/src/core/geom/3d/triangle/tri3_intersects_clipping_volume.js +51 -0
- package/src/core/geom/3d/triangle/tri3_mesh_compute_signed_volume.d.ts +20 -0
- package/src/core/geom/3d/triangle/tri3_mesh_compute_signed_volume.d.ts.map +1 -0
- package/src/core/geom/3d/triangle/tri3_mesh_compute_signed_volume.js +38 -0
- package/src/core/geom/3d/triangle/tri3_ray_intersection.d.ts +23 -0
- package/src/core/geom/3d/triangle/tri3_ray_intersection.d.ts.map +1 -0
- package/src/core/geom/3d/triangle/tri3_ray_intersection.js +160 -0
- package/src/core/geom/3d/triangle/tri3_ray_intersection_barycentric.d.ts +25 -0
- package/src/core/geom/3d/triangle/tri3_ray_intersection_barycentric.d.ts.map +1 -0
- package/src/core/geom/3d/triangle/tri3_ray_intersection_barycentric.js +96 -0
- package/src/core/geom/3d/triangle/tri3_ray_intersection_barycentric_edge.d.ts +26 -0
- package/src/core/geom/3d/triangle/tri3_ray_intersection_barycentric_edge.d.ts.map +1 -0
- package/src/core/geom/3d/triangle/tri3_ray_intersection_barycentric_edge.js +95 -0
- package/src/core/geom/3d/triangle/tri3_ray_intersection_indexed.d.ts +16 -0
- package/src/core/geom/3d/triangle/tri3_ray_intersection_indexed.d.ts.map +1 -0
- package/src/core/geom/3d/triangle/tri3_ray_intersection_indexed.js +55 -0
- package/src/core/geom/3d/triangle/tri3_ray_intersection_v3_objects.d.ts +13 -0
- package/src/core/geom/3d/triangle/tri3_ray_intersection_v3_objects.d.ts.map +1 -0
- package/src/core/geom/3d/triangle/tri3_ray_intersection_v3_objects.js +37 -0
- package/src/core/geom/3d/triangle/triangle3_incenter.d.ts +4 -16
- package/src/core/geom/3d/triangle/triangle3_incenter.d.ts.map +1 -1
- package/src/core/geom/3d/triangle/triangle3_incenter.js +7 -60
- package/src/core/geom/3d/triangle/triangle_compute_plane_side.d.ts +4 -21
- package/src/core/geom/3d/triangle/triangle_compute_plane_side.d.ts.map +1 -1
- package/src/core/geom/3d/triangle/triangle_compute_plane_side.js +7 -39
- package/src/core/geom/3d/triangle/triangle_compute_signed_volume.d.ts +4 -14
- package/src/core/geom/3d/triangle/triangle_compute_signed_volume.d.ts.map +1 -1
- package/src/core/geom/3d/triangle/triangle_compute_signed_volume.js +7 -33
- package/src/core/geom/3d/triangle/triangle_intersects_clipping_volume.d.ts +4 -14
- package/src/core/geom/3d/triangle/triangle_intersects_clipping_volume.d.ts.map +1 -1
- package/src/core/geom/3d/triangle/triangle_intersects_clipping_volume.js +7 -51
- package/src/core/geom/3d/triangle/triangle_mesh_compute_signed_volume.d.ts +4 -17
- package/src/core/geom/3d/triangle/triangle_mesh_compute_signed_volume.d.ts.map +1 -1
- package/src/core/geom/3d/triangle/triangle_mesh_compute_signed_volume.js +4 -35
- package/src/core/geom/3d/triangle/v3_compute_triangle_normal.d.ts +4 -13
- package/src/core/geom/3d/triangle/v3_compute_triangle_normal.d.ts.map +1 -1
- package/src/core/geom/3d/triangle/v3_compute_triangle_normal.js +7 -57
- package/src/core/geom/3d/util/aabb3_emit_point_grid.d.ts +10 -0
- package/src/core/geom/3d/util/aabb3_emit_point_grid.d.ts.map +1 -0
- package/src/core/geom/3d/util/aabb3_emit_point_grid.js +42 -0
- package/src/core/geom/3d/util/make_justified_point_grid.d.ts +4 -7
- package/src/core/geom/3d/util/make_justified_point_grid.d.ts.map +1 -1
- package/src/core/geom/3d/util/make_justified_point_grid.js +7 -42
- package/src/core/geom/GEOMETRY_REVIEW_002_API_ISSUES.md +381 -0
- package/src/core/geom/GEOMETRY_REVIEW_002_NAMING.md +684 -0
- package/src/core/geom/Vector3.js +2 -2
- package/src/core/geom/Vector4.d.ts +1 -1
- package/src/core/geom/Vector4.d.ts.map +1 -1
- package/src/core/geom/Vector4.js +0 -10
- package/src/core/geom/mat3/m3_cm_from_translation.d.ts +4 -5
- package/src/core/geom/mat3/m3_cm_from_translation.d.ts.map +1 -1
- package/src/core/geom/mat3/m3_cm_from_translation.js +7 -19
- package/src/core/geom/mat3/m3_cm_invert.d.ts +4 -4
- package/src/core/geom/mat3/m3_cm_invert.d.ts.map +1 -1
- package/src/core/geom/mat3/m3_cm_invert.js +7 -45
- package/src/core/geom/mat3/m3_cm_make_translation.d.ts +8 -0
- package/src/core/geom/mat3/m3_cm_make_translation.d.ts.map +1 -0
- package/src/core/geom/mat3/m3_cm_make_translation.js +19 -0
- package/src/core/geom/mat3/m3_invert.d.ts +7 -0
- package/src/core/geom/mat3/m3_invert.d.ts.map +1 -0
- package/src/core/geom/mat3/m3_invert.js +45 -0
- package/src/core/geom/mat3/m3_make_rotation.d.ts +1 -8
- package/src/core/geom/mat3/m3_make_rotation.d.ts.map +1 -1
- package/src/core/geom/mat3/m3_make_rotation.js +5 -31
- package/src/core/geom/mat3/m3_make_rotation_TBN.d.ts +9 -0
- package/src/core/geom/mat3/m3_make_rotation_TBN.d.ts.map +1 -0
- package/src/core/geom/mat3/m3_make_rotation_TBN.js +31 -0
- package/src/core/geom/mat3/m3_multiply_vec3.d.ts +4 -5
- package/src/core/geom/mat3/m3_multiply_vec3.d.ts.map +1 -1
- package/src/core/geom/mat3/m3_multiply_vec3.js +7 -21
- package/src/core/geom/mat3/m3_scale_columns_by_vec3.d.ts +8 -0
- package/src/core/geom/mat3/m3_scale_columns_by_vec3.d.ts.map +1 -0
- package/src/core/geom/mat3/m3_scale_columns_by_vec3.js +21 -0
- package/src/core/geom/packing/computeBoundingSphereOfSpheres.d.ts +4 -9
- package/src/core/geom/packing/computeBoundingSphereOfSpheres.d.ts.map +1 -1
- package/src/core/geom/packing/computeBoundingSphereOfSpheres.js +7 -102
- package/src/core/geom/packing/max-rect/MaxRectanglesPacker.js +9 -9
- package/src/core/geom/packing/max-rect/aabb2_validate_packing.d.ts +7 -1
- package/src/core/geom/packing/max-rect/aabb2_validate_packing.d.ts.map +1 -1
- package/src/core/geom/packing/max-rect/aabb2_validate_packing.js +2 -2
- package/src/core/geom/packing/max-rect/cost/costByBestShortSide.d.ts +4 -7
- package/src/core/geom/packing/max-rect/cost/costByBestShortSide.d.ts.map +1 -1
- package/src/core/geom/packing/max-rect/cost/costByBestShortSide.js +7 -11
- package/src/core/geom/packing/max-rect/cost/costByRemainingArea.d.ts +4 -7
- package/src/core/geom/packing/max-rect/cost/costByRemainingArea.d.ts.map +1 -1
- package/src/core/geom/packing/max-rect/cost/costByRemainingArea.js +7 -14
- package/src/core/geom/packing/max-rect/cost/cost_by_best_short_side.d.ts +10 -0
- package/src/core/geom/packing/max-rect/cost/cost_by_best_short_side.d.ts.map +1 -0
- package/src/core/geom/packing/max-rect/cost/cost_by_best_short_side.js +11 -0
- package/src/core/geom/packing/max-rect/cost/cost_by_remaining_area.d.ts +10 -0
- package/src/core/geom/packing/max-rect/cost/cost_by_remaining_area.d.ts.map +1 -0
- package/src/core/geom/packing/max-rect/cost/cost_by_remaining_area.js +14 -0
- package/src/core/geom/packing/max-rect/cutArea.d.ts +4 -4
- package/src/core/geom/packing/max-rect/cutArea.d.ts.map +1 -1
- package/src/core/geom/packing/max-rect/cutArea.js +7 -85
- package/src/core/geom/packing/max-rect/cut_area.d.ts +7 -0
- package/src/core/geom/packing/max-rect/cut_area.d.ts.map +1 -0
- package/src/core/geom/packing/max-rect/cut_area.js +85 -0
- package/src/core/geom/packing/max-rect/findBestContainer.d.ts +4 -7
- package/src/core/geom/packing/max-rect/findBestContainer.d.ts.map +1 -1
- package/src/core/geom/packing/max-rect/findBestContainer.js +7 -80
- package/src/core/geom/packing/max-rect/find_best_container.d.ts +10 -0
- package/src/core/geom/packing/max-rect/find_best_container.d.ts.map +1 -0
- package/src/core/geom/packing/max-rect/find_best_container.js +80 -0
- package/src/core/geom/packing/max-rect/packMaxRectangles.d.ts +4 -7
- package/src/core/geom/packing/max-rect/packMaxRectangles.d.ts.map +1 -1
- package/src/core/geom/packing/max-rect/packMaxRectangles.js +7 -16
- package/src/core/geom/packing/max-rect/packOneBox.d.ts +4 -5
- package/src/core/geom/packing/max-rect/packOneBox.d.ts.map +1 -1
- package/src/core/geom/packing/max-rect/packOneBox.js +7 -54
- package/src/core/geom/packing/max-rect/pack_max_rectangles.d.ts +10 -0
- package/src/core/geom/packing/max-rect/pack_max_rectangles.d.ts.map +1 -0
- package/src/core/geom/packing/max-rect/pack_max_rectangles.js +16 -0
- package/src/core/geom/packing/max-rect/pack_one_box.d.ts +8 -0
- package/src/core/geom/packing/max-rect/pack_one_box.d.ts.map +1 -0
- package/src/core/geom/packing/max-rect/pack_one_box.js +54 -0
- package/src/core/geom/packing/max-rect/removeRedundantBoxes.d.ts +4 -3
- package/src/core/geom/packing/max-rect/removeRedundantBoxes.d.ts.map +1 -1
- package/src/core/geom/packing/max-rect/removeRedundantBoxes.js +7 -84
- package/src/core/geom/packing/max-rect/removeRedundantBoxesArray.d.ts +4 -3
- package/src/core/geom/packing/max-rect/removeRedundantBoxesArray.d.ts.map +1 -1
- package/src/core/geom/packing/max-rect/removeRedundantBoxesArray.js +7 -46
- package/src/core/geom/packing/max-rect/remove_redundant_boxes.d.ts +6 -0
- package/src/core/geom/packing/max-rect/remove_redundant_boxes.d.ts.map +1 -0
- package/src/core/geom/packing/max-rect/remove_redundant_boxes.js +84 -0
- package/src/core/geom/packing/max-rect/remove_redundant_boxes_from_array.d.ts +6 -0
- package/src/core/geom/packing/max-rect/remove_redundant_boxes_from_array.d.ts.map +1 -0
- package/src/core/geom/packing/max-rect/remove_redundant_boxes_from_array.js +46 -0
- package/src/core/geom/packing/sphere_compute_bounding_of_spheres.d.ts +12 -0
- package/src/core/geom/packing/sphere_compute_bounding_of_spheres.d.ts.map +1 -0
- package/src/core/geom/packing/sphere_compute_bounding_of_spheres.js +102 -0
- package/src/core/geom/random/randomPointInBox.d.ts +4 -5
- package/src/core/geom/random/randomPointInBox.d.ts.map +1 -1
- package/src/core/geom/random/randomPointInBox.js +7 -16
- package/src/core/geom/random/randomPointInCircle.d.ts +4 -6
- package/src/core/geom/random/randomPointInCircle.d.ts.map +1 -1
- package/src/core/geom/random/randomPointInCircle.js +7 -21
- package/src/core/geom/random/randomPointInPoint.d.ts +4 -5
- package/src/core/geom/random/randomPointInPoint.d.ts.map +1 -1
- package/src/core/geom/random/randomPointInPoint.js +7 -11
- package/src/core/geom/random/randomPointInSphere.d.ts +4 -6
- package/src/core/geom/random/randomPointInSphere.d.ts.map +1 -1
- package/src/core/geom/random/randomPointInSphere.js +7 -35
- package/src/core/geom/random/randomPointOnBox.d.ts +4 -5
- package/src/core/geom/random/randomPointOnBox.d.ts.map +1 -1
- package/src/core/geom/random/randomPointOnBox.js +7 -37
- package/src/core/geom/random/randomPointOnSphere.d.ts +4 -6
- package/src/core/geom/random/randomPointOnSphere.d.ts.map +1 -1
- package/src/core/geom/random/randomPointOnSphere.js +7 -26
- package/src/core/geom/random/random_point_in_box.d.ts +8 -0
- package/src/core/geom/random/random_point_in_box.d.ts.map +1 -0
- package/src/core/geom/random/random_point_in_box.js +16 -0
- package/src/core/geom/random/random_point_in_circle.d.ts +9 -0
- package/src/core/geom/random/random_point_in_circle.d.ts.map +1 -0
- package/src/core/geom/random/random_point_in_circle.js +21 -0
- package/src/core/geom/random/random_point_in_point.d.ts +8 -0
- package/src/core/geom/random/random_point_in_point.d.ts.map +1 -0
- package/src/core/geom/random/random_point_in_point.js +11 -0
- package/src/core/geom/random/random_point_in_sphere.d.ts +9 -0
- package/src/core/geom/random/random_point_in_sphere.d.ts.map +1 -0
- package/src/core/geom/random/random_point_in_sphere.js +35 -0
- package/src/core/geom/random/random_point_on_box.d.ts +8 -0
- package/src/core/geom/random/random_point_on_box.d.ts.map +1 -0
- package/src/core/geom/random/random_point_on_box.js +37 -0
- package/src/core/geom/random/random_point_on_sphere.d.ts +9 -0
- package/src/core/geom/random/random_point_on_sphere.d.ts.map +1 -0
- package/src/core/geom/random/random_point_on_sphere.js +26 -0
- package/src/core/geom/vec/vector_copy.d.ts +4 -7
- package/src/core/geom/vec/vector_copy.d.ts.map +1 -1
- package/src/core/geom/vec/vector_copy.js +7 -13
- package/src/core/geom/vec/vector_copy_offset.d.ts +10 -0
- package/src/core/geom/vec/vector_copy_offset.d.ts.map +1 -0
- package/src/core/geom/vec/vector_copy_offset.js +13 -0
- package/src/core/geom/vec/vector_scale_array.d.ts +4 -8
- package/src/core/geom/vec/vector_scale_array.d.ts.map +1 -1
- package/src/core/geom/vec/vector_scale_array.js +7 -31
- package/src/core/geom/vec/vector_scale_offset.d.ts +11 -0
- package/src/core/geom/vec/vector_scale_offset.d.ts.map +1 -0
- package/src/core/geom/vec/vector_scale_offset.js +31 -0
- package/src/core/geom/vec3/v3_add.d.ts +10 -0
- package/src/core/geom/vec3/v3_add.d.ts.map +1 -0
- package/src/core/geom/vec3/v3_add.js +13 -0
- package/src/core/geom/vec3/v3_add_array.d.ts +10 -0
- package/src/core/geom/vec3/v3_add_array.d.ts.map +1 -0
- package/src/core/geom/vec3/v3_add_array.js +19 -0
- package/src/core/geom/vec3/v3_angle.d.ts +12 -0
- package/src/core/geom/vec3/v3_angle.d.ts.map +1 -0
- package/src/core/geom/vec3/v3_angle.js +23 -0
- package/src/core/geom/vec3/v3_angle_atan2_between.d.ts +4 -9
- package/src/core/geom/vec3/v3_angle_atan2_between.d.ts.map +1 -1
- package/src/core/geom/vec3/v3_angle_atan2_between.js +7 -27
- package/src/core/geom/vec3/v3_angle_between.d.ts +4 -9
- package/src/core/geom/vec3/v3_angle_between.d.ts.map +1 -1
- package/src/core/geom/vec3/v3_angle_between.js +7 -23
- package/src/core/geom/vec3/v3_angle_cos_between.d.ts +4 -9
- package/src/core/geom/vec3/v3_angle_cos_between.d.ts.map +1 -1
- package/src/core/geom/vec3/v3_angle_cos_between.js +7 -35
- package/src/core/geom/vec3/v3_angle_stable.d.ts +12 -0
- package/src/core/geom/vec3/v3_angle_stable.d.ts.map +1 -0
- package/src/core/geom/vec3/v3_angle_stable.js +27 -0
- package/src/core/geom/vec3/v3_array_add_in_place.d.ts +4 -7
- package/src/core/geom/vec3/v3_array_add_in_place.d.ts.map +1 -1
- package/src/core/geom/vec3/v3_array_add_in_place.js +7 -13
- package/src/core/geom/vec3/v3_array_centroid.d.ts +4 -8
- package/src/core/geom/vec3/v3_array_centroid.d.ts.map +1 -1
- package/src/core/geom/vec3/v3_array_centroid.js +7 -40
- package/src/core/geom/vec3/v3_array_copy.d.ts +4 -6
- package/src/core/geom/vec3/v3_array_copy.d.ts.map +1 -1
- package/src/core/geom/vec3/v3_array_copy.js +7 -17
- package/src/core/geom/vec3/v3_array_displace_in_direction.d.ts +4 -11
- package/src/core/geom/vec3/v3_array_displace_in_direction.d.ts.map +1 -1
- package/src/core/geom/vec3/v3_array_displace_in_direction.js +7 -23
- package/src/core/geom/vec3/v3_array_equals.d.ts +4 -6
- package/src/core/geom/vec3/v3_array_equals.d.ts.map +1 -1
- package/src/core/geom/vec3/v3_array_equals.js +7 -13
- package/src/core/geom/vec3/v3_array_immediate_add.d.ts +4 -7
- package/src/core/geom/vec3/v3_array_immediate_add.d.ts.map +1 -1
- package/src/core/geom/vec3/v3_array_immediate_add.js +7 -19
- package/src/core/geom/vec3/v3_array_matrix4_rotate.d.ts +4 -8
- package/src/core/geom/vec3/v3_array_matrix4_rotate.d.ts.map +1 -1
- package/src/core/geom/vec3/v3_array_matrix4_rotate.js +7 -22
- package/src/core/geom/vec3/v3_array_normalize.d.ts +4 -6
- package/src/core/geom/vec3/v3_array_normalize.d.ts.map +1 -1
- package/src/core/geom/vec3/v3_array_normalize.js +7 -32
- package/src/core/geom/vec3/v3_array_scale.d.ts +4 -8
- package/src/core/geom/vec3/v3_array_scale.d.ts.map +1 -1
- package/src/core/geom/vec3/v3_array_scale.js +5 -16
- package/src/core/geom/vec3/v3_centroid_v3_buffer.d.ts +11 -0
- package/src/core/geom/vec3/v3_centroid_v3_buffer.d.ts.map +1 -0
- package/src/core/geom/vec3/v3_centroid_v3_buffer.js +40 -0
- package/src/core/geom/vec3/v3_compute_interior_angle.d.ts +4 -19
- package/src/core/geom/vec3/v3_compute_interior_angle.d.ts.map +1 -1
- package/src/core/geom/vec3/v3_compute_interior_angle.js +7 -26
- package/src/core/geom/vec3/v3_copy_array.d.ts +9 -0
- package/src/core/geom/vec3/v3_copy_array.d.ts.map +1 -0
- package/src/core/geom/vec3/v3_copy_array.js +17 -0
- package/src/core/geom/vec3/v3_cos_angle.d.ts +12 -0
- package/src/core/geom/vec3/v3_cos_angle.d.ts.map +1 -0
- package/src/core/geom/vec3/v3_cos_angle.js +35 -0
- package/src/core/geom/vec3/v3_displace_in_direction_to_array.d.ts +14 -0
- package/src/core/geom/vec3/v3_displace_in_direction_to_array.d.ts.map +1 -0
- package/src/core/geom/vec3/v3_displace_in_direction_to_array.js +23 -0
- package/src/core/geom/vec3/v3_dot_array.d.ts +10 -0
- package/src/core/geom/vec3/v3_dot_array.d.ts.map +1 -0
- package/src/core/geom/vec3/v3_dot_array.js +25 -0
- package/src/core/geom/vec3/v3_dot_array_array.d.ts +4 -7
- package/src/core/geom/vec3/v3_dot_array_array.d.ts.map +1 -1
- package/src/core/geom/vec3/v3_dot_array_array.js +7 -25
- package/src/core/geom/vec3/v3_equals_array.d.ts +9 -0
- package/src/core/geom/vec3/v3_equals_array.d.ts.map +1 -0
- package/src/core/geom/vec3/v3_equals_array.js +13 -0
- package/src/core/geom/vec3/v3_interior_angle.d.ts +22 -0
- package/src/core/geom/vec3/v3_interior_angle.d.ts.map +1 -0
- package/src/core/geom/vec3/v3_interior_angle.js +26 -0
- package/src/core/geom/vec3/v3_matrix3_rotate.d.ts +3 -3
- package/src/core/geom/vec3/v3_matrix3_rotate.d.ts.map +1 -1
- package/src/core/geom/vec3/v3_matrix3_rotate.js +2 -2
- package/src/core/geom/vec3/v3_matrix4_rotate.d.ts +4 -13
- package/src/core/geom/vec3/v3_matrix4_rotate.d.ts.map +1 -1
- package/src/core/geom/vec3/v3_matrix4_rotate.js +7 -51
- package/src/core/geom/vec3/v3_matrix4_rotate_array.d.ts +11 -0
- package/src/core/geom/vec3/v3_matrix4_rotate_array.d.ts.map +1 -0
- package/src/core/geom/vec3/v3_matrix4_rotate_array.js +22 -0
- package/src/core/geom/vec3/v3_matrix4_rotate_unit.d.ts +16 -0
- package/src/core/geom/vec3/v3_matrix4_rotate_unit.d.ts.map +1 -0
- package/src/core/geom/vec3/v3_matrix4_rotate_unit.js +51 -0
- package/src/core/geom/vec3/v3_multiply_scalar.d.ts +4 -8
- package/src/core/geom/vec3/v3_multiply_scalar.d.ts.map +1 -1
- package/src/core/geom/vec3/v3_multiply_scalar.js +7 -19
- package/src/core/geom/vec3/v3_normalize_array.d.ts +9 -0
- package/src/core/geom/vec3/v3_normalize_array.d.ts.map +1 -0
- package/src/core/geom/vec3/v3_normalize_array.js +32 -0
- package/src/core/geom/vec3/v3_orthonormal_matrix_from_normal.d.ts +4 -1
- package/src/core/geom/vec3/v3_orthonormal_matrix_from_normal.d.ts.map +1 -1
- package/src/core/geom/vec3/v3_orthonormal_matrix_from_normal.js +4 -1
- package/src/core/geom/vec3/v3_quat3_apply.d.ts +4 -26
- package/src/core/geom/vec3/v3_quat3_apply.d.ts.map +1 -1
- package/src/core/geom/vec3/v3_quat3_apply.js +5 -37
- package/src/core/geom/vec3/v3_quat3_apply_inverse.d.ts +4 -27
- package/src/core/geom/vec3/v3_quat3_apply_inverse.d.ts.map +1 -1
- package/src/core/geom/vec3/v3_quat3_apply_inverse.js +5 -39
- package/src/core/geom/vec3/v3_quaternion_apply.d.ts +29 -0
- package/src/core/geom/vec3/v3_quaternion_apply.d.ts.map +1 -0
- package/src/core/geom/vec3/v3_quaternion_apply.js +39 -0
- package/src/core/geom/vec3/v3_quaternion_apply_inverse.d.ts +30 -0
- package/src/core/geom/vec3/v3_quaternion_apply_inverse.d.ts.map +1 -0
- package/src/core/geom/vec3/v3_quaternion_apply_inverse.js +41 -0
- package/src/core/geom/vec3/v3_reflect.d.ts +19 -0
- package/src/core/geom/vec3/v3_reflect.d.ts.map +1 -0
- package/src/core/geom/vec3/v3_reflect.js +24 -0
- package/src/core/geom/vec3/v3_scale.d.ts +11 -0
- package/src/core/geom/vec3/v3_scale.d.ts.map +1 -0
- package/src/core/geom/vec3/v3_scale.js +19 -0
- package/src/core/geom/vec3/v3_scale_array.d.ts +11 -0
- package/src/core/geom/vec3/v3_scale_array.d.ts.map +1 -0
- package/src/core/geom/vec3/v3_scale_array.js +18 -0
- package/src/core/geom/vec3/v3_triple_cross.d.ts +32 -0
- package/src/core/geom/vec3/v3_triple_cross.d.ts.map +1 -0
- package/src/core/geom/vec3/v3_triple_cross.js +45 -0
- package/src/core/geom/vec3/v3_triple_cross_product.d.ts +4 -29
- package/src/core/geom/vec3/v3_triple_cross_product.d.ts.map +1 -1
- package/src/core/geom/vec3/v3_triple_cross_product.js +5 -43
- package/src/core/geom/vec4/v4_matrix4_multiply.d.ts +8 -0
- package/src/core/geom/vec4/v4_matrix4_multiply.d.ts.map +1 -0
- package/src/core/geom/vec4/v4_matrix4_multiply.js +42 -0
- package/src/core/geom/vec4/v4_multiply_mat4.d.ts +4 -5
- package/src/core/geom/vec4/v4_multiply_mat4.d.ts.map +1 -1
- package/src/core/geom/vec4/v4_multiply_mat4.js +7 -42
- package/src/core/graph/csr/CSRGraph.d.ts +12 -8
- package/src/core/graph/csr/CSRGraph.d.ts.map +1 -1
- package/src/core/graph/csr/CSRGraph.js +18 -10
- package/src/core/graph/csr/csr_graph_build_distance_field.d.ts +36 -0
- package/src/core/graph/csr/csr_graph_build_distance_field.d.ts.map +1 -0
- package/src/core/graph/csr/csr_graph_build_distance_field.js +112 -0
- package/src/core/graph/csr/csr_graph_find_edge.d.ts +15 -0
- package/src/core/graph/csr/csr_graph_find_edge.d.ts.map +1 -0
- package/src/core/graph/csr/csr_graph_find_edge.js +25 -0
- package/src/core/graph/csr/csr_graph_find_shortest_path.d.ts +20 -0
- package/src/core/graph/csr/csr_graph_find_shortest_path.d.ts.map +1 -0
- package/src/core/graph/csr/csr_graph_find_shortest_path.js +105 -0
- package/src/core/graph/layout/CircleLayout.d.ts.map +1 -1
- package/src/core/graph/layout/CircleLayout.js +2 -4
- package/src/core/graph/layout/box/applyCentralGravityAABB2.js +2 -2
- package/src/core/graph/metis/cluster_mesh_metis.d.ts.map +1 -1
- package/src/core/graph/metis/cluster_mesh_metis.js +8 -1
- package/src/core/graph/metis/mesh_to_metis_graph.d.ts +2 -2
- package/src/core/graph/metis/mesh_to_metis_graph.d.ts.map +1 -1
- package/src/core/graph/metis/mesh_to_metis_graph.js +3 -3
- package/src/core/graph/metis/native/MetisGraph.d.ts +26 -10
- package/src/core/graph/metis/native/MetisGraph.d.ts.map +1 -1
- package/src/core/graph/metis/native/MetisGraph.js +34 -15
- package/src/core/graph/metis/native/bisection/BisectionScratch.d.ts +2 -2
- package/src/core/graph/metis/native/bisection/BisectionScratch.d.ts.map +1 -1
- package/src/core/graph/metis/native/bisection/BisectionScratch.js +4 -2
- package/src/core/graph/metis/native/bisection/compute_2way_params.d.ts.map +1 -1
- package/src/core/graph/metis/native/bisection/compute_2way_params.js +3 -1
- package/src/core/graph/metis/native/metis_partition_kway.d.ts +2 -2
- package/src/core/graph/metis/native/metis_partition_kway.d.ts.map +1 -1
- package/src/core/graph/metis/native/metis_partition_kway.js +1 -1
- package/src/core/graph/metis/native/refine/compute_kway_params.d.ts.map +1 -1
- package/src/core/graph/metis/native/refine/compute_kway_params.js +20 -8
- package/src/core/graph/metis/native/refine/fm_kway.d.ts.map +1 -1
- package/src/core/graph/metis/native/refine/fm_kway.js +58 -33
- package/src/engine/EngineHarness.js +2 -2
- package/src/engine/animation/curve/view/AnimationCurveView.js +2 -2
- package/src/engine/asset/loaders/material/planeHash.js +2 -2
- package/src/engine/control/first-person/FirstPersonPlayerControllerSystem.d.ts.map +1 -1
- package/src/engine/control/first-person/FirstPersonPlayerControllerSystem.js +7 -7
- package/src/engine/control/first-person/prototype_first_person_controller.js +3 -3
- package/src/engine/ecs/terrain/ecs/TerrainSystem.js +6 -6
- package/src/engine/ecs/terrain/tiles/TerrainTile.js +2 -2
- package/src/engine/ecs/terrain/tiles/TerrainTileManager.js +3 -3
- package/src/engine/ecs/transform/Transform.js +7 -7
- package/src/engine/ecs/transform/TransformSerializationAdapter.js +4 -4
- package/src/engine/graphics/ecs/camera/auto_set_camera_clipping_planes.js +2 -2
- package/src/engine/graphics/ecs/camera/topdown/TopDownCameraController.js +2 -2
- package/src/engine/graphics/ecs/decal/v2/FPDecalSystem.js +8 -8
- package/src/engine/graphics/ecs/light/shadow/extend_shadow_camera_near_for_casters.d.ts.map +1 -1
- package/src/engine/graphics/ecs/light/shadow/extend_shadow_camera_near_for_casters.js +4 -6
- package/src/engine/graphics/ecs/mesh-v2/ShadedGeometry.js +2 -2
- package/src/engine/graphics/ecs/mesh-v2/ShadedGeometrySystem.js +6 -6
- package/src/engine/graphics/ecs/mesh-v2/render/ShadedGeometryRendererContext.js +3 -3
- package/src/engine/graphics/ecs/trail2d/Trail2D.d.ts +26 -5
- package/src/engine/graphics/ecs/trail2d/Trail2D.d.ts.map +1 -1
- package/src/engine/graphics/ecs/trail2d/Trail2D.js +51 -11
- package/src/engine/graphics/ecs/trail2d/Trail2DSystem.d.ts.map +1 -1
- package/src/engine/graphics/ecs/trail2d/Trail2DSystem.js +1 -0
- package/src/engine/graphics/ecs/trail2d/prototypeTrail2D.js +2 -2
- package/src/engine/graphics/ecs/trail3d/Trail3D.d.ts +186 -0
- package/src/engine/graphics/ecs/trail3d/Trail3D.d.ts.map +1 -0
- package/src/engine/graphics/ecs/trail3d/Trail3D.js +430 -0
- package/src/engine/graphics/ecs/trail3d/Trail3DFlags.d.ts +9 -0
- package/src/engine/graphics/ecs/trail3d/Trail3DFlags.d.ts.map +1 -0
- package/src/engine/graphics/ecs/trail3d/Trail3DFlags.js +18 -0
- package/src/engine/graphics/ecs/trail3d/Trail3DSystem.d.ts +55 -0
- package/src/engine/graphics/ecs/trail3d/Trail3DSystem.d.ts.map +1 -0
- package/src/engine/graphics/ecs/trail3d/Trail3DSystem.js +248 -0
- package/src/engine/graphics/ecs/trail3d/prototypeTrail3D.d.ts +2 -0
- package/src/engine/graphics/ecs/trail3d/prototypeTrail3D.d.ts.map +1 -0
- package/src/engine/graphics/ecs/trail3d/prototypeTrail3D.js +76 -0
- package/src/engine/graphics/geometry/buffered/geometry_compute_vertex_normals_indexed.js +4 -4
- package/src/engine/graphics/geometry/buffered/query/GeometrySpatialQueryAccelerator.js +2 -2
- package/src/engine/graphics/geometry/buffered/query/bvh32_geometry_nearest.d.ts.map +1 -1
- package/src/engine/graphics/geometry/buffered/query/bvh32_geometry_nearest.js +4 -6
- package/src/engine/graphics/geometry/buffered/query/bvh32_geometry_overlap_clipping_volume.d.ts.map +1 -1
- package/src/engine/graphics/geometry/buffered/query/bvh32_geometry_overlap_clipping_volume.js +2 -4
- package/src/engine/graphics/geometry/buffered/query/bvh32_geometry_raycast.js +2 -2
- package/src/engine/graphics/geometry/buffered/query/query_bvh_geometry_nearest.d.ts.map +1 -1
- package/src/engine/graphics/geometry/buffered/query/query_bvh_geometry_nearest.js +4 -6
- package/src/engine/graphics/geometry/buffered/v3_array_normalize_many.js +2 -2
- package/src/engine/graphics/geometry/computeMeshSurfaceArea.js +2 -2
- package/src/engine/graphics/geometry/geometry_construct_triangle_normal.js +2 -2
- package/src/engine/graphics/impostors/octahedral/bake/compute_bounding_sphere.js +2 -2
- package/src/engine/graphics/impostors/octahedral/bake/compute_bounding_sphere_radius_only.d.ts.map +1 -1
- package/src/engine/graphics/impostors/octahedral/bake/compute_bounding_sphere_radius_only.js +2 -4
- package/src/engine/graphics/impostors/octahedral/util/sampler2d_build_cutout.js +4 -4
- package/src/engine/graphics/particles/particular/engine/emitter/ParticleEmitter.js +8 -8
- package/src/engine/graphics/particles/particular/engine/emitter/ParticleLayer.d.ts +20 -5
- package/src/engine/graphics/particles/particular/engine/emitter/ParticleLayer.d.ts.map +1 -1
- package/src/engine/graphics/particles/particular/engine/emitter/ParticleLayer.js +2 -2
- package/src/engine/graphics/particles/particular/engine/emitter/computeEmissionFunction.js +10 -10
- package/src/engine/graphics/render/forward_plus/LightManager.d.ts.map +1 -1
- package/src/engine/graphics/render/forward_plus/LightManager.js +8 -13
- package/src/engine/graphics/render/forward_plus/assign_cluster.d.ts.map +1 -1
- package/src/engine/graphics/render/forward_plus/assign_cluster.js +1 -2
- package/src/engine/graphics/render/forward_plus/computeFrustumCorners.d.ts.map +1 -1
- package/src/engine/graphics/render/forward_plus/computeFrustumCorners.js +9 -11
- package/src/engine/graphics/render/forward_plus/model/SpotLight.js +2 -2
- package/src/engine/graphics/render/forward_plus/query/detailed_sphere_frustum_intersection_test.d.ts +8 -0
- package/src/engine/graphics/render/forward_plus/query/detailed_sphere_frustum_intersection_test.d.ts.map +1 -1
- package/src/engine/graphics/render/forward_plus/query/detailed_sphere_frustum_intersection_test.js +8 -0
- package/src/engine/graphics/render/forward_plus/query/point_light_inside_volume.d.ts +12 -2
- package/src/engine/graphics/render/forward_plus/query/point_light_inside_volume.d.ts.map +1 -1
- package/src/engine/graphics/render/forward_plus/query/point_light_inside_volume.js +18 -48
- package/src/engine/graphics/render/forward_plus/query/query_bvh_frustum_from_texture.d.ts +1 -2
- package/src/engine/graphics/render/forward_plus/query/query_bvh_frustum_from_texture.d.ts.map +1 -1
- package/src/engine/graphics/render/forward_plus/query/query_bvh_frustum_from_texture.js +2 -3
- package/src/engine/graphics/render/forward_plus/query/spot_light_inside_volume.js +2 -2
- package/src/engine/graphics/render/forward_plus/testClusterEquality.js +1 -1
- package/src/engine/graphics/render/gizmo/GizmoShapeRenderingInterface.js +5 -5
- package/src/engine/graphics/render/layers/RenderLayerUtils.d.ts.map +1 -1
- package/src/engine/graphics/render/layers/RenderLayerUtils.js +2 -4
- package/src/engine/graphics/render/make_bvh_visibility_builder.js +3 -3
- package/src/engine/graphics/render/view/CameraView.js +2 -2
- package/src/engine/graphics/sh3/fromCubeRenderTarget.js +2 -2
- package/src/engine/graphics/sh3/gi/prototypeSHGI.js +2 -2
- package/src/engine/graphics/sh3/lpv/PathTracerProbeRenderer.js +4 -4
- package/src/engine/graphics/sh3/lpv/depth/octahedral/bake_octahedral_depth_map.js +2 -2
- package/src/engine/graphics/sh3/lpv/depth/octahedral/bake_octahedral_depth_map_fibonacci.js +2 -2
- package/src/engine/graphics/sh3/lpv/depth/sh3_bake_depth.js +2 -2
- package/src/engine/graphics/sh3/path_tracer/BufferedGeometryBVH.d.ts.map +1 -1
- package/src/engine/graphics/sh3/path_tracer/BufferedGeometryBVH.js +7 -8
- package/src/engine/graphics/sh3/path_tracer/PathTracedMesh.d.ts +1 -0
- package/src/engine/graphics/sh3/path_tracer/PathTracedMesh.d.ts.map +1 -1
- package/src/engine/graphics/sh3/path_tracer/PathTracedMesh.js +20 -6
- package/src/engine/graphics/sh3/path_tracer/PathTracedRenderer.d.ts +57 -0
- package/src/engine/graphics/sh3/path_tracer/PathTracedRenderer.d.ts.map +1 -0
- package/src/engine/graphics/sh3/path_tracer/PathTracedRenderer.js +186 -0
- package/src/engine/graphics/sh3/path_tracer/PathTracedScene.d.ts.map +1 -1
- package/src/engine/graphics/sh3/path_tracer/PathTracedScene.js +166 -51
- package/src/engine/graphics/sh3/path_tracer/PathTracer.d.ts.map +1 -1
- package/src/engine/graphics/sh3/path_tracer/PathTracer.js +44 -25
- package/src/engine/graphics/sh3/path_tracer/REVIEW_001_ACTION_PLAN.md +490 -0
- package/src/engine/graphics/sh3/path_tracer/make_sky_hosek.js +4 -4
- package/src/engine/graphics/sh3/path_tracer/material/MaterialConverter.d.ts.map +1 -1
- package/src/engine/graphics/sh3/path_tracer/material/MaterialConverter.js +10 -2
- package/src/engine/graphics/sh3/path_tracer/material/StandardTexture.d.ts +6 -0
- package/src/engine/graphics/sh3/path_tracer/material/StandardTexture.d.ts.map +1 -1
- package/src/engine/graphics/sh3/path_tracer/material/StandardTexture.js +14 -0
- package/src/engine/graphics/sh3/path_tracer/prototypePathTracer.js +9 -136
- package/src/engine/graphics/sh3/path_tracer/ray_hit_apply_transform.d.ts +2 -1
- package/src/engine/graphics/sh3/path_tracer/ray_hit_apply_transform.d.ts.map +1 -1
- package/src/engine/graphics/sh3/path_tracer/ray_hit_apply_transform.js +32 -31
- package/src/engine/graphics/sh3/path_tracer/sampling/getBiasedNormalSample.d.ts +3 -3
- package/src/engine/graphics/sh3/path_tracer/sampling/getBiasedNormalSample.d.ts.map +1 -1
- package/src/engine/graphics/sh3/path_tracer/sampling/getBiasedNormalSample.js +3 -3
- package/src/engine/graphics/sh3/path_tracer/texture/sample_material.d.ts +1 -1
- package/src/engine/graphics/sh3/path_tracer/texture/sample_material.d.ts.map +1 -1
- package/src/engine/graphics/sh3/path_tracer/texture/sample_material.js +144 -133
- package/src/engine/graphics/sh3/prototypeSH3Probe.js +2 -2
- package/src/engine/graphics/sh3/sky/hosek/sky_hosek_compute_irradiance_by_direction.js +7 -7
- package/src/engine/graphics/texture/sprite/prototypeSpriteCutoutGeometry.js +5 -5
- package/src/engine/graphics/three/expand_aabb_by_transformed_three_object.js +2 -2
- package/src/engine/graphics/trail/TrailSpawnMode.d.ts +19 -0
- package/src/engine/graphics/trail/TrailSpawnMode.d.ts.map +1 -0
- package/src/engine/graphics/trail/TrailSpawnMode.js +20 -0
- package/src/engine/graphics/trail/tube/TubeMaterialX.d.ts +5 -0
- package/src/engine/graphics/trail/tube/TubeMaterialX.d.ts.map +1 -0
- package/src/engine/graphics/trail/tube/TubeMaterialX.js +80 -0
- package/src/engine/graphics/trail/tube/TubeX.d.ts +141 -0
- package/src/engine/graphics/trail/tube/TubeX.d.ts.map +1 -0
- package/src/engine/graphics/trail/tube/TubeX.js +555 -0
- package/src/engine/graphics/trail/tube/TubeXMaterialSpec.d.ts +26 -0
- package/src/engine/graphics/trail/tube/TubeXMaterialSpec.d.ts.map +1 -0
- package/src/engine/graphics/trail/tube/TubeXMaterialSpec.js +47 -0
- package/src/engine/graphics/trail/tube/TubeXPlugin.d.ts +21 -0
- package/src/engine/graphics/trail/tube/TubeXPlugin.d.ts.map +1 -0
- package/src/engine/graphics/trail/tube/TubeXPlugin.js +80 -0
- package/src/engine/graphics/trail/tube/simulator/TubeXFixedPhysicsSimulator.d.ts +14 -0
- package/src/engine/graphics/trail/tube/simulator/TubeXFixedPhysicsSimulator.d.ts.map +1 -0
- package/src/engine/graphics/trail/tube/simulator/TubeXFixedPhysicsSimulator.js +32 -0
- package/src/engine/graphics/trail/tube/tube_attributes_spec.d.ts +26 -0
- package/src/engine/graphics/trail/tube/tube_attributes_spec.d.ts.map +1 -0
- package/src/engine/graphics/trail/tube/tube_attributes_spec.js +69 -0
- package/src/engine/graphics/trail/tube/tube_frame.d.ts +32 -0
- package/src/engine/graphics/trail/tube/tube_frame.d.ts.map +1 -0
- package/src/engine/graphics/trail/tube/tube_frame.js +83 -0
- package/src/engine/graphics/util/composeMatrix4.js +2 -2
- package/src/engine/navigation/mesh/NavigationMesh.js +6 -6
- package/src/engine/navigation/mesh/PATHFINDING_PLAN.md +1 -1
- package/src/engine/navigation/mesh/build/clip_soup_against_overhangs.d.ts.map +1 -1
- package/src/engine/navigation/mesh/build/clip_soup_against_overhangs.js +5 -51
- package/src/engine/navigation/mesh/build/navmesh_build_topology.d.ts.map +1 -1
- package/src/engine/navigation/mesh/build/navmesh_build_topology.js +19 -23
- package/src/engine/network/CONGESTION_CONTROL.md +87 -0
- package/src/engine/network/NetworkSession.d.ts +7 -1
- package/src/engine/network/NetworkSession.d.ts.map +1 -1
- package/src/engine/network/NetworkSession.js +144 -0
- package/src/engine/network/README.md +7 -0
- package/src/engine/network/adapters/TransformInterpolationAdapter.js +5 -5
- package/src/engine/network/adapters/TransformReplicationAdapter.js +4 -4
- package/src/engine/network/core/MalformedPacketError.d.ts +24 -0
- package/src/engine/network/core/MalformedPacketError.d.ts.map +1 -0
- package/src/engine/network/core/MalformedPacketError.js +26 -0
- package/src/engine/network/ecs/owner_authorization.d.ts +49 -0
- package/src/engine/network/ecs/owner_authorization.d.ts.map +1 -0
- package/src/engine/network/ecs/owner_authorization.js +55 -0
- package/src/engine/network/orchestrator/NetworkPeer.d.ts +31 -0
- package/src/engine/network/orchestrator/NetworkPeer.d.ts.map +1 -1
- package/src/engine/network/orchestrator/NetworkPeer.js +89 -2
- package/src/engine/network/orchestrator/ServerAuthoritativeServer.d.ts +38 -1
- package/src/engine/network/orchestrator/ServerAuthoritativeServer.d.ts.map +1 -1
- package/src/engine/network/orchestrator/ServerAuthoritativeServer.js +75 -0
- package/src/engine/network/replication/Replicator.d.ts.map +1 -1
- package/src/engine/network/replication/Replicator.js +28 -0
- package/src/engine/network/sim/SimActionExecutor.d.ts +46 -1
- package/src/engine/network/sim/SimActionExecutor.d.ts.map +1 -1
- package/src/engine/network/sim/SimActionExecutor.js +68 -0
- package/src/engine/network/sim/Snapshotter.d.ts.map +1 -1
- package/src/engine/network/sim/Snapshotter.js +18 -2
- package/src/engine/network/transport/Channel.d.ts +12 -1
- package/src/engine/network/transport/Channel.d.ts.map +1 -1
- package/src/engine/network/transport/Channel.js +34 -1
- package/src/engine/physics/broadphase/generate_pairs.js +3 -3
- package/src/engine/physics/constraint/solve_constraints.js +3 -3
- package/src/engine/physics/ecs/PhysicsSystem.js +2 -2
- package/src/engine/physics/fluid/ecs/FluidObstacleSystem.d.ts +4 -4
- package/src/engine/physics/fluid/ecs/FluidSystem.d.ts +3 -3
- package/src/engine/physics/inverse_kinematics/two_joint_ik.js +4 -4
- package/src/engine/physics/narrowphase/box_box_manifold.d.ts.map +1 -1
- package/src/engine/physics/narrowphase/box_box_manifold.js +4 -6
- package/src/engine/physics/narrowphase/box_triangle_contact.d.ts.map +1 -1
- package/src/engine/physics/narrowphase/box_triangle_contact.js +4 -6
- package/src/engine/physics/narrowphase/capsule_contacts.d.ts.map +1 -1
- package/src/engine/physics/narrowphase/capsule_contacts.js +27 -34
- package/src/engine/physics/narrowphase/capsule_triangle_contact.js +8 -8
- package/src/engine/physics/narrowphase/compute_penetration.js +8 -8
- package/src/engine/physics/narrowphase/convex_convex_manifold.js +9 -9
- package/src/engine/physics/narrowphase/convex_decomposition.js +8 -8
- package/src/engine/physics/narrowphase/mesh_convex_hull.js +3 -3
- package/src/engine/physics/narrowphase/mesh_mesh_tet_manifold.js +3 -3
- package/src/engine/physics/narrowphase/refine_ray_concave.js +5 -5
- package/src/engine/physics/narrowphase/refine_ray_hit.js +5 -5
- package/src/engine/physics/narrowphase/sphere_box_contact.js +5 -5
- package/src/engine/physics/narrowphase/sphere_triangle_contact.js +2 -2
- package/src/engine/physics/queries/overlap_shape.js +3 -3
- package/src/engine/physics/queries/raycast.d.ts.map +1 -1
- package/src/engine/physics/queries/raycast.js +3 -5
- package/src/engine/physics/queries/shape_cast.js +3 -3
- package/src/engine/physics/solver/solve_contacts.js +6 -6
- package/src/engine/physics/vehicle/RaycastVehicle.js +4 -4
- package/src/engine/sound/SoundEngine.js +2 -2
- package/src/engine/sound/ecs/audio/AudioEmitter.d.ts +32 -1
- package/src/engine/sound/ecs/audio/AudioEmitter.d.ts.map +1 -1
- package/src/engine/sound/ecs/audio/AudioEmitter.js +40 -1
- package/src/engine/sound/ecs/audio/AudioEmitterSystem.d.ts +33 -8
- package/src/engine/sound/ecs/audio/AudioEmitterSystem.d.ts.map +1 -1
- package/src/engine/sound/ecs/audio/AudioEmitterSystem.js +90 -12
- package/src/engine/sound/ecs/audio/LiveEmitterSet.d.ts +12 -1
- package/src/engine/sound/ecs/audio/LiveEmitterSet.d.ts.map +1 -1
- package/src/engine/sound/ecs/audio/LiveEmitterSet.js +25 -4
- package/src/engine/sound/ecs/emitter/SoundEmitterSystem.js +1 -1
- package/src/engine/sound/simulation/AcousticSimulator.d.ts +134 -0
- package/src/engine/sound/simulation/AcousticSimulator.d.ts.map +1 -0
- package/src/engine/sound/simulation/AcousticSimulator.js +637 -0
- package/src/engine/sound/simulation/IMPLEMENTATION_PLAN.md +432 -0
- package/src/engine/sound/simulation/PROBE_PLACEMENT.md +250 -0
- package/src/engine/sound/simulation/PROBE_TRANSFER_RESEARCH.md +322 -0
- package/src/engine/sound/simulation/README.md +277 -0
- package/src/engine/sound/simulation/REFLECTION_IR_PLAN.md +261 -0
- package/src/engine/sound/simulation/VISIBILITY_GRAPH_PLAN.md +121 -0
- package/src/engine/sound/simulation/configureAcousticSimulation.d.ts +31 -0
- package/src/engine/sound/simulation/configureAcousticSimulation.d.ts.map +1 -0
- package/src/engine/sound/simulation/configureAcousticSimulation.js +48 -0
- package/src/engine/sound/simulation/core/AcousticMedium.d.ts +60 -0
- package/src/engine/sound/simulation/core/AcousticMedium.d.ts.map +1 -0
- package/src/engine/sound/simulation/core/AcousticMedium.js +113 -0
- package/src/engine/sound/simulation/core/AcousticMediumSerializationAdapter.d.ts +22 -0
- package/src/engine/sound/simulation/core/AcousticMediumSerializationAdapter.d.ts.map +1 -0
- package/src/engine/sound/simulation/core/AcousticMediumSerializationAdapter.js +27 -0
- package/src/engine/sound/simulation/core/AcousticOccluderIndex.d.ts +85 -0
- package/src/engine/sound/simulation/core/AcousticOccluderIndex.d.ts.map +1 -0
- package/src/engine/sound/simulation/core/AcousticOccluderIndex.js +314 -0
- package/src/engine/sound/simulation/core/AcousticRegionIndex.d.ts +56 -0
- package/src/engine/sound/simulation/core/AcousticRegionIndex.d.ts.map +1 -0
- package/src/engine/sound/simulation/core/AcousticRegionIndex.js +159 -0
- package/src/engine/sound/simulation/core/AcousticSolution.d.ts +66 -0
- package/src/engine/sound/simulation/core/AcousticSolution.d.ts.map +1 -0
- package/src/engine/sound/simulation/core/AcousticSolution.js +90 -0
- package/src/engine/sound/simulation/core/AcousticSourceState.d.ts +55 -0
- package/src/engine/sound/simulation/core/AcousticSourceState.d.ts.map +1 -0
- package/src/engine/sound/simulation/core/AcousticSourceState.js +109 -0
- package/src/engine/sound/simulation/core/AcousticVolumeRegion.d.ts +45 -0
- package/src/engine/sound/simulation/core/AcousticVolumeRegion.d.ts.map +1 -0
- package/src/engine/sound/simulation/core/AcousticVolumeRegion.js +73 -0
- package/src/engine/sound/simulation/core/OccluderBody.d.ts +57 -0
- package/src/engine/sound/simulation/core/OccluderBody.d.ts.map +1 -0
- package/src/engine/sound/simulation/core/OccluderBody.js +74 -0
- package/src/engine/sound/simulation/core/OcclusionSolver.d.ts +29 -0
- package/src/engine/sound/simulation/core/OcclusionSolver.d.ts.map +1 -0
- package/src/engine/sound/simulation/core/OcclusionSolver.js +119 -0
- package/src/engine/sound/simulation/core/RayHit.d.ts +42 -0
- package/src/engine/sound/simulation/core/RayHit.d.ts.map +1 -0
- package/src/engine/sound/simulation/core/RayHit.js +50 -0
- package/src/engine/sound/simulation/core/VolumeField.d.ts +55 -0
- package/src/engine/sound/simulation/core/VolumeField.d.ts.map +1 -0
- package/src/engine/sound/simulation/core/VolumeField.js +145 -0
- package/src/engine/sound/simulation/definition/AcousticDirectivity.d.ts +75 -0
- package/src/engine/sound/simulation/definition/AcousticDirectivity.d.ts.map +1 -0
- package/src/engine/sound/simulation/definition/AcousticDirectivity.js +114 -0
- package/src/engine/sound/simulation/definition/AcousticDirectivitySerializationAdapter.d.ts +23 -0
- package/src/engine/sound/simulation/definition/AcousticDirectivitySerializationAdapter.d.ts.map +1 -0
- package/src/engine/sound/simulation/definition/AcousticDirectivitySerializationAdapter.js +30 -0
- package/src/engine/sound/simulation/definition/AcousticMaterial.d.ts +61 -0
- package/src/engine/sound/simulation/definition/AcousticMaterial.d.ts.map +1 -0
- package/src/engine/sound/simulation/definition/AcousticMaterial.js +122 -0
- package/src/engine/sound/simulation/definition/AcousticMaterialSerializationAdapter.d.ts +23 -0
- package/src/engine/sound/simulation/definition/AcousticMaterialSerializationAdapter.d.ts.map +1 -0
- package/src/engine/sound/simulation/definition/AcousticMaterialSerializationAdapter.js +32 -0
- package/src/engine/sound/simulation/ecs/AcousticBody.d.ts +39 -0
- package/src/engine/sound/simulation/ecs/AcousticBody.d.ts.map +1 -0
- package/src/engine/sound/simulation/ecs/AcousticBody.js +48 -0
- package/src/engine/sound/simulation/ecs/AcousticBodySerializationAdapter.d.ts +24 -0
- package/src/engine/sound/simulation/ecs/AcousticBodySerializationAdapter.d.ts.map +1 -0
- package/src/engine/sound/simulation/ecs/AcousticBodySerializationAdapter.js +34 -0
- package/src/engine/sound/simulation/ecs/AcousticProbeFieldSystem.d.ts +39 -0
- package/src/engine/sound/simulation/ecs/AcousticProbeFieldSystem.d.ts.map +1 -0
- package/src/engine/sound/simulation/ecs/AcousticProbeFieldSystem.js +64 -0
- package/src/engine/sound/simulation/ecs/AcousticSimulationSystem.d.ts +44 -0
- package/src/engine/sound/simulation/ecs/AcousticSimulationSystem.d.ts.map +1 -0
- package/src/engine/sound/simulation/ecs/AcousticSimulationSystem.js +75 -0
- package/src/engine/sound/simulation/ecs/AcousticVolume.d.ts +53 -0
- package/src/engine/sound/simulation/ecs/AcousticVolume.d.ts.map +1 -0
- package/src/engine/sound/simulation/ecs/AcousticVolume.js +74 -0
- package/src/engine/sound/simulation/ecs/AcousticVolumeSerializationAdapter.d.ts +25 -0
- package/src/engine/sound/simulation/ecs/AcousticVolumeSerializationAdapter.d.ts.map +1 -0
- package/src/engine/sound/simulation/ecs/AcousticVolumeSerializationAdapter.js +37 -0
- package/src/engine/sound/simulation/ecs/AcousticVolumeSystem.d.ts +39 -0
- package/src/engine/sound/simulation/ecs/AcousticVolumeSystem.d.ts.map +1 -0
- package/src/engine/sound/simulation/ecs/AcousticVolumeSystem.js +66 -0
- package/src/engine/sound/simulation/probe/AcousticProbeField.d.ts +245 -0
- package/src/engine/sound/simulation/probe/AcousticProbeField.d.ts.map +1 -0
- package/src/engine/sound/simulation/probe/AcousticProbeField.js +574 -0
- package/src/engine/sound/simulation/probe/AcousticProbeFieldSerializationAdapter.d.ts +24 -0
- package/src/engine/sound/simulation/probe/AcousticProbeFieldSerializationAdapter.d.ts.map +1 -0
- package/src/engine/sound/simulation/probe/AcousticProbeFieldSerializationAdapter.js +60 -0
- package/src/engine/sound/simulation/probe/ProbeFieldPathingSolution.d.ts +48 -0
- package/src/engine/sound/simulation/probe/ProbeFieldPathingSolution.d.ts.map +1 -0
- package/src/engine/sound/simulation/probe/ProbeFieldPathingSolution.js +64 -0
- package/src/engine/sound/simulation/probe/ProbeVisibilityRecheck.d.ts +51 -0
- package/src/engine/sound/simulation/probe/ProbeVisibilityRecheck.d.ts.map +1 -0
- package/src/engine/sound/simulation/probe/ProbeVisibilityRecheck.js +137 -0
- package/src/engine/sound/simulation/probe/acoustic_probe_transfer.d.ts +29 -0
- package/src/engine/sound/simulation/probe/acoustic_probe_transfer.d.ts.map +1 -0
- package/src/engine/sound/simulation/probe/acoustic_probe_transfer.js +99 -0
- package/src/engine/sound/simulation/probe/acoustic_trace_energy.d.ts +46 -0
- package/src/engine/sound/simulation/probe/acoustic_trace_energy.d.ts.map +1 -0
- package/src/engine/sound/simulation/probe/acoustic_trace_energy.js +136 -0
- package/src/engine/sound/simulation/probe/bakeProbeField.d.ts +50 -0
- package/src/engine/sound/simulation/probe/bakeProbeField.d.ts.map +1 -0
- package/src/engine/sound/simulation/probe/bakeProbeField.js +169 -0
- package/src/engine/sound/simulation/probe/bakeProbeReflectors.d.ts +15 -0
- package/src/engine/sound/simulation/probe/bakeProbeReflectors.d.ts.map +1 -0
- package/src/engine/sound/simulation/probe/bakeProbeReflectors.js +108 -0
- package/src/engine/sound/simulation/probe/bakeReverbBands.d.ts +32 -0
- package/src/engine/sound/simulation/probe/bakeReverbBands.d.ts.map +1 -0
- package/src/engine/sound/simulation/probe/bakeReverbBands.js +114 -0
- package/src/engine/sound/simulation/probe/bakeVisibility.d.ts +48 -0
- package/src/engine/sound/simulation/probe/bakeVisibility.d.ts.map +1 -0
- package/src/engine/sound/simulation/probe/bakeVisibility.js +178 -0
- package/src/engine/sound/simulation/probe/echogram_band_rt60.d.ts +17 -0
- package/src/engine/sound/simulation/probe/echogram_band_rt60.d.ts.map +1 -0
- package/src/engine/sound/simulation/probe/echogram_band_rt60.js +83 -0
- package/src/engine/sound/simulation/probe/probe_delaunay_edges.d.ts +23 -0
- package/src/engine/sound/simulation/probe/probe_delaunay_edges.d.ts.map +1 -0
- package/src/engine/sound/simulation/probe/probe_delaunay_edges.js +215 -0
- package/src/engine/sound/simulation/probe/probe_densify_portals.d.ts +35 -0
- package/src/engine/sound/simulation/probe/probe_densify_portals.d.ts.map +1 -0
- package/src/engine/sound/simulation/probe/probe_densify_portals.js +143 -0
- package/src/engine/sound/simulation/probe/probe_detect_portals.d.ts +32 -0
- package/src/engine/sound/simulation/probe/probe_detect_portals.d.ts.map +1 -0
- package/src/engine/sound/simulation/probe/probe_detect_portals.js +196 -0
- package/src/engine/sound/simulation/probe/probe_edge_visible.d.ts +16 -0
- package/src/engine/sound/simulation/probe/probe_edge_visible.d.ts.map +1 -0
- package/src/engine/sound/simulation/probe/probe_edge_visible.js +41 -0
- package/src/engine/sound/simulation/probe/probe_place_sdf_cover.d.ts +28 -0
- package/src/engine/sound/simulation/probe/probe_place_sdf_cover.d.ts.map +1 -0
- package/src/engine/sound/simulation/probe/probe_place_sdf_cover.js +82 -0
- package/src/engine/sound/simulation/probe/probe_refine_connectivity.d.ts +26 -0
- package/src/engine/sound/simulation/probe/probe_refine_connectivity.d.ts.map +1 -0
- package/src/engine/sound/simulation/probe/probe_refine_connectivity.js +181 -0
- package/src/engine/sound/simulation/probe/probe_sdf_grid.d.ts +100 -0
- package/src/engine/sound/simulation/probe/probe_sdf_grid.d.ts.map +1 -0
- package/src/engine/sound/simulation/probe/probe_sdf_grid.js +183 -0
- package/src/engine/sound/simulation/probe/probe_visibility_augment.d.ts +30 -0
- package/src/engine/sound/simulation/probe/probe_visibility_augment.d.ts.map +1 -0
- package/src/engine/sound/simulation/probe/probe_visibility_augment.js +182 -0
- package/src/engine/sound/simulation/probe/probe_visibility_bridge_components.d.ts +31 -0
- package/src/engine/sound/simulation/probe/probe_visibility_bridge_components.d.ts.map +1 -0
- package/src/engine/sound/simulation/probe/probe_visibility_bridge_components.js +166 -0
- package/src/engine/sound/simulation/prototypeAcousticSolver.d.ts +2 -0
- package/src/engine/sound/simulation/prototypeAcousticSolver.d.ts.map +1 -0
- package/src/engine/sound/simulation/prototypeAcousticSolver.js +1534 -0
- package/src/engine/sound/simulation/render/FoaProbeReverbRenderer.d.ts +80 -0
- package/src/engine/sound/simulation/render/FoaProbeReverbRenderer.d.ts.map +1 -0
- package/src/engine/sound/simulation/render/FoaProbeReverbRenderer.js +354 -0
- package/src/engine/sound/simulation/render/ProbeReverbRenderer.d.ts +75 -0
- package/src/engine/sound/simulation/render/ProbeReverbRenderer.d.ts.map +1 -0
- package/src/engine/sound/simulation/render/ProbeReverbRenderer.js +231 -0
- package/src/engine/sound/simulation/render/foaReverbImpulseResponse.d.ts +37 -0
- package/src/engine/sound/simulation/render/foaReverbImpulseResponse.d.ts.map +1 -0
- package/src/engine/sound/simulation/render/foaReverbImpulseResponse.js +113 -0
- package/src/engine/sound/simulation/render/reverbImpulseResponse.d.ts +26 -0
- package/src/engine/sound/simulation/render/reverbImpulseResponse.d.ts.map +1 -0
- package/src/engine/sound/simulation/render/reverbImpulseResponse.js +76 -0
- package/src/engine/sound/simulation/serialization/populateAcousticSerializationRegistry.d.ts +10 -0
- package/src/engine/sound/simulation/serialization/populateAcousticSerializationRegistry.d.ts.map +1 -0
- package/src/engine/sound/simulation/serialization/populateAcousticSerializationRegistry.js +25 -0
- package/src/engine/sound/sopra/SopraEngine.d.ts +6 -0
- package/src/engine/sound/sopra/SopraEngine.d.ts.map +1 -1
- package/src/engine/sound/sopra/SopraEngine.js +9 -0
- package/src/engine/sound/sopra/definition/EventDescription.d.ts +3 -0
- package/src/engine/sound/sopra/definition/EventDescription.d.ts.map +1 -1
- package/src/engine/sound/sopra/definition/EventDescription.js +4 -1
- package/src/engine/sound/sopra/runtime/BusGraph.d.ts +7 -0
- package/src/engine/sound/sopra/runtime/BusGraph.d.ts.map +1 -1
- package/src/engine/sound/sopra/runtime/BusGraph.js +16 -0
- package/src/engine/sound/sopra/runtime/EventInstance.d.ts +46 -2
- package/src/engine/sound/sopra/runtime/EventInstance.d.ts.map +1 -1
- package/src/engine/sound/sopra/runtime/EventInstance.js +240 -4
- package/src/engine/sound/sopra/util/MockAudioContext.d.ts +4 -0
- package/src/engine/sound/sopra/util/MockAudioContext.d.ts.map +1 -1
- package/src/engine/sound/sopra/util/MockAudioContext.js +9 -0
- package/src/engine/ui/tiles2d/computeTileGridMove.js +2 -2
- package/src/generation/filtering/numeric/complex/CellFilterAngleToNormal.js +2 -2
- package/src/view/elements/progress/RectangularPieProgressView.d.ts.map +1 -1
- package/src/view/elements/progress/RectangularPieProgressView.js +6 -8
- package/src/view/tooltip/TooltipView.js +2 -2
- package/src/core/bvh2/bvh3/query/bvh_query_user_data_overlaps_aabb.d.ts +0 -9
- package/src/core/bvh2/bvh3/query/bvh_query_user_data_overlaps_aabb.d.ts.map +0 -1
- package/src/core/bvh2/bvh3/query/bvh_query_user_data_overlaps_frustum.d.ts +0 -9
- package/src/core/bvh2/bvh3/query/bvh_query_user_data_overlaps_frustum.d.ts.map +0 -1
- package/src/core/bvh2/bvh3/query/bvh_query_user_data_overlaps_sphere.d.ts.map +0 -1
- package/src/core/geom/3d/normal/lamber_azimuth/transform.d.ts +0 -18
- package/src/core/geom/3d/normal/lamber_azimuth/transform.d.ts.map +0 -1
- package/src/core/geom/3d/normal/spherical/sphere_map_transform.d.ts.map +0 -1
- package/src/core/geom/3d/normal/spherical/sphere_map_transform.js +0 -77
- package/src/core/geom/3d/tetrahedra/triangle/triangle_encode_rasterized_depth.d.ts +0 -9
- package/src/core/geom/3d/tetrahedra/triangle/triangle_encode_rasterized_depth.d.ts.map +0 -1
- package/src/core/geom/3d/topology/simplify/collapseEdge.d.ts +0 -21
- package/src/core/geom/3d/topology/simplify/collapseEdge.d.ts.map +0 -1
- package/src/core/geom/3d/topology/simplify/quadratic/build_vertex_quadratics.d.ts +0 -25
- package/src/core/geom/3d/topology/simplify/quadratic/build_vertex_quadratics.d.ts.map +0 -1
- package/src/core/geom/3d/topology/simplify/quadratic/build_vertex_quadratics.js +0 -177
- package/src/engine/navigation/mesh/bt_mesh_face_find_path.d.ts.map +0 -1
- package/src/engine/navigation/mesh/bt_mesh_face_find_path_polyanya.d.ts.map +0 -1
- package/src/engine/navigation/mesh/build/bvh_build_from_unindexed_triangles.d.ts.map +0 -1
- package/src/engine/navigation/mesh/bvh_build_from_bt_mesh.d.ts +0 -7
- package/src/engine/navigation/mesh/bvh_build_from_bt_mesh.d.ts.map +0 -1
- package/src/engine/navigation/mesh/bvh_query_nearest_face.d.ts.map +0 -1
- package/src/engine/navigation/mesh/bvh_segment_penetrates_mesh.d.ts.map +0 -1
- package/src/engine/navigation/mesh/funnel_string_pull.d.ts.map +0 -1
- /package/src/{engine/navigation/mesh/build → core/bvh2/bvh3}/bvh_build_from_unindexed_triangles.d.ts +0 -0
- /package/src/{engine/navigation/mesh/build → core/bvh2/bvh3}/bvh_build_from_unindexed_triangles.js +0 -0
- /package/src/{engine/navigation/mesh → core/geom/3d}/funnel_string_pull.d.ts +0 -0
- /package/src/{engine/navigation/mesh → core/geom/3d/topology/struct/binary/query}/bt_mesh_face_find_path.d.ts +0 -0
- /package/src/{engine/navigation/mesh → core/geom/3d/topology/struct/binary/query}/bt_mesh_face_find_path_polyanya.d.ts +0 -0
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
import { CSRGraph } from "../../../../core/graph/csr/CSRGraph.js";
|
|
2
|
+
import { probe_delaunay_edges } from "./probe_delaunay_edges.js";
|
|
3
|
+
import { probe_densify_portals } from "./probe_densify_portals.js";
|
|
4
|
+
import { probe_edge_visible } from "./probe_edge_visible.js";
|
|
5
|
+
import { probe_visibility_augment } from "./probe_visibility_augment.js";
|
|
6
|
+
import { probe_visibility_bridge_components } from "./probe_visibility_bridge_components.js";
|
|
7
|
+
|
|
8
|
+
const NO_PORTALS = [];
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Bake the probe-visibility graph into a {@link AcousticProbeField}: a sparse, occlusion-respecting connectivity
|
|
12
|
+
* graph over the probes, weighted by distance, that sound routes through ({@link findAcousticPath}). Built
|
|
13
|
+
* topologically in three stages so the complete O(n²) pair graph is never enumerated (see
|
|
14
|
+
* VISIBILITY_GRAPH_PLAN.md):
|
|
15
|
+
*
|
|
16
|
+
* - **A** — the Delaunay tetrahedralisation of the probe positions gives ≈6-7·n candidate edges
|
|
17
|
+
* ({@link probe_delaunay_edges}); keep those with clear line of sight. Dropping the occluded ones
|
|
18
|
+
* fragments the graph into islands (rooms) along walls.
|
|
19
|
+
* - **B** — bridge islands that a doorway connects but the Delaunay edge missed, with the shortest visible
|
|
20
|
+
* cross-component edges ({@link probe_visibility_bridge_components}). Sealed regions stay separate.
|
|
21
|
+
* - **C** — add a budgeted handful of shortcut edges that straighten detours/corners
|
|
22
|
+
* ({@link probe_visibility_augment}), since the local Delaunay base can route around clear lines.
|
|
23
|
+
* - **D** — when `portals` are given, fan extra cross-opening CHORDS around each portal throat
|
|
24
|
+
* ({@link probe_densify_portals}) so routing through an opening is symmetric, not funnelled through one
|
|
25
|
+
* off-centre probe. No-op for an empty `portals`, so plain callers are unchanged.
|
|
26
|
+
*
|
|
27
|
+
* O(n) edges and O(n) shadow rays, not O(n²). The result is stored as a {@link CSRGraph} on the field
|
|
28
|
+
* (connectivity is an inherent property of the field). Offline (no WebAudio).
|
|
29
|
+
*
|
|
30
|
+
* @param {AcousticProbeField} probeField the field whose probes get connected (mutated: its visibility graph is set)
|
|
31
|
+
* @param {AcousticOccluderIndex} index the acoustic scene
|
|
32
|
+
* @param {ArrayLike<number>} [portals] probe indices of portal throats to densify around (stage D)
|
|
33
|
+
* @param {number} [minSpacing] the probe spacing hint — required (scales the densify radius/bias) iff `portals` given
|
|
34
|
+
* @returns {AcousticProbeField} the same field, now carrying its visibility graph
|
|
35
|
+
*/
|
|
36
|
+
export function bakeVisibility(probeField, index, portals = NO_PORTALS, minSpacing = 0) {
|
|
37
|
+
const n = probeField.size;
|
|
38
|
+
|
|
39
|
+
// Stage A: Delaunay candidate edges, kept where the line of sight is clear. The endpoints of the OCCLUDED
|
|
40
|
+
// (dropped) candidates border a wall — the only probes a missed doorway can be bridged from (stage B).
|
|
41
|
+
const candidates = probe_delaunay_edges(probeField);
|
|
42
|
+
/**
|
|
43
|
+
*
|
|
44
|
+
* @type {number[]}
|
|
45
|
+
*/
|
|
46
|
+
const baseA = [];
|
|
47
|
+
/**
|
|
48
|
+
*
|
|
49
|
+
* @type {number[]}
|
|
50
|
+
*/
|
|
51
|
+
const baseB = [];
|
|
52
|
+
const onWall = new Uint8Array(n);
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
*
|
|
56
|
+
* @type {number[]}
|
|
57
|
+
*/
|
|
58
|
+
const sources = [];
|
|
59
|
+
for (let i = 0; i < candidates.a.length; i++) {
|
|
60
|
+
const a = candidates.a[i];
|
|
61
|
+
const b = candidates.b[i];
|
|
62
|
+
if (probe_edge_visible(probeField, index, a, b)) {
|
|
63
|
+
baseA.push(a);
|
|
64
|
+
baseB.push(b);
|
|
65
|
+
} else {
|
|
66
|
+
if (onWall[a] === 0) {
|
|
67
|
+
onWall[a] = 1;
|
|
68
|
+
sources.push(a);
|
|
69
|
+
}
|
|
70
|
+
if (onWall[b] === 0) {
|
|
71
|
+
onWall[b] = 1;
|
|
72
|
+
sources.push(b);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
// Stage B: bridge the islands that dropping occluded edges created, searching from the wall-adjacent probes
|
|
78
|
+
const bridges = probe_visibility_bridge_components(probeField, index, { a: baseA, b: baseB }, sources);
|
|
79
|
+
|
|
80
|
+
const currentA = baseA.concat(bridges.a);
|
|
81
|
+
const currentB = baseB.concat(bridges.b);
|
|
82
|
+
|
|
83
|
+
// Stage C: shortcut augmentation for path quality
|
|
84
|
+
const augment = probe_visibility_augment(probeField, index, { a: currentA, b: currentB });
|
|
85
|
+
|
|
86
|
+
let edgeA = currentA.concat(augment.a);
|
|
87
|
+
let edgeB = currentB.concat(augment.b);
|
|
88
|
+
|
|
89
|
+
// Stage D: portal densification — cross-opening chords so routing through an opening is symmetric. Runs
|
|
90
|
+
// after A-C so it dedups against the full base/bridge/augment edge set; no-op without portals.
|
|
91
|
+
if (portals.length > 0) {
|
|
92
|
+
const chords = probe_densify_portals(probeField, index, portals, { a: edgeA, b: edgeB }, minSpacing);
|
|
93
|
+
edgeA = edgeA.concat(chords.a);
|
|
94
|
+
edgeB = edgeB.concat(chords.b);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
// assemble the final undirected edge list, weighted by inter-probe distance (the runtime recheck
|
|
98
|
+
// restores weights the same way)
|
|
99
|
+
const edgeCount = edgeA.length;
|
|
100
|
+
|
|
101
|
+
const edgeW = new Float32Array(edgeCount);
|
|
102
|
+
for (let e = 0; e < edgeCount; e++) {
|
|
103
|
+
const dx = probeField.probeX(edgeB[e]) - probeField.probeX(edgeA[e]);
|
|
104
|
+
const dy = probeField.probeY(edgeB[e]) - probeField.probeY(edgeA[e]);
|
|
105
|
+
const dz = probeField.probeZ(edgeB[e]) - probeField.probeZ(edgeA[e]);
|
|
106
|
+
edgeW[e] = Math.sqrt(dx * dx + dy * dy + dz * dz);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
// build CSR adjacency: each undirected edge contributes a row entry at BOTH endpoints
|
|
110
|
+
const adjacency_length = edgeCount * 2;
|
|
111
|
+
|
|
112
|
+
const degree = new Uint32Array(n);
|
|
113
|
+
for (let e = 0; e < edgeCount; e++) {
|
|
114
|
+
degree[edgeA[e]]++;
|
|
115
|
+
degree[edgeB[e]]++;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
const edge_addresses = new Uint32Array(n + 1);
|
|
119
|
+
for (let v = 0; v < n; v++) {
|
|
120
|
+
edge_addresses[v + 1] = edge_addresses[v] + degree[v];
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
const adjacency = new Uint32Array(adjacency_length);
|
|
124
|
+
const edge_weights = new Float32Array(adjacency_length);
|
|
125
|
+
const cursor = edge_addresses.slice(0, n); // per-vertex write cursor, starting at each row's offset
|
|
126
|
+
|
|
127
|
+
for (let e = 0; e < edgeCount; e++) {
|
|
128
|
+
const a = edgeA[e];
|
|
129
|
+
const b = edgeB[e];
|
|
130
|
+
const w = edgeW[e];
|
|
131
|
+
|
|
132
|
+
adjacency[cursor[a]] = b;
|
|
133
|
+
edge_weights[cursor[a]] = w;
|
|
134
|
+
cursor[a]++;
|
|
135
|
+
|
|
136
|
+
adjacency[cursor[b]] = a;
|
|
137
|
+
edge_weights[cursor[b]] = w;
|
|
138
|
+
cursor[b]++;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
const graph = CSRGraph.fromArrays(n, edge_addresses, adjacency, edge_weights);
|
|
142
|
+
|
|
143
|
+
probeField.setVisibilityGraph(graph);
|
|
144
|
+
|
|
145
|
+
return probeField;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
/**
|
|
149
|
+
* Find the acoustic path from a source to the listener through a `field`'s baked visibility graph: snaps
|
|
150
|
+
* each end to its nearest probe and returns the shortest route as a list of probe positions `{x, y, z}`
|
|
151
|
+
* (inclusive), or null if they are in disconnected regions. The probe just before the listener's end is the
|
|
152
|
+
* EXIT POINT — the apparent direction the leaked sound arrives from (spatialize by exit, not by source).
|
|
153
|
+
*
|
|
154
|
+
* @param {AcousticProbeField} field a field with a baked visibility graph ({@link bakeVisibility})
|
|
155
|
+
* @param {number} sourceX
|
|
156
|
+
* @param {number} sourceY
|
|
157
|
+
* @param {number} sourceZ
|
|
158
|
+
* @param {number} listenerX
|
|
159
|
+
* @param {number} listenerY
|
|
160
|
+
* @param {number} listenerZ
|
|
161
|
+
* @returns {{x:number,y:number,z:number}[]|null}
|
|
162
|
+
*/
|
|
163
|
+
export function findAcousticPath(field, sourceX, sourceY, sourceZ, listenerX, listenerY, listenerZ) {
|
|
164
|
+
const from = field.nearestIndex(sourceX, sourceY, sourceZ);
|
|
165
|
+
const to = field.nearestIndex(listenerX, listenerY, listenerZ);
|
|
166
|
+
|
|
167
|
+
if (from === -1 || to === -1) {
|
|
168
|
+
return null;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
const indices = field.shortestPath(from, to);
|
|
172
|
+
|
|
173
|
+
if (indices === null) {
|
|
174
|
+
return null;
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
return indices.map((i) => ({ x: field.probeX(i), y: field.probeY(i), z: field.probeZ(i) }));
|
|
178
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RT60 (seconds) of one band's echogram, via Schroeder backward integration + a least-squares slope of
|
|
3
|
+
* the energy-decay curve over the −5 dB → −35 dB window (ISO 3382 T30, extrapolated to 60 dB). Returns 0
|
|
4
|
+
* when the band carries no reflected energy (open / anechoic) or when the window has too little decay to
|
|
5
|
+
* fit a slope.
|
|
6
|
+
*
|
|
7
|
+
* PRECONDITION: the echogram window (`binCount · binSeconds`) must exceed the RT60 being measured, or the
|
|
8
|
+
* decay never reaches −35 dB and the result floors to 0. Bakers size the window accordingly.
|
|
9
|
+
*
|
|
10
|
+
* @param {Float32Array} echogram band-major time bins
|
|
11
|
+
* @param {number} bandOffset first bin index of this band (`band · binCount`)
|
|
12
|
+
* @param {number} binCount bins per band
|
|
13
|
+
* @param {number} binSeconds seconds per bin
|
|
14
|
+
* @returns {number} RT60 in seconds (0 = no reverb)
|
|
15
|
+
*/
|
|
16
|
+
export function echogram_band_rt60(echogram: Float32Array, bandOffset: number, binCount: number, binSeconds: number): number;
|
|
17
|
+
//# sourceMappingURL=echogram_band_rt60.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"echogram_band_rt60.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/sound/simulation/probe/echogram_band_rt60.js"],"names":[],"mappings":"AAQA;;;;;;;;;;;;;;GAcG;AACH,6CANW,YAAY,cACZ,MAAM,YACN,MAAM,cACN,MAAM,GACJ,MAAM,CA6DlB"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Headroom (dB below the peak) where the decay fit starts, and the span fitted — ISO 3382 T30: skip the
|
|
3
|
+
* first 5 dB (direct-sound / early build-up), fit the next 30 dB, extrapolate the slope to a full 60 dB.
|
|
4
|
+
* @type {number}
|
|
5
|
+
*/
|
|
6
|
+
const START_DB = -5;
|
|
7
|
+
const END_DB = -35;
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* RT60 (seconds) of one band's echogram, via Schroeder backward integration + a least-squares slope of
|
|
11
|
+
* the energy-decay curve over the −5 dB → −35 dB window (ISO 3382 T30, extrapolated to 60 dB). Returns 0
|
|
12
|
+
* when the band carries no reflected energy (open / anechoic) or when the window has too little decay to
|
|
13
|
+
* fit a slope.
|
|
14
|
+
*
|
|
15
|
+
* PRECONDITION: the echogram window (`binCount · binSeconds`) must exceed the RT60 being measured, or the
|
|
16
|
+
* decay never reaches −35 dB and the result floors to 0. Bakers size the window accordingly.
|
|
17
|
+
*
|
|
18
|
+
* @param {Float32Array} echogram band-major time bins
|
|
19
|
+
* @param {number} bandOffset first bin index of this band (`band · binCount`)
|
|
20
|
+
* @param {number} binCount bins per band
|
|
21
|
+
* @param {number} binSeconds seconds per bin
|
|
22
|
+
* @returns {number} RT60 in seconds (0 = no reverb)
|
|
23
|
+
*/
|
|
24
|
+
export function echogram_band_rt60(echogram, bandOffset, binCount, binSeconds) {
|
|
25
|
+
// total reflected energy = the Schroeder energy-decay curve (EDC) at t = 0
|
|
26
|
+
let total = 0;
|
|
27
|
+
for (let i = 0; i < binCount; i++) {
|
|
28
|
+
total += echogram[bandOffset + i];
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
if (total <= 0) {
|
|
32
|
+
return 0;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
// Walk forward, tracking energy already elapsed; EDC(t_i) = total − energyBefore is monotonically
|
|
36
|
+
// decreasing, so its dB curve is too. Accumulate a least-squares line over the [−5, −35] dB window.
|
|
37
|
+
let energyBefore = 0;
|
|
38
|
+
let n = 0;
|
|
39
|
+
let sumT = 0, sumD = 0, sumTD = 0, sumTT = 0;
|
|
40
|
+
|
|
41
|
+
for (let i = 0; i < binCount; i++) {
|
|
42
|
+
const edc = total - energyBefore;
|
|
43
|
+
energyBefore += echogram[bandOffset + i];
|
|
44
|
+
|
|
45
|
+
if (edc <= 0) {
|
|
46
|
+
break; // tail exhausted — log undefined beyond here
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
const db = 10 * Math.log10(edc / total);
|
|
50
|
+
|
|
51
|
+
if (db > START_DB) {
|
|
52
|
+
continue; // still inside the −5 dB headroom
|
|
53
|
+
}
|
|
54
|
+
if (db < END_DB) {
|
|
55
|
+
break; // past the T30 window
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
const t = i * binSeconds;
|
|
59
|
+
n++;
|
|
60
|
+
sumT += t;
|
|
61
|
+
sumD += db;
|
|
62
|
+
sumTD += t * db;
|
|
63
|
+
sumTT += t * t;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
if (n < 2) {
|
|
67
|
+
return 0; // not enough decay in the window to fit a slope
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
const denom = n * sumTT - sumT * sumT;
|
|
71
|
+
|
|
72
|
+
if (denom <= 0) {
|
|
73
|
+
return 0;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
const slope = (n * sumTD - sumT * sumD) / denom; // dB per second (negative for a decaying tail)
|
|
77
|
+
|
|
78
|
+
if (slope >= 0) {
|
|
79
|
+
return 0;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
return -60 / slope;
|
|
83
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Candidate undirected edges for a probe field's visibility graph, taken from the Delaunay
|
|
3
|
+
* tetrahedralisation of the probe positions: the edges of the tet mesh (6 per tetrahedron), deduplicated.
|
|
4
|
+
*
|
|
5
|
+
* This is the sparse, spatially-local candidate set that replaces the all-pairs O(n²) enumeration — a 3D
|
|
6
|
+
* Delaunay has ≈6–7·n edges, so this is O(n), not O(n²). The caller ({@link bakeVisibility}) then filters
|
|
7
|
+
* these by line of sight, bridges the resulting islands, and augments for path quality. Pure geometry;
|
|
8
|
+
* offline (no WebAudio); deterministic for given probe positions.
|
|
9
|
+
*
|
|
10
|
+
* `n < 4` (too few points for a tetrahedron) returns the complete set of pairs — at most 3 edges.
|
|
11
|
+
*
|
|
12
|
+
* Note: a 3D Delaunay base assumes the probes are not (near-)coplanar; a flat field tetrahedralises to
|
|
13
|
+
* slivers and may yield a sparse/fragmented base, which the caller's bridging stage then reconnects. Dense
|
|
14
|
+
* volumetric probe fields (the design target) are well-conditioned.
|
|
15
|
+
*
|
|
16
|
+
* @param {AcousticProbeField} field
|
|
17
|
+
* @returns {{a: Uint32Array, b: Uint32Array}} unique undirected edges, with `a[i] < b[i]`
|
|
18
|
+
*/
|
|
19
|
+
export function probe_delaunay_edges(field: AcousticProbeField): {
|
|
20
|
+
a: Uint32Array;
|
|
21
|
+
b: Uint32Array;
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=probe_delaunay_edges.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"probe_delaunay_edges.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/sound/simulation/probe/probe_delaunay_edges.js"],"names":[],"mappings":"AAWA;;;;;;;;;;;;;;;;;GAiBG;AACH;OAFiB,WAAW;OAAK,WAAW;EA4F3C"}
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
import { uf_find, uf_init, uf_union } from "../../../../core/collection/union-find/union_find.js";
|
|
2
|
+
import { v3_morton_encode_bounded } from "../../../../core/geom/3d/morton/v3_morton_encode_bounded.js";
|
|
3
|
+
import {
|
|
4
|
+
compute_delaunay_tetrahedral_mesh
|
|
5
|
+
} from "../../../../core/geom/3d/tetrahedra/delaunay/compute_delaunay_tetrahedral_mesh.js";
|
|
6
|
+
import { TetrahedralMesh } from "../../../../core/geom/3d/tetrahedra/TetrahedralMesh.js";
|
|
7
|
+
|
|
8
|
+
// the 6 undirected edges of a tetrahedron as corner-index pairs (0..3)
|
|
9
|
+
const TET_EDGE_LO = [0, 0, 0, 1, 1, 2];
|
|
10
|
+
const TET_EDGE_HI = [1, 2, 3, 2, 3, 3];
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Candidate undirected edges for a probe field's visibility graph, taken from the Delaunay
|
|
14
|
+
* tetrahedralisation of the probe positions: the edges of the tet mesh (6 per tetrahedron), deduplicated.
|
|
15
|
+
*
|
|
16
|
+
* This is the sparse, spatially-local candidate set that replaces the all-pairs O(n²) enumeration — a 3D
|
|
17
|
+
* Delaunay has ≈6–7·n edges, so this is O(n), not O(n²). The caller ({@link bakeVisibility}) then filters
|
|
18
|
+
* these by line of sight, bridges the resulting islands, and augments for path quality. Pure geometry;
|
|
19
|
+
* offline (no WebAudio); deterministic for given probe positions.
|
|
20
|
+
*
|
|
21
|
+
* `n < 4` (too few points for a tetrahedron) returns the complete set of pairs — at most 3 edges.
|
|
22
|
+
*
|
|
23
|
+
* Note: a 3D Delaunay base assumes the probes are not (near-)coplanar; a flat field tetrahedralises to
|
|
24
|
+
* slivers and may yield a sparse/fragmented base, which the caller's bridging stage then reconnects. Dense
|
|
25
|
+
* volumetric probe fields (the design target) are well-conditioned.
|
|
26
|
+
*
|
|
27
|
+
* @param {AcousticProbeField} field
|
|
28
|
+
* @returns {{a: Uint32Array, b: Uint32Array}} unique undirected edges, with `a[i] < b[i]`
|
|
29
|
+
*/
|
|
30
|
+
export function probe_delaunay_edges(field) {
|
|
31
|
+
const n = field.size;
|
|
32
|
+
|
|
33
|
+
if (n < 4) {
|
|
34
|
+
return completeGraphEdges(n);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
// Spatially sort the probes (Morton order) before the incremental tetrahedralisation: consecutive points
|
|
38
|
+
// then land in adjacent cells, so the Bowyer-Watson point-location walk reuses the previous tet and stays
|
|
39
|
+
// O(1) amortised instead of crossing the whole mesh (a ~10× build speed-up at scale). `order[k]` is the
|
|
40
|
+
// ORIGINAL probe index inserted at sorted position k; tet vertices come back in sorted space and are
|
|
41
|
+
// mapped back through `order` during extraction.
|
|
42
|
+
const order = mortonOrder(field, n);
|
|
43
|
+
|
|
44
|
+
const points = new Float32Array(n * 3);
|
|
45
|
+
for (let k = 0; k < n; k++) {
|
|
46
|
+
const p = order[k];
|
|
47
|
+
points[k * 3] = field.probeX(p);
|
|
48
|
+
points[k * 3 + 1] = field.probeY(p);
|
|
49
|
+
points[k * 3 + 2] = field.probeZ(p);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
const mesh = new TetrahedralMesh();
|
|
53
|
+
compute_delaunay_tetrahedral_mesh(mesh, points, n);
|
|
54
|
+
mesh.compact(); // remove holes
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
// collect every tet edge (mapping sorted vertex indices back to original probe indices) as a canonical
|
|
58
|
+
// key `lo*n + hi` (lo<hi, both < n < 2^26, so the key is exact in f64), then sort+unique. The tet mesh
|
|
59
|
+
// shares each edge across a ring of tets, hence the dedup.
|
|
60
|
+
const keys = new Float64Array(mesh.count * 6);
|
|
61
|
+
let k = 0;
|
|
62
|
+
|
|
63
|
+
mesh.forEach((tet) => {
|
|
64
|
+
const v = TET_CORNERS;
|
|
65
|
+
v[0] = order[mesh.getVertexIndex(tet, 0)];
|
|
66
|
+
v[1] = order[mesh.getVertexIndex(tet, 1)];
|
|
67
|
+
v[2] = order[mesh.getVertexIndex(tet, 2)];
|
|
68
|
+
v[3] = order[mesh.getVertexIndex(tet, 3)];
|
|
69
|
+
|
|
70
|
+
for (let e = 0; e < 6; e++) {
|
|
71
|
+
const x = v[TET_EDGE_LO[e]];
|
|
72
|
+
const y = v[TET_EDGE_HI[e]];
|
|
73
|
+
const lo = x < y ? x : y;
|
|
74
|
+
const hi = x < y ? y : x;
|
|
75
|
+
keys[k] = lo * n + hi;
|
|
76
|
+
k++;
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
|
|
80
|
+
const used = keys.subarray(0, k);
|
|
81
|
+
used.sort(); // numeric ascending for a typed array
|
|
82
|
+
|
|
83
|
+
// count distinct keys
|
|
84
|
+
let uniqueCount = 0;
|
|
85
|
+
let prev = -1;
|
|
86
|
+
for (let i = 0; i < used.length; i++) {
|
|
87
|
+
if (used[i] !== prev) {
|
|
88
|
+
uniqueCount++;
|
|
89
|
+
prev = used[i];
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
const a = new Uint32Array(uniqueCount);
|
|
94
|
+
const b = new Uint32Array(uniqueCount);
|
|
95
|
+
|
|
96
|
+
let j = 0;
|
|
97
|
+
prev = -1;
|
|
98
|
+
for (let i = 0; i < used.length; i++) {
|
|
99
|
+
const key = used[i];
|
|
100
|
+
if (key === prev) {
|
|
101
|
+
continue;
|
|
102
|
+
}
|
|
103
|
+
prev = key;
|
|
104
|
+
const lo = Math.floor(key / n);
|
|
105
|
+
a[j] = lo;
|
|
106
|
+
b[j] = key - lo * n;
|
|
107
|
+
j++;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
// A valid Delaunay 1-skeleton spans the whole point set (it triangulates the convex hull), so a
|
|
111
|
+
// DISCONNECTED extraction means the input was degenerate — (near-)coplanar/collinear probes the 3D
|
|
112
|
+
// tetrahedraliser cannot resolve. Fall back to the complete graph so connectivity is never lost; dense
|
|
113
|
+
// volumetric fields (the design target) are well-conditioned and never hit this. (A large genuinely
|
|
114
|
+
// coplanar field would make this O(n²) — outside scope; bakeProbeField fields are always 3D.)
|
|
115
|
+
if (!isConnected(n, a, b)) {
|
|
116
|
+
return completeGraphEdges(n);
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
return { a, b };
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* Whether the undirected edge set connects all `n` vertices into one component.
|
|
124
|
+
* @param {number} n
|
|
125
|
+
* @param {Uint32Array} a
|
|
126
|
+
* @param {Uint32Array} b
|
|
127
|
+
* @returns {boolean}
|
|
128
|
+
*/
|
|
129
|
+
function isConnected(n, a, b) {
|
|
130
|
+
const parent = new Uint32Array(n);
|
|
131
|
+
uf_init(parent, n);
|
|
132
|
+
for (let i = 0; i < a.length; i++) {
|
|
133
|
+
uf_union(parent, a[i], b[i]);
|
|
134
|
+
}
|
|
135
|
+
const root = uf_find(parent, 0);
|
|
136
|
+
for (let i = 1; i < n; i++) {
|
|
137
|
+
if (uf_find(parent, i) !== root) {
|
|
138
|
+
return false;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
return true;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
// scratch for a tet's 4 corner vertex indices (module-static; offline, single-threaded)
|
|
145
|
+
const TET_CORNERS = [0, 0, 0, 0];
|
|
146
|
+
|
|
147
|
+
/**
|
|
148
|
+
* Probe indices in Morton (Z-order) order — the spatially-coherent insertion order for the incremental
|
|
149
|
+
* Delaunay. Degenerate axes (a flat field) get a tiny span so the Morton key stays finite; the resulting
|
|
150
|
+
* order is then arbitrary, but a degenerate field falls back to the complete graph anyway.
|
|
151
|
+
* @param {AcousticProbeField} field
|
|
152
|
+
* @param {number} n
|
|
153
|
+
* @returns {Uint32Array} `order[k]` = original probe index at sorted position k
|
|
154
|
+
*/
|
|
155
|
+
function mortonOrder(field, n) {
|
|
156
|
+
let minX = Infinity, minY = Infinity, minZ = Infinity;
|
|
157
|
+
let maxX = -Infinity, maxY = -Infinity, maxZ = -Infinity;
|
|
158
|
+
|
|
159
|
+
for (let i = 0; i < n; i++) {
|
|
160
|
+
|
|
161
|
+
const x = field.probeX(i);
|
|
162
|
+
const y = field.probeY(i);
|
|
163
|
+
const z = field.probeZ(i);
|
|
164
|
+
|
|
165
|
+
if (x < minX) minX = x;
|
|
166
|
+
if (x > maxX) maxX = x;
|
|
167
|
+
if (y < minY) minY = y;
|
|
168
|
+
if (y > maxY) maxY = y;
|
|
169
|
+
if (z < minZ) minZ = z;
|
|
170
|
+
if (z > maxZ) maxZ = z;
|
|
171
|
+
|
|
172
|
+
}
|
|
173
|
+
const bounds = [
|
|
174
|
+
minX, minY, minZ,
|
|
175
|
+
maxX > minX ? maxX : minX + 1,
|
|
176
|
+
maxY > minY ? maxY : minY + 1,
|
|
177
|
+
maxZ > minZ ? maxZ : minZ + 1,
|
|
178
|
+
];
|
|
179
|
+
|
|
180
|
+
const codes = new Uint32Array(n);
|
|
181
|
+
for (let i = 0; i < n; i++) {
|
|
182
|
+
codes[i] = v3_morton_encode_bounded(field.probeX(i), field.probeY(i), field.probeZ(i), bounds);
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
const order = new Uint32Array(n);
|
|
186
|
+
for (let i = 0; i < n; i++) {
|
|
187
|
+
order[i] = i;
|
|
188
|
+
}
|
|
189
|
+
order.sort((p, q) => codes[p] - codes[q]);
|
|
190
|
+
|
|
191
|
+
return order;
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
/**
|
|
195
|
+
* Every undirected pair over `n` points (the complete graph) — the `n < 4` base case where a Delaunay
|
|
196
|
+
* tetrahedron cannot form.
|
|
197
|
+
* @param {number} n
|
|
198
|
+
* @returns {{a: Uint32Array, b: Uint32Array}}
|
|
199
|
+
*/
|
|
200
|
+
function completeGraphEdges(n) {
|
|
201
|
+
const count = (n * (n - 1)) / 2;
|
|
202
|
+
const a = new Uint32Array(count);
|
|
203
|
+
const b = new Uint32Array(count);
|
|
204
|
+
|
|
205
|
+
let j = 0;
|
|
206
|
+
for (let i = 0; i < n; i++) {
|
|
207
|
+
for (let k = i + 1; k < n; k++) {
|
|
208
|
+
a[j] = i;
|
|
209
|
+
b[j] = k;
|
|
210
|
+
j++;
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
return { a, b };
|
|
215
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Densify the visibility graph AROUND portal probes so routing through an opening is symmetric instead of
|
|
3
|
+
* funnelled through one off-centre probe. The cover places probes by clearance, with no notion of openings, so
|
|
4
|
+
* the single Delaunay/bridge edge that survives across a narrow doorway lands on whichever probe happened to
|
|
5
|
+
* be nearest — and every cross-opening path detours through it, giving a listener on the left and one on the
|
|
6
|
+
* right very different routed lengths. This adds the missing cross-opening CHORDS: for each portal, the
|
|
7
|
+
* mutually-visible pairs among its nearest neighbours whose connecting line threads PAST the portal throat
|
|
8
|
+
* (small point-to-segment distance — the user's bias). A fan of such chords gives Dijkstra direct, mirror-
|
|
9
|
+
* symmetric routes through the opening; the residual asymmetry drops to the probe spacing.
|
|
10
|
+
*
|
|
11
|
+
* Adds only edges to the existing edge set (deduped) — no new runtime object, nothing to serialize; the portal
|
|
12
|
+
* concept lives only during the bake. Run as a stage of {@link bakeVisibility}, before the CSR is assembled.
|
|
13
|
+
*
|
|
14
|
+
* Pure geometry; offline (no WebAudio).
|
|
15
|
+
*
|
|
16
|
+
* @param {import("./AcousticProbeField.js").AcousticProbeField} field
|
|
17
|
+
* @param {import("../core/AcousticOccluderIndex.js").AcousticOccluderIndex} index the acoustic scene
|
|
18
|
+
* @param {ArrayLike<number>} portals probe indices of the portal throats (the pre-seeded probes)
|
|
19
|
+
* @param {{a: ArrayLike<number>, b: ArrayLike<number>}} edges the edges already in the graph (for dedup)
|
|
20
|
+
* @param {number} minSpacing the probe spacing hint
|
|
21
|
+
* @param {{neighborRadiusFactor?: number, maxNeighbors?: number, biasFactor?: number}} [options]
|
|
22
|
+
* @returns {{a: number[], b: number[]}} the cross-opening chord edges to add (possibly empty)
|
|
23
|
+
*/
|
|
24
|
+
export function probe_densify_portals(field: import("./AcousticProbeField.js").AcousticProbeField, index: import("../core/AcousticOccluderIndex.js").AcousticOccluderIndex, portals: ArrayLike<number>, edges: {
|
|
25
|
+
a: ArrayLike<number>;
|
|
26
|
+
b: ArrayLike<number>;
|
|
27
|
+
}, minSpacing: number, options?: {
|
|
28
|
+
neighborRadiusFactor?: number;
|
|
29
|
+
maxNeighbors?: number;
|
|
30
|
+
biasFactor?: number;
|
|
31
|
+
}): {
|
|
32
|
+
a: number[];
|
|
33
|
+
b: number[];
|
|
34
|
+
};
|
|
35
|
+
//# sourceMappingURL=probe_densify_portals.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"probe_densify_portals.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/sound/simulation/probe/probe_densify_portals.js"],"names":[],"mappings":"AAeA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,6CARW,OAAO,yBAAyB,EAAE,kBAAkB,SACpD,OAAO,kCAAkC,EAAE,qBAAqB,WAChE,UAAU,MAAM,CAAC,SACjB;IAAC,CAAC,EAAE,UAAU,MAAM,CAAC,CAAC;IAAC,CAAC,EAAE,UAAU,MAAM,CAAC,CAAA;CAAC,cAC5C,MAAM;2BACkB,MAAM;mBAAiB,MAAM;iBAAe,MAAM;IACxE;IAAC,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,CAAC,EAAE,MAAM,EAAE,CAAA;CAAC,CAyEtC"}
|