@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,42 +0,0 @@
1
- import { EN_GEO_TYPE } from '../constants/geom_type';
2
- import { Box2 } from '../core/box2';
3
- import { Mat3 } from '../core/mat3';
4
- import { Vec2 } from '../core/vec2';
5
- import type { IDBCircle2 } from '../serialize/dump_types';
6
- import type { IClosestPointResult } from '../types/type_define';
7
- import { Arc2 } from './arc2';
8
- import { CircleCurve2 } from './circle_curve2';
9
- import { Interval } from './interval';
10
- export declare class Circle2 extends CircleCurve2 {
11
- static readonly type = EN_GEO_TYPE.Circle2;
12
- /**
13
- * 构造整圆。
14
- * @param center 圆心。
15
- * @param radius 半径。
16
- */
17
- constructor(center: Vec2, radius: number);
18
- length(range?: Interval): number;
19
- lengthAtParam(u: number): number;
20
- paramAtLength(s: number, tol?: number): number;
21
- split(u: number): Arc2[];
22
- trim(range: Interval): Arc2[];
23
- reverse(): this;
24
- transform(m: Mat3): this;
25
- transformed(m: Mat3): this;
26
- closestPoint(p: Vec2): IClosestPointResult;
27
- boundingBox(): Box2;
28
- isValid(eps?: number): boolean;
29
- isClosed(): boolean;
30
- isCircle(): this is Circle2;
31
- /**
32
- * 结构等价判断(字段级)。
33
- * @param other 对比圆。
34
- * @param eps 数值容差。
35
- * @returns 圆心和半径近似相等时返回 `true`。
36
- */
37
- equals(other: Circle2, eps?: number): boolean;
38
- clone(): this;
39
- dump(): IDBCircle2;
40
- static load(data: IDBCircle2): Circle2;
41
- }
42
- //# sourceMappingURL=circle2.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"circle2.d.ts","sourceRoot":"","sources":["../../src/curves/circle2.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAEpD,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AACnC,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AACnC,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AACnC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAEzD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAG/D,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAGrC,qBAKa,OAAQ,SAAQ,YAAY;IACrC,gBAAuB,IAAI,uBAAsB;IAEjD;;;;OAIG;gBACS,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM;IAKxB,MAAM,CAAC,KAAK,CAAC,EAAE,QAAQ;IAMvB,aAAa,CAAC,CAAC,EAAE,MAAM;IAMvB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,SAA6B;IASzD,KAAK,CAAC,CAAC,EAAE,MAAM;IAYf,IAAI,CAAC,KAAK,EAAE,QAAQ;IAMpB,OAAO;IAKP,SAAS,CAAC,CAAC,EAAE,IAAI;IAajB,WAAW,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI;IAI1B,YAAY,CAAC,CAAC,EAAE,IAAI,GAAG,mBAAmB;IAgB1C,WAAW;IASX,OAAO,CAAC,GAAG,SAA6B;IAIxC,QAAQ,IAAI,OAAO;IAInB,QAAQ,IAAI,IAAI,IAAI,OAAO;IAI3C;;;;;OAKG;IACI,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,SAAgB;IAIjC,KAAK,IAAI,IAAI;IAIb,IAAI,IAAI,UAAU;WAQpB,IAAI,CAAC,IAAI,EAAE,UAAU;CAGtC"}
@@ -1,135 +0,0 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- var Circle2_1;
8
- import { EN_GEO_TYPE } from '../constants/geom_type';
9
- import { MathConst } from '../constants/math_const';
10
- import { Box2 } from '../core/box2';
11
- import { Vec2 } from '../core/vec2';
12
- import { RegisterGeom } from '../serialize/geom_mgr';
13
- import { MathError } from '../utils/math_error';
14
- import { Precision } from '../utils/precision';
15
- import { Arc2 } from './arc2';
16
- import { CircleCurve2 } from './circle_curve2';
17
- import { PeriodInterval } from './period_interval';
18
- let Circle2 = Circle2_1 = class Circle2 extends CircleCurve2 {
19
- /**
20
- * 构造整圆。
21
- * @param center 圆心。
22
- * @param radius 半径。
23
- */
24
- constructor(center, radius) {
25
- super(center, radius);
26
- this.setRange(new PeriodInterval(0, MathConst.PI2, MathConst.PI2));
27
- }
28
- length(range) {
29
- if (!range)
30
- return MathConst.PI2 * this._radius;
31
- this._range.assertContainsRange(range, Precision.CURVE_PARAM_EPS);
32
- return range.length() * this._radius;
33
- }
34
- lengthAtParam(u) {
35
- const uu = this.normalizeParamForEval(u);
36
- const start = this._range.start;
37
- return (uu - start) * this._radius;
38
- }
39
- paramAtLength(s, tol = Precision.CURVE_LENGTH_EPS) {
40
- const total = this.length();
41
- MathError.assert(Number.isFinite(tol) && tol > 0, 'Circle2.paramAtLength: tol must be > 0');
42
- MathError.assert(s >= -tol && s <= total + tol, `Circle2.paramAtLength: s out of range [0, ${total}]`);
43
- const clamped = Math.min(total, Math.max(0, s));
44
- return this._range.start + clamped / this._radius;
45
- }
46
- split(u) {
47
- const range = this._range;
48
- const uu = range.normalizeInPeriod(u, range.start);
49
- if (Math.abs(uu - range.start) <= Precision.CURVE_PARAM_EPS || Math.abs(uu - range.end) <= Precision.CURVE_PARAM_EPS) {
50
- return [];
51
- }
52
- const first = new Arc2(this._center, this._radius, range.start, uu, false);
53
- const second = new Arc2(this._center, this._radius, uu, range.start + range.period, false);
54
- return [first, second].filter((arc) => arc.length() > Precision.CURVE_LENGTH_EPS);
55
- }
56
- trim(range) {
57
- this._range.assertContainsRange(range, Precision.CURVE_PARAM_EPS);
58
- if (range.length() <= Precision.CURVE_PARAM_EPS)
59
- return [];
60
- return [new Arc2(this._center, this._radius, range.start, range.end, false)];
61
- }
62
- reverse() {
63
- // 整圆反转后几何与参数域等价,保持不变即可。
64
- return this;
65
- }
66
- transform(m) {
67
- MathError.assert(m.isSimilarity2D(Precision.CURVE_PARAM_EPS), 'Circle2.transform: matrix must be a 2D similarity transform');
68
- const nextCenter = m.transformedPoint(this._center);
69
- const scale = m.getSimilarityScale2D(Precision.CURVE_PARAM_EPS);
70
- const nextRadius = this._radius * scale;
71
- MathError.assert(nextRadius > Precision.CURVE_LENGTH_EPS, 'Circle2.transform: degenerate radius after transform');
72
- this._center = nextCenter;
73
- this._radius = nextRadius;
74
- return this;
75
- }
76
- transformed(m) {
77
- return this.clone().transform(m);
78
- }
79
- closestPoint(p) {
80
- const v = p.subtracted(this._center);
81
- let u = this._range.start;
82
- if (v.len() > Precision.CURVE_NEWTON_EPS) {
83
- u = this._range.normalizeInPeriod(Math.atan2(v.y, v.x), this._range.start);
84
- }
85
- const point = this.pointAt(u);
86
- return {
87
- point,
88
- param: u,
89
- distance: point.distanceTo(p),
90
- };
91
- }
92
- boundingBox() {
93
- return new Box2(this._center.x - this._radius, this._center.y - this._radius, this._center.x + this._radius, this._center.y + this._radius);
94
- }
95
- isValid(eps = Precision.CURVE_LENGTH_EPS) {
96
- return this.isCircleStructValid(eps);
97
- }
98
- isClosed() {
99
- return true;
100
- }
101
- isCircle() {
102
- return true;
103
- }
104
- /**
105
- * 结构等价判断(字段级)。
106
- * @param other 对比圆。
107
- * @param eps 数值容差。
108
- * @returns 圆心和半径近似相等时返回 `true`。
109
- */
110
- equals(other, eps = Precision.EPS) {
111
- return this._center.equals(other._center, eps) && Precision.equal(this._radius, other._radius, eps);
112
- }
113
- clone() {
114
- return new Circle2_1(this._center, this._radius);
115
- }
116
- dump() {
117
- return {
118
- type: Circle2_1.type,
119
- center: { x: this._center.x, y: this._center.y },
120
- radius: this._radius,
121
- };
122
- }
123
- static load(data) {
124
- return new Circle2_1(new Vec2(data.center.x, data.center.y), data.radius);
125
- }
126
- };
127
- Circle2.type = EN_GEO_TYPE.Circle2;
128
- Circle2 = Circle2_1 = __decorate([
129
- RegisterGeom
130
- /**
131
- * 二维整圆曲线。
132
- * 参数域固定为 `PeriodInterval(0, 2π, 2π)`。
133
- */
134
- ], Circle2);
135
- export { Circle2 };
@@ -1,38 +0,0 @@
1
- import { Vec2 } from '../core/vec2';
2
- import { Curve2 } from './curve2';
3
- /**
4
- * 圆族曲线基类(整圆与圆弧)。
5
- * 参数含义为角度参数。
6
- */
7
- export declare abstract class CircleCurve2 extends Curve2 {
8
- protected _center: Vec2;
9
- protected _radius: number;
10
- constructor(center: Vec2, radius: number);
11
- /** 圆心(返回副本) */
12
- get center(): Vec2;
13
- /** 半径 */
14
- get radius(): number;
15
- pointAt(u: number): Vec2;
16
- tangentAt(u: number): Vec2;
17
- derivatives(u: number, n: number): Vec2[];
18
- curvatureAt(u: number): number;
19
- /** 圆族结构有效性检查 */
20
- protected isCircleStructValid(eps?: number): boolean;
21
- /** 由角度参数计算圆上点 */
22
- protected pointAtAngle(theta: number): Vec2;
23
- /**
24
- * 按角参数计算导数(不含 0 阶点坐标)。
25
- * @param theta 角参数。
26
- * @param order 导数阶次(>=1)。
27
- * @param sign d(theta)/d(u) 的符号,逆向参数化取 -1。
28
- */
29
- protected derivativeAtAngle(theta: number, order: number, sign: 1 | -1): Vec2;
30
- /** 计算点相对圆心的极角 */
31
- protected angleOfPoint(p: Vec2): number;
32
- /**
33
- * 参数校验并归一化,保证端点求值稳定。
34
- * 对周期区间会归一化到当前区间窗口内。
35
- */
36
- protected normalizeParamForEval(u: number): number;
37
- }
38
- //# sourceMappingURL=circle_curve2.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"circle_curve2.d.ts","sourceRoot":"","sources":["../../src/curves/circle_curve2.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAGnC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAGjC;;;GAGG;AACH,8BAAsB,YAAa,SAAQ,MAAM;IAC7C,SAAS,CAAC,OAAO,EAAE,IAAI,CAAA;IACvB,SAAS,CAAC,OAAO,EAAE,MAAM,CAAA;gBAEb,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM;IAQxC,eAAe;IACf,IAAW,MAAM,SAEhB;IAED,SAAS;IACT,IAAW,MAAM,WAEhB;IAEe,OAAO,CAAC,CAAC,EAAE,MAAM;IAKjB,SAAS,CAAC,CAAC,EAAE,MAAM;IAKnB,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;IAWhC,WAAW,CAAC,CAAC,EAAE,MAAM;IAKrC,gBAAgB;IAChB,SAAS,CAAC,mBAAmB,CAAC,GAAG,SAA6B;IAO9D,iBAAiB;IACjB,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM;IAOpC;;;;;OAKG;IACH,SAAS,CAAC,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC;IA4BtE,iBAAiB;IACjB,SAAS,CAAC,YAAY,CAAC,CAAC,EAAE,IAAI;IAI9B;;;OAGG;IACH,SAAS,CAAC,qBAAqB,CAAC,CAAC,EAAE,MAAM;CAa5C"}
@@ -1,112 +0,0 @@
1
- import { Vec2 } from '../core/vec2';
2
- import { MathError } from '../utils/math_error';
3
- import { Precision } from '../utils/precision';
4
- import { Curve2 } from './curve2';
5
- import { PeriodInterval } from './period_interval';
6
- /**
7
- * 圆族曲线基类(整圆与圆弧)。
8
- * 参数含义为角度参数。
9
- */
10
- export class CircleCurve2 extends Curve2 {
11
- constructor(center, radius) {
12
- super();
13
- MathError.assert(Number.isFinite(center.x) && Number.isFinite(center.y), 'CircleCurve2: center must be finite');
14
- MathError.assert(Number.isFinite(radius) && radius > 0, 'CircleCurve2: radius must be > 0');
15
- this._center = center.clone();
16
- this._radius = radius;
17
- }
18
- /** 圆心(返回副本) */
19
- get center() {
20
- return this._center.clone();
21
- }
22
- /** 半径 */
23
- get radius() {
24
- return this._radius;
25
- }
26
- pointAt(u) {
27
- const uu = this.normalizeParamForEval(u);
28
- return this.pointAtAngle(uu);
29
- }
30
- tangentAt(u) {
31
- const uu = this.normalizeParamForEval(u);
32
- return this.derivativeAtAngle(uu, 1, 1);
33
- }
34
- derivatives(u, n) {
35
- MathError.assert(Number.isInteger(n) && n >= 0, 'CircleCurve2.derivatives: n must be a non-negative integer');
36
- const uu = this.normalizeParamForEval(u);
37
- const ret = [this.pointAtAngle(uu)];
38
- for (let i = 1; i <= n; i++) {
39
- ret.push(this.derivativeAtAngle(uu, i, 1));
40
- }
41
- return ret;
42
- }
43
- curvatureAt(u) {
44
- this.normalizeParamForEval(u);
45
- return 1 / this._radius;
46
- }
47
- /** 圆族结构有效性检查 */
48
- isCircleStructValid(eps = Precision.CURVE_LENGTH_EPS) {
49
- return Number.isFinite(this._center.x) &&
50
- Number.isFinite(this._center.y) &&
51
- Number.isFinite(this._radius) &&
52
- this._radius > eps;
53
- }
54
- /** 由角度参数计算圆上点 */
55
- pointAtAngle(theta) {
56
- return new Vec2(this._center.x + this._radius * Math.cos(theta), this._center.y + this._radius * Math.sin(theta));
57
- }
58
- /**
59
- * 按角参数计算导数(不含 0 阶点坐标)。
60
- * @param theta 角参数。
61
- * @param order 导数阶次(>=1)。
62
- * @param sign d(theta)/d(u) 的符号,逆向参数化取 -1。
63
- */
64
- derivativeAtAngle(theta, order, sign) {
65
- const phase = order % 4;
66
- let x = 0;
67
- let y = 0;
68
- switch (phase) {
69
- case 0:
70
- x = Math.cos(theta);
71
- y = Math.sin(theta);
72
- break;
73
- case 1:
74
- x = -Math.sin(theta);
75
- y = Math.cos(theta);
76
- break;
77
- case 2:
78
- x = -Math.cos(theta);
79
- y = -Math.sin(theta);
80
- break;
81
- default:
82
- x = Math.sin(theta);
83
- y = -Math.cos(theta);
84
- break;
85
- }
86
- // d^k/d u^k = d^k/d theta^k * (d theta / d u)^k
87
- // 当 sign = -1 时,奇数阶导翻转符号,偶数阶不变。
88
- const signPow = sign === 1 ? 1 : (order % 2 === 0 ? 1 : -1);
89
- return new Vec2(x, y).scale(this._radius * signPow);
90
- }
91
- /** 计算点相对圆心的极角 */
92
- angleOfPoint(p) {
93
- return Math.atan2(p.y - this._center.y, p.x - this._center.x);
94
- }
95
- /**
96
- * 参数校验并归一化,保证端点求值稳定。
97
- * 对周期区间会归一化到当前区间窗口内。
98
- */
99
- normalizeParamForEval(u) {
100
- this._range.assertContains(u, Precision.CURVE_PARAM_EPS);
101
- const start = this._range.start;
102
- const end = this._range.end;
103
- if (Math.abs(u - start) <= Precision.CURVE_PARAM_EPS)
104
- return start;
105
- if (Math.abs(u - end) <= Precision.CURVE_PARAM_EPS)
106
- return end;
107
- if (this._range instanceof PeriodInterval) {
108
- return this._range.normalizeInPeriod(u, start);
109
- }
110
- return u;
111
- }
112
- }
@@ -1,214 +0,0 @@
1
- import { Box2 } from '../core/box2';
2
- import { GeomBase } from '../core/geom_base';
3
- import { Mat3 } from '../core/mat3';
4
- import { Vec2 } from '../core/vec2';
5
- import type { IClosestPointResult } from '../types/type_define';
6
- import { DiscretizeOptions } from '../discretize/discretize_options';
7
- import type { Arc2 } from './arc2';
8
- import type { BSpline2 } from './bspline2';
9
- import type { Circle2 } from './circle2';
10
- import type { Ellipse2 } from './ellipse2';
11
- import type { EllipseArc2 } from './ellipse_arc2';
12
- import { Interval } from './interval';
13
- import type { Line2 } from './line2';
14
- export declare abstract class Curve2 extends GeomBase {
15
- /**
16
- * 参数域
17
- * - 默认使用无界区间,具体曲线应在子类中覆盖
18
- * - 子类可直接赋值 this._range,或调用 setRange()
19
- */
20
- protected _range: Interval;
21
- /**
22
- * 获取参数域。
23
- * @returns 参数域副本,调用方修改不会影响内部状态。
24
- */
25
- getRange(): Interval;
26
- /**
27
- * 判断参数是否落在当前曲线参数域内。
28
- * @param u 待判断参数。
29
- * @param eps 区间边界比较容差。
30
- * @returns 落在参数域内返回 `true`。
31
- */
32
- containsParam(u: number, eps?: number): boolean;
33
- /**
34
- * 原生参数取点。
35
- * @param u 曲线参数。
36
- * @returns 参数对应的二维点。
37
- */
38
- abstract pointAt(u: number): Vec2;
39
- /**
40
- * 原生参数切向(一阶导)。
41
- * @param u 曲线参数。
42
- * @returns 参数处切向量。
43
- */
44
- abstract tangentAt(u: number): Vec2;
45
- /**
46
- * 计算导数序列 `[d0, d1, ...]`。
47
- * @param u 曲线参数。
48
- * @param n 最大导数阶数。
49
- * @returns 从 0 阶到 n 阶的导数数组。
50
- */
51
- abstract derivatives(u: number, n: number): Vec2[];
52
- /**
53
- * 计算参数处曲率。
54
- * @param u 曲线参数。
55
- * @returns 曲率标量。
56
- */
57
- abstract curvatureAt(u: number): number;
58
- /**
59
- * 计算曲线长度。
60
- * @param range 可选子参数域;不传表示整段曲线。
61
- * @returns 指定参数范围内的弧长。
62
- */
63
- abstract length(range?: Interval): number;
64
- /**
65
- * 计算从参数域起点到 `u` 的弧长。
66
- * @param u 目标参数。
67
- * @returns 起点到 `u` 的累计弧长。
68
- */
69
- abstract lengthAtParam(u: number): number;
70
- /**
71
- * 给定弧长反求参数。
72
- * @param s 目标弧长。
73
- * @param tol 迭代容差(若实现采用迭代法)。
74
- * @returns 对应参数值。
75
- */
76
- abstract paramAtLength(s: number, tol?: number): number;
77
- /**
78
- * 以参数切分曲线。
79
- * @param u 切分参数。
80
- * @returns 切分结果曲线数组。
81
- */
82
- abstract split(u: number): Curve2[];
83
- /**
84
- * 参数裁剪。
85
- * @param range 目标保留参数区间。
86
- * @returns 裁剪后的曲线数组。
87
- */
88
- abstract trim(range: Interval): Curve2[];
89
- /**
90
- * 反转曲线方向(就地)。
91
- * @returns 当前实例。
92
- */
93
- abstract reverse(): this;
94
- /**
95
- * 应用仿射变换(就地)。
96
- * @param m 3x3 变换矩阵。
97
- * @returns 当前实例。
98
- */
99
- abstract transform(m: Mat3): this;
100
- /**
101
- * 应用仿射变换(返回新对象)。
102
- * @param m 3x3 变换矩阵。
103
- * @returns 变换后的新曲线对象。
104
- */
105
- abstract transformed(m: Mat3): this;
106
- /**
107
- * 最近点查询。
108
- * @param p 查询点。
109
- * @param tol 计算容差。
110
- * @returns 最近点、对应参数和距离。
111
- */
112
- abstract closestPoint(p: Vec2, tol?: number): IClosestPointResult;
113
- /**
114
- * 计算包围盒。
115
- * @param accurate 是否使用高精度计算。
116
- * - `accurate !== true`:优先快速保守盒(用于高频场景)
117
- * - `accurate === true`:尽量返回更紧的包围盒(允许更慢)
118
- * @returns 曲线包围盒。
119
- */
120
- abstract boundingBox(accurate?: boolean): Box2;
121
- /**
122
- * 有效性检查。
123
- * @param eps 数值判定容差。
124
- * @returns 曲线定义有效返回 `true`。
125
- */
126
- abstract isValid(eps?: number): boolean;
127
- /**
128
- * 是否为退化曲线。
129
- * 默认规则:参数域过小或曲线长度过小。
130
- */
131
- isDegenerate(): boolean;
132
- /**
133
- * 是否为闭合曲线。
134
- * 默认返回 `false`,由闭合曲线子类覆盖。
135
- */
136
- isClosed(): boolean;
137
- /** 是否为线段曲线。 */
138
- isLine(): this is Line2;
139
- /** 是否为整圆曲线。 */
140
- isCircle(): this is Circle2;
141
- /** 是否为圆弧曲线。 */
142
- isArc(): this is Arc2;
143
- /** 是否为整椭圆曲线。 */
144
- isEllipse(): this is Ellipse2;
145
- /** 是否为椭圆弧曲线。 */
146
- isEllipseArc(): this is EllipseArc2;
147
- /** 是否为 B 样条曲线。 */
148
- isBSpline(): this is BSpline2;
149
- /**
150
- * 克隆曲线。
151
- * @returns 当前曲线的深拷贝对象。
152
- */
153
- abstract clone(): this;
154
- /**
155
- * 获取第 `n` 阶导数(默认由 `derivatives` 派生)。
156
- * @param u 曲线参数。
157
- * @param n 导数阶数,要求为非负整数。
158
- * @returns 第 `n` 阶导数向量。
159
- */
160
- derivativeAt(u: number, n: number): Vec2;
161
- /**
162
- * 最近参数(默认由 `closestPoint` 派生)。
163
- * @param p 查询点。
164
- * @param tol 计算容差。
165
- * @returns 最近点对应参数。
166
- */
167
- closestParam(p: Vec2, tol?: number): number;
168
- /**
169
- * 点到曲线距离(默认由 `closestPoint` 派生)。
170
- * @param p 查询点。
171
- * @param tol 计算容差。
172
- * @returns 点到曲线的最短距离。
173
- */
174
- distanceToPoint(p: Vec2, tol?: number): number;
175
- /**
176
- * 曲线离散化便捷入口(薄封装)。
177
- * @param options 离散参数。
178
- * @returns 折线采样结果。
179
- */
180
- discretize(options?: DiscretizeOptions): Vec2[];
181
- /**
182
- * 设置参数域(供子类构造期使用)。
183
- * @param range 参数区间。
184
- * @returns 当前实例。
185
- */
186
- protected setRange(range: Interval): this;
187
- /**
188
- * Newton + 二分混合求解参数(常用于弧长反参)。
189
- * @param target 目标值(如目标弧长)。
190
- * @param start 参数下界。
191
- * @param end 参数上界。
192
- * @param tol 收敛容差。
193
- * @param evalValue 参数到目标量的映射函数(要求在 [start, end] 上单调)。
194
- * @param evalSlope 参数处导数量(如速度),用于 Newton 步。
195
- * @param failMessage 未收敛时抛错信息。
196
- * @param initialGuess 可选初值;不传时取区间中点。
197
- * @returns 收敛后的参数。
198
- */
199
- protected solveParamByHybridNewton(target: number, start: number, end: number, tol: number, evalValue: (u: number) => number, evalSlope: (u: number) => number, failMessage: string, initialGuess?: number): number;
200
- /**
201
- * “采样粗定位 + Newton 细化”最近点求解通用流程。
202
- * @param p 查询点。
203
- * @param tol 收敛容差。
204
- * @param sampleCount 初始采样数(含两端点)。
205
- * @param evalPoint 参数求点函数。
206
- * @param evalD1 一阶导函数。
207
- * @param evalD2 二阶导函数。
208
- * @param failMessage 未收敛时抛错信息。
209
- * @param compareParam 参数平局比较器(返回 <0 表示 a 更优)。
210
- * @returns 最近点结果。
211
- */
212
- protected solveClosestPointBySampleNewton(p: Vec2, tol: number, sampleCount: number, evalPoint: (u: number) => Vec2, evalD1: (u: number) => Vec2, evalD2: (u: number) => Vec2, failMessage: string, compareParam?: (a: number, b: number) => number): IClosestPointResult;
213
- }
214
- //# sourceMappingURL=curve2.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"curve2.d.ts","sourceRoot":"","sources":["../../src/curves/curve2.ts"],"names":[],"mappings":"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"}