@ccpc/math 0.1.0 → 0.1.7

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 (459) hide show
  1. package/index.cjs +226 -0
  2. package/package.json +19 -37
  3. package/types/algorithm/bool_operate/bool2d/bool2d.d.ts +22 -0
  4. package/types/algorithm/bool_operate/bool2d/difference.d.ts +9 -0
  5. package/types/algorithm/bool_operate/bool2d/intersect.d.ts +9 -0
  6. package/types/algorithm/bool_operate/bool2d/split.d.ts +3 -0
  7. package/types/algorithm/bool_operate/bool2d/union.d.ts +9 -0
  8. package/types/algorithm/bool_operate/bool2d/utils.d.ts +40 -0
  9. package/types/algorithm/bool_operate/bool_operate_clipper.d.ts +18 -0
  10. package/types/algorithm/bool_operate/polycurve_polygon_bool.d.ts +13 -0
  11. package/types/algorithm/bool_operate_2d.d.ts +67 -0
  12. package/types/algorithm/calc_d.d.ts +85 -0
  13. package/types/algorithm/calc_offset.d.ts +70 -0
  14. package/types/algorithm/calc_overlap.d.ts +56 -0
  15. package/types/algorithm/calc_project.d.ts +29 -0
  16. package/types/algorithm/calc_x.d.ts +215 -0
  17. package/types/algorithm/calculate_util/geometry_subdevide_infos.d.ts +73 -0
  18. package/types/algorithm/calculate_util/iterative_method.d.ts +30 -0
  19. package/types/algorithm/discrete/discrete_curve.d.ts +31 -0
  20. package/types/algorithm/discrete/discrete_refiner.d.ts +35 -0
  21. package/types/algorithm/discrete/discrete_surface.d.ts +74 -0
  22. package/types/algorithm/discrete/discrete_topology.d.ts +32 -0
  23. package/types/algorithm/discrete/discrete_util.d.ts +96 -0
  24. package/types/algorithm/discrete/grid_discrete_data.d.ts +58 -0
  25. package/types/algorithm/discrete/libtess.d.ts +12 -0
  26. package/types/algorithm/discrete/uniform_grid_discrete.d.ts +3 -0
  27. package/types/algorithm/distance/base_calc_distance/curves_distance_util.d.ts +20 -0
  28. package/types/algorithm/distance/base_calc_distance/define_of_calculate_distance.d.ts +12 -0
  29. package/types/algorithm/distance/curve2ds_distance/arc2s_distance.d.ts +17 -0
  30. package/types/algorithm/distance/curve2ds_distance/line2d_to_arc2d_distance.d.ts +17 -0
  31. package/types/algorithm/distance/curve2ds_distance/line2s_distance.d.ts +15 -0
  32. package/types/algorithm/distance/curve2s_distance.d.ts +15 -0
  33. package/types/algorithm/distance/curve3ds_distance/line3d_to_line3d_distance_paramed.d.ts +12 -0
  34. package/types/algorithm/distance/curve3s_distance.d.ts +31 -0
  35. package/types/algorithm/distance/pt_to_curve2_signed_distance.d.ts +17 -0
  36. package/types/algorithm/distance/pt_to_curve3_distance.d.ts +25 -0
  37. package/types/algorithm/distance/pt_to_curve_distance_info.d.ts +12 -0
  38. package/types/algorithm/distance/pt_to_surface_distance.d.ts +17 -0
  39. package/types/algorithm/distance/pts_to_curves_distance.d.ts +13 -0
  40. package/types/algorithm/distance/pts_to_pts_distance.d.ts +7 -0
  41. package/types/algorithm/geometry_merge.d.ts +22 -0
  42. package/types/algorithm/index.d.ts +32 -0
  43. package/types/algorithm/intersect/box_cut_line.d.ts +6 -0
  44. package/types/algorithm/intersect/curve_self_x.d.ts +13 -0
  45. package/types/algorithm/intersect/curve_surface_x.d.ts +34 -0
  46. package/types/algorithm/intersect/curve_surface_x_util.d.ts +32 -0
  47. package/types/algorithm/intersect/curves_x/circulars_x.d.ts +35 -0
  48. package/types/algorithm/intersect/curves_x/linear_circular_x.d.ts +40 -0
  49. package/types/algorithm/intersect/curves_x/lines_x.d.ts +17 -0
  50. package/types/algorithm/intersect/curves_x/lines_x_util.d.ts +4 -0
  51. package/types/algorithm/intersect/curves_x.d.ts +26 -0
  52. package/types/algorithm/intersect/curves_x_util.d.ts +35 -0
  53. package/types/algorithm/intersect/intersect_info_util.d.ts +9 -0
  54. package/types/algorithm/intersect/surface_self_x.d.ts +8 -0
  55. package/types/algorithm/intersect/surfaces_x.d.ts +53 -0
  56. package/types/algorithm/intersect/surfaces_x_complex.d.ts +29 -0
  57. package/types/algorithm/intersect/surfaces_x_special.d.ts +16 -0
  58. package/types/algorithm/intersect/surfaces_x_util.d.ts +41 -0
  59. package/types/algorithm/intersect/x_info.d.ts +65 -0
  60. package/types/algorithm/loop_property/loop-area.d.ts +49 -0
  61. package/types/algorithm/loop_property/loop-centroid.d.ts +40 -0
  62. package/types/algorithm/merge_geometry/halfplane.d.ts +24 -0
  63. package/types/algorithm/merge_geometry/merge_curve.d.ts +14 -0
  64. package/types/algorithm/merge_geometry/merge_point.d.ts +18 -0
  65. package/types/algorithm/mesh/clip_mesh.d.ts +27 -0
  66. package/types/algorithm/mesh/extrude_clip.d.ts +236 -0
  67. package/types/algorithm/mesh/mesh_assist.d.ts +21 -0
  68. package/types/algorithm/mesh/mesh_contour.d.ts +26 -0
  69. package/types/algorithm/mesh/mesh_util.d.ts +115 -0
  70. package/types/algorithm/offset/loop2d_offset.d.ts +22 -0
  71. package/types/algorithm/offset/polygon_offset.d.ts +27 -0
  72. package/types/algorithm/overlap/curve_surface_coincide.d.ts +6 -0
  73. package/types/algorithm/overlap/curves_colinear.d.ts +38 -0
  74. package/types/algorithm/overlap/curves_merge.d.ts +74 -0
  75. package/types/algorithm/overlap/curves_overlap.d.ts +34 -0
  76. package/types/algorithm/overlap/i_overlap.d.ts +9 -0
  77. package/types/algorithm/overlap/surfaces_coplaner.d.ts +5 -0
  78. package/types/algorithm/pattern/blocks2Geometry.d.ts +50 -0
  79. package/types/algorithm/pattern/math.d.ts +42 -0
  80. package/types/algorithm/pattern/pattern.d.ts +43 -0
  81. package/types/algorithm/pattern/pattern_util.d.ts +53 -0
  82. package/types/algorithm/pattern/pave.d.ts +33 -0
  83. package/types/algorithm/pj/curves_oj.d.ts +19 -0
  84. package/types/algorithm/pj/curves_pj.d.ts +19 -0
  85. package/types/algorithm/pj/loops_pj.d.ts +13 -0
  86. package/types/algorithm/pj/pj_type.d.ts +46 -0
  87. package/types/algorithm/pj/pt_loop_pj.d.ts +24 -0
  88. package/types/algorithm/pj/pt_polygon_pj.d.ts +18 -0
  89. package/types/algorithm/pj/pt_polygon_position_judger.d.ts +11 -0
  90. package/types/algorithm/position_judge.d.ts +72 -0
  91. package/types/algorithm/project/curve3d_to_plane_project.d.ts +11 -0
  92. package/types/algorithm/project/curve_curve_project.d.ts +9 -0
  93. package/types/algorithm/search_graph/iloops_polygonex.d.ts +28 -0
  94. package/types/algorithm/search_graph/loop_tree_node.d.ts +30 -0
  95. package/types/algorithm/search_graph/loops_to_loop_tree_search_graph.d.ts +25 -0
  96. package/types/algorithm/search_graph/polygon_polygonex.d.ts +13 -0
  97. package/types/algorithm/search_graph/search_loop2d.d.ts +20 -0
  98. package/types/algorithm/search_graph/search_polyline.d.ts +11 -0
  99. package/types/algorithm/search_graph.d.ts +45 -0
  100. package/types/algorithm/topology_edit.d.ts +10 -0
  101. package/types/base/box.d.ts +100 -0
  102. package/types/base/box2.d.ts +17 -0
  103. package/types/base/box3.d.ts +20 -0
  104. package/types/base/coord.d.ts +10 -0
  105. package/types/base/coord2.d.ts +92 -0
  106. package/types/base/coord3.d.ts +139 -0
  107. package/types/base/discrete_param.d.ts +28 -0
  108. package/types/base/euler.d.ts +102 -0
  109. package/types/base/geo_element.d.ts +54 -0
  110. package/types/base/interval.d.ts +122 -0
  111. package/types/base/ivector.d.ts +126 -0
  112. package/types/base/matrix.d.ts +108 -0
  113. package/types/base/matrix3.d.ts +118 -0
  114. package/types/base/matrix4.d.ts +166 -0
  115. package/types/base/matrix_util.d.ts +5 -0
  116. package/types/base/period_inverval.d.ts +127 -0
  117. package/types/base/quaternion.d.ts +39 -0
  118. package/types/base/tangent_cone.d.ts +11 -0
  119. package/types/base/tilt_box.d.ts +11 -0
  120. package/types/base/tol.d.ts +120 -0
  121. package/types/base/vec.d.ts +46 -0
  122. package/types/base/vec2.d.ts +146 -0
  123. package/types/base/vec3.d.ts +158 -0
  124. package/types/brep-src/algorithm/alg_const.d.ts +23 -0
  125. package/types/brep-src/algorithm/alg_types.d.ts +47 -0
  126. package/types/brep-src/algorithm/algorithm_util/base_define.d.ts +7 -0
  127. package/types/brep-src/algorithm/algorithm_util/body_base_util.d.ts +4 -0
  128. package/types/brep-src/algorithm/algorithm_util/curve_solid_analysis.d.ts +28 -0
  129. package/types/brep-src/algorithm/algorithm_util/face_face_analysis.d.ts +39 -0
  130. package/types/brep-src/algorithm/algorithm_util/search_wire.d.ts +8 -0
  131. package/types/brep-src/algorithm/body_builder/basic_body_builder.d.ts +15 -0
  132. package/types/brep-src/algorithm/body_builder/extrude_body.d.ts +23 -0
  133. package/types/brep-src/algorithm/body_builder/sweep_body.d.ts +37 -0
  134. package/types/brep-src/algorithm/body_builder.d.ts +36 -0
  135. package/types/brep-src/algorithm/body_util.d.ts +21 -0
  136. package/types/brep-src/algorithm/bool_sk/brep_converter.d.ts +11 -0
  137. package/types/brep-src/algorithm/brep_calc_project.d.ts +50 -0
  138. package/types/brep-src/algorithm/brep_calc_x.d.ts +34 -0
  139. package/types/brep-src/algorithm/brep_pj.d.ts +47 -0
  140. package/types/brep-src/algorithm/index.d.ts +5 -0
  141. package/types/brep-src/algorithm/intersect/curve_face_overlap.d.ts +10 -0
  142. package/types/brep-src/algorithm/intersect/face_face_intersect.d.ts +22 -0
  143. package/types/brep-src/algorithm/intersect/face_faces_intersect.d.ts +15 -0
  144. package/types/brep-src/algorithm/intersect/line_face_intersect.d.ts +16 -0
  145. package/types/brep-src/algorithm/podition_judge/body_pj.d.ts +25 -0
  146. package/types/brep-src/algorithm/podition_judge/extrude_pj.d.ts +28 -0
  147. package/types/brep-src/algorithm/podition_judge/pt_body_pj.d.ts +32 -0
  148. package/types/brep-src/algorithm/project/body_project.d.ts +8 -0
  149. package/types/brep-src/algorithm/project/face_project.d.ts +20 -0
  150. package/types/brep-src/algorithm/project/face_surface_project.d.ts +8 -0
  151. package/types/brep-src/algorithm/project/space_project.d.ts +26 -0
  152. package/types/brep-src/algorithm/project/space_project_simple.d.ts +10 -0
  153. package/types/brep-src/algorithm/project/view_project.d.ts +25 -0
  154. package/types/brep-src/algorithm/shell_builder/create_shell_from_curves.d.ts +38 -0
  155. package/types/brep-src/algorithm/shell_builder.d.ts +25 -0
  156. package/types/brep-src/algorithm/shell_edit/add_edges/add_edges.d.ts +14 -0
  157. package/types/brep-src/algorithm/shell_edit/add_edges/add_edges_core.d.ts +11 -0
  158. package/types/brep-src/algorithm/shell_edit/copy_faces.d.ts +20 -0
  159. package/types/brep-src/algorithm/shell_edit/delete_faces_edges/delete_edge.d.ts +9 -0
  160. package/types/brep-src/algorithm/shell_edit/delete_faces_edges/delete_faces_edges.d.ts +17 -0
  161. package/types/brep-src/algorithm/shell_edit/faces_boolean/faces_boolean.d.ts +19 -0
  162. package/types/brep-src/algorithm/shell_edit/faces_boolean/faces_shells_boolean.d.ts +13 -0
  163. package/types/brep-src/algorithm/shell_edit/faces_boolean/octree.d.ts +11 -0
  164. package/types/brep-src/algorithm/shell_edit/isolate_faces.d.ts +21 -0
  165. package/types/brep-src/algorithm/shell_edit/merge_connect_faces.d.ts +14 -0
  166. package/types/brep-src/algorithm/shell_edit/merge_edges.d.ts +8 -0
  167. package/types/brep-src/algorithm/shell_edit/move_operators/move_edges.d.ts +31 -0
  168. package/types/brep-src/algorithm/shell_edit/move_operators/move_faces.d.ts +14 -0
  169. package/types/brep-src/algorithm/shell_edit/operator/dispose_topo.d.ts +2 -0
  170. package/types/brep-src/algorithm/shell_edit/operator/merge_connect_edge.d.ts +3 -0
  171. package/types/brep-src/algorithm/shell_edit/operator/merge_connect_face.d.ts +2 -0
  172. package/types/brep-src/algorithm/shell_edit/operator/merge_overlap_edge.d.ts +3 -0
  173. package/types/brep-src/algorithm/shell_edit/operator/merge_shell.d.ts +11 -0
  174. package/types/brep-src/algorithm/shell_edit/operator/merge_vertex.d.ts +2 -0
  175. package/types/brep-src/algorithm/shell_edit/operator/split_edge.d.ts +4 -0
  176. package/types/brep-src/algorithm/shell_edit/operator/split_shell.d.ts +6 -0
  177. package/types/brep-src/algorithm/shell_edit/pull_push_face/pull_push_face.d.ts +18 -0
  178. package/types/brep-src/algorithm/shell_edit/pull_push_face/pull_push_face_core.d.ts +6 -0
  179. package/types/brep-src/algorithm/shell_edit/pull_push_face/pull_push_face_preview.d.ts +16 -0
  180. package/types/brep-src/algorithm/shell_edit/pull_push_face/pull_push_face_preview_core.d.ts +24 -0
  181. package/types/brep-src/algorithm/shell_edit/roundinng/2d_rounding.d.ts +22 -0
  182. package/types/brep-src/algorithm/shell_edit/shell_modeling_base.d.ts +10 -0
  183. package/types/brep-src/algorithm/shell_edit/shell_modeling_result.d.ts +21 -0
  184. package/types/brep-src/algorithm/shell_edit/smooth/detect_loop_util.d.ts +27 -0
  185. package/types/brep-src/algorithm/shell_edit/smooth/shell_modeling_util.d.ts +24 -0
  186. package/types/brep-src/algorithm/shell_edit/smooth/smooth_util.d.ts +22 -0
  187. package/types/brep-src/algorithm/shell_edit/split_edge.d.ts +10 -0
  188. package/types/brep-src/algorithm/shell_edit.d.ts +119 -0
  189. package/types/brep-src/algorithm/shell_valid/base_brep_topo_error.d.ts +176 -0
  190. package/types/brep-src/algorithm/shell_valid/diagnose_shell.d.ts +14 -0
  191. package/types/brep-src/brep/brep_body.d.ts +19 -0
  192. package/types/brep-src/brep/coedge3d.d.ts +83 -0
  193. package/types/brep-src/brep/edge.d.ts +96 -0
  194. package/types/brep-src/brep/face.d.ts +150 -0
  195. package/types/brep-src/brep/shell.d.ts +166 -0
  196. package/types/brep-src/brep/topo_object.d.ts +40 -0
  197. package/types/brep-src/brep/vertex.d.ts +48 -0
  198. package/types/brep-src/brep/wire.d.ts +66 -0
  199. package/types/brep-src/continuous/continuous_edge.d.ts +17 -0
  200. package/types/brep-src/continuous/continuous_face.d.ts +10 -0
  201. package/types/brep-src/continuous/continuous_util.d.ts +60 -0
  202. package/types/brep-src/continuous/continuous_uv.d.ts +24 -0
  203. package/types/brep-src/continuous/index.d.ts +4 -0
  204. package/types/brep-src/index.d.ts +14 -0
  205. package/types/brep-src/type_define/i_types.d.ts +46 -0
  206. package/types/brep-src/util/util.d.ts +23 -0
  207. package/types/conversion/units_conversion.d.ts +14 -0
  208. package/types/geometry/arc2d.d.ts +249 -0
  209. package/types/geometry/arc3d.d.ts +204 -0
  210. package/types/geometry/circle3d.d.ts +92 -0
  211. package/types/geometry/circular_surface.d.ts +52 -0
  212. package/types/geometry/coord_based_surface.d.ts +25 -0
  213. package/types/geometry/curve.d.ts +228 -0
  214. package/types/geometry/curve2.d.ts +62 -0
  215. package/types/geometry/curve3d.d.ts +66 -0
  216. package/types/geometry/cylinder.d.ts +73 -0
  217. package/types/geometry/discrete_arrow.d.ts +3 -0
  218. package/types/geometry/extend_curve2.d.ts +75 -0
  219. package/types/geometry/geometry2d.d.ts +35 -0
  220. package/types/geometry/geometry3d.d.ts +36 -0
  221. package/types/geometry/intersect_curve3.d.ts +90 -0
  222. package/types/geometry/ln2.d.ts +168 -0
  223. package/types/geometry/ln3.d.ts +152 -0
  224. package/types/geometry/nurbs_curve2.d.ts +106 -0
  225. package/types/geometry/nurbs_curve3.d.ts +191 -0
  226. package/types/geometry/offset_curve2.d.ts +63 -0
  227. package/types/geometry/offset_curve3.d.ts +97 -0
  228. package/types/geometry/offset_parameter_mapper.d.ts +72 -0
  229. package/types/geometry/plane.d.ts +109 -0
  230. package/types/geometry/polyline.d.ts +12 -0
  231. package/types/geometry/smooth_poly2.d.ts +78 -0
  232. package/types/geometry/smooth_poly3.d.ts +85 -0
  233. package/types/geometry/surface.d.ts +173 -0
  234. package/types/index.d.ts +78 -0
  235. package/types/io/obj_parser.d.ts +4 -0
  236. package/types/io/svgparser.d.ts +22 -0
  237. package/types/loader/loader.d.ts +23 -0
  238. package/types/loader/register_geo.d.ts +7 -0
  239. package/types/math/gauss_integration.d.ts +13 -0
  240. package/types/math/inv_bilinear.d.ts +33 -0
  241. package/types/solve_equations/cubic_equation.d.ts +7 -0
  242. package/types/solve_equations/linear_system.d.ts +6 -0
  243. package/types/solve_equations/nonlinear_system.d.ts +11 -0
  244. package/types/solve_equations/plurality.d.ts +9 -0
  245. package/types/solve_equations/polynomial_equation.d.ts +6 -0
  246. package/types/solve_equations/quadratic_equation.d.ts +6 -0
  247. package/types/solve_equations/quartic_equation.d.ts +6 -0
  248. package/types/solve_equations/solve_equation_util.d.ts +50 -0
  249. package/types/test_util/loop_generator.d.ts +21 -0
  250. package/types/topology/evolution_map.d.ts +90 -0
  251. package/types/topology/loop.d.ts +50 -0
  252. package/types/topology/polycurve.d.ts +109 -0
  253. package/types/topology/polygon.d.ts +118 -0
  254. package/types/topology/trimmed_surface.d.ts +136 -0
  255. package/types/type_define/const.d.ts +18 -0
  256. package/types/type_define/i_element.d.ts +9 -0
  257. package/types/type_define/i_element_type.d.ts +34 -0
  258. package/types/type_define/i_geometry.d.ts +191 -0
  259. package/types/type_define/i_types.d.ts +280 -0
  260. package/types/util/array_util.d.ts +8 -0
  261. package/types/util/assert.d.ts +21 -0
  262. package/types/util/clipper2_util.d.ts +5 -0
  263. package/types/util/clipper_format_converter.d.ts +21 -0
  264. package/types/util/clipper_util.d.ts +10 -0
  265. package/types/util/curve_util.d.ts +72 -0
  266. package/types/util/geom_util.d.ts +23 -0
  267. package/types/util/log.d.ts +19 -0
  268. package/types/util/math_error.d.ts +37 -0
  269. package/types/util/surface_util.d.ts +13 -0
  270. package/types/util/util.d.ts +18 -0
  271. package/types/util/uv_util.d.ts +68 -0
  272. package/types/verb/export_verb.d.ts +2 -0
  273. package/types/wasm/a2d.d.ts +19 -0
  274. package/types/wasm/bx2.d.ts +16 -0
  275. package/types/wasm/c2d.d.ts +29 -0
  276. package/types/wasm/elli.d.ts +19 -0
  277. package/types/wasm/grapher2d.d.ts +39 -0
  278. package/types/wasm/grapherutil.d.ts +9 -0
  279. package/types/wasm/l2d.d.ts +14 -0
  280. package/types/wasm/loader.d.ts +8 -0
  281. package/types/wasm/pt.d.ts +19 -0
  282. package/types/wasm/wasm-geom.d.ts +296 -0
  283. package/types/wasm/wasminstance.d.ts +19 -0
  284. package/types/wasm/wrapper.d.ts +82 -0
  285. package/README.md +0 -21
  286. package/dist/constants/geom_type.d.ts +0 -13
  287. package/dist/constants/geom_type.d.ts.map +0 -1
  288. package/dist/constants/geom_type.js +0 -17
  289. package/dist/constants/math_const.d.ts +0 -9
  290. package/dist/constants/math_const.d.ts.map +0 -1
  291. package/dist/constants/math_const.js +0 -12
  292. package/dist/core/box2.d.ts +0 -71
  293. package/dist/core/box2.d.ts.map +0 -1
  294. package/dist/core/box2.js +0 -243
  295. package/dist/core/coord2d.d.ts +0 -62
  296. package/dist/core/coord2d.d.ts.map +0 -1
  297. package/dist/core/coord2d.js +0 -155
  298. package/dist/core/geom_base.d.ts +0 -19
  299. package/dist/core/geom_base.d.ts.map +0 -1
  300. package/dist/core/geom_base.js +0 -18
  301. package/dist/core/mat3.d.ts +0 -101
  302. package/dist/core/mat3.d.ts.map +0 -1
  303. package/dist/core/mat3.js +0 -290
  304. package/dist/core/vec2.d.ts +0 -138
  305. package/dist/core/vec2.d.ts.map +0 -1
  306. package/dist/core/vec2.js +0 -297
  307. package/dist/curves/arc2.d.ts +0 -49
  308. package/dist/curves/arc2.d.ts.map +0 -1
  309. package/dist/curves/arc2.js +0 -265
  310. package/dist/curves/bspline2.d.ts +0 -150
  311. package/dist/curves/bspline2.d.ts.map +0 -1
  312. package/dist/curves/bspline2.js +0 -793
  313. package/dist/curves/circle2.d.ts +0 -42
  314. package/dist/curves/circle2.d.ts.map +0 -1
  315. package/dist/curves/circle2.js +0 -135
  316. package/dist/curves/circle_curve2.d.ts +0 -38
  317. package/dist/curves/circle_curve2.d.ts.map +0 -1
  318. package/dist/curves/circle_curve2.js +0 -112
  319. package/dist/curves/curve2.d.ts +0 -214
  320. package/dist/curves/curve2.d.ts.map +0 -1
  321. package/dist/curves/curve2.js +0 -238
  322. package/dist/curves/ellipse2.d.ts +0 -42
  323. package/dist/curves/ellipse2.d.ts.map +0 -1
  324. package/dist/curves/ellipse2.js +0 -125
  325. package/dist/curves/ellipse_arc2.d.ts +0 -49
  326. package/dist/curves/ellipse_arc2.d.ts.map +0 -1
  327. package/dist/curves/ellipse_arc2.js +0 -184
  328. package/dist/curves/ellipse_curve2.d.ts +0 -56
  329. package/dist/curves/ellipse_curve2.d.ts.map +0 -1
  330. package/dist/curves/ellipse_curve2.js +0 -262
  331. package/dist/curves/interval.d.ts +0 -112
  332. package/dist/curves/interval.d.ts.map +0 -1
  333. package/dist/curves/interval.js +0 -200
  334. package/dist/curves/line2.d.ts +0 -64
  335. package/dist/curves/line2.d.ts.map +0 -1
  336. package/dist/curves/line2.js +0 -193
  337. package/dist/curves/period_interval.d.ts +0 -129
  338. package/dist/curves/period_interval.d.ts.map +0 -1
  339. package/dist/curves/period_interval.js +0 -240
  340. package/dist/discretize/discretize_defaults.d.ts +0 -12
  341. package/dist/discretize/discretize_defaults.d.ts.map +0 -1
  342. package/dist/discretize/discretize_defaults.js +0 -12
  343. package/dist/discretize/discretize_engine.d.ts +0 -33
  344. package/dist/discretize/discretize_engine.d.ts.map +0 -1
  345. package/dist/discretize/discretize_engine.js +0 -347
  346. package/dist/discretize/discretize_errors.d.ts +0 -15
  347. package/dist/discretize/discretize_errors.d.ts.map +0 -1
  348. package/dist/discretize/discretize_errors.js +0 -30
  349. package/dist/discretize/discretize_options.d.ts +0 -18
  350. package/dist/discretize/discretize_options.d.ts.map +0 -1
  351. package/dist/discretize/discretize_options.js +0 -19
  352. package/dist/discretize/discretize_types.d.ts +0 -36
  353. package/dist/discretize/discretize_types.d.ts.map +0 -1
  354. package/dist/discretize/discretize_types.js +0 -1
  355. package/dist/discretize/internal/curve_guards.d.ts +0 -35
  356. package/dist/discretize/internal/curve_guards.d.ts.map +0 -1
  357. package/dist/discretize/internal/curve_guards.js +0 -62
  358. package/dist/discretize/internal/postprocess.d.ts +0 -5
  359. package/dist/discretize/internal/postprocess.d.ts.map +0 -1
  360. package/dist/discretize/internal/postprocess.js +0 -109
  361. package/dist/discretize/internal/sampling_utils.d.ts +0 -8
  362. package/dist/discretize/internal/sampling_utils.d.ts.map +0 -1
  363. package/dist/discretize/internal/sampling_utils.js +0 -36
  364. package/dist/discretize/register_builtin_strategies.d.ts +0 -3
  365. package/dist/discretize/register_builtin_strategies.d.ts.map +0 -1
  366. package/dist/discretize/register_builtin_strategies.js +0 -10
  367. package/dist/discretize/strategies/bspline_strategy.d.ts +0 -4
  368. package/dist/discretize/strategies/bspline_strategy.d.ts.map +0 -1
  369. package/dist/discretize/strategies/bspline_strategy.js +0 -115
  370. package/dist/discretize/strategies/circle_strategy.d.ts +0 -7
  371. package/dist/discretize/strategies/circle_strategy.d.ts.map +0 -1
  372. package/dist/discretize/strategies/circle_strategy.js +0 -55
  373. package/dist/discretize/strategies/ellipse_strategy.d.ts +0 -7
  374. package/dist/discretize/strategies/ellipse_strategy.d.ts.map +0 -1
  375. package/dist/discretize/strategies/ellipse_strategy.js +0 -86
  376. package/dist/discretize/strategies/line_strategy.d.ts +0 -4
  377. package/dist/discretize/strategies/line_strategy.d.ts.map +0 -1
  378. package/dist/discretize/strategies/line_strategy.js +0 -40
  379. package/dist/discretize/strategy_registry.d.ts +0 -9
  380. package/dist/discretize/strategy_registry.d.ts.map +0 -1
  381. package/dist/discretize/strategy_registry.js +0 -34
  382. package/dist/index.d.ts +0 -30
  383. package/dist/index.d.ts.map +0 -1
  384. package/dist/index.js +0 -24
  385. package/dist/intersections/analytic_x_algorithm.d.ts +0 -10
  386. package/dist/intersections/analytic_x_algorithm.d.ts.map +0 -1
  387. package/dist/intersections/analytic_x_algorithm.js +0 -83
  388. package/dist/intersections/curve_x_engine.d.ts +0 -9
  389. package/dist/intersections/curve_x_engine.d.ts.map +0 -1
  390. package/dist/intersections/curve_x_engine.js +0 -27
  391. package/dist/intersections/index.d.ts +0 -5
  392. package/dist/intersections/index.d.ts.map +0 -1
  393. package/dist/intersections/index.js +0 -11
  394. package/dist/intersections/internal/certification.d.ts +0 -34
  395. package/dist/intersections/internal/certification.d.ts.map +0 -1
  396. package/dist/intersections/internal/certification.js +0 -238
  397. package/dist/intersections/internal/interval_clipping.d.ts +0 -29
  398. package/dist/intersections/internal/interval_clipping.d.ts.map +0 -1
  399. package/dist/intersections/internal/interval_clipping.js +0 -123
  400. package/dist/intersections/internal/kind.d.ts +0 -4
  401. package/dist/intersections/internal/kind.d.ts.map +0 -1
  402. package/dist/intersections/internal/kind.js +0 -16
  403. package/dist/intersections/internal/pair.d.ts +0 -9
  404. package/dist/intersections/internal/pair.d.ts.map +0 -1
  405. package/dist/intersections/internal/pair.js +0 -14
  406. package/dist/intersections/internal/result.d.ts +0 -20
  407. package/dist/intersections/internal/result.d.ts.map +0 -1
  408. package/dist/intersections/internal/result.js +0 -125
  409. package/dist/intersections/internal/sampling.d.ts +0 -15
  410. package/dist/intersections/internal/sampling.d.ts.map +0 -1
  411. package/dist/intersections/internal/sampling.js +0 -131
  412. package/dist/intersections/internal/segment.d.ts +0 -32
  413. package/dist/intersections/internal/segment.d.ts.map +0 -1
  414. package/dist/intersections/internal/segment.js +0 -137
  415. package/dist/intersections/internal/tolerance.d.ts +0 -10
  416. package/dist/intersections/internal/tolerance.d.ts.map +0 -1
  417. package/dist/intersections/internal/tolerance.js +0 -20
  418. package/dist/intersections/intersector.d.ts +0 -6
  419. package/dist/intersections/intersector.d.ts.map +0 -1
  420. package/dist/intersections/intersector.js +0 -1
  421. package/dist/intersections/numeric_x_algorithm.d.ts +0 -10
  422. package/dist/intersections/numeric_x_algorithm.d.ts.map +0 -1
  423. package/dist/intersections/numeric_x_algorithm.js +0 -73
  424. package/dist/intersections/solvers/bspline_self_solver.d.ts +0 -7
  425. package/dist/intersections/solvers/bspline_self_solver.d.ts.map +0 -1
  426. package/dist/intersections/solvers/bspline_self_solver.js +0 -308
  427. package/dist/intersections/solvers/line_line_pair_solver.d.ts +0 -7
  428. package/dist/intersections/solvers/line_line_pair_solver.d.ts.map +0 -1
  429. package/dist/intersections/solvers/line_line_pair_solver.js +0 -35
  430. package/dist/intersections/solvers/pair_solvers.d.ts +0 -94
  431. package/dist/intersections/solvers/pair_solvers.d.ts.map +0 -1
  432. package/dist/intersections/solvers/pair_solvers.js +0 -1078
  433. package/dist/intersections/solvers/polyline_pair_intersector.d.ts +0 -51
  434. package/dist/intersections/solvers/polyline_pair_intersector.d.ts.map +0 -1
  435. package/dist/intersections/solvers/polyline_pair_intersector.js +0 -731
  436. package/dist/intersections/types.d.ts +0 -11
  437. package/dist/intersections/types.d.ts.map +0 -1
  438. package/dist/intersections/types.js +0 -1
  439. package/dist/serialize/dump_types.d.ts +0 -101
  440. package/dist/serialize/dump_types.d.ts.map +0 -1
  441. package/dist/serialize/dump_types.js +0 -5
  442. package/dist/serialize/geom_mgr.d.ts +0 -24
  443. package/dist/serialize/geom_mgr.d.ts.map +0 -1
  444. package/dist/serialize/geom_mgr.js +0 -30
  445. package/dist/types/type_define.d.ts +0 -29
  446. package/dist/types/type_define.d.ts.map +0 -1
  447. package/dist/types/type_define.js +0 -10
  448. package/dist/types/type_guard.d.ts +0 -46
  449. package/dist/types/type_guard.d.ts.map +0 -1
  450. package/dist/types/type_guard.js +0 -5
  451. package/dist/utils/math_error.d.ts +0 -16
  452. package/dist/utils/math_error.d.ts.map +0 -1
  453. package/dist/utils/math_error.js +0 -35
  454. package/dist/utils/math_utils.d.ts +0 -9
  455. package/dist/utils/math_utils.d.ts.map +0 -1
  456. package/dist/utils/math_utils.js +0 -25
  457. package/dist/utils/precision.d.ts +0 -29
  458. package/dist/utils/precision.d.ts.map +0 -1
  459. package/dist/utils/precision.js +0 -44
