@woosh/meep-engine 2.131.48 → 2.132.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.
Files changed (227) hide show
  1. package/README.md +1 -1
  2. package/package.json +1 -1
  3. package/src/core/bvh2/bvh3/ebvh_optimize_treelet.d.ts.map +1 -1
  4. package/src/core/bvh2/bvh3/ebvh_optimize_treelet.js +4 -3
  5. package/src/core/codegen/LineBuilder.js +3 -3
  6. package/src/core/collection/heap/Uint32Heap.d.ts +14 -0
  7. package/src/core/collection/heap/Uint32Heap.d.ts.map +1 -1
  8. package/src/core/collection/heap/Uint32Heap.js +18 -0
  9. package/src/core/collection/map/HashMap.d.ts.map +1 -1
  10. package/src/core/collection/map/HashMap.js +4 -22
  11. package/src/core/collection/map/generate_next_linear_congruential_index.d.ts +15 -0
  12. package/src/core/collection/map/generate_next_linear_congruential_index.d.ts.map +1 -0
  13. package/src/core/collection/map/generate_next_linear_congruential_index.js +18 -0
  14. package/src/core/geom/3d/line/line3_compute_nearest_point_to_point.d.ts.map +1 -1
  15. package/src/core/geom/3d/line/line3_compute_nearest_point_to_point.js +10 -26
  16. package/src/core/geom/3d/line/line3_compute_segment_nearest_point_to_point_t.d.ts +19 -0
  17. package/src/core/geom/3d/line/line3_compute_segment_nearest_point_to_point_t.d.ts.map +1 -0
  18. package/src/core/geom/3d/line/line3_compute_segment_nearest_point_to_point_t.js +48 -0
  19. package/src/core/geom/3d/line/line3_compute_segment_point_distance.d.ts +15 -0
  20. package/src/core/geom/3d/line/line3_compute_segment_point_distance.d.ts.map +1 -0
  21. package/src/core/geom/3d/line/line3_compute_segment_point_distance.js +24 -0
  22. package/src/core/geom/3d/line/line3_compute_segment_point_distance_eikonal.d.ts +17 -0
  23. package/src/core/geom/3d/line/line3_compute_segment_point_distance_eikonal.d.ts.map +1 -0
  24. package/src/core/geom/3d/line/line3_compute_segment_point_distance_eikonal.js +95 -0
  25. package/src/core/geom/3d/line/line3_compute_segment_point_distance_sqr.d.ts +16 -0
  26. package/src/core/geom/3d/line/line3_compute_segment_point_distance_sqr.d.ts.map +1 -0
  27. package/src/core/geom/3d/line/{line3_computeSegmentPointDistance_sqr.js → line3_compute_segment_point_distance_sqr.js} +16 -3
  28. package/src/core/geom/3d/topology/struct/TopoMesh.d.ts +4 -0
  29. package/src/core/geom/3d/topology/struct/TopoMesh.d.ts.map +1 -1
  30. package/src/core/geom/3d/topology/struct/TopoMesh.js +4 -0
  31. package/src/core/geom/3d/topology/struct/binary/BinaryElementPool.d.ts +18 -1
  32. package/src/core/geom/3d/topology/struct/binary/BinaryElementPool.d.ts.map +1 -1
  33. package/src/core/geom/3d/topology/struct/binary/BinaryElementPool.js +56 -0
  34. package/src/core/geom/3d/topology/struct/binary/BinaryTopology.d.ts +46 -16
  35. package/src/core/geom/3d/topology/struct/binary/BinaryTopology.d.ts.map +1 -1
  36. package/src/core/geom/3d/topology/struct/binary/BinaryTopology.js +85 -15
  37. package/src/core/geom/3d/topology/struct/binary/io/bt_disk_edge_add.d.ts +9 -0
  38. package/src/core/geom/3d/topology/struct/binary/io/bt_disk_edge_add.d.ts.map +1 -0
  39. package/src/core/geom/3d/topology/struct/binary/io/bt_disk_edge_add.js +43 -0
  40. package/src/core/geom/3d/topology/struct/binary/io/bt_disk_edge_remove.d.ts +4 -3
  41. package/src/core/geom/3d/topology/struct/binary/io/bt_disk_edge_remove.d.ts.map +1 -1
  42. package/src/core/geom/3d/topology/struct/binary/io/bt_disk_edge_remove.js +38 -4
  43. package/src/core/geom/3d/topology/struct/binary/io/bt_loop_kill.d.ts +8 -0
  44. package/src/core/geom/3d/topology/struct/binary/io/bt_loop_kill.d.ts.map +1 -0
  45. package/src/core/geom/3d/topology/struct/binary/io/bt_loop_kill.js +36 -0
  46. package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_cleanup_faceless_references.d.ts +10 -0
  47. package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_cleanup_faceless_references.d.ts.map +1 -0
  48. package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_cleanup_faceless_references.js +62 -0
  49. package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_face_decouple.d.ts +13 -0
  50. package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_face_decouple.d.ts.map +1 -0
  51. package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_face_decouple.js +145 -0
  52. package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_face_decouple_islands.d.ts +12 -0
  53. package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_face_decouple_islands.d.ts.map +1 -0
  54. package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_face_decouple_islands.js +111 -0
  55. package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_face_island_erode.d.ts +15 -0
  56. package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_face_island_erode.d.ts.map +1 -0
  57. package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_face_island_erode.js +290 -0
  58. package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_from_indexed_geometry.d.ts +11 -0
  59. package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_from_indexed_geometry.d.ts.map +1 -0
  60. package/src/core/geom/3d/topology/struct/binary/io/{bt_index_geometry_to_topology.js → bt_mesh_from_indexed_geometry.js} +6 -7
  61. package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_from_unindexed_geometry.d.ts +8 -0
  62. package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_from_unindexed_geometry.d.ts.map +1 -0
  63. package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_from_unindexed_geometry.js +31 -0
  64. package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_triangulate.d.ts +7 -0
  65. package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_triangulate.d.ts.map +1 -0
  66. package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_triangulate.js +22 -0
  67. package/src/core/geom/3d/topology/struct/binary/io/bt_radial_loop_add.d.ts +8 -0
  68. package/src/core/geom/3d/topology/struct/binary/io/bt_radial_loop_add.d.ts.map +1 -0
  69. package/src/core/geom/3d/topology/struct/binary/io/bt_radial_loop_add.js +32 -0
  70. package/src/core/geom/3d/topology/struct/binary/io/bt_radial_loop_remove.d.ts +8 -0
  71. package/src/core/geom/3d/topology/struct/binary/io/bt_radial_loop_remove.d.ts.map +1 -0
  72. package/src/core/geom/3d/topology/struct/binary/io/bt_radial_loop_remove.js +26 -0
  73. package/src/core/geom/3d/topology/struct/binary/io/edge/OrderedEdge.d.ts.map +1 -0
  74. package/src/core/geom/3d/topology/struct/binary/io/{OrderedEdge.js → edge/OrderedEdge.js} +1 -1
  75. package/src/core/geom/3d/topology/struct/binary/io/edge/bt_edge_create.d.ts.map +1 -0
  76. package/src/core/geom/3d/topology/struct/binary/io/{bt_edge_create.js → edge/bt_edge_create.js} +1 -1
  77. package/src/core/geom/3d/topology/struct/binary/io/edge/bt_edge_get_or_create.d.ts.map +1 -0
  78. package/src/core/geom/3d/topology/struct/binary/io/{bt_edge_get_or_create.js → edge/bt_edge_get_or_create.js} +1 -1
  79. package/src/core/geom/3d/topology/struct/binary/io/edge/bt_edge_kill.d.ts.map +1 -0
  80. package/src/core/geom/3d/topology/struct/binary/io/{bt_edge_kill.js → edge/bt_edge_kill.js} +6 -3
  81. package/src/core/geom/3d/topology/struct/binary/io/edge/bt_edge_split.d.ts +13 -0
  82. package/src/core/geom/3d/topology/struct/binary/io/edge/bt_edge_split.d.ts.map +1 -0
  83. package/src/core/geom/3d/topology/struct/binary/io/edge/bt_edge_split.js +180 -0
  84. package/src/core/geom/3d/topology/struct/binary/io/edge/bt_kill_only_edge.d.ts.map +1 -0
  85. package/src/core/geom/3d/topology/struct/binary/io/edge/bt_mesh_calc_edges.d.ts.map +1 -0
  86. package/src/core/geom/3d/topology/struct/binary/io/{bt_mesh_calc_edges.js → edge/bt_mesh_calc_edges.js} +10 -7
  87. package/src/core/geom/3d/topology/struct/binary/io/edge/get_or_create_edge_map.d.ts.map +1 -0
  88. package/src/core/geom/3d/topology/struct/binary/io/face/bt_face_kill.d.ts +8 -0
  89. package/src/core/geom/3d/topology/struct/binary/io/face/bt_face_kill.d.ts.map +1 -0
  90. package/src/core/geom/3d/topology/struct/binary/io/face/bt_face_kill.js +26 -0
  91. package/src/core/geom/3d/topology/struct/binary/io/face/bt_face_poke.d.ts +15 -0
  92. package/src/core/geom/3d/topology/struct/binary/io/face/bt_face_poke.d.ts.map +1 -0
  93. package/src/core/geom/3d/topology/struct/binary/io/face/bt_face_poke.js +152 -0
  94. package/src/core/geom/3d/topology/struct/binary/io/face/bt_face_triangulate.d.ts +13 -0
  95. package/src/core/geom/3d/topology/struct/binary/io/face/bt_face_triangulate.d.ts.map +1 -0
  96. package/src/core/geom/3d/topology/struct/binary/io/face/bt_face_triangulate.js +124 -0
  97. package/src/core/geom/3d/topology/struct/binary/io/face/bt_kill_only_face.d.ts.map +1 -0
  98. package/src/core/geom/3d/topology/struct/binary/io/vertex/bt_kill_only_vert.d.ts.map +1 -0
  99. package/src/core/geom/3d/topology/struct/binary/io/vertex/bt_merge_verts_by_distance.d.ts +10 -0
  100. package/src/core/geom/3d/topology/struct/binary/io/vertex/bt_merge_verts_by_distance.d.ts.map +1 -0
  101. package/src/core/geom/3d/topology/struct/binary/io/vertex/bt_merge_verts_by_distance.js +165 -0
  102. package/src/core/geom/3d/topology/struct/binary/io/vertex/bt_vert_kill.d.ts.map +1 -0
  103. package/src/core/geom/3d/topology/struct/binary/io/{bt_vert_kill.js → vertex/bt_vert_kill.js} +5 -2
  104. package/src/core/geom/3d/topology/struct/binary/io/vertex/bt_vertex_replace.d.ts +13 -0
  105. package/src/core/geom/3d/topology/struct/binary/io/vertex/bt_vertex_replace.d.ts.map +1 -0
  106. package/src/core/geom/3d/topology/struct/binary/io/vertex/bt_vertex_replace.js +125 -0
  107. package/src/core/geom/3d/topology/struct/binary/query/bt_edge_has_vertex.d.ts +9 -0
  108. package/src/core/geom/3d/topology/struct/binary/query/bt_edge_has_vertex.d.ts.map +1 -0
  109. package/src/core/geom/3d/topology/struct/binary/query/{bt_mesh_edge_has_vertex.js → bt_edge_has_vertex.js} +1 -1
  110. package/src/core/geom/3d/topology/struct/binary/query/{bt_mesh_edge_other_vertex.d.ts → bt_edge_other_vertex.d.ts} +2 -2
  111. package/src/core/geom/3d/topology/struct/binary/query/bt_edge_other_vertex.d.ts.map +1 -0
  112. package/src/core/geom/3d/topology/struct/binary/query/{bt_mesh_edge_other_vertex.js → bt_edge_other_vertex.js} +1 -1
  113. package/src/core/geom/3d/topology/struct/binary/query/bt_face_get_attached_faces.d.ts +12 -0
  114. package/src/core/geom/3d/topology/struct/binary/query/bt_face_get_attached_faces.d.ts.map +1 -0
  115. package/src/core/geom/3d/topology/struct/binary/query/bt_face_get_attached_faces.js +96 -0
  116. package/src/core/geom/3d/topology/struct/binary/query/bt_face_get_centroid.d.ts +10 -0
  117. package/src/core/geom/3d/topology/struct/binary/query/bt_face_get_centroid.d.ts.map +1 -0
  118. package/src/core/geom/3d/topology/struct/binary/query/bt_face_get_centroid.js +75 -0
  119. package/src/core/geom/3d/topology/struct/binary/query/bt_face_get_incenter.d.ts +10 -0
  120. package/src/core/geom/3d/topology/struct/binary/query/bt_face_get_incenter.d.ts.map +1 -0
  121. package/src/core/geom/3d/topology/struct/binary/query/bt_face_get_incenter.js +85 -0
  122. package/src/core/geom/3d/topology/struct/binary/query/bt_face_get_neighbour_faces.d.ts +12 -0
  123. package/src/core/geom/3d/topology/struct/binary/query/bt_face_get_neighbour_faces.d.ts.map +1 -0
  124. package/src/core/geom/3d/topology/struct/binary/query/bt_face_get_neighbour_faces.js +74 -0
  125. package/src/core/geom/3d/topology/struct/binary/query/bt_face_is_degenerate.d.ts +9 -0
  126. package/src/core/geom/3d/topology/struct/binary/query/bt_face_is_degenerate.d.ts.map +1 -0
  127. package/src/core/geom/3d/topology/struct/binary/query/bt_face_is_degenerate.js +78 -0
  128. package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_build_boundary_distance_field.d.ts +15 -0
  129. package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_build_boundary_distance_field.d.ts.map +1 -0
  130. package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_build_boundary_distance_field.js +151 -0
  131. package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_compute_edge_distance_eikonal.d.ts +13 -0
  132. package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_compute_edge_distance_eikonal.d.ts.map +1 -0
  133. package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_compute_edge_distance_eikonal.js +46 -0
  134. package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_compute_face_islands.d.ts +9 -0
  135. package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_compute_face_islands.d.ts.map +1 -0
  136. package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_compute_face_islands.js +78 -0
  137. package/src/core/geom/3d/topology/struct/binary/query/bt_vertex_distance_to_edge.d.ts +10 -0
  138. package/src/core/geom/3d/topology/struct/binary/query/bt_vertex_distance_to_edge.d.ts.map +1 -0
  139. package/src/core/geom/3d/topology/struct/binary/query/bt_vertex_distance_to_edge.js +48 -0
  140. package/src/core/geom/3d/topology/struct/binary/query/bt_vertex_distance_to_vertex.d.ts +9 -0
  141. package/src/core/geom/3d/topology/struct/binary/query/bt_vertex_distance_to_vertex.d.ts.map +1 -0
  142. package/src/core/geom/3d/topology/struct/binary/query/bt_vertex_distance_to_vertex.js +31 -0
  143. package/src/core/geom/3d/topology/struct/prototypeBinaryTopology.js +2 -2
  144. package/src/core/geom/3d/triangle/triangle3_incenter.d.ts +19 -0
  145. package/src/core/geom/3d/triangle/triangle3_incenter.d.ts.map +1 -0
  146. package/src/core/geom/3d/triangle/triangle3_incenter.js +60 -0
  147. package/src/core/math/hash/lowbias32.d.ts +9 -0
  148. package/src/core/math/hash/lowbias32.d.ts.map +1 -0
  149. package/src/core/math/hash/lowbias32.js +20 -0
  150. package/src/core/process/task/util/iteratorTask.d.ts +2 -2
  151. package/src/core/process/task/util/iteratorTask.d.ts.map +1 -1
  152. package/src/core/process/task/util/iteratorTask.js +3 -3
  153. package/src/engine/graphics/particles/particular/engine/utils/distrubuteParticlesOnMesh.d.ts.map +1 -1
  154. package/src/engine/graphics/particles/particular/engine/utils/distrubuteParticlesOnMesh.js +4 -4
  155. package/src/engine/graphics/render/forward_plus/query/detailed_sphere_frustum_intersection_test.js +4 -4
  156. package/src/engine/navigation/ecs/components/Path.js +3 -3
  157. package/src/engine/navigation/grid/find_path_on_grid_astar.d.ts +4 -4
  158. package/src/engine/navigation/grid/find_path_on_grid_astar.d.ts.map +1 -1
  159. package/src/engine/navigation/grid/find_path_on_grid_astar.js +5 -4
  160. package/src/engine/navigation/mesh/NavigationMesh.d.ts +32 -0
  161. package/src/engine/navigation/mesh/NavigationMesh.d.ts.map +1 -0
  162. package/src/engine/navigation/mesh/NavigationMesh.js +190 -0
  163. package/src/engine/navigation/mesh/NavigationMeshAgent.d.ts +9 -0
  164. package/src/engine/navigation/mesh/NavigationMeshAgent.d.ts.map +1 -0
  165. package/src/engine/navigation/mesh/NavigationMeshAgent.js +11 -0
  166. package/src/engine/navigation/mesh/README.md +3 -0
  167. package/src/engine/navigation/mesh/bt_mesh_face_find_path.d.ts +14 -0
  168. package/src/engine/navigation/mesh/bt_mesh_face_find_path.d.ts.map +1 -0
  169. package/src/engine/navigation/mesh/bt_mesh_face_find_path.js +203 -0
  170. package/src/engine/navigation/mesh/build/bvh_build_from_unindexed_triangles.d.ts +8 -0
  171. package/src/engine/navigation/mesh/build/bvh_build_from_unindexed_triangles.d.ts.map +1 -0
  172. package/src/engine/navigation/mesh/build/bvh_build_from_unindexed_triangles.js +46 -0
  173. package/src/engine/navigation/mesh/build/enforce_agent_height_clearance.d.ts +12 -0
  174. package/src/engine/navigation/mesh/build/enforce_agent_height_clearance.d.ts.map +1 -0
  175. package/src/engine/navigation/mesh/build/enforce_agent_height_clearance.js +204 -0
  176. package/src/engine/navigation/mesh/build/navmesh_build_topology.d.ts +14 -0
  177. package/src/engine/navigation/mesh/build/navmesh_build_topology.d.ts.map +1 -0
  178. package/src/engine/navigation/mesh/build/navmesh_build_topology.js +183 -0
  179. package/src/engine/navigation/mesh/bvh_build_from_bt_mesh.d.ts +7 -0
  180. package/src/engine/navigation/mesh/bvh_build_from_bt_mesh.d.ts.map +1 -0
  181. package/src/engine/navigation/mesh/bvh_build_from_bt_mesh.js +64 -0
  182. package/src/engine/navigation/mesh/funnel_string_pull.d.ts +15 -0
  183. package/src/engine/navigation/mesh/funnel_string_pull.d.ts.map +1 -0
  184. package/src/engine/navigation/mesh/funnel_string_pull.js +225 -0
  185. package/src/core/geom/3d/line/line3_computeSegmentPointDistance_sqr.d.ts +0 -14
  186. package/src/core/geom/3d/line/line3_computeSegmentPointDistance_sqr.d.ts.map +0 -1
  187. package/src/core/geom/3d/topology/struct/binary/io/OrderedEdge.d.ts.map +0 -1
  188. package/src/core/geom/3d/topology/struct/binary/io/bt_edge_create.d.ts.map +0 -1
  189. package/src/core/geom/3d/topology/struct/binary/io/bt_edge_get_or_create.d.ts.map +0 -1
  190. package/src/core/geom/3d/topology/struct/binary/io/bt_edge_kill.d.ts.map +0 -1
  191. package/src/core/geom/3d/topology/struct/binary/io/bt_face_kill.d.ts +0 -7
  192. package/src/core/geom/3d/topology/struct/binary/io/bt_face_kill.d.ts.map +0 -1
  193. package/src/core/geom/3d/topology/struct/binary/io/bt_face_kill.js +0 -8
  194. package/src/core/geom/3d/topology/struct/binary/io/bt_index_geometry_to_topology.d.ts +0 -11
  195. package/src/core/geom/3d/topology/struct/binary/io/bt_index_geometry_to_topology.d.ts.map +0 -1
  196. package/src/core/geom/3d/topology/struct/binary/io/bt_kill_only_edge.d.ts.map +0 -1
  197. package/src/core/geom/3d/topology/struct/binary/io/bt_kill_only_face.d.ts.map +0 -1
  198. package/src/core/geom/3d/topology/struct/binary/io/bt_kill_only_vert.d.ts.map +0 -1
  199. package/src/core/geom/3d/topology/struct/binary/io/bt_merge_verts_by_distance.d.ts +0 -18
  200. package/src/core/geom/3d/topology/struct/binary/io/bt_merge_verts_by_distance.d.ts.map +0 -1
  201. package/src/core/geom/3d/topology/struct/binary/io/bt_merge_verts_by_distance.js +0 -83
  202. package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_calc_edges.d.ts.map +0 -1
  203. package/src/core/geom/3d/topology/struct/binary/io/bt_vert_kill.d.ts.map +0 -1
  204. package/src/core/geom/3d/topology/struct/binary/io/get_or_create_edge_map.d.ts.map +0 -1
  205. package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_edge_has_vertex.d.ts +0 -9
  206. package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_edge_has_vertex.d.ts.map +0 -1
  207. package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_edge_other_vertex.d.ts.map +0 -1
  208. package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_face_get_neighbour_faces.d.ts +0 -10
  209. package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_face_get_neighbour_faces.d.ts.map +0 -1
  210. package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_face_get_neighbour_faces.js +0 -44
  211. package/src/engine/navigation/__module.d.ts +0 -2
  212. package/src/engine/navigation/__module.d.ts.map +0 -1
  213. package/src/engine/navigation/__module.js +0 -1
  214. /package/src/core/geom/3d/topology/struct/binary/io/{OrderedEdge.d.ts → edge/OrderedEdge.d.ts} +0 -0
  215. /package/src/core/geom/3d/topology/struct/binary/io/{bt_edge_create.d.ts → edge/bt_edge_create.d.ts} +0 -0
  216. /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
  217. /package/src/core/geom/3d/topology/struct/binary/io/{bt_edge_kill.d.ts → edge/bt_edge_kill.d.ts} +0 -0
  218. /package/src/core/geom/3d/topology/struct/binary/io/{bt_kill_only_edge.d.ts → edge/bt_kill_only_edge.d.ts} +0 -0
  219. /package/src/core/geom/3d/topology/struct/binary/io/{bt_kill_only_edge.js → edge/bt_kill_only_edge.js} +0 -0
  220. /package/src/core/geom/3d/topology/struct/binary/io/{bt_mesh_calc_edges.d.ts → edge/bt_mesh_calc_edges.d.ts} +0 -0
  221. /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
  222. /package/src/core/geom/3d/topology/struct/binary/io/{get_or_create_edge_map.js → edge/get_or_create_edge_map.js} +0 -0
  223. /package/src/core/geom/3d/topology/struct/binary/io/{bt_kill_only_face.d.ts → face/bt_kill_only_face.d.ts} +0 -0
  224. /package/src/core/geom/3d/topology/struct/binary/io/{bt_kill_only_face.js → face/bt_kill_only_face.js} +0 -0
  225. /package/src/core/geom/3d/topology/struct/binary/io/{bt_kill_only_vert.d.ts → vertex/bt_kill_only_vert.d.ts} +0 -0
  226. /package/src/core/geom/3d/topology/struct/binary/io/{bt_kill_only_vert.js → vertex/bt_kill_only_vert.js} +0 -0
  227. /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,7 +0,0 @@
1
- /**
2
- *
3
- * @param {BinaryTopology} mesh
4
- * @param {number} f
5
- */
6
- export function bt_face_kill(mesh: BinaryTopology, f: number): void;
7
- //# sourceMappingURL=bt_face_kill.d.ts.map
@@ -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,8 +0,0 @@
1
- /**
2
- *
3
- * @param {BinaryTopology} mesh
4
- * @param {number} f
5
- */
6
- export function bt_face_kill(mesh, f) {
7
- throw new Error('Not Implemented');
8
- }
@@ -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
@@ -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,2 +0,0 @@
1
- export * from "./grid/find_path_on_grid_astar.js";
2
- //# sourceMappingURL=__module.d.ts.map
@@ -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";