@woosh/meep-engine 2.131.48 → 2.132.1
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/README.md +1 -1
- package/package.json +1 -1
- package/src/core/bvh2/bvh3/ebvh_optimize_treelet.d.ts.map +1 -1
- package/src/core/bvh2/bvh3/ebvh_optimize_treelet.js +4 -3
- package/src/core/codegen/LineBuilder.js +3 -3
- package/src/core/collection/heap/Uint32Heap.d.ts +14 -0
- package/src/core/collection/heap/Uint32Heap.d.ts.map +1 -1
- package/src/core/collection/heap/Uint32Heap.js +18 -0
- package/src/core/collection/map/HashMap.d.ts.map +1 -1
- package/src/core/collection/map/HashMap.js +4 -22
- package/src/core/collection/map/generate_next_linear_congruential_index.d.ts +15 -0
- package/src/core/collection/map/generate_next_linear_congruential_index.d.ts.map +1 -0
- package/src/core/collection/map/generate_next_linear_congruential_index.js +18 -0
- package/src/core/geom/3d/aabb/AABB3.js +1 -1
- 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 +10 -26
- package/src/core/geom/3d/line/line3_compute_segment_nearest_point_to_point_t.d.ts +19 -0
- package/src/core/geom/3d/line/line3_compute_segment_nearest_point_to_point_t.d.ts.map +1 -0
- package/src/core/geom/3d/line/line3_compute_segment_nearest_point_to_point_t.js +48 -0
- package/src/core/geom/3d/line/line3_compute_segment_point_distance.d.ts +15 -0
- package/src/core/geom/3d/line/line3_compute_segment_point_distance.d.ts.map +1 -0
- package/src/core/geom/3d/line/line3_compute_segment_point_distance.js +24 -0
- package/src/core/geom/3d/line/line3_compute_segment_point_distance_eikonal.d.ts +17 -0
- package/src/core/geom/3d/line/line3_compute_segment_point_distance_eikonal.d.ts.map +1 -0
- package/src/core/geom/3d/line/line3_compute_segment_point_distance_eikonal.js +95 -0
- package/src/core/geom/3d/line/line3_compute_segment_point_distance_sqr.d.ts +16 -0
- package/src/core/geom/3d/line/line3_compute_segment_point_distance_sqr.d.ts.map +1 -0
- package/src/core/geom/3d/line/{line3_computeSegmentPointDistance_sqr.js → line3_compute_segment_point_distance_sqr.js} +16 -3
- package/src/core/geom/3d/topology/struct/TopoMesh.d.ts +4 -0
- package/src/core/geom/3d/topology/struct/TopoMesh.d.ts.map +1 -1
- package/src/core/geom/3d/topology/struct/TopoMesh.js +4 -0
- package/src/core/geom/3d/topology/struct/binary/BinaryElementPool.d.ts +18 -1
- package/src/core/geom/3d/topology/struct/binary/BinaryElementPool.d.ts.map +1 -1
- package/src/core/geom/3d/topology/struct/binary/BinaryElementPool.js +56 -0
- package/src/core/geom/3d/topology/struct/binary/BinaryTopology.d.ts +46 -16
- package/src/core/geom/3d/topology/struct/binary/BinaryTopology.d.ts.map +1 -1
- package/src/core/geom/3d/topology/struct/binary/BinaryTopology.js +85 -15
- package/src/core/geom/3d/topology/struct/binary/io/bt_disk_edge_add.d.ts +9 -0
- package/src/core/geom/3d/topology/struct/binary/io/bt_disk_edge_add.d.ts.map +1 -0
- package/src/core/geom/3d/topology/struct/binary/io/bt_disk_edge_add.js +43 -0
- package/src/core/geom/3d/topology/struct/binary/io/bt_disk_edge_remove.d.ts +4 -3
- package/src/core/geom/3d/topology/struct/binary/io/bt_disk_edge_remove.d.ts.map +1 -1
- package/src/core/geom/3d/topology/struct/binary/io/bt_disk_edge_remove.js +38 -4
- package/src/core/geom/3d/topology/struct/binary/io/bt_loop_kill.d.ts +8 -0
- package/src/core/geom/3d/topology/struct/binary/io/bt_loop_kill.d.ts.map +1 -0
- package/src/core/geom/3d/topology/struct/binary/io/bt_loop_kill.js +36 -0
- package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_cleanup_faceless_references.d.ts +10 -0
- package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_cleanup_faceless_references.d.ts.map +1 -0
- package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_cleanup_faceless_references.js +62 -0
- package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_face_decouple.d.ts +13 -0
- package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_face_decouple.d.ts.map +1 -0
- package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_face_decouple.js +145 -0
- package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_face_decouple_islands.d.ts +12 -0
- package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_face_decouple_islands.d.ts.map +1 -0
- package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_face_decouple_islands.js +111 -0
- package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_face_island_erode.d.ts +15 -0
- package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_face_island_erode.d.ts.map +1 -0
- package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_face_island_erode.js +290 -0
- package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_from_indexed_geometry.d.ts +11 -0
- package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_from_indexed_geometry.d.ts.map +1 -0
- package/src/core/geom/3d/topology/struct/binary/io/{bt_index_geometry_to_topology.js → bt_mesh_from_indexed_geometry.js} +6 -7
- package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_from_unindexed_geometry.d.ts +8 -0
- package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_from_unindexed_geometry.d.ts.map +1 -0
- package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_from_unindexed_geometry.js +31 -0
- package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_triangulate.d.ts +7 -0
- package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_triangulate.d.ts.map +1 -0
- package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_triangulate.js +22 -0
- package/src/core/geom/3d/topology/struct/binary/io/bt_radial_loop_add.d.ts +8 -0
- package/src/core/geom/3d/topology/struct/binary/io/bt_radial_loop_add.d.ts.map +1 -0
- package/src/core/geom/3d/topology/struct/binary/io/bt_radial_loop_add.js +32 -0
- package/src/core/geom/3d/topology/struct/binary/io/bt_radial_loop_remove.d.ts +8 -0
- package/src/core/geom/3d/topology/struct/binary/io/bt_radial_loop_remove.d.ts.map +1 -0
- package/src/core/geom/3d/topology/struct/binary/io/bt_radial_loop_remove.js +26 -0
- package/src/core/geom/3d/topology/struct/binary/io/edge/OrderedEdge.d.ts.map +1 -0
- package/src/core/geom/3d/topology/struct/binary/io/{OrderedEdge.js → edge/OrderedEdge.js} +1 -1
- package/src/core/geom/3d/topology/struct/binary/io/edge/bt_edge_create.d.ts.map +1 -0
- package/src/core/geom/3d/topology/struct/binary/io/{bt_edge_create.js → edge/bt_edge_create.js} +1 -1
- package/src/core/geom/3d/topology/struct/binary/io/edge/bt_edge_get_or_create.d.ts.map +1 -0
- package/src/core/geom/3d/topology/struct/binary/io/{bt_edge_get_or_create.js → edge/bt_edge_get_or_create.js} +1 -1
- package/src/core/geom/3d/topology/struct/binary/io/edge/bt_edge_kill.d.ts.map +1 -0
- package/src/core/geom/3d/topology/struct/binary/io/{bt_edge_kill.js → edge/bt_edge_kill.js} +6 -3
- package/src/core/geom/3d/topology/struct/binary/io/edge/bt_edge_split.d.ts +13 -0
- package/src/core/geom/3d/topology/struct/binary/io/edge/bt_edge_split.d.ts.map +1 -0
- package/src/core/geom/3d/topology/struct/binary/io/edge/bt_edge_split.js +180 -0
- package/src/core/geom/3d/topology/struct/binary/io/edge/bt_kill_only_edge.d.ts.map +1 -0
- package/src/core/geom/3d/topology/struct/binary/io/edge/bt_mesh_calc_edges.d.ts.map +1 -0
- package/src/core/geom/3d/topology/struct/binary/io/{bt_mesh_calc_edges.js → edge/bt_mesh_calc_edges.js} +10 -7
- package/src/core/geom/3d/topology/struct/binary/io/edge/get_or_create_edge_map.d.ts.map +1 -0
- package/src/core/geom/3d/topology/struct/binary/io/face/bt_face_kill.d.ts +8 -0
- package/src/core/geom/3d/topology/struct/binary/io/face/bt_face_kill.d.ts.map +1 -0
- package/src/core/geom/3d/topology/struct/binary/io/face/bt_face_kill.js +26 -0
- package/src/core/geom/3d/topology/struct/binary/io/face/bt_face_poke.d.ts +15 -0
- package/src/core/geom/3d/topology/struct/binary/io/face/bt_face_poke.d.ts.map +1 -0
- package/src/core/geom/3d/topology/struct/binary/io/face/bt_face_poke.js +152 -0
- package/src/core/geom/3d/topology/struct/binary/io/face/bt_face_triangulate.d.ts +13 -0
- package/src/core/geom/3d/topology/struct/binary/io/face/bt_face_triangulate.d.ts.map +1 -0
- package/src/core/geom/3d/topology/struct/binary/io/face/bt_face_triangulate.js +124 -0
- package/src/core/geom/3d/topology/struct/binary/io/face/bt_kill_only_face.d.ts.map +1 -0
- package/src/core/geom/3d/topology/struct/binary/io/vertex/bt_kill_only_vert.d.ts.map +1 -0
- package/src/core/geom/3d/topology/struct/binary/io/vertex/bt_merge_verts_by_distance.d.ts +10 -0
- package/src/core/geom/3d/topology/struct/binary/io/vertex/bt_merge_verts_by_distance.d.ts.map +1 -0
- package/src/core/geom/3d/topology/struct/binary/io/vertex/bt_merge_verts_by_distance.js +165 -0
- package/src/core/geom/3d/topology/struct/binary/io/vertex/bt_vert_kill.d.ts.map +1 -0
- package/src/core/geom/3d/topology/struct/binary/io/{bt_vert_kill.js → vertex/bt_vert_kill.js} +5 -2
- package/src/core/geom/3d/topology/struct/binary/io/vertex/bt_vertex_replace.d.ts +13 -0
- package/src/core/geom/3d/topology/struct/binary/io/vertex/bt_vertex_replace.d.ts.map +1 -0
- package/src/core/geom/3d/topology/struct/binary/io/vertex/bt_vertex_replace.js +125 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_edge_has_vertex.d.ts +9 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_edge_has_vertex.d.ts.map +1 -0
- package/src/core/geom/3d/topology/struct/binary/query/{bt_mesh_edge_has_vertex.js → bt_edge_has_vertex.js} +1 -1
- package/src/core/geom/3d/topology/struct/binary/query/{bt_mesh_edge_other_vertex.d.ts → bt_edge_other_vertex.d.ts} +2 -2
- package/src/core/geom/3d/topology/struct/binary/query/bt_edge_other_vertex.d.ts.map +1 -0
- package/src/core/geom/3d/topology/struct/binary/query/{bt_mesh_edge_other_vertex.js → bt_edge_other_vertex.js} +1 -1
- package/src/core/geom/3d/topology/struct/binary/query/bt_face_get_attached_faces.d.ts +12 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_face_get_attached_faces.d.ts.map +1 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_face_get_attached_faces.js +96 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_face_get_centroid.d.ts +10 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_face_get_centroid.d.ts.map +1 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_face_get_centroid.js +75 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_face_get_incenter.d.ts +10 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_face_get_incenter.d.ts.map +1 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_face_get_incenter.js +85 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_face_get_neighbour_faces.d.ts +12 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_face_get_neighbour_faces.d.ts.map +1 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_face_get_neighbour_faces.js +74 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_face_is_degenerate.d.ts +9 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_face_is_degenerate.d.ts.map +1 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_face_is_degenerate.js +78 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_build_boundary_distance_field.d.ts +15 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_build_boundary_distance_field.d.ts.map +1 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_build_boundary_distance_field.js +151 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_compute_edge_distance_eikonal.d.ts +13 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_compute_edge_distance_eikonal.d.ts.map +1 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_compute_edge_distance_eikonal.js +46 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_compute_face_islands.d.ts +9 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_compute_face_islands.d.ts.map +1 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_compute_face_islands.js +78 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_vertex_distance_to_edge.d.ts +10 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_vertex_distance_to_edge.d.ts.map +1 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_vertex_distance_to_edge.js +48 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_vertex_distance_to_vertex.d.ts +9 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_vertex_distance_to_vertex.d.ts.map +1 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_vertex_distance_to_vertex.js +31 -0
- package/src/core/geom/3d/topology/struct/prototypeBinaryTopology.js +2 -2
- package/src/core/geom/3d/triangle/triangle3_incenter.d.ts +19 -0
- package/src/core/geom/3d/triangle/triangle3_incenter.d.ts.map +1 -0
- package/src/core/geom/3d/triangle/triangle3_incenter.js +60 -0
- package/src/core/math/hash/lowbias32.d.ts +9 -0
- package/src/core/math/hash/lowbias32.d.ts.map +1 -0
- package/src/core/math/hash/lowbias32.js +20 -0
- package/src/core/process/task/util/iteratorTask.d.ts +2 -2
- package/src/core/process/task/util/iteratorTask.d.ts.map +1 -1
- package/src/core/process/task/util/iteratorTask.js +3 -3
- package/src/engine/graphics/particles/particular/engine/utils/distrubuteParticlesOnMesh.d.ts.map +1 -1
- package/src/engine/graphics/particles/particular/engine/utils/distrubuteParticlesOnMesh.js +4 -4
- package/src/engine/graphics/render/forward_plus/query/detailed_sphere_frustum_intersection_test.js +4 -4
- package/src/engine/navigation/ecs/components/Path.js +3 -3
- package/src/engine/navigation/grid/find_path_on_grid_astar.d.ts +4 -4
- package/src/engine/navigation/grid/find_path_on_grid_astar.d.ts.map +1 -1
- package/src/engine/navigation/grid/find_path_on_grid_astar.js +5 -4
- package/src/engine/navigation/mesh/NavigationMesh.d.ts +32 -0
- package/src/engine/navigation/mesh/NavigationMesh.d.ts.map +1 -0
- package/src/engine/navigation/mesh/NavigationMesh.js +190 -0
- package/src/engine/navigation/mesh/NavigationMeshAgent.d.ts +9 -0
- package/src/engine/navigation/mesh/NavigationMeshAgent.d.ts.map +1 -0
- package/src/engine/navigation/mesh/NavigationMeshAgent.js +11 -0
- package/src/engine/navigation/mesh/README.md +3 -0
- package/src/engine/navigation/mesh/bt_mesh_face_find_path.d.ts +14 -0
- package/src/engine/navigation/mesh/bt_mesh_face_find_path.d.ts.map +1 -0
- package/src/engine/navigation/mesh/bt_mesh_face_find_path.js +203 -0
- package/src/engine/navigation/mesh/build/bvh_build_from_unindexed_triangles.d.ts +8 -0
- package/src/engine/navigation/mesh/build/bvh_build_from_unindexed_triangles.d.ts.map +1 -0
- package/src/engine/navigation/mesh/build/bvh_build_from_unindexed_triangles.js +46 -0
- package/src/engine/navigation/mesh/build/enforce_agent_height_clearance.d.ts +12 -0
- package/src/engine/navigation/mesh/build/enforce_agent_height_clearance.d.ts.map +1 -0
- package/src/engine/navigation/mesh/build/enforce_agent_height_clearance.js +204 -0
- package/src/engine/navigation/mesh/build/navmesh_build_topology.d.ts +14 -0
- package/src/engine/navigation/mesh/build/navmesh_build_topology.d.ts.map +1 -0
- package/src/engine/navigation/mesh/build/navmesh_build_topology.js +183 -0
- package/src/engine/navigation/mesh/bvh_build_from_bt_mesh.d.ts +7 -0
- package/src/engine/navigation/mesh/bvh_build_from_bt_mesh.d.ts.map +1 -0
- package/src/engine/navigation/mesh/bvh_build_from_bt_mesh.js +64 -0
- package/src/engine/navigation/mesh/funnel_string_pull.d.ts +15 -0
- package/src/engine/navigation/mesh/funnel_string_pull.d.ts.map +1 -0
- package/src/engine/navigation/mesh/funnel_string_pull.js +225 -0
- package/src/core/geom/3d/line/line3_computeSegmentPointDistance_sqr.d.ts +0 -14
- package/src/core/geom/3d/line/line3_computeSegmentPointDistance_sqr.d.ts.map +0 -1
- package/src/core/geom/3d/topology/struct/binary/io/OrderedEdge.d.ts.map +0 -1
- package/src/core/geom/3d/topology/struct/binary/io/bt_edge_create.d.ts.map +0 -1
- package/src/core/geom/3d/topology/struct/binary/io/bt_edge_get_or_create.d.ts.map +0 -1
- package/src/core/geom/3d/topology/struct/binary/io/bt_edge_kill.d.ts.map +0 -1
- package/src/core/geom/3d/topology/struct/binary/io/bt_face_kill.d.ts +0 -7
- package/src/core/geom/3d/topology/struct/binary/io/bt_face_kill.d.ts.map +0 -1
- package/src/core/geom/3d/topology/struct/binary/io/bt_face_kill.js +0 -8
- package/src/core/geom/3d/topology/struct/binary/io/bt_index_geometry_to_topology.d.ts +0 -11
- package/src/core/geom/3d/topology/struct/binary/io/bt_index_geometry_to_topology.d.ts.map +0 -1
- package/src/core/geom/3d/topology/struct/binary/io/bt_kill_only_edge.d.ts.map +0 -1
- package/src/core/geom/3d/topology/struct/binary/io/bt_kill_only_face.d.ts.map +0 -1
- package/src/core/geom/3d/topology/struct/binary/io/bt_kill_only_vert.d.ts.map +0 -1
- package/src/core/geom/3d/topology/struct/binary/io/bt_merge_verts_by_distance.d.ts +0 -18
- package/src/core/geom/3d/topology/struct/binary/io/bt_merge_verts_by_distance.d.ts.map +0 -1
- package/src/core/geom/3d/topology/struct/binary/io/bt_merge_verts_by_distance.js +0 -83
- package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_calc_edges.d.ts.map +0 -1
- package/src/core/geom/3d/topology/struct/binary/io/bt_vert_kill.d.ts.map +0 -1
- package/src/core/geom/3d/topology/struct/binary/io/get_or_create_edge_map.d.ts.map +0 -1
- package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_edge_has_vertex.d.ts +0 -9
- package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_edge_has_vertex.d.ts.map +0 -1
- package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_edge_other_vertex.d.ts.map +0 -1
- package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_face_get_neighbour_faces.d.ts +0 -10
- package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_face_get_neighbour_faces.d.ts.map +0 -1
- package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_face_get_neighbour_faces.js +0 -44
- package/src/engine/navigation/__module.d.ts +0 -2
- package/src/engine/navigation/__module.d.ts.map +0 -1
- package/src/engine/navigation/__module.js +0 -1
- /package/src/core/geom/3d/topology/struct/binary/io/{OrderedEdge.d.ts → edge/OrderedEdge.d.ts} +0 -0
- /package/src/core/geom/3d/topology/struct/binary/io/{bt_edge_create.d.ts → edge/bt_edge_create.d.ts} +0 -0
- /package/src/core/geom/3d/topology/struct/binary/io/{bt_edge_get_or_create.d.ts → edge/bt_edge_get_or_create.d.ts} +0 -0
- /package/src/core/geom/3d/topology/struct/binary/io/{bt_edge_kill.d.ts → edge/bt_edge_kill.d.ts} +0 -0
- /package/src/core/geom/3d/topology/struct/binary/io/{bt_kill_only_edge.d.ts → edge/bt_kill_only_edge.d.ts} +0 -0
- /package/src/core/geom/3d/topology/struct/binary/io/{bt_kill_only_edge.js → edge/bt_kill_only_edge.js} +0 -0
- /package/src/core/geom/3d/topology/struct/binary/io/{bt_mesh_calc_edges.d.ts → edge/bt_mesh_calc_edges.d.ts} +0 -0
- /package/src/core/geom/3d/topology/struct/binary/io/{get_or_create_edge_map.d.ts → edge/get_or_create_edge_map.d.ts} +0 -0
- /package/src/core/geom/3d/topology/struct/binary/io/{get_or_create_edge_map.js → edge/get_or_create_edge_map.js} +0 -0
- /package/src/core/geom/3d/topology/struct/binary/io/{bt_kill_only_face.d.ts → face/bt_kill_only_face.d.ts} +0 -0
- /package/src/core/geom/3d/topology/struct/binary/io/{bt_kill_only_face.js → face/bt_kill_only_face.js} +0 -0
- /package/src/core/geom/3d/topology/struct/binary/io/{bt_kill_only_vert.d.ts → vertex/bt_kill_only_vert.d.ts} +0 -0
- /package/src/core/geom/3d/topology/struct/binary/io/{bt_kill_only_vert.js → vertex/bt_kill_only_vert.js} +0 -0
- /package/src/core/geom/3d/topology/struct/binary/io/{bt_vert_kill.d.ts → vertex/bt_vert_kill.d.ts} +0 -0
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
import { assert } from "../../../core/assert.js";
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
*
|
|
6
|
+
* @param {number} i0
|
|
7
|
+
* @param {number} i1
|
|
8
|
+
* @param {number[]|ArrayLike<number>} vertex_data
|
|
9
|
+
* @returns {boolean}
|
|
10
|
+
*/
|
|
11
|
+
function vertices_equal(i0, i1, vertex_data) {
|
|
12
|
+
|
|
13
|
+
assert.isNonNegativeInteger(i0, "i0");
|
|
14
|
+
assert.isNonNegativeInteger(i1, "i1");
|
|
15
|
+
|
|
16
|
+
const address_0 = i0 * 3;
|
|
17
|
+
|
|
18
|
+
const x0 = vertex_data[address_0];
|
|
19
|
+
const y0 = vertex_data[address_0 + 1];
|
|
20
|
+
const z0 = vertex_data[address_0 + 2];
|
|
21
|
+
|
|
22
|
+
const address_1 = i1 * 3;
|
|
23
|
+
|
|
24
|
+
const x1 = vertex_data[address_1];
|
|
25
|
+
const y1 = vertex_data[address_1 + 1];
|
|
26
|
+
const z1 = vertex_data[address_1 + 2];
|
|
27
|
+
|
|
28
|
+
const dx = x1 - x0;
|
|
29
|
+
const dy = y1 - y0;
|
|
30
|
+
const dz = z1 - z0;
|
|
31
|
+
|
|
32
|
+
const distance_sqr = dx * dx + dy * dy + dz * dz;
|
|
33
|
+
|
|
34
|
+
return distance_sqr < 1e-7;
|
|
35
|
+
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
*
|
|
40
|
+
* @param {number} i0
|
|
41
|
+
* @param {number} i1
|
|
42
|
+
* @param {number} i2
|
|
43
|
+
* @param {number[]|Float32Array} vertex_data
|
|
44
|
+
* @param {number} normal_x
|
|
45
|
+
* @param {number} normal_y
|
|
46
|
+
* @param {number} normal_z
|
|
47
|
+
*/
|
|
48
|
+
function triangle_signed_area(
|
|
49
|
+
i0, i1, i2,
|
|
50
|
+
vertex_data,
|
|
51
|
+
normal_x, normal_y, normal_z
|
|
52
|
+
) {
|
|
53
|
+
assert.isNonNegativeInteger(i0, "i0");
|
|
54
|
+
assert.isNonNegativeInteger(i1, "i1");
|
|
55
|
+
assert.isNonNegativeInteger(i2, "i2");
|
|
56
|
+
|
|
57
|
+
assert.isNumber(normal_x, "normal_x");
|
|
58
|
+
assert.isNumber(normal_y, "normal_y");
|
|
59
|
+
assert.isNumber(normal_z, "normal_z");
|
|
60
|
+
|
|
61
|
+
const address_0 = i0 * 3;
|
|
62
|
+
|
|
63
|
+
const x0 = vertex_data[address_0];
|
|
64
|
+
const y0 = vertex_data[address_0 + 1];
|
|
65
|
+
const z0 = vertex_data[address_0 + 2];
|
|
66
|
+
|
|
67
|
+
const address_1 = i1 * 3;
|
|
68
|
+
|
|
69
|
+
const x1 = vertex_data[address_1];
|
|
70
|
+
const y1 = vertex_data[address_1 + 1];
|
|
71
|
+
const z1 = vertex_data[address_1 + 2];
|
|
72
|
+
|
|
73
|
+
const address_2 = i2 * 3;
|
|
74
|
+
|
|
75
|
+
const x2 = vertex_data[address_2];
|
|
76
|
+
const y2 = vertex_data[address_2 + 1];
|
|
77
|
+
const z2 = vertex_data[address_2 + 2];
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
// 1. Calculate Vector U (b - a)
|
|
81
|
+
const ux = x1 - x0;
|
|
82
|
+
const uy = y1 - y0;
|
|
83
|
+
const uz = z1 - z0;
|
|
84
|
+
|
|
85
|
+
// 2. Calculate Vector V (c - a)
|
|
86
|
+
const vx = x2 - x0;
|
|
87
|
+
const vy = y2 - y0;
|
|
88
|
+
const vz = z2 - z0;
|
|
89
|
+
|
|
90
|
+
// 3. Calculate 3D Cross Product (U x V)
|
|
91
|
+
const crossX = uy * vz - uz * vy;
|
|
92
|
+
const crossY = uz * vx - ux * vz;
|
|
93
|
+
const crossZ = ux * vy - uy * vx;
|
|
94
|
+
|
|
95
|
+
// 4. Dot Product with the Surface Normal
|
|
96
|
+
return (crossX * normal_x) + (crossY * normal_y) + (crossZ * normal_z);
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* Implementation of the string-pulling algorithm for funnel path refinement.
|
|
101
|
+
* Does not allocate memory.
|
|
102
|
+
*
|
|
103
|
+
*
|
|
104
|
+
* @param {Uint32Array|number[]|ArrayLike<number>} output Indices of vertices are written here
|
|
105
|
+
* @param {number} output_offset where to start writing into the output, typically you want to pass 0 here.
|
|
106
|
+
* @param {Uint32Array|Uint16Array|Uint8Array|number[]} portal_vertices Flat array of vertex index pairs [left0,right0, left1, right1 ... leftN, rightN]
|
|
107
|
+
* @param {Float32Array|number[]|ArrayLike<number>} portal_normals Normal vectors for each portal. Should be set to the triangle normal, which we exit through this portal. can be filled with [up, up, up... ] if your portals lay in the horizontal plane mostly.
|
|
108
|
+
* @param {number} portal_count how many portals do we have to work with
|
|
109
|
+
* @param {Float32Array|number[]} vertex_data actual vertex positions
|
|
110
|
+
* @returns number of vertices written to the output
|
|
111
|
+
*/
|
|
112
|
+
export function funnel_string_pull(
|
|
113
|
+
output,
|
|
114
|
+
output_offset,
|
|
115
|
+
portal_vertices,
|
|
116
|
+
portal_normals,
|
|
117
|
+
portal_count,
|
|
118
|
+
vertex_data
|
|
119
|
+
) {
|
|
120
|
+
assert.isArrayLike(output, "output");
|
|
121
|
+
assert.isNonNegativeInteger(output_offset, "output_offset");
|
|
122
|
+
assert.isArrayLike(portal_vertices, "portal_vertices");
|
|
123
|
+
assert.isArrayLike(portal_normals, "portal_normals");
|
|
124
|
+
assert.isNonNegativeInteger(portal_count, "portal_count");
|
|
125
|
+
assert.isArrayLike(vertex_data, "vertex_data");
|
|
126
|
+
|
|
127
|
+
if (portal_count === 0) {
|
|
128
|
+
// special case, no data
|
|
129
|
+
return 0;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
// see https://github.com/donmccurdy/three-pathfinding/blob/1f0345a516b7d1a1dac6649cdb6e815b47df6dce/src/Channel.js#L16
|
|
133
|
+
|
|
134
|
+
let output_cursor = output_offset;
|
|
135
|
+
|
|
136
|
+
// Init scan state
|
|
137
|
+
let apexIndex = 0,
|
|
138
|
+
leftIndex = 0,
|
|
139
|
+
rightIndex = 0;
|
|
140
|
+
|
|
141
|
+
let portalApex = portal_vertices[0];
|
|
142
|
+
let portalLeft = portal_vertices[0];
|
|
143
|
+
let portalRight = portal_vertices[1];
|
|
144
|
+
|
|
145
|
+
// Add start point.
|
|
146
|
+
output[output_cursor++] = portalApex;
|
|
147
|
+
|
|
148
|
+
for (let i = 1; i < portal_count; i++) {
|
|
149
|
+
const portal_address = i * 2;
|
|
150
|
+
|
|
151
|
+
const left = portal_vertices[portal_address];
|
|
152
|
+
const right = portal_vertices[portal_address + 1];
|
|
153
|
+
|
|
154
|
+
const portal_normal_x = portal_normals[i * 3];
|
|
155
|
+
const portal_normal_y = portal_normals[i * 3 + 1];
|
|
156
|
+
const portal_normal_z = portal_normals[i * 3 + 2];
|
|
157
|
+
|
|
158
|
+
// Update right vertex.
|
|
159
|
+
if (triangle_signed_area(portalApex, portalRight, right, vertex_data, portal_normal_x, portal_normal_y, portal_normal_z) <= 0.0) {
|
|
160
|
+
if (vertices_equal(portalApex, portalRight, vertex_data) || triangle_signed_area(portalApex, portalLeft, right, vertex_data, portal_normal_x, portal_normal_y, portal_normal_z) > 0.0) {
|
|
161
|
+
// Tighten the funnel.
|
|
162
|
+
portalRight = right;
|
|
163
|
+
rightIndex = i;
|
|
164
|
+
} else {
|
|
165
|
+
// Right over left, insert left to path and restart scan from portal left point.
|
|
166
|
+
output[output_cursor++] = portalLeft;
|
|
167
|
+
|
|
168
|
+
// Make current left the new apex.
|
|
169
|
+
portalApex = portalLeft;
|
|
170
|
+
apexIndex = leftIndex;
|
|
171
|
+
|
|
172
|
+
// Reset portal
|
|
173
|
+
portalLeft = portalApex;
|
|
174
|
+
portalRight = portalApex;
|
|
175
|
+
leftIndex = apexIndex;
|
|
176
|
+
rightIndex = apexIndex;
|
|
177
|
+
|
|
178
|
+
// Restart scan
|
|
179
|
+
i = apexIndex;
|
|
180
|
+
continue;
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
// Update left vertex.
|
|
185
|
+
if (triangle_signed_area(portalApex, portalLeft, left, vertex_data, portal_normal_x, portal_normal_y, portal_normal_z) >= 0.0) {
|
|
186
|
+
if (vertices_equal(portalApex, portalLeft, vertex_data) || triangle_signed_area(portalApex, portalRight, left, vertex_data, portal_normal_x, portal_normal_y, portal_normal_z) < 0.0) {
|
|
187
|
+
|
|
188
|
+
// Tighten the funnel.
|
|
189
|
+
portalLeft = left;
|
|
190
|
+
leftIndex = i;
|
|
191
|
+
|
|
192
|
+
} else {
|
|
193
|
+
|
|
194
|
+
// Left over right, insert right to path and restart scan from portal right point.
|
|
195
|
+
output[output_cursor++] = portalRight;
|
|
196
|
+
|
|
197
|
+
// Make current right the new apex.
|
|
198
|
+
portalApex = portalRight;
|
|
199
|
+
apexIndex = rightIndex;
|
|
200
|
+
|
|
201
|
+
// Reset portal
|
|
202
|
+
portalLeft = portalApex;
|
|
203
|
+
portalRight = portalApex;
|
|
204
|
+
leftIndex = apexIndex;
|
|
205
|
+
rightIndex = apexIndex;
|
|
206
|
+
|
|
207
|
+
// Restart scan
|
|
208
|
+
i = apexIndex;
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
const last_portal_address = (portal_count - 1) * 2;
|
|
214
|
+
|
|
215
|
+
if (
|
|
216
|
+
(output_cursor === output_offset)
|
|
217
|
+
|| (!vertices_equal(output[output_cursor - 1], portal_vertices[last_portal_address], vertex_data))
|
|
218
|
+
) {
|
|
219
|
+
// Append last point to path.
|
|
220
|
+
output[output_cursor++] = portal_vertices[last_portal_address]
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
|
|
224
|
+
return output_cursor - output_offset;
|
|
225
|
+
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Computes shortest distance between a line segment(defined by 2 points) and a point
|
|
3
|
-
* @param {number} x0
|
|
4
|
-
* @param {number} y0
|
|
5
|
-
* @param {number} z0
|
|
6
|
-
* @param {number} x1
|
|
7
|
-
* @param {number} y1
|
|
8
|
-
* @param {number} z1
|
|
9
|
-
* @param {number} px
|
|
10
|
-
* @param {number} py
|
|
11
|
-
* @param {number} pz
|
|
12
|
-
*/
|
|
13
|
-
export function line3_computeSegmentPointDistance_sqr(x0: number, y0: number, z0: number, x1: number, y1: number, z1: number, px: number, py: number, pz: number): number;
|
|
14
|
-
//# sourceMappingURL=line3_computeSegmentPointDistance_sqr.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"line3_computeSegmentPointDistance_sqr.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/3d/line/line3_computeSegmentPointDistance_sqr.js"],"names":[],"mappings":"AAGA;;;;;;;;;;;GAWG;AACH,0DAVW,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,UA2BhB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"OrderedEdge.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/core/geom/3d/topology/struct/binary/io/OrderedEdge.js"],"names":[],"mappings":"AAEA;IACI;;;;OAIG;IACH,gBAHW,MAAM,MACN,MAAM,EAUhB;IANO,cAAe;IACf,eAAgB;IAOxB;;;;OAIG;IACH,QAHW,MAAM,MACN,MAAM,QAUhB;IAED;;;OAGG;IACH,YAFW,WAAW,QAKrB;IAED,qBAEC;IAED;;;OAGG;IACH,QAFY,MAAM,CAKjB;IAED;;;;OAIG;IACH,cAHW,WAAW,GACT,OAAO,CAMnB;CACJ"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bt_edge_create.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/core/geom/3d/topology/struct/binary/io/bt_edge_create.js"],"names":[],"mappings":"AA8DA;;;;;;GAMG;AACH,yDAJW,MAAM,MACN,MAAM,GACL,MAAM,CAsCjB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bt_edge_get_or_create.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/core/geom/3d/topology/struct/binary/io/bt_edge_get_or_create.js"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AACH,gEAJW,MAAM,MACN,MAAM,GACJ,MAAM,CAmClB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bt_edge_kill.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/core/geom/3d/topology/struct/binary/io/bt_edge_kill.js"],"names":[],"mappings":"AAKA;;;GAGG;AACH,sDAFW,MAAM,QAkBhB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bt_face_kill.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/core/geom/3d/topology/struct/binary/io/bt_face_kill.js"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,sDAFW,MAAM,QAIhB"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Populates supplied topology with data from supplied indexed geometry
|
|
3
|
-
* @see https://github.com/blender/blender/blob/9cb061f4f0119e647173e7d354e1457e97632333/source/blender/blenkernel/intern/mesh_calc_edges.cc
|
|
4
|
-
* @see https://github.com/blender/blender/blob/9cb061f4f0119e647173e7d354e1457e97632333/source/blender/io/stl/importer/stl_import_mesh.cc#L63
|
|
5
|
-
* @param {BinaryTopology} out
|
|
6
|
-
* @param {number[]} indices
|
|
7
|
-
* @param {number[]} vertex_positions
|
|
8
|
-
* @param {number[]} [vertex_normals]
|
|
9
|
-
*/
|
|
10
|
-
export function bt_index_geometry_to_topology(out: BinaryTopology, indices: number[], vertex_positions: number[], vertex_normals?: number[]): void;
|
|
11
|
-
//# sourceMappingURL=bt_index_geometry_to_topology.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bt_index_geometry_to_topology.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/core/geom/3d/topology/struct/binary/io/bt_index_geometry_to_topology.js"],"names":[],"mappings":"AAIA;;;;;;;;GAQG;AACH,4EAJW,MAAM,EAAE,oBACR,MAAM,EAAE,mBACR,MAAM,EAAE,QAwGlB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bt_kill_only_edge.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/core/geom/3d/topology/struct/binary/io/bt_kill_only_edge.js"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,2DAFW,MAAM,QAIhB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bt_kill_only_face.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/core/geom/3d/topology/struct/binary/io/bt_kill_only_face.js"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,2DAFW,MAAM,QAIhB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bt_kill_only_vert.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/core/geom/3d/topology/struct/binary/io/bt_kill_only_vert.js"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,2DAFW,MAAM,QAIhB"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Patch mesh structure to make all loops/edges/faces point to this new replacement vertex instead of the victim
|
|
3
|
-
* This effectively removes any usage of the victim from the mesh enabling us to safely remove it
|
|
4
|
-
* @param {BinaryTopology} mesh
|
|
5
|
-
* @param {number} victim
|
|
6
|
-
* @param {number} replacement
|
|
7
|
-
*/
|
|
8
|
-
export function bt_replace_vertex(mesh: BinaryTopology, victim: number, replacement: number): void;
|
|
9
|
-
/**
|
|
10
|
-
* Only considers distance, no other attributes are accounted for
|
|
11
|
-
* Performs operation in-place
|
|
12
|
-
* IMPORTANT: Assumes vertices are compacted, that is - there are no holes in the vertex element pool
|
|
13
|
-
* @param {BinaryTopology} mesh
|
|
14
|
-
* @param {number[]} mesh_bounds bounding box of the mesh, required for quantization
|
|
15
|
-
* @param {number} [max_distance] distance between vertices within which we perform the merge
|
|
16
|
-
*/
|
|
17
|
-
export function bt_merge_verts_by_distance(mesh: BinaryTopology, mesh_bounds: number[], max_distance?: number): void;
|
|
18
|
-
//# sourceMappingURL=bt_merge_verts_by_distance.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bt_merge_verts_by_distance.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/core/geom/3d/topology/struct/binary/io/bt_merge_verts_by_distance.js"],"names":[],"mappings":"AAIA;;;;;;GAMG;AACH,gEAHW,MAAM,eACN,MAAM,QAIhB;AAED;;;;;;;GAOG;AACH,8EAHW,MAAM,EAAE,iBACR,MAAM,QA6DhB"}
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
import { HashMap } from "../../../../../../collection/map/HashMap.js";
|
|
2
|
-
import { v3_distance_sqr } from "../../../../../vec3/v3_distance_sqr.js";
|
|
3
|
-
import v3_morton_encode from "../../../../morton/v3_morton_encode.js";
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Patch mesh structure to make all loops/edges/faces point to this new replacement vertex instead of the victim
|
|
7
|
-
* This effectively removes any usage of the victim from the mesh enabling us to safely remove it
|
|
8
|
-
* @param {BinaryTopology} mesh
|
|
9
|
-
* @param {number} victim
|
|
10
|
-
* @param {number} replacement
|
|
11
|
-
*/
|
|
12
|
-
export function bt_replace_vertex(mesh, victim, replacement) {
|
|
13
|
-
throw new Error("Not Implemented");
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* Only considers distance, no other attributes are accounted for
|
|
18
|
-
* Performs operation in-place
|
|
19
|
-
* IMPORTANT: Assumes vertices are compacted, that is - there are no holes in the vertex element pool
|
|
20
|
-
* @param {BinaryTopology} mesh
|
|
21
|
-
* @param {number[]} mesh_bounds bounding box of the mesh, required for quantization
|
|
22
|
-
* @param {number} [max_distance] distance between vertices within which we perform the merge
|
|
23
|
-
*/
|
|
24
|
-
export function bt_merge_verts_by_distance(
|
|
25
|
-
mesh,
|
|
26
|
-
mesh_bounds,
|
|
27
|
-
max_distance = 0.0001
|
|
28
|
-
) {
|
|
29
|
-
const max_distance2 = max_distance * max_distance;
|
|
30
|
-
|
|
31
|
-
const v0 = new Float32Array(3);
|
|
32
|
-
const v1 = new Float32Array(3);
|
|
33
|
-
|
|
34
|
-
// 10 bit quantization
|
|
35
|
-
const e_x = 1023 / (mesh_bounds[3] - mesh_bounds[0]);
|
|
36
|
-
const e_y = 1023 / (mesh_bounds[4] - mesh_bounds[1]);
|
|
37
|
-
const e_z = 1023 / (mesh_bounds[5] - mesh_bounds[2]);
|
|
38
|
-
|
|
39
|
-
/**
|
|
40
|
-
*
|
|
41
|
-
* @type {HashMap<number,number>}
|
|
42
|
-
*/
|
|
43
|
-
const vertex_hash = new HashMap({
|
|
44
|
-
keyHashFunction(vertex_index) {
|
|
45
|
-
mesh.vertex_read_coordinate(v0, 0, vertex_index);
|
|
46
|
-
|
|
47
|
-
return v3_morton_encode(
|
|
48
|
-
Math.round((v0[0] - mesh_bounds[0]) * e_x),
|
|
49
|
-
Math.round((v0[1] - mesh_bounds[1]) * e_y),
|
|
50
|
-
Math.round((v0[2] - mesh_bounds[2]) * e_z)
|
|
51
|
-
);
|
|
52
|
-
},
|
|
53
|
-
keyEqualityFunction(a, b) {
|
|
54
|
-
mesh.vertex_read_coordinate(v0, 0, a);
|
|
55
|
-
mesh.vertex_read_coordinate(v1, 0, b);
|
|
56
|
-
|
|
57
|
-
const d2 = v3_distance_sqr(
|
|
58
|
-
v0[0], v0[1], v0[2],
|
|
59
|
-
v1[0], v1[1], v1[2],
|
|
60
|
-
);
|
|
61
|
-
|
|
62
|
-
return d2 <= max_distance2;
|
|
63
|
-
}
|
|
64
|
-
});
|
|
65
|
-
|
|
66
|
-
const vertices = mesh.vertices;
|
|
67
|
-
let vertex_count = vertices.size;
|
|
68
|
-
|
|
69
|
-
for (let vertex = 1; vertex < vertex_count; vertex++) {
|
|
70
|
-
const master_vertex = vertex_hash.getOrSet(vertex, vertex);
|
|
71
|
-
|
|
72
|
-
if (master_vertex === vertex) {
|
|
73
|
-
// no collisions, vertex was hashed
|
|
74
|
-
continue;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
// got a collision, need to remove the vertex
|
|
78
|
-
// let's take over all data from this vertex
|
|
79
|
-
|
|
80
|
-
bt_replace_vertex(mesh, vertex, master_vertex);
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bt_mesh_calc_edges.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/core/geom/3d/topology/struct/binary/io/bt_mesh_calc_edges.js"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bt_vert_kill.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/core/geom/3d/topology/struct/binary/io/bt_vert_kill.js"],"names":[],"mappings":"AAKA;;;;GAIG;AACH,sDAFW,MAAM,QAShB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"get_or_create_edge_map.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/core/geom/3d/topology/struct/binary/io/get_or_create_edge_map.js"],"names":[],"mappings":""}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
*
|
|
3
|
-
* @param {BinaryTopology} mesh
|
|
4
|
-
* @param {number} edge_id
|
|
5
|
-
* @param {number} vertex_id
|
|
6
|
-
* @returns {boolean}
|
|
7
|
-
*/
|
|
8
|
-
export function bt_mesh_edge_has_vertex(mesh: BinaryTopology, edge_id: number, vertex_id: number): boolean;
|
|
9
|
-
//# sourceMappingURL=bt_mesh_edge_has_vertex.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bt_mesh_edge_has_vertex.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/core/geom/3d/topology/struct/binary/query/bt_mesh_edge_has_vertex.js"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,uEAJW,MAAM,aACN,MAAM,GACJ,OAAO,CAUnB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bt_mesh_edge_other_vertex.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/core/geom/3d/topology/struct/binary/query/bt_mesh_edge_other_vertex.js"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,yEAJW,MAAM,aACN,MAAM,GACJ,MAAM,CAalB"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
*
|
|
3
|
-
* @param {number[]} output
|
|
4
|
-
* @param {number} output_offset
|
|
5
|
-
* @param {BinaryTopology} mesh
|
|
6
|
-
* @param {number} face_id
|
|
7
|
-
* @returns {number} number of faces written to output
|
|
8
|
-
*/
|
|
9
|
-
export function bt_mesh_face_get_neighbour_faces(output: number[], output_offset: number, mesh: BinaryTopology, face_id: number): number;
|
|
10
|
-
//# sourceMappingURL=bt_mesh_face_get_neighbour_faces.d.ts.map
|
package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_face_get_neighbour_faces.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bt_mesh_face_get_neighbour_faces.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/core/geom/3d/topology/struct/binary/query/bt_mesh_face_get_neighbour_faces.js"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,yDANW,MAAM,EAAE,iBACR,MAAM,iCAEN,MAAM,GACJ,MAAM,CAmClB"}
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { assert } from "../../../../../../assert.js";
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
*
|
|
5
|
-
* @param {number[]} output
|
|
6
|
-
* @param {number} output_offset
|
|
7
|
-
* @param {BinaryTopology} mesh
|
|
8
|
-
* @param {number} face_id
|
|
9
|
-
* @returns {number} number of faces written to output
|
|
10
|
-
*/
|
|
11
|
-
export function bt_mesh_face_get_neighbour_faces(
|
|
12
|
-
output,
|
|
13
|
-
output_offset,
|
|
14
|
-
mesh,
|
|
15
|
-
face_id
|
|
16
|
-
) {
|
|
17
|
-
assert.isArrayLike(output, "output");
|
|
18
|
-
assert.isNonNegativeInteger(output_offset, "output_offset");
|
|
19
|
-
assert.isNonNegativeInteger(face_id, "face_id");
|
|
20
|
-
assert.defined(mesh, "mesh");
|
|
21
|
-
assert.notNull(mesh, "mesh");
|
|
22
|
-
assert.isObject(mesh, "mesh");
|
|
23
|
-
assert.equal(mesh.isBinaryTopology, true, "mesh.isBinaryTopology !== true");
|
|
24
|
-
|
|
25
|
-
const initial_loop_id = mesh.face_read_loop(face_id);
|
|
26
|
-
|
|
27
|
-
let result_offset = output_offset;
|
|
28
|
-
let loop_id;
|
|
29
|
-
|
|
30
|
-
// TODO can we skip the first loop?
|
|
31
|
-
|
|
32
|
-
do {
|
|
33
|
-
let face = mesh.loop_read_face(initial_loop_id)
|
|
34
|
-
|
|
35
|
-
loop_id = mesh.loop_read_next(initial_loop_id);
|
|
36
|
-
|
|
37
|
-
if (face !== face_id) {
|
|
38
|
-
output[result_offset++] = face;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
} while (loop_id !== initial_loop_id);
|
|
42
|
-
|
|
43
|
-
return result_offset - output_offset;
|
|
44
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"__module.d.ts","sourceRoot":"","sources":["../../../../src/engine/navigation/__module.js"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from "./grid/find_path_on_grid_astar.js";
|
/package/src/core/geom/3d/topology/struct/binary/io/{OrderedEdge.d.ts → edge/OrderedEdge.d.ts}
RENAMED
|
File without changes
|
/package/src/core/geom/3d/topology/struct/binary/io/{bt_edge_create.d.ts → edge/bt_edge_create.d.ts}
RENAMED
|
File without changes
|
|
File without changes
|
/package/src/core/geom/3d/topology/struct/binary/io/{bt_edge_kill.d.ts → edge/bt_edge_kill.d.ts}
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/src/core/geom/3d/topology/struct/binary/io/{bt_vert_kill.d.ts → vertex/bt_vert_kill.d.ts}
RENAMED
|
File without changes
|