@@ -1,308 +0,0 @@
1
- import { Precision } from '../../utils/precision';
2
- import { collectIntervalClipSeeds } from '../internal/interval_clipping';
3
- import { sampleCurveAdaptive } from '../internal/sampling';
4
- import { curvePointTolerance } from '../internal/tolerance';
5
- import { intersectSegments, lerp, makeSegment, segmentBoxesMayIntersect, segmentDistance } from '../internal/segment';
6
- export class BSplineSelfSolver {
7
- intersect(curve) {
8
- const pointTol = curvePointTolerance(curve);
9
- const acceptTol = selfAcceptTol(curve, pointTol);
10
- const seedNearTol = Math.max(acceptTol * 0.5, pointTol * 16);
11
- const sepTol = Math.max(Precision.CURVE_PARAM_EPS * 64, curve.getRange().length() * 1e-6);
12
- const adaptiveSegments = buildSegmentSamples(curve, 512);
13
- if (adaptiveSegments.length < 4)
14
- return [];
15
- // Primary pipeline uses dual seeding:
16
- // 1) adaptive geometric segments (shape-aware)
17
- // 2) uniform parameter segments (coverage-aware)
18
- // This is not a fallback; it addresses seed completeness for oscillatory spans.
19
- const uniformSegments = buildUniformSegmentSamples(curve, 1200);
20
- const seedsA = collectSelfSeeds(adaptiveSegments, seedNearTol, sepTol);
21
- const seedsU = collectSelfSeeds(uniformSegments, seedNearTol, sepTol);
22
- const seedsB = collectSelfSeedsByIntervalClip(curve, acceptTol, sepTol);
23
- const seeds = mergeSeeds(mergeSeeds(seedsA, seedsU, sepTol), seedsB, sepTol);
24
- return refineSeedsToResults(curve, seeds, acceptTol, pointTol, sepTol);
25
- }
26
- }
27
- const defaultBSplineSelfSolver = new BSplineSelfSolver();
28
- export function intersectBSplineSelf(curve) {
29
- return defaultBSplineSelfSolver.intersect(curve);
30
- }
31
- function refineSeedsToResults(curve, seeds, acceptTol, pointTol, sepTol) {
32
- const out = [];
33
- const diagonalParamTol = Math.max(sepTol * 8, curve.getRange().length() * 1e-3);
34
- const dedupPointTol = Math.max(pointTol * 16, acceptTol * 1.5);
35
- for (const seed of seeds) {
36
- const refined = refineSelfPairLM(curve, seed.u1, seed.u2, acceptTol, sepTol);
37
- if (!refined)
38
- continue;
39
- if (isTrivialDiagonalPair(curve, refined.u1, refined.u2, diagonalParamTol))
40
- continue;
41
- const p1 = curve.pointAt(refined.u1);
42
- const p2 = curve.pointAt(refined.u2);
43
- const point = p1.added(p2).scale(0.5);
44
- pushUnique(out, {
45
- point,
46
- u1: refined.u1,
47
- u2: refined.u2,
48
- isOverlap: false,
49
- }, dedupPointTol, sepTol);
50
- }
51
- return out;
52
- }
53
- function buildSegmentSamples(curve, targetSegments) {
54
- const samples = sampleCurveAdaptive(curve, targetSegments, {
55
- chordErrorTol: curvePointTolerance(curve) * 0.75,
56
- maxSamples: targetSegments * 8,
57
- });
58
- const ret = [];
59
- for (let i = 0; i < samples.length - 1; i++) {
60
- const a = samples[i];
61
- const b = samples[i + 1];
62
- ret.push({
63
- i,
64
- u0: a.u,
65
- u1: b.u,
66
- seg: makeSegment(a.p, b.p),
67
- });
68
- }
69
- return ret;
70
- }
71
- function buildUniformSegmentSamples(curve, segmentCount) {
72
- const range = curve.getRange();
73
- const n = Math.max(64, segmentCount);
74
- const ret = [];
75
- let p0 = curve.pointAt(range.start);
76
- let u0 = range.start;
77
- for (let i = 1; i <= n; i++) {
78
- const t = i / n;
79
- const u1 = range.start + (range.end - range.start) * t;
80
- const p1 = curve.pointAt(u1);
81
- ret.push({
82
- i: i - 1,
83
- u0,
84
- u1,
85
- seg: makeSegment(p0, p1),
86
- });
87
- u0 = u1;
88
- p0 = p1;
89
- }
90
- return ret;
91
- }
92
- function collectSelfSeedsByIntervalClip(curve, pointTol, sepTol) {
93
- const clip = collectIntervalClipSeeds(curve, curve, {
94
- pointTol,
95
- seedParamTol: Precision.CURVE_PARAM_EPS * 16,
96
- maxDepth: 14,
97
- maxNodes: 12000,
98
- pointSeedLimit: 4096,
99
- overlapSeedLimit: 64,
100
- });
101
- const seeds = [];
102
- const pushSeed = (u1, u2) => {
103
- const a = Math.min(u1, u2);
104
- const b = Math.max(u1, u2);
105
- if (Math.abs(a - b) <= sepTol)
106
- return;
107
- for (const seed of seeds) {
108
- if (Math.abs(seed.u1 - a) <= Precision.CURVE_PARAM_EPS * 16 &&
109
- Math.abs(seed.u2 - b) <= Precision.CURVE_PARAM_EPS * 16) {
110
- return;
111
- }
112
- }
113
- seeds.push({ u1: a, u2: b });
114
- };
115
- for (const seed of clip.pointSeeds) {
116
- pushSeed(seed.u1, seed.u2);
117
- }
118
- for (const overlap of clip.overlapSeeds) {
119
- const u1 = 0.5 * (overlap.range1.start + overlap.range1.end);
120
- const u2 = 0.5 * (overlap.range2.start + overlap.range2.end);
121
- pushSeed(u1, u2);
122
- }
123
- return seeds;
124
- }
125
- function collectSelfSeeds(segments, nearTol, sepTol) {
126
- const seeds = [];
127
- const pushSeed = (u1, u2) => {
128
- const a = Math.min(u1, u2);
129
- const b = Math.max(u1, u2);
130
- if (Math.abs(a - b) <= sepTol)
131
- return;
132
- for (const seed of seeds) {
133
- if (Math.abs(seed.u1 - a) <= Precision.CURVE_PARAM_EPS * 16 &&
134
- Math.abs(seed.u2 - b) <= Precision.CURVE_PARAM_EPS * 16) {
135
- return;
136
- }
137
- }
138
- seeds.push({ u1: a, u2: b });
139
- };
140
- for (let i = 0; i < segments.length; i++) {
141
- const a = segments[i];
142
- for (let j = i + 2; j < segments.length; j++) {
143
- // Open polyline endpoint adjacency.
144
- if (i === 0 && j === segments.length - 1)
145
- continue;
146
- const b = segments[j];
147
- if (!segmentBoxesMayIntersect(a.seg, b.seg, nearTol * 2))
148
- continue;
149
- const hit = intersectSegments(a.seg, b.seg);
150
- if (hit.kind === 'point') {
151
- pushSeed(lerp(a.u0, a.u1, hit.t1), lerp(b.u0, b.u1, hit.t2));
152
- continue;
153
- }
154
- if (hit.kind === 'overlap') {
155
- pushSeed(lerp(a.u0, a.u1, 0.5 * (hit.t1s + hit.t1e)), lerp(b.u0, b.u1, 0.5 * (hit.t2s + hit.t2e)));
156
- continue;
157
- }
158
- const near = segmentDistance(a.seg, b.seg);
159
- if (near <= nearTol) {
160
- pushSeed(0.5 * (a.u0 + a.u1), 0.5 * (b.u0 + b.u1));
161
- }
162
- }
163
- }
164
- return seeds;
165
- }
166
- function refineSelfPairLM(curve, u1Seed, u2Seed, pointTol, sepTol) {
167
- const range = curve.getRange();
168
- let u1 = range.clamp(u1Seed);
169
- let u2 = range.clamp(u2Seed);
170
- let best = measure(curve, u1, u2);
171
- let lambda = 1e-6;
172
- for (let i = 0; i < 40; i++) {
173
- const p1 = curve.pointAt(u1);
174
- const p2 = curve.pointAt(u2);
175
- const diff = p1.subtracted(p2);
176
- const residual = diff.len();
177
- if (residual < best.pointDist)
178
- best = { u1, u2, pointDist: residual };
179
- if (residual <= pointTol && Math.abs(u1 - u2) > sepTol)
180
- break;
181
- const t1 = curve.derivativeAt(u1, 1);
182
- const t2 = curve.derivativeAt(u2, 1);
183
- // Solve damped normal equation:
184
- // (J^T J + lambda I) d = -J^T r, J=[t1, -t2], r = p1-p2.
185
- const a11 = t1.dot(t1) + lambda;
186
- const a22 = t2.dot(t2) + lambda;
187
- const a12 = -t1.dot(t2);
188
- const b1 = -t1.dot(diff);
189
- const b2 = t2.dot(diff);
190
- const det = a11 * a22 - a12 * a12;
191
- if (!Number.isFinite(det) || Math.abs(det) <= Precision.CURVE_NEWTON_EPS) {
192
- lambda *= 10;
193
- continue;
194
- }
195
- let du = (b1 * a22 - b2 * a12) / det;
196
- let dv = (a11 * b2 - a12 * b1) / det;
197
- if (!Number.isFinite(du) || !Number.isFinite(dv)) {
198
- lambda *= 10;
199
- continue;
200
- }
201
- const maxStep = range.length() * 0.2;
202
- du = clamp(du, -maxStep, maxStep);
203
- dv = clamp(dv, -maxStep, maxStep);
204
- let accepted = false;
205
- let alpha = 1.0;
206
- for (let ls = 0; ls < 8; ls++) {
207
- const nu1 = range.clamp(u1 + du * alpha);
208
- const nu2 = range.clamp(u2 + dv * alpha);
209
- const cand = measure(curve, nu1, nu2);
210
- if (cand.pointDist <= best.pointDist + pointTol * 0.05) {
211
- u1 = nu1;
212
- u2 = nu2;
213
- if (cand.pointDist < best.pointDist)
214
- best = cand;
215
- accepted = true;
216
- lambda = Math.max(1e-10, lambda * 0.3);
217
- break;
218
- }
219
- alpha *= 0.5;
220
- }
221
- if (!accepted) {
222
- lambda *= 8;
223
- }
224
- if (Math.abs(du) + Math.abs(dv) <= Precision.CURVE_PARAM_EPS * 8) {
225
- break;
226
- }
227
- }
228
- if (best.pointDist > pointTol * 4)
229
- return undefined;
230
- if (Math.abs(best.u1 - best.u2) <= sepTol)
231
- return undefined;
232
- return best;
233
- }
234
- function measure(curve, u1, u2) {
235
- const p1 = curve.pointAt(u1);
236
- const p2 = curve.pointAt(u2);
237
- return {
238
- u1,
239
- u2,
240
- pointDist: p1.distanceTo(p2),
241
- };
242
- }
243
- function pushUnique(out, next, pointTol, sepTol) {
244
- const a1 = Math.min(next.u1, next.u2);
245
- const a2 = Math.max(next.u1, next.u2);
246
- if (Math.abs(a1 - a2) <= sepTol)
247
- return;
248
- for (const item of out) {
249
- const b1 = Math.min(item.u1, item.u2);
250
- const b2 = Math.max(item.u1, item.u2);
251
- if (Math.abs(a1 - b1) <= Precision.CURVE_PARAM_EPS * 16 &&
252
- Math.abs(a2 - b2) <= Precision.CURVE_PARAM_EPS * 16) {
253
- return;
254
- }
255
- if (item.point.distanceTo(next.point) <= pointTol * 0.5)
256
- return;
257
- }
258
- out.push({
259
- ...next,
260
- u1: a1,
261
- u2: a2,
262
- });
263
- }
264
- function selfAcceptTol(curve, pointTol) {
265
- const box = curve.boundingBox();
266
- const diag = Math.hypot(box.width(), box.height());
267
- return Math.max(pointTol * 32, diag * 2e-6, Precision.CURVE_LENGTH_EPS * 16);
268
- }
269
- function clamp(x, min, max) {
270
- return Math.min(max, Math.max(min, x));
271
- }
272
- function mergeSeeds(a, b, sepTol) {
273
- const ret = [];
274
- const push = (seed) => {
275
- const u1 = Math.min(seed.u1, seed.u2);
276
- const u2 = Math.max(seed.u1, seed.u2);
277
- if (Math.abs(u1 - u2) <= sepTol)
278
- return;
279
- for (const s of ret) {
280
- if (Math.abs(s.u1 - u1) <= Precision.CURVE_PARAM_EPS * 16 &&
281
- Math.abs(s.u2 - u2) <= Precision.CURVE_PARAM_EPS * 16) {
282
- return;
283
- }
284
- }
285
- ret.push({ u1, u2 });
286
- };
287
- for (const seed of a)
288
- push(seed);
289
- for (const seed of b)
290
- push(seed);
291
- return ret;
292
- }
293
- function isTrivialDiagonalPair(curve, u1, u2, diagonalParamTol) {
294
- const du = Math.abs(u1 - u2);
295
- if (du > diagonalParamTol)
296
- return false;
297
- const t1 = curve.tangentAt(u1);
298
- const t2 = curve.tangentAt(u2);
299
- const l1 = t1.len();
300
- const l2 = t2.len();
301
- if (l1 <= Precision.CURVE_NEWTON_EPS || l2 <= Precision.CURVE_NEWTON_EPS)
302
- return true;
303
- const inv = 1 / (l1 * l2);
304
- const crossN = Math.abs(t1.cross(t2)) * inv;
305
- const dotN = t1.dot(t2) * inv;
306
- // Near-diagonal same-direction pair is not a real self intersection.
307
- return crossN <= 1e-3 && dotN >= 0.95;
308
- }
@@ -1,7 +0,0 @@
1
- import type { Curve2 } from '../../curves/curve2';
2
- import type { ICurvePairIntersector } from '../intersector';
3
- import type { CurveXInfo } from '../types';
4
- export declare class LineLinePairSolver implements ICurvePairIntersector {
5
- intersect(c1: Curve2, c2: Curve2): CurveXInfo[];
6
- }
7
- //# sourceMappingURL=line_line_pair_solver.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"line_line_pair_solver.d.ts","sourceRoot":"","sources":["../../../src/intersections/solvers/line_line_pair_solver.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAGjD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAA;AAE3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAE1C,qBAAa,kBAAmB,YAAW,qBAAqB;IACrD,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,UAAU,EAAE;CAmCzD"}
@@ -1,35 +0,0 @@
1
- import { Interval } from '../../curves/interval';
2
- import { MathError } from '../../utils/math_error';
3
- import { Precision } from '../../utils/precision';
4
- import { intersectSegments, makeSegment, pointAtSegmentUnit } from '../internal/segment';
5
- export class LineLinePairSolver {
6
- intersect(c1, c2) {
7
- MathError.assert(c1.isLine() && c2.isLine(), 'LineLinePairSolver: input curves must both be Line2');
8
- const l1 = c1;
9
- const l2 = c2;
10
- const s1 = makeSegment(l1.start, l1.end);
11
- const s2 = makeSegment(l2.start, l2.end);
12
- MathError.assert(s1.len > Precision.CURVE_LENGTH_EPS && s2.len > Precision.CURVE_LENGTH_EPS, 'LineLinePairSolver: degenerate line segment');
13
- const hit = intersectSegments(s1, s2);
14
- if (hit.kind === 'none')
15
- return [];
16
- if (hit.kind === 'point') {
17
- const point = pointAtSegmentUnit(s1, hit.t1);
18
- return [{
19
- point,
20
- u1: hit.t1 * s1.len,
21
- u2: hit.t2 * s2.len,
22
- isOverlap: false,
23
- }];
24
- }
25
- const point = pointAtSegmentUnit(s1, hit.t1s);
26
- return [{
27
- point,
28
- u1: hit.t1s * s1.len,
29
- u2: hit.t2s * s2.len,
30
- isOverlap: true,
31
- range1: new Interval(hit.t1s * s1.len, hit.t1e * s1.len),
32
- range2: new Interval(hit.t2s * s2.len, hit.t2e * s2.len),
33
- }];
34
- }
35
- }
@@ -1,94 +0,0 @@
1
- import { Vec2 } from '../../core/vec2';
2
- import type { Arc2 } from '../../curves/arc2';
3
- import type { Circle2 } from '../../curves/circle2';
4
- import type { Curve2 } from '../../curves/curve2';
5
- import type { Ellipse2 } from '../../curves/ellipse2';
6
- import type { EllipseArc2 } from '../../curves/ellipse_arc2';
7
- import type { ICurvePairIntersector } from '../intersector';
8
- import type { CurveXInfo } from '../types';
9
- import { LineLinePairSolver } from './line_line_pair_solver';
10
- type ImplicitEval = {
11
- value: number;
12
- grad: Vec2;
13
- };
14
- declare abstract class ParametricImplicitPairSolver<TParam extends Curve2, TTarget extends Curve2> implements ICurvePairIntersector {
15
- protected abstract asParam(curve: Curve2): TParam;
16
- protected abstract asTarget(curve: Curve2): TTarget;
17
- protected abstract makeImplicit(target: TTarget): (p: Vec2) => ImplicitEval;
18
- protected abstract valueTolScale(target: TTarget): number;
19
- intersect(c1: Curve2, c2: Curve2): CurveXInfo[];
20
- }
21
- export declare class LineCirclePairSolver implements ICurvePairIntersector {
22
- intersect(c1: Curve2, c2: Curve2): CurveXInfo[];
23
- }
24
- export declare class LineArcPairSolver implements ICurvePairIntersector {
25
- intersect(c1: Curve2, c2: Curve2): CurveXInfo[];
26
- }
27
- export declare class LineEllipsePairSolver implements ICurvePairIntersector {
28
- intersect(c1: Curve2, c2: Curve2): CurveXInfo[];
29
- }
30
- export declare class LineEllipseArcPairSolver implements ICurvePairIntersector {
31
- intersect(c1: Curve2, c2: Curve2): CurveXInfo[];
32
- }
33
- export declare class LineBSplinePairSolver implements ICurvePairIntersector {
34
- intersect(c1: Curve2, c2: Curve2): CurveXInfo[];
35
- }
36
- export declare class CircleCirclePairSolver implements ICurvePairIntersector {
37
- intersect(c1: Curve2, c2: Curve2): CurveXInfo[];
38
- }
39
- export declare class CircleArcPairSolver implements ICurvePairIntersector {
40
- intersect(c1: Curve2, c2: Curve2): CurveXInfo[];
41
- }
42
- export declare class CircleEllipsePairSolver extends ParametricImplicitPairSolver<Circle2, Ellipse2> {
43
- protected asParam(curve: Curve2): Circle2;
44
- protected asTarget(curve: Curve2): Ellipse2;
45
- protected makeImplicit(target: Ellipse2): (p: Vec2) => ImplicitEval;
46
- protected valueTolScale(target: Ellipse2): number;
47
- }
48
- export declare class CircleEllipseArcPairSolver extends ParametricImplicitPairSolver<Circle2, EllipseArc2> {
49
- protected asParam(curve: Curve2): Circle2;
50
- protected asTarget(curve: Curve2): EllipseArc2;
51
- protected makeImplicit(target: EllipseArc2): (p: Vec2) => ImplicitEval;
52
- protected valueTolScale(target: EllipseArc2): number;
53
- }
54
- export declare class CircleBSplinePairSolver implements ICurvePairIntersector {
55
- intersect(c1: Curve2, c2: Curve2): CurveXInfo[];
56
- }
57
- export declare class ArcArcPairSolver implements ICurvePairIntersector {
58
- intersect(c1: Curve2, c2: Curve2): CurveXInfo[];
59
- }
60
- export declare class ArcEllipsePairSolver extends ParametricImplicitPairSolver<Arc2, Ellipse2> {
61
- protected asParam(curve: Curve2): Arc2;
62
- protected asTarget(curve: Curve2): Ellipse2;
63
- protected makeImplicit(target: Ellipse2): (p: Vec2) => ImplicitEval;
64
- protected valueTolScale(target: Ellipse2): number;
65
- }
66
- export declare class ArcEllipseArcPairSolver extends ParametricImplicitPairSolver<Arc2, EllipseArc2> {
67
- protected asParam(curve: Curve2): Arc2;
68
- protected asTarget(curve: Curve2): EllipseArc2;
69
- protected makeImplicit(target: EllipseArc2): (p: Vec2) => ImplicitEval;
70
- protected valueTolScale(target: EllipseArc2): number;
71
- }
72
- export declare class ArcBSplinePairSolver implements ICurvePairIntersector {
73
- intersect(c1: Curve2, c2: Curve2): CurveXInfo[];
74
- }
75
- export declare class EllipseEllipsePairSolver implements ICurvePairIntersector {
76
- intersect(c1: Curve2, c2: Curve2): CurveXInfo[];
77
- }
78
- export declare class EllipseEllipseArcPairSolver implements ICurvePairIntersector {
79
- intersect(c1: Curve2, c2: Curve2): CurveXInfo[];
80
- }
81
- export declare class EllipseBSplinePairSolver implements ICurvePairIntersector {
82
- intersect(c1: Curve2, c2: Curve2): CurveXInfo[];
83
- }
84
- export declare class EllipseArcEllipseArcPairSolver implements ICurvePairIntersector {
85
- intersect(c1: Curve2, c2: Curve2): CurveXInfo[];
86
- }
87
- export declare class EllipseArcBSplinePairSolver implements ICurvePairIntersector {
88
- intersect(c1: Curve2, c2: Curve2): CurveXInfo[];
89
- }
90
- export declare class BSplineBSplinePairSolver implements ICurvePairIntersector {
91
- intersect(c1: Curve2, c2: Curve2): CurveXInfo[];
92
- }
93
- export { LineLinePairSolver };
94
- //# sourceMappingURL=pair_solvers.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pair_solvers.d.ts","sourceRoot":"","sources":["../../../src/intersections/solvers/pair_solvers.ts"],"names":[],"mappings":"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"}