@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
@@ -0,0 +1,85 @@
1
+ import { Curve3 } from './curve3d';
2
+ import { types } from '../type_define/i_types';
3
+ import { Vec3 } from '../base/vec3';
4
+ import { EN_GEO_TYPE } from '../type_define/i_element_type';
5
+ import { Box3 } from '../base/box3';
6
+ import { Ln3 } from './ln3';
7
+ import { Interval } from '../base/interval';
8
+ import { DiscreteParam } from '../base/discrete_param';
9
+ import { geom } from '../verb/verb';
10
+ /**
11
+ * 三维多段直线
12
+ * 主要用在拉伸,扫掠算法中,形成光滑的面
13
+ */
14
+ export declare class SmoothPoly3 extends Curve3 {
15
+ private _pts;
16
+ private _ts;
17
+ private _curve?;
18
+ constructor();
19
+ constructor(pts: types.IXYZ[], refCurve?: Curve3);
20
+ /**
21
+ * 获取连续点的数组
22
+ */
23
+ getPoints(): ReadonlyArray<Vec3>;
24
+ toVerbNurbs(range?: Interval | undefined): geom.NurbsCurve;
25
+ /**
26
+ * 获取连续点对应参数的数组
27
+ */
28
+ getTs(): ReadonlyArray<number>;
29
+ /**
30
+ * 获取背后的光滑曲线
31
+ */
32
+ getCurve(): Curve3 | undefined;
33
+ /**
34
+ * 获取所有的直线段
35
+ */
36
+ getSegments(): Ln3[];
37
+ /**
38
+ * 获取某参数对应的点
39
+ */
40
+ getPtAt(t: number): Vec3;
41
+ /**
42
+ * 获取某参数对应的点
43
+ */
44
+ getParamAt(point: types.IXYZ): number;
45
+ /**
46
+ * 获取某参数处的切线
47
+ */
48
+ getTangentAt(t: number): Vec3;
49
+ /**
50
+ * 获取某参数t处的几阶导数
51
+ * t : 参数t
52
+ * n : 导数的阶数 // 譬如n = 2,会计算曲线在参数t处的0阶导(即曲线点)、1阶导、2阶导
53
+ */
54
+ getDerivatives(t: number, n: number): Vec3[];
55
+ /**
56
+ * 获取曲线(给定参数域区间段的)长度
57
+ */
58
+ getLength(range?: Interval): number;
59
+ /**
60
+ * 反向
61
+ */
62
+ reverse(): this;
63
+ offset(dDist: number): boolean;
64
+ /**
65
+ * 分割SmoothPoly为两段,如果分割点不在直线上,则返回空数组
66
+ * @param param
67
+ * @param tolerance
68
+ */
69
+ split(params: number[], tolerance?: number): Curve3[];
70
+ transform(m: types.IMatrix4 | types.numberArrs4X4): this;
71
+ /**
72
+ * 计算曲线在给定参数区间的包围盒,如果没有传入参数域则计算曲线默认参数域的包围盒
73
+ */
74
+ getBBox(range?: Interval): Box3;
75
+ discrete(params?: DiscreteParam): Vec3[];
76
+ getType(): EN_GEO_TYPE.SMOOTHPOLY_3D;
77
+ clone(): SmoothPoly3;
78
+ /**
79
+ * 抽取元数据,用于序列化
80
+ */
81
+ dump(): types.IDBSmoothPoly3d;
82
+ load(json: types.IDBSmoothPoly3d): this;
83
+ private _getSegment;
84
+ private _calParams;
85
+ }
@@ -0,0 +1,173 @@
1
+ import { Curve2 } from './curve2';
2
+ import { Curve3 } from './curve3d';
3
+ import { types } from '../type_define/i_types';
4
+ import { Vec3 } from '../base/vec3';
5
+ import { Vec2 } from '../base/vec2';
6
+ import { Box3 } from '../base/box3';
7
+ import { Tol } from '../base/tol';
8
+ import { DiscreteParam } from '../base/discrete_param';
9
+ import { Geometry3d } from '../geometry/geometry3d';
10
+ import { Interval } from '../base/interval';
11
+ import { ISurfaceTransformExtra } from '../type_define/i_geometry';
12
+ /**
13
+ * 曲面基类
14
+ */
15
+ declare abstract class Surface extends Geometry3d {
16
+ constructor();
17
+ /**
18
+ * 获取uv处的三维点
19
+ * @param uv
20
+ */
21
+ abstract getPtAt(uv: types.IXY): Vec3;
22
+ /**
23
+ * 获取三维点处的uv值,(反求参数)
24
+ * @param pt
25
+ */
26
+ abstract getUVAt(pt: types.IXYZ): Vec2;
27
+ /**
28
+ * 获取uv处的法矢
29
+ * @param uv
30
+ */
31
+ abstract getNormAt(uv: types.IXY): Vec3;
32
+ /**
33
+ * 获取某参数t处的n阶偏导数
34
+ * t : 参数t
35
+ * n : 导数的阶数 // 譬如n = 2,会计算曲线在参数t处的0阶导(即曲线点),1阶偏导(包含偏u、偏v),2阶偏导(包含偏uu、偏uv、偏vv)
36
+ */
37
+ abstract getDerivatives(uv: types.IXY, n: number): Vec3[];
38
+ /**
39
+ * 几何变换,改变自己
40
+ * @param m
41
+ */
42
+ abstract transform(m: types.IMatrix4 | types.numberArrs4X4, extra?: ISurfaceTransformExtra): this;
43
+ /**
44
+ * 是否和另一个曲面面完全重叠
45
+ * @param other
46
+ * @param tol
47
+ */
48
+ abstract isCoplanar(other: Surface, tol: Tol): boolean;
49
+ /**
50
+ * 曲线是否在曲面上
51
+ * @param curve
52
+ * @param tolerance
53
+ */
54
+ abstract containsCurve(curve: Curve3, tolerance: number): boolean;
55
+ /**
56
+ * 获取等参曲线
57
+ * @param param 等参曲线处的参数
58
+ * @param useV true 时返回等 v 参数曲线,false 时返回等 u 参数曲线
59
+ */
60
+ abstract getIsoCurve(param: number, useV: boolean): Curve3;
61
+ /**
62
+ * U向是周期性的
63
+ */
64
+ isUPeriodic(): boolean;
65
+ /**
66
+ * V向是周期性的
67
+ */
68
+ isVPeriodic(): boolean;
69
+ /**
70
+ * 是否是直纹面
71
+ */
72
+ isRuled(): boolean;
73
+ /**
74
+ * 获取曲面的domainU
75
+ */
76
+ getDomainU(): Interval;
77
+ /**
78
+ * 获取曲面的domainV
79
+ */
80
+ getDomainV(): Interval;
81
+ clampInDomain(paraXY: types.IXY): void;
82
+ getBBox(): Box3;
83
+ getBox(theRangeU?: Interval, theRangeV?: Interval): Box3;
84
+ /**
85
+ * 获取三维点p处的法矢
86
+ * @param p
87
+ */
88
+ getNormAtPoint(p: types.IXYZ): Vec3;
89
+ /**
90
+ * 获取曲面的奇异点
91
+ */
92
+ getSingularPoints(): Vec3[];
93
+ /**
94
+ * 平移,改变自己
95
+ * @param offset 平移量
96
+ */
97
+ translate(offset: types.IXYZ): this;
98
+ /**
99
+ * 旋转,改变自己
100
+ * @param angle 旋转角度
101
+ * @param pivot 旋转轴上的一个点
102
+ * @param axis 旋转轴方向
103
+ */
104
+ rotate(angle: number, pivot: Vec3, axis: Vec3): this;
105
+ /**
106
+ * 克隆
107
+ */
108
+ clone(): any;
109
+ /**
110
+ * 几何变换,得到新的几何对象 // 处理镜像变换时,保留V向和法向
111
+ * @param m
112
+ */
113
+ transformed(m: types.IMatrix4 | types.numberArrs4X4, extra?: ISurfaceTransformExtra): Surface;
114
+ /**
115
+ * 点到曲面的垂足
116
+ */
117
+ getProjectedPtBy(point: types.IXYZ): Vec3;
118
+ /**
119
+ * 点是否在曲面上
120
+ * @param point
121
+ * @param tolerance
122
+ */
123
+ containsPt(point: types.IXYZ, tolerance?: number): boolean;
124
+ /**
125
+ * 点到曲面的距离
126
+ * @deprecated 请使用CalculateDistance.ptToSurf()接口
127
+ * @param point
128
+ */
129
+ distanceToPoint(point: types.IXYZ): number;
130
+ /**
131
+ * 点到曲面的有向距离, 点在正向,距离为正,否则为负
132
+ * @deprecated 请使用CalculateDistance.ptToSurfSigned()接口
133
+ * @param point
134
+ */
135
+ signDistanceToPoint(point: types.IXYZ): number;
136
+ /**
137
+ * 计算给定点的参数, 牛顿迭代法对曲面的投影点逐步求精
138
+ * @param pt3d 要反求参数的point
139
+ * @param refUV 参考参数UV
140
+ * @param lengthEps 距离误差
141
+ * @param angleEps 角度误差
142
+ * @param validLengthU 如果需要验证求到的参数是否距离给定参考的参数refUV.x太远,如果距离太远可能是计算的参数不准,用其他方法计算所有的参数,选一个最近的参数
143
+ * @param validLengthV 如果需要验证求到的参数是否距离给定参考的参数refUV.y太远,如果距离太远可能是计算的参数不准,用其他方法计算所有的参数,选一个最近的参数
144
+ */
145
+ getUVNearParam(pt3d: Vec3, refUV: types.IXY, lengthEps?: number, angleEps?: number, validLengthU?: number, validLengthV?: number): Vec2;
146
+ getCurve2dForIsoCurve(pt3ds: Vec3[]): Curve2 | undefined;
147
+ /**
148
+ * 将三维曲线,转成参数域的二维曲线:对于平面,得到的是精确的参数域曲线;对于其他曲面,得到的是精确表达的直线,或者是nurbs2d曲线
149
+ * 注:传入参数时,请保证曲线必须在曲面surface上。如果曲线不在曲面上,请调用投影接口。平面投影接口:Curve3ProjectToPlane
150
+ * @param curve 在曲面上的曲线
151
+ */
152
+ getCurve2d(curveOnSurface: Curve3): Curve2;
153
+ /**
154
+ * 将参数域中的二维曲线映射到曲面上的三维曲线
155
+ * @param curve 二维参数域曲线 // 对于NurbsSurface,请保证二维曲线在surface的domain内
156
+ */
157
+ getCurve3d(curve: Curve2): Curve3;
158
+ wireToUV(loop3d: Curve3[], tol?: Tol): {
159
+ loop: Curve2[];
160
+ mapping: Map<Curve3, Curve2>;
161
+ };
162
+ /**
163
+ * the firs fundamental form: E, F, G
164
+ * @param u
165
+ * @param v
166
+ * @return [E, F, G]
167
+ */
168
+ firstFundamentalForm(uv: types.IXY): number[];
169
+ tessellate(params?: DiscreteParam, tol?: Tol): types.IRenderNode;
170
+ discrete(params?: DiscreteParam, tol?: Tol): types.IMesh;
171
+ protected _containsBaseCurve(curve: Curve3, tol?: number): boolean;
172
+ }
173
+ export { Surface };
@@ -0,0 +1,78 @@
1
+ import * as alg from './algorithm';
2
+ import * as MatrixUtil from './base/matrix_util';
3
+ import * as ClipperLib from './clipperlib/clipperlib';
4
+ import * as brep from './brep-src';
5
+ export { brep };
6
+ export declare const VERSION = "\"@sk-3d/math\":\"0.1.1\"";
7
+ export type { types } from './type_define/i_types';
8
+ export { EN_GEO_TYPE } from './type_define/i_element_type';
9
+ export type { IGeo } from './type_define/i_element';
10
+ export { GeoElement } from './base/geo_element';
11
+ export type { IGeometry, IGeometry2d, IGeometry3d } from './type_define/i_geometry';
12
+ export { Interval } from './base/interval';
13
+ export { PeriodInterval } from './base/period_inverval';
14
+ export { Box } from './base/box';
15
+ export { Box2 } from './base/box2';
16
+ export { Box3 } from './base/box3';
17
+ export { Vec } from './base/vec';
18
+ export { Vec2 } from './base/vec2';
19
+ export { Vec3 } from './base/vec3';
20
+ export { Matrix } from './base/matrix';
21
+ export { Matrix3 } from './base/matrix3';
22
+ export { Matrix4 } from './base/matrix4';
23
+ export { Quaternion } from './base/quaternion';
24
+ export { Coord } from './base/coord';
25
+ export { Coord2 } from './base/coord2';
26
+ export { Coord3 } from './base/coord3';
27
+ export { Euler } from './base/euler';
28
+ export { Tol } from './base/tol';
29
+ export { DiscreteParam } from './base/discrete_param';
30
+ export { Curve } from './geometry/curve';
31
+ export { Curve2 } from './geometry/curve2';
32
+ export { Curve3 } from './geometry/curve3d';
33
+ export { Ln2 } from './geometry/ln2';
34
+ export { Ln3 } from './geometry/ln3';
35
+ export { Arc2, ArcType } from './geometry/arc2d';
36
+ export { Arc3 } from './geometry/arc3d';
37
+ export { Circle3d } from './geometry/circle3d';
38
+ export { Surface } from './geometry/surface';
39
+ export { Plane } from './geometry/plane';
40
+ export { Cylinder } from './geometry/cylinder';
41
+ export { NurbsCurve2 } from './geometry/nurbs_curve2';
42
+ export { NurbsCurve3 } from './geometry/nurbs_curve3';
43
+ export { SmoothPoly2 } from './geometry/smooth_poly2';
44
+ export { SmoothPoly3 } from './geometry/smooth_poly3';
45
+ export { OffsetCurve2 } from './geometry/offset_curve2';
46
+ export { OffsetCurve3 } from './geometry/offset_curve3';
47
+ export { IntersectCurve3 } from './geometry/intersect_curve3';
48
+ export { PolyCurve } from './topology/polycurve';
49
+ export { Loop } from './topology/loop';
50
+ export { Polygon } from './topology/polygon';
51
+ export { TrimmedSurface } from './topology/trimmed_surface';
52
+ export { EvolutionMap } from './topology/evolution_map';
53
+ export { InvBilinear } from './math/inv_bilinear';
54
+ export { gaussIntegration } from './math/gauss_integration';
55
+ export { SolveEquationUtil } from './solve_equations/solve_equation_util';
56
+ export { type ISVGData, SVGParser } from './io/svgparser';
57
+ export { ObjParser } from './io/obj_parser';
58
+ export { CONST } from './type_define/const';
59
+ export { Loader } from './loader/loader';
60
+ export { registerGeo } from './loader/register_geo';
61
+ export { Util as Util } from './util/util';
62
+ export { GeomUtil } from './util/geom_util';
63
+ export { CurveUtil } from './util/curve_util';
64
+ export { UvUtil } from './util/uv_util';
65
+ export { SurfaceUtil } from './util/surface_util';
66
+ export { ClipperUtil } from './util/clipper_util';
67
+ export { Clipper2Util } from './util/clipper2_util';
68
+ export { MathAssert } from './util/assert';
69
+ export { UnitType, UnitsConversion, NormalUnitsConversion } from './conversion/units_conversion';
70
+ export { Log } from './util/log';
71
+ export { MathError, MathErrorType, type MathErrorParamType } from './util/math_error';
72
+ export { alg };
73
+ export { MatrixUtil };
74
+ export { ClipperLib };
75
+ export * from './wasm/grapher2d';
76
+ export * from './wasm/grapherutil';
77
+ export { loadWasmInstanceAsync, getGeomInstance } from './wasm/loader';
78
+ export { GeomLibWrapper, Geom } from './wasm/wrapper';
@@ -0,0 +1,4 @@
1
+ import { types } from '../type_define/i_types';
2
+ export declare class ObjParser {
3
+ static exportMeshes(meshes: types.IFlatMesh[]): string;
4
+ }
@@ -0,0 +1,22 @@
1
+ import { PolyCurve } from '../topology/polycurve';
2
+ interface IIDPath {
3
+ id: string;
4
+ path: string;
5
+ }
6
+ export interface ISVGData {
7
+ innerFaces: IIDPath[];
8
+ outterFaces: IIDPath[];
9
+ }
10
+ export declare class SVGParser {
11
+ static stringToPolyCurves(svfPathString: string, _trimFloat?: boolean): PolyCurve[];
12
+ static svgDataToPolyCurves(svgData: ISVGData, trimFloat?: boolean): PolyCurve[];
13
+ private static _SVGStringToCommands;
14
+ private static _createBezierCurve;
15
+ /**
16
+ * https://www.w3.org/TR/SVG/implnote.html#ArcImplementationNotes
17
+ * https://mortoray.com/2017/02/16/rendering-an-svg-elliptical-arc-as-bezier-curves/ Appendix: Endpoint to center arc conversion
18
+ */
19
+ private static _computeEllipseInfo;
20
+ private static _computeArcInfo;
21
+ }
22
+ export {};
@@ -0,0 +1,23 @@
1
+ import { IGeo } from '../type_define/i_element';
2
+ import { types } from '../type_define/i_types';
3
+ /**
4
+ * 将字符串/Json反射为几何
5
+ */
6
+ export declare class Loader {
7
+ private static _ctors;
8
+ static registerGeo(...ctors: types.Class<IGeo>[]): void;
9
+ /**
10
+ * 将字符串反序列化为几何,调试用
11
+ * @returns 返回几何元素或点
12
+ */
13
+ static reflect(str: string): IGeo[];
14
+ /**
15
+ * 根据元数据对象构造几何对象
16
+ * @returns 返回几何元素
17
+ */
18
+ static load(json: types.IDBLibGeo): IGeo;
19
+ /**
20
+ * load外部的mesh数据
21
+ */
22
+ static reflectMesh(jsonString: string): IGeo[];
23
+ }
@@ -0,0 +1,7 @@
1
+ import { types } from '../type_define/i_types';
2
+ import { IGeo } from '../type_define/i_element';
3
+ /**
4
+ * 注册命令
5
+ * @param constructor
6
+ */
7
+ export declare function registerGeo(constructor: types.Class<IGeo> | any): void;
@@ -0,0 +1,13 @@
1
+ export interface IFunc {
2
+ (t: number): number;
3
+ }
4
+ /**
5
+ * preform intergration for f between xlow and xhigh
6
+ * @param f
7
+ * @param xlow
8
+ * @param xhigh
9
+ * @param err 绝对误差
10
+ * @param rel 相对误差
11
+ * @return
12
+ */
13
+ export declare function gaussIntegration(f: IFunc, xlow: number, xhigh: number, err: number, rel: number): number;
@@ -0,0 +1,33 @@
1
+ import { Vec2 } from '../base/vec2';
2
+ import { types } from '../type_define/i_types';
3
+ /**
4
+ * 逆双线性插值.
5
+ * 已知四个二维点和每个点处的uv值, 计算中间任意二维点处的uv值
6
+ * https://gameinstitute.qq.com/community/detail/121581
7
+ *
8
+ * / \
9
+ * D / \ C
10
+ * -------P2---------------------P3--------
11
+ * / \
12
+ * / \
13
+ * / \
14
+ * -------P0----------------------------P1--------
15
+ * A / \ B
16
+ * / \
17
+ * P0's uv is (u0, v0),
18
+ * p1's uv is (u1, v0),
19
+ * p2's uv is (u0, v1),
20
+ * p3's uv is (u1, v1)
21
+ */
22
+ export declare class InvBilinear {
23
+ private _u0;
24
+ private _u1;
25
+ private _v0;
26
+ private _v1;
27
+ private _p0;
28
+ private _p1;
29
+ private _p2;
30
+ private _p3;
31
+ constructor(u0: number, u1: number, v0: number, v1: number, p0: Vec2, p1: Vec2, p2: Vec2, p3: Vec2);
32
+ solve(p: Vec2): types.numberArr2 | undefined;
33
+ }
@@ -0,0 +1,7 @@
1
+ /**
2
+ * 三次方程求根(只求实数根): a * x^3 + b * x^2 + c * x + d = 0 (a != 0)
3
+ */
4
+ export declare class CubicEquation {
5
+ static solve(a: number, b: number, c: number, d: number): number[];
6
+ static solve2(a: number, b: number, c: number, d: number): number[] | undefined;
7
+ }
@@ -0,0 +1,6 @@
1
+ /**
2
+ * 求解线性方程组:包装了LU和SVD分解解方程,可求解非满秩方程组,但A必须是方阵。// 解不了矛盾方程组
3
+ */
4
+ export declare class LinearSystem {
5
+ static execute(A: number[][], b: number[]): number[] | undefined;
6
+ }
@@ -0,0 +1,11 @@
1
+ export declare class NonlinearSystem {
2
+ /**
3
+ * 两个非线性方程的求解
4
+ * @func 方程组函数
5
+ * @calcJacbiFunc 计算雅各比矩阵
6
+ * @initParams 初始化函数初值
7
+ * @paramEps 容差
8
+ * @validFunc 额外的验证是否结束的函数 // 这个主要是求交用于验证距离满不满足容差的,不是求交可不必传入此函数
9
+ */
10
+ static execute(func: (params: number[]) => number[], calcJacbiFunc: (params: number[]) => number[][], initParams: number[], lengthEps?: number, angleEps?: number, validFunc?: (params: number[], distEps: number) => boolean): number[];
11
+ }
@@ -0,0 +1,9 @@
1
+ export declare class Plurality {
2
+ a: number;
3
+ b: number;
4
+ constructor(a: number, b: number);
5
+ added(another: Plurality): Plurality;
6
+ subed(another: Plurality): Plurality;
7
+ scaled(s: number): Plurality;
8
+ multiplied(another: Plurality): Plurality;
9
+ }
@@ -0,0 +1,6 @@
1
+ /**
2
+ * 多项式求根: a0 + a1 * x + a2 * x^2 + ... + an * x^n = 0
3
+ */
4
+ export declare class PolynomialEquation {
5
+ static solve(a: number, b: number, c: number): number[];
6
+ }
@@ -0,0 +1,6 @@
1
+ /**
2
+ * 二次方程求根: a * x^2 + b * x + c = 0
3
+ */
4
+ export declare class QuadraticEquation {
5
+ static solve(a: number, b: number, c: number, eps?: number): number[];
6
+ }
@@ -0,0 +1,6 @@
1
+ /**
2
+ * 四次方程求根: a * x^4 + b * x^3 + c * x^2 + d * x + e = 0 (a != 0) // 求解存在问题,很多测试用例不通过
3
+ */
4
+ export declare class QuarticEquation {
5
+ static solve(a: number, b: number, c: number, d: number, e: number): number[] | undefined;
6
+ }
@@ -0,0 +1,50 @@
1
+ export declare class SolveEquationUtil {
2
+ /**
3
+ * 二次方程求根(只求实数根): a * x^2 + b * x + c = 0
4
+ */
5
+ static solveQuadraticEquation(a: number, b: number, c: number): number[];
6
+ /**
7
+ * 三次方程求根(只求实数根): a * x^3 + b * x^2 + c * x + d = 0
8
+ */
9
+ static solveCubicEquation(a: number, b: number, c: number, d: number): number[];
10
+ /**
11
+ * 方程求根
12
+ * @param func 方程函数
13
+ * @param xMin 所求参数区间的下限
14
+ * @param xMax 所求参数区间的上限
15
+ * @param paramEps 容差精度
16
+ */
17
+ static execute(func: (param: number) => number, xMin: number, xMax: number, paramEps?: number): number | undefined;
18
+ /**
19
+ * 牛顿迭代法,可能不收敛
20
+ * 备注:迭代收敛较快,但是对于多重根,迭代非常慢,需要改进;并且容易陷入局部极值点位置
21
+ * @param func 目标函数
22
+ * @param dvtFunc 计算目标函数一阶微分的函数
23
+ * @param x0 初值
24
+ * @param tol
25
+ */
26
+ static iterationNewton(func: (param: number) => number, dtFunc: (param: number) => number, x0: number, tol?: number, validEps?: number, maxIterNum?: number): number | undefined;
27
+ /**
28
+ * 改进的正割法(近似牛顿迭代法,可能不收敛)
29
+ * 备注:迭代收敛较快,但是对于多重根,迭代非常慢,需要改进;并且容易陷入局部极值点位置
30
+ * @param x0 初值
31
+ * @param tol
32
+ */
33
+ static linearInterpolation(func: (param: number) => number, x0: number, tol?: number): number | undefined;
34
+ /**
35
+ * 二次插值法(米勒法): 求方程的根
36
+ * 备注:稳定性不错,但是给的初值不好,容易陷入局部极值点附近无意义循环
37
+ * @param x0 初值
38
+ * @param h 初始步长
39
+ * @param tol
40
+ */
41
+ static quadraticInterpolation(func: (param: number) => number, xMin: number, xMax: number, tol?: number): number | undefined;
42
+ /**
43
+ * 逆二次插值法: 求方程的根
44
+ * 备注:能保证能计算一个根,即使初值在局部极值点附近也能迭代最后到一个根(如果存在根),但是对于多重根的情况,(y值相等)会使用割线法,计算效率较低,并且达到的精度不够
45
+ * @param x0 初值
46
+ * @param h 初始步长
47
+ * @param tol
48
+ */
49
+ static inverseQuadraticInterpolation(func: (param: number) => number, x0: number | undefined, h: number, tol?: number): number | undefined;
50
+ }
@@ -0,0 +1,21 @@
1
+ import { Curve2 } from '../geometry/curve2';
2
+ export type LoopGenerateFunction = (a?: number, b?: number) => Curve2[];
3
+ export declare class LoopGenerator {
4
+ /**
5
+ * 可以通过 AlgTestSweep.showLoops() 查看
6
+ */
7
+ static getLoopFuncs(): (typeof LoopGenerator.square)[];
8
+ static byPoints(points: number[][]): Curve2[];
9
+ static square(a?: number, b?: number): Curve2[];
10
+ static diamond(a?: number, b?: number): Curve2[];
11
+ static arcs(a?: number, b?: number): Curve2[];
12
+ static arcsRev(a?: number, b?: number): Curve2[];
13
+ static lineArc(a?: number, b?: number): Curve2[];
14
+ static lineArcTan(a?: number, b?: number): Curve2[];
15
+ static arcsTan(a?: number, b?: number): Curve2[];
16
+ static circle(a?: number, b?: number): Curve2[];
17
+ static offsetCurves(a?: number, b?: number): Curve2[];
18
+ static offsetCurvesTan(a?: number, b?: number): Curve2[];
19
+ static offsetCurveWithSingularity(a?: number, _b?: number): Curve2[];
20
+ static offsetCurveReverse(a?: number, _b?: number): Curve2[];
21
+ }