@ccpc/math 0.1.0 → 0.1.3

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,101 +0,0 @@
1
- import { GeomBase } from './geom_base';
2
- import { EN_GEO_TYPE } from '../constants/geom_type';
3
- import type { IDBMat3 } from '../serialize/dump_types';
4
- import { Vec2 } from './vec2';
5
- import type { Num3x3 } from '../types/type_guard';
6
- import type { IMat3 } from '../types/type_define';
7
- export declare class Mat3 extends GeomBase implements IMat3 {
8
- /** 序列化类型标识 */
9
- static readonly type = EN_GEO_TYPE.Mat3;
10
- /**
11
- * 矩阵元素(列主序存储)
12
- * 对外输入/输出使用行主序
13
- */
14
- elements: Num3x3;
15
- /** 创建一个 3x3 矩阵(对外行主序输入,内部列主序存储) */
16
- constructor(m00?: number, m01?: number, m02?: number, m10?: number, m11?: number, m12?: number, m20?: number, m21?: number, m22?: number);
17
- /** 行主序 -> 列主序 */
18
- private static toColumnMajor;
19
- /** 列主序 -> 行主序 */
20
- private static toRowMajor;
21
- /** 使用行主序数组设置矩阵 */
22
- private setFromRowMajor;
23
- /** 取行列元素(row/col 从 0 开始) */
24
- private at;
25
- /** 单位矩阵 */
26
- static identity(): Mat3;
27
- /** 平移矩阵 */
28
- static translation(tx: number, ty: number): Mat3;
29
- /** 旋转矩阵(弧度) */
30
- static rotation(rad: number): Mat3;
31
- /** 缩放矩阵 */
32
- static scaling(sx: number, sy: number): Mat3;
33
- /** 克隆 */
34
- clone(): Mat3;
35
- /** 右乘:this * m(就地修改) */
36
- multiply(m: Mat3): this;
37
- /** 右乘:this * m(返回新对象) */
38
- multiplied(m: Mat3): Mat3;
39
- /** 左乘:m * this(就地修改) */
40
- premultiply(m: Mat3): this;
41
- /** 左乘:m * this(返回新对象) */
42
- premultiplied(m: Mat3): Mat3;
43
- /** 平移(右乘,就地修改) */
44
- translate(tx: number, ty: number): this;
45
- /** 平移(右乘,返回新对象) */
46
- translated(tx: number, ty: number): Mat3;
47
- /** 旋转(右乘,就地修改) */
48
- rotate(rad: number): this;
49
- /** 旋转(右乘,返回新对象) */
50
- rotated(rad: number): Mat3;
51
- /** 缩放(右乘,就地修改) */
52
- scale(sx: number, sy: number): this;
53
- /** 缩放(右乘,返回新对象) */
54
- scaled(sx: number, sy: number): Mat3;
55
- /** 变换点(就地修改) */
56
- transformPoint(v: Vec2): Vec2;
57
- /** 变换点(返回新对象) */
58
- transformedPoint(v: Vec2): Vec2;
59
- /** 变换向量(就地修改,不含平移) */
60
- transformVector(v: Vec2): Vec2;
61
- /** 变换向量(返回新对象,不含平移) */
62
- transformedVector(v: Vec2): Vec2;
63
- /** 行列式 */
64
- determinant(): number;
65
- /** 逆矩阵(就地修改,不可逆抛错) */
66
- invert(eps?: number): this;
67
- /** 逆矩阵(返回新对象) */
68
- inverted(eps?: number): Mat3;
69
- /** 近似相等 */
70
- equals(m: Mat3, eps?: number): boolean;
71
- /** 转为数组(行主序) */
72
- toArray(): readonly [number, number, number, number, number, number, number, number, number];
73
- /**
74
- * 分解为平移/旋转/缩放
75
- * - 假定矩阵不包含剪切
76
- * - 旋转角为弧度
77
- */
78
- decompose(): {
79
- translation: Vec2;
80
- rotation: number;
81
- scale: Vec2;
82
- };
83
- /**
84
- * 判断矩阵是否为二维相似变换。
85
- * 对线性部分 A 的要求:
86
- * - 在容差内满足 A^T A = s^2 I
87
- * - s > 0
88
- * 允许镜像(det(A) < 0)。
89
- */
90
- isSimilarity2D(eps?: number): boolean;
91
- /**
92
- * 返回二维相似变换的统一缩放系数。
93
- * 若矩阵不是二维相似变换则抛错。
94
- */
95
- getSimilarityScale2D(eps?: number): number;
96
- /** 序列化为结构对象 */
97
- dump(): IDBMat3;
98
- /** 从结构对象反序列化 */
99
- static load(data: IDBMat3): Mat3;
100
- }
101
- //# sourceMappingURL=mat3.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mat3.d.ts","sourceRoot":"","sources":["../../src/core/mat3.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAEpD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAA;AACtD,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AACjD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AAIjD,qBACa,IAAK,SAAQ,QAAS,YAAW,KAAK;IAC/C,cAAc;IACd,gBAAuB,IAAI,oBAAmB;IAE9C;;;OAGG;IACI,QAAQ,EAAE,MAAM,CAAA;IAEvB,mCAAmC;gBAE/B,GAAG,SAAI,EAAE,GAAG,SAAI,EAAE,GAAG,SAAI,EACzB,GAAG,SAAI,EAAE,GAAG,SAAI,EAAE,GAAG,SAAI,EACzB,GAAG,SAAI,EAAE,GAAG,SAAI,EAAE,GAAG,SAAI;IAU7B,iBAAiB;IACjB,OAAO,CAAC,MAAM,CAAC,aAAa;IAQ5B,iBAAiB;IACjB,OAAO,CAAC,MAAM,CAAC,UAAU;IAQzB,kBAAkB;IAClB,OAAO,CAAC,eAAe;IAKvB,4BAA4B;IAC5B,OAAO,CAAC,EAAE;IAIV,WAAW;WACG,QAAQ;IAItB,WAAW;WACG,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM;IAQhD,eAAe;WACD,QAAQ,CAAC,GAAG,EAAE,MAAM;IAUlC,WAAW;WACG,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM;IAQ5C,SAAS;IACF,KAAK;IASZ,wBAAwB;IACjB,QAAQ,CAAC,CAAC,EAAE,IAAI;IAavB,yBAAyB;IAClB,UAAU,CAAC,CAAC,EAAE,IAAI;IAIzB,wBAAwB;IACjB,WAAW,CAAC,CAAC,EAAE,IAAI;IAa1B,yBAAyB;IAClB,aAAa,CAAC,CAAC,EAAE,IAAI;IAI5B,kBAAkB;IACX,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM;IAIvC,mBAAmB;IACZ,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM;IAIxC,kBAAkB;IACX,MAAM,CAAC,GAAG,EAAE,MAAM;IAIzB,mBAAmB;IACZ,OAAO,CAAC,GAAG,EAAE,MAAM;IAI1B,kBAAkB;IACX,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM;IAInC,mBAAmB;IACZ,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM;IAIpC,gBAAgB;IACT,cAAc,CAAC,CAAC,EAAE,IAAI;IAQ7B,iBAAiB;IACV,gBAAgB,CAAC,CAAC,EAAE,IAAI;IAI/B,sBAAsB;IACf,eAAe,CAAC,CAAC,EAAE,IAAI;IAQ9B,uBAAuB;IAChB,iBAAiB,CAAC,CAAC,EAAE,IAAI;IAOhC,UAAU;IACH,WAAW;IAOlB,sBAAsB;IACf,MAAM,CAAC,GAAG,SAAoB;IA2BrC,iBAAiB;IACV,QAAQ,CAAC,GAAG,SAAoB;IAIvC,WAAW;IACJ,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,SAAgB;IAgB1C,gBAAgB;IACT,OAAO;IAId;;;;OAIG;IACI,SAAS;;;;;IAyBhB;;;;;;OAMG;IACI,cAAc,CAAC,GAAG,SAA4B;IAoBrD;;;OAGG;IACI,oBAAoB,CAAC,GAAG,SAA4B;IAQ3D,eAAe;IACR,IAAI,IAAI,OAAO;IAOtB,gBAAgB;WACF,IAAI,CAAC,IAAI,EAAE,OAAO;CAQnC"}
package/dist/core/mat3.js DELETED
@@ -1,290 +0,0 @@
1
- /*
2
- * Linea Math - Core
3
- * Mat3:二维仿射矩阵,列向量 + 右乘约定
4
- */
5
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
6
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
7
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
8
- 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;
9
- return c > 3 && r && Object.defineProperty(target, key, r), r;
10
- };
11
- var Mat3_1;
12
- import { GeomBase } from './geom_base';
13
- import { EN_GEO_TYPE } from '../constants/geom_type';
14
- import { RegisterGeom } from '../serialize/geom_mgr';
15
- import { Vec2 } from './vec2';
16
- import { Precision } from '../utils/precision';
17
- import { MathError } from '../utils/math_error';
18
- let Mat3 = Mat3_1 = class Mat3 extends GeomBase {
19
- /** 创建一个 3x3 矩阵(对外行主序输入,内部列主序存储) */
20
- constructor(m00 = 1, m01 = 0, m02 = 0, m10 = 0, m11 = 1, m12 = 0, m20 = 0, m21 = 0, m22 = 1) {
21
- super();
22
- this.elements = Mat3_1.toColumnMajor([
23
- m00, m01, m02,
24
- m10, m11, m12,
25
- m20, m21, m22,
26
- ]);
27
- }
28
- /** 行主序 -> 列主序 */
29
- static toColumnMajor(e) {
30
- return [
31
- e[0], e[3], e[6],
32
- e[1], e[4], e[7],
33
- e[2], e[5], e[8],
34
- ];
35
- }
36
- /** 列主序 -> 行主序 */
37
- static toRowMajor(e) {
38
- return [
39
- e[0], e[3], e[6],
40
- e[1], e[4], e[7],
41
- e[2], e[5], e[8],
42
- ];
43
- }
44
- /** 使用行主序数组设置矩阵 */
45
- setFromRowMajor(e) {
46
- this.elements = Mat3_1.toColumnMajor(e);
47
- return this;
48
- }
49
- /** 取行列元素(row/col 从 0 开始) */
50
- at(row, col) {
51
- return this.elements[col * 3 + row];
52
- }
53
- /** 单位矩阵 */
54
- static identity() {
55
- return new Mat3_1();
56
- }
57
- /** 平移矩阵 */
58
- static translation(tx, ty) {
59
- return new Mat3_1(1, 0, tx, 0, 1, ty, 0, 0, 1);
60
- }
61
- /** 旋转矩阵(弧度) */
62
- static rotation(rad) {
63
- const c = Math.cos(rad);
64
- const s = Math.sin(rad);
65
- return new Mat3_1(c, -s, 0, s, c, 0, 0, 0, 1);
66
- }
67
- /** 缩放矩阵 */
68
- static scaling(sx, sy) {
69
- return new Mat3_1(sx, 0, 0, 0, sy, 0, 0, 0, 1);
70
- }
71
- /** 克隆 */
72
- clone() {
73
- const e = Mat3_1.toRowMajor(this.elements);
74
- return new Mat3_1(e[0], e[1], e[2], e[3], e[4], e[5], e[6], e[7], e[8]);
75
- }
76
- /** 右乘:this * m(就地修改) */
77
- multiply(m) {
78
- const a00 = this.at(0, 0) * m.at(0, 0) + this.at(0, 1) * m.at(1, 0) + this.at(0, 2) * m.at(2, 0);
79
- const a01 = this.at(0, 0) * m.at(0, 1) + this.at(0, 1) * m.at(1, 1) + this.at(0, 2) * m.at(2, 1);
80
- const a02 = this.at(0, 0) * m.at(0, 2) + this.at(0, 1) * m.at(1, 2) + this.at(0, 2) * m.at(2, 2);
81
- const a10 = this.at(1, 0) * m.at(0, 0) + this.at(1, 1) * m.at(1, 0) + this.at(1, 2) * m.at(2, 0);
82
- const a11 = this.at(1, 0) * m.at(0, 1) + this.at(1, 1) * m.at(1, 1) + this.at(1, 2) * m.at(2, 1);
83
- const a12 = this.at(1, 0) * m.at(0, 2) + this.at(1, 1) * m.at(1, 2) + this.at(1, 2) * m.at(2, 2);
84
- const a20 = this.at(2, 0) * m.at(0, 0) + this.at(2, 1) * m.at(1, 0) + this.at(2, 2) * m.at(2, 0);
85
- const a21 = this.at(2, 0) * m.at(0, 1) + this.at(2, 1) * m.at(1, 1) + this.at(2, 2) * m.at(2, 1);
86
- const a22 = this.at(2, 0) * m.at(0, 2) + this.at(2, 1) * m.at(1, 2) + this.at(2, 2) * m.at(2, 2);
87
- return this.setFromRowMajor([a00, a01, a02, a10, a11, a12, a20, a21, a22]);
88
- }
89
- /** 右乘:this * m(返回新对象) */
90
- multiplied(m) {
91
- return this.clone().multiply(m);
92
- }
93
- /** 左乘:m * this(就地修改) */
94
- premultiply(m) {
95
- const a00 = m.at(0, 0) * this.at(0, 0) + m.at(0, 1) * this.at(1, 0) + m.at(0, 2) * this.at(2, 0);
96
- const a01 = m.at(0, 0) * this.at(0, 1) + m.at(0, 1) * this.at(1, 1) + m.at(0, 2) * this.at(2, 1);
97
- const a02 = m.at(0, 0) * this.at(0, 2) + m.at(0, 1) * this.at(1, 2) + m.at(0, 2) * this.at(2, 2);
98
- const a10 = m.at(1, 0) * this.at(0, 0) + m.at(1, 1) * this.at(1, 0) + m.at(1, 2) * this.at(2, 0);
99
- const a11 = m.at(1, 0) * this.at(0, 1) + m.at(1, 1) * this.at(1, 1) + m.at(1, 2) * this.at(2, 1);
100
- const a12 = m.at(1, 0) * this.at(0, 2) + m.at(1, 1) * this.at(1, 2) + m.at(1, 2) * this.at(2, 2);
101
- const a20 = m.at(2, 0) * this.at(0, 0) + m.at(2, 1) * this.at(1, 0) + m.at(2, 2) * this.at(2, 0);
102
- const a21 = m.at(2, 0) * this.at(0, 1) + m.at(2, 1) * this.at(1, 1) + m.at(2, 2) * this.at(2, 1);
103
- const a22 = m.at(2, 0) * this.at(0, 2) + m.at(2, 1) * this.at(1, 2) + m.at(2, 2) * this.at(2, 2);
104
- return this.setFromRowMajor([a00, a01, a02, a10, a11, a12, a20, a21, a22]);
105
- }
106
- /** 左乘:m * this(返回新对象) */
107
- premultiplied(m) {
108
- return this.clone().premultiply(m);
109
- }
110
- /** 平移(右乘,就地修改) */
111
- translate(tx, ty) {
112
- return this.multiply(Mat3_1.translation(tx, ty));
113
- }
114
- /** 平移(右乘,返回新对象) */
115
- translated(tx, ty) {
116
- return this.clone().translate(tx, ty);
117
- }
118
- /** 旋转(右乘,就地修改) */
119
- rotate(rad) {
120
- return this.multiply(Mat3_1.rotation(rad));
121
- }
122
- /** 旋转(右乘,返回新对象) */
123
- rotated(rad) {
124
- return this.clone().rotate(rad);
125
- }
126
- /** 缩放(右乘,就地修改) */
127
- scale(sx, sy) {
128
- return this.multiply(Mat3_1.scaling(sx, sy));
129
- }
130
- /** 缩放(右乘,返回新对象) */
131
- scaled(sx, sy) {
132
- return this.clone().scale(sx, sy);
133
- }
134
- /** 变换点(就地修改) */
135
- transformPoint(v) {
136
- const x = this.at(0, 0) * v.x + this.at(0, 1) * v.y + this.at(0, 2);
137
- const y = this.at(1, 0) * v.x + this.at(1, 1) * v.y + this.at(1, 2);
138
- v.x = x;
139
- v.y = y;
140
- return v;
141
- }
142
- /** 变换点(返回新对象) */
143
- transformedPoint(v) {
144
- return v.clone().applyMat3(this);
145
- }
146
- /** 变换向量(就地修改,不含平移) */
147
- transformVector(v) {
148
- const x = this.at(0, 0) * v.x + this.at(0, 1) * v.y;
149
- const y = this.at(1, 0) * v.x + this.at(1, 1) * v.y;
150
- v.x = x;
151
- v.y = y;
152
- return v;
153
- }
154
- /** 变换向量(返回新对象,不含平移) */
155
- transformedVector(v) {
156
- return new Vec2(this.at(0, 0) * v.x + this.at(0, 1) * v.y, this.at(1, 0) * v.x + this.at(1, 1) * v.y);
157
- }
158
- /** 行列式 */
159
- determinant() {
160
- const a = this.at(0, 0), b = this.at(0, 1), c = this.at(0, 2);
161
- const d = this.at(1, 0), e = this.at(1, 1), f = this.at(1, 2);
162
- const g = this.at(2, 0), h = this.at(2, 1), i = this.at(2, 2);
163
- return a * e * i + b * f * g + c * d * h - c * e * g - b * d * i - a * f * h;
164
- }
165
- /** 逆矩阵(就地修改,不可逆抛错) */
166
- invert(eps = Precision.LEN_EPS) {
167
- const det = this.determinant();
168
- if (Math.abs(det) <= eps) {
169
- MathError.throw('Mat3.invert: matrix is not invertible');
170
- }
171
- const a = this.at(0, 0), b = this.at(0, 1), c = this.at(0, 2);
172
- const d = this.at(1, 0), e = this.at(1, 1), f = this.at(1, 2);
173
- const g = this.at(2, 0), h = this.at(2, 1), i = this.at(2, 2);
174
- const A = e * i - f * h;
175
- const B = c * h - b * i;
176
- const C = b * f - c * e;
177
- const D = f * g - d * i;
178
- const E = a * i - c * g;
179
- const F = c * d - a * f;
180
- const G = d * h - e * g;
181
- const H = b * g - a * h;
182
- const I = a * e - b * d;
183
- const invDet = 1 / det;
184
- return this.setFromRowMajor([
185
- A * invDet, B * invDet, C * invDet,
186
- D * invDet, E * invDet, F * invDet,
187
- G * invDet, H * invDet, I * invDet,
188
- ]);
189
- }
190
- /** 逆矩阵(返回新对象) */
191
- inverted(eps = Precision.LEN_EPS) {
192
- return this.clone().invert(eps);
193
- }
194
- /** 近似相等 */
195
- equals(m, eps = Precision.EPS) {
196
- const a = this.elements;
197
- const b = m.elements;
198
- return (Precision.equal(a[0], b[0], eps) &&
199
- Precision.equal(a[1], b[1], eps) &&
200
- Precision.equal(a[2], b[2], eps) &&
201
- Precision.equal(a[3], b[3], eps) &&
202
- Precision.equal(a[4], b[4], eps) &&
203
- Precision.equal(a[5], b[5], eps) &&
204
- Precision.equal(a[6], b[6], eps) &&
205
- Precision.equal(a[7], b[7], eps) &&
206
- Precision.equal(a[8], b[8], eps));
207
- }
208
- /** 转为数组(行主序) */
209
- toArray() {
210
- return Mat3_1.toRowMajor(this.elements);
211
- }
212
- /**
213
- * 分解为平移/旋转/缩放
214
- * - 假定矩阵不包含剪切
215
- * - 旋转角为弧度
216
- */
217
- decompose() {
218
- const e = this.toArray();
219
- const m00 = e[0], m01 = e[1], m02 = e[2];
220
- const m10 = e[3], m11 = e[4], m12 = e[5];
221
- const tx = m02;
222
- const ty = m12;
223
- const sx = Math.hypot(m00, m10);
224
- let sy = Math.hypot(m01, m11);
225
- const det = m00 * m11 - m01 * m10;
226
- if (det < 0) {
227
- sy = -sy;
228
- }
229
- const rotation = Math.atan2(m10, m00);
230
- return {
231
- translation: new Vec2(tx, ty),
232
- rotation,
233
- scale: new Vec2(sx, sy),
234
- };
235
- }
236
- /**
237
- * 判断矩阵是否为二维相似变换。
238
- * 对线性部分 A 的要求:
239
- * - 在容差内满足 A^T A = s^2 I
240
- * - s > 0
241
- * 允许镜像(det(A) < 0)。
242
- */
243
- isSimilarity2D(eps = Precision.CURVE_PARAM_EPS) {
244
- const e = this.toArray();
245
- if (!Precision.nearlyZero(e[6], eps) || !Precision.nearlyZero(e[7], eps) || !Precision.equal(e[8], 1, eps)) {
246
- return false;
247
- }
248
- const a = e[0];
249
- const b = e[1];
250
- const c = e[3];
251
- const d = e[4];
252
- const col0Sq = a * a + c * c;
253
- const col1Sq = b * b + d * d;
254
- const colDot = a * b + c * d;
255
- if (col0Sq <= eps * eps || col1Sq <= eps * eps)
256
- return false;
257
- if (!Precision.nearlyZero(colDot, eps))
258
- return false;
259
- return Precision.equal(col0Sq, col1Sq, eps);
260
- }
261
- /**
262
- * 返回二维相似变换的统一缩放系数。
263
- * 若矩阵不是二维相似变换则抛错。
264
- */
265
- getSimilarityScale2D(eps = Precision.CURVE_PARAM_EPS) {
266
- MathError.assert(this.isSimilarity2D(eps), 'Mat3.getSimilarityScale2D: matrix is not a 2D similarity transform');
267
- const e = this.toArray();
268
- const col0Sq = e[0] * e[0] + e[3] * e[3];
269
- const col1Sq = e[1] * e[1] + e[4] * e[4];
270
- return Math.sqrt((col0Sq + col1Sq) * 0.5);
271
- }
272
- /** 序列化为结构对象 */
273
- dump() {
274
- return {
275
- type: Mat3_1.type,
276
- elements: this.toArray(),
277
- };
278
- }
279
- /** 从结构对象反序列化 */
280
- static load(data) {
281
- const e = data.elements;
282
- return new Mat3_1(e[0], e[1], e[2], e[3], e[4], e[5], e[6], e[7], e[8]);
283
- }
284
- };
285
- /** 序列化类型标识 */
286
- Mat3.type = EN_GEO_TYPE.Mat3;
287
- Mat3 = Mat3_1 = __decorate([
288
- RegisterGeom
289
- ], Mat3);
290
- export { Mat3 };
@@ -1,138 +0,0 @@
1
- import { GeomBase } from './geom_base';
2
- import { EN_GEO_TYPE } from '../constants/geom_type';
3
- import type { IDBVec2 } from '../serialize/dump_types';
4
- import type { IVec2 } from '../types/type_define';
5
- import type { Mat3 } from './mat3';
6
- export declare class Vec2 extends GeomBase implements IVec2 {
7
- /** 序列化类型标识 */
8
- static readonly type = EN_GEO_TYPE.Vec2;
9
- /** X 分量 */
10
- x: number;
11
- /** Y 分量 */
12
- y: number;
13
- /** 创建一个向量实例 */
14
- constructor();
15
- constructor(x: number, y: number);
16
- constructor(obj: IVec2);
17
- /** 零向量 */
18
- static zero(): Vec2;
19
- /** 单位向量 X */
20
- static unitX(): Vec2;
21
- /** 单位向量 Y */
22
- static unitY(): Vec2;
23
- /** 克隆当前向量 */
24
- clone(): Vec2;
25
- /** 返回替换 X 分量的新向量 */
26
- withX(x: number): Vec2;
27
- /** 返回替换 Y 分量的新向量 */
28
- withY(y: number): Vec2;
29
- /** 设置 X 分量(就地修改) */
30
- setX(x: number): this;
31
- /** 设置 Y 分量(就地修改) */
32
- setY(y: number): this;
33
- /** 向量相加(就地修改) */
34
- add(v: Vec2): this;
35
- /** 向量相加(返回新对象) */
36
- added(v: Vec2): Vec2;
37
- /** 向量相减(就地修改) */
38
- subtract(v: Vec2): this;
39
- /** 向量相减(返回新对象) */
40
- subtracted(v: Vec2): Vec2;
41
- /**
42
- * 向量线性叠加:this + v * s
43
- * - 常用于积分、插值、偏移等计算
44
- */
45
- addScaled(v: Vec2, s: number): this;
46
- /** 向量线性叠加(返回新对象) */
47
- addScaleded(v: Vec2, s: number): Vec2;
48
- /** 反向量(取相反方向) */
49
- negate(): this;
50
- /** 反向量(返回新对象) */
51
- negated(): Vec2;
52
- /**
53
- * 绕原点旋转(弧度)
54
- * - 逆时针为正方向
55
- */
56
- rotate(rad: number): this;
57
- /** 绕原点旋转(返回新对象) */
58
- rotated(rad: number): Vec2;
59
- /**
60
- * 绕指定点旋转(弧度)
61
- * - 先平移到原点旋转,再平移回去
62
- */
63
- rotateAround(center: Vec2, rad: number): this;
64
- /**
65
- * 垂直向量(默认逆时针 90°)
66
- * - (x, y) -> (-y, x)
67
- * - 若需顺时针方向,可对结果取反
68
- */
69
- perp(): this;
70
- /** 垂直向量(返回新对象) */
71
- perped(): Vec2;
72
- /** 标量缩放 */
73
- scale(s: number): this;
74
- /** 标量缩放(返回新对象) */
75
- scaled(s: number): Vec2;
76
- /** 点积 */
77
- dot(v: Vec2): number;
78
- /** 叉积(返回标量) */
79
- cross(v: Vec2): number;
80
- /** 长度平方 */
81
- lenSq(): number;
82
- /** 向量长度 */
83
- len(): number;
84
- /**
85
- * 设置向量长度(保持方向)
86
- * - 零向量返回零向量
87
- */
88
- setLength(len: number, eps?: number): this;
89
- /** 设置向量长度(返回新对象) */
90
- setLengthed(len: number, eps?: number): Vec2;
91
- /** 归一化,极短向量返回零向量 */
92
- normalize(eps?: number): this;
93
- /** 归一化(返回新对象) */
94
- normalized(eps?: number): Vec2;
95
- /**
96
- * 应用 Mat3 变换(就地修改)
97
- */
98
- applyMat3(m: Mat3): Vec2;
99
- /** 应用 Mat3 变换(返回新对象) */
100
- appliedMat3(m: Mat3): Vec2;
101
- /** 到目标向量的距离 */
102
- distanceTo(v: Vec2): number;
103
- /** 到目标向量的距离平方(避免开方,更高效) */
104
- distanceToSq(v: Vec2): number;
105
- /**
106
- * 向量投影(投影到目标向量上)
107
- * - 若目标向量为零向量,则返回零向量
108
- * - 结果与目标向量共线
109
- */
110
- project(on: Vec2, eps?: number): this;
111
- /** 向量投影(返回新对象) */
112
- projected(on: Vec2, eps?: number): Vec2;
113
- /**
114
- * 返回向量的方向角(弧度)
115
- * - 相对于 +X 轴的角度
116
- * - 结果范围为 [-PI, PI]
117
- */
118
- angle(): number;
119
- /** 线性插值 */
120
- lerp(v: Vec2, t: number): Vec2;
121
- /**
122
- * 计算当前向量到目标向量的夹角(弧度)
123
- * - 结果范围为 [-PI, PI]
124
- * - 使用 atan2(cross, dot),保留方向(顺时针/逆时针)
125
- */
126
- angleTo(v: Vec2): number;
127
- /** 判断分量是否为有限数 */
128
- isFinite(): boolean;
129
- /** 判断是否近似相等 */
130
- equals(v: Vec2, eps?: number): boolean;
131
- /** 转为元组 */
132
- toArray(): readonly [number, number];
133
- /** 序列化为结构对象 */
134
- dump(): IDBVec2;
135
- /** 从结构对象反序列化 */
136
- static load(data: IDBVec2): Vec2;
137
- }
138
- //# sourceMappingURL=vec2.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"vec2.d.ts","sourceRoot":"","sources":["../../src/core/vec2.ts"],"names":[],"mappings":"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"}