@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,191 @@
1
+ import type { types } from './i_types';
2
+ import type { Vec } from '../base/vec';
3
+ import type { Box } from '../base/box';
4
+ import type { Vec2 } from '../base/vec2';
5
+ import type { Vec3 } from '../base/vec3';
6
+ import type { Box2 } from '../base/box2';
7
+ import type { Curve } from '../geometry/curve';
8
+ import type { PeriodInterval } from '../base/period_inverval';
9
+ import type { Interval } from '../base/interval';
10
+ import type { Coord } from '../base/coord';
11
+ import type { OffsetParameterMapper } from '../geometry/offset_parameter_mapper';
12
+ export interface ITransformExtra {
13
+ svd?: types.IMatrix3Svd | types.IMatrix4Svd;
14
+ range?: Interval | Box2;
15
+ }
16
+ export interface ICurve2dTransformExtra extends ITransformExtra {
17
+ svd?: types.IMatrix3Svd;
18
+ range?: Interval;
19
+ }
20
+ export interface ICurve3dTransformExtra extends ITransformExtra {
21
+ svd?: types.IMatrix4Svd;
22
+ range?: Interval;
23
+ }
24
+ export interface ISurfaceTransformExtra extends ITransformExtra {
25
+ svd?: types.IMatrix4Svd;
26
+ range?: Box2;
27
+ }
28
+ /**
29
+ * @author tiansk
30
+ * 所有几何对象的基类
31
+ */
32
+ export interface IGeometry<IMatrixArray extends number[][], PointType extends Vec> {
33
+ /**
34
+ * 乘上一个变换矩阵,改变自己
35
+ */
36
+ transform(m: types.IMatrix<IMatrixArray> | IMatrixArray, extra?: ITransformExtra): this;
37
+ /**
38
+ * 计算包围盒
39
+ */
40
+ getBBox(): Box<PointType>;
41
+ /**
42
+ * 平移,改变自己
43
+ */
44
+ translate(offset: types.IXY | PointType): this;
45
+ /**
46
+ * 绕坐标轴/点的旋转,改变自己
47
+ * @param angle 旋转的角度
48
+ * @param pivot 旋转轴上一点
49
+ * @param axis 绕哪个轴旋转
50
+ */
51
+ rotate(angle: number, pivot: types.IXY, axis?: types.IXY): this;
52
+ /**
53
+ * 缩放,改变自己
54
+ * 直线支持非等比,其他情况都是等比例缩放
55
+ * @param factor 放大因子
56
+ * @param center 缩放中心
57
+ */
58
+ scale(factor: number, center: types.IXY): this;
59
+ }
60
+ export interface IGeometry2d extends IGeometry<types.numberArrs3X3, Vec2> {
61
+ /**
62
+ * 乘上一个变换矩阵,改变自己
63
+ */
64
+ transform(m: types.IMatrix3 | types.numberArrs3X3, extra?: ITransformExtra): this;
65
+ }
66
+ export interface IGeometry3d extends IGeometry<types.numberArrs4X4, Vec3> {
67
+ /**
68
+ * 乘上一个变换矩阵,改变自己
69
+ */
70
+ transform(m: types.IMatrix4 | types.numberArrs4X4, extra?: ITransformExtra): this;
71
+ }
72
+ export interface ILine<VectorType extends Vec> extends Curve<VectorType> {
73
+ reset(start: types.IXY, end: types.IXY): void;
74
+ /**
75
+ * 获取原点(参数为零的点)
76
+ */
77
+ getOrigin(): VectorType;
78
+ /**
79
+ * 设置原点(参数为零的点)
80
+ */
81
+ setOrigin(origin: types.IXY): void;
82
+ /**
83
+ * 获取方向向量
84
+ */
85
+ getDirection(): VectorType;
86
+ /**
87
+ * 获取方向向量
88
+ */
89
+ setDirection(dir: types.IXY): void;
90
+ /**
91
+ * 转换成无限长直线,返回新对象
92
+ */
93
+ toInfiniteLine(): ILine<VectorType>;
94
+ clone(): ILine<VectorType>;
95
+ }
96
+ export interface IArc<VectorType extends Vec> extends Curve<VectorType> {
97
+ /**
98
+ * 获取 a 轴长度
99
+ */
100
+ getA(): number;
101
+ /**
102
+ * 设置 a 轴长度
103
+ */
104
+ setA(v: number): void;
105
+ /**
106
+ * 获取 b 轴长度
107
+ */
108
+ getB(): number;
109
+ /**
110
+ * 设置 b 轴长度
111
+ */
112
+ setB(v: number): void;
113
+ /**
114
+ * 获取参数范围
115
+ */
116
+ getRange(): PeriodInterval;
117
+ /**
118
+ * 获取圆心
119
+ */
120
+ getCenter(): VectorType;
121
+ /**
122
+ * 获取半径长度
123
+ * @deprecated 目前已支持 ab 长短周,请以获取半轴长替代
124
+ */
125
+ getRadius(): number;
126
+ /**
127
+ * 获取当前坐标系
128
+ */
129
+ getCoord(): Coord<VectorType>;
130
+ /**
131
+ * 判断是否为封闭圆形
132
+ */
133
+ isClosed(): boolean;
134
+ /**
135
+ * 获取圆弧上,两点之间的参数域范围,沿着参数增加的方向
136
+ * @param startPt
137
+ * @param endPt
138
+ */
139
+ getParamRangeAt(startPt: types.IXY, endPt: types.IXY): PeriodInterval;
140
+ /**
141
+ * 椭圆长短轴是否相等
142
+ */
143
+ isEqualAB(): boolean;
144
+ clone(): IArc<VectorType>;
145
+ }
146
+ export interface IExtendCurve<VectorType extends Vec> extends Curve<VectorType> {
147
+ getBaseCurve(): Curve<VectorType>;
148
+ setBaseCurve(curve: Curve<VectorType>): void;
149
+ updateExtension(): void;
150
+ /**
151
+ * 根据参数域,将其分割为多条简单曲线
152
+ */
153
+ toSimpleCurves(): Curve<VectorType>[];
154
+ getHeadScale(): number;
155
+ getTailScale(): number;
156
+ clone(): IExtendCurve<VectorType>;
157
+ }
158
+ export interface INurbsCurve<VectorType extends Vec> extends Curve<VectorType> {
159
+ getDegree(): number;
160
+ getWeights(): number[];
161
+ getKnots(): number[];
162
+ getControlPoints(): VectorType[];
163
+ /**
164
+ * 获取定义域,参数 t 超过该范围无法求值
165
+ * range 为定义域上的一部分,用于裁切曲线
166
+ */
167
+ getDomain(): Interval;
168
+ /**
169
+ * 获取曲线上的弧长等分点,返回的第一个和最后一个分别为曲线的起点和终点
170
+ * @param count 等分点数量,数目限制最小为3
171
+ * @returns 单位切向量
172
+ */
173
+ getEqualDiversionPts(count: number): VectorType[];
174
+ /**
175
+ * 在参数 t 处将 Nurbs 曲线切分为两部分 // 分割成两条完全独立的nurbs,对控制顶点做了重新计算
176
+ * @param t 切分点处的参数
177
+ * @param useRange 若真,则根据原参数域进行同步切分;若假,则切分得到的曲线以定义域作为参数域
178
+ * @return 返回切分得到的参数曲线,并会根据原参数域设置新的参数域。若参数有误则返回空数组
179
+ */
180
+ splitCurve(t: number, useRange?: boolean): INurbsCurve<VectorType>[];
181
+ clone(): INurbsCurve<VectorType>;
182
+ }
183
+ export interface IOffsetCurve<VectorType extends Vec> extends Curve<VectorType> {
184
+ /**
185
+ * curve should be emutable!
186
+ */
187
+ getBaseCurve(): Curve<VectorType>;
188
+ getDomain(): Interval;
189
+ getParamMapper(): OffsetParameterMapper;
190
+ clone(): IOffsetCurve<VectorType>;
191
+ }
@@ -0,0 +1,280 @@
1
+ import { Matrix3 } from '../base/matrix3';
2
+ import { Matrix4 } from '../base/matrix4';
3
+ import { Vec2 } from '../base/vec2';
4
+ import { Vec3 } from '../base/vec3';
5
+ import { EN_GEO_TYPE } from './i_element_type';
6
+ declare namespace types {
7
+ interface Class<T> {
8
+ new (): T;
9
+ }
10
+ type numberArr2 = [number, number];
11
+ type numberArr3 = [number, number, number];
12
+ type numberArrs3X3 = [numberArr3, numberArr3, numberArr3];
13
+ type numberArr4 = [number, number, number, number];
14
+ type numberArrs4X4 = [numberArr4, numberArr4, numberArr4, numberArr4];
15
+ type IInterval = numberArr2;
16
+ type IPeriodInterval = numberArr3;
17
+ type IXYArr = numberArr2;
18
+ type IXYZArr = numberArr3;
19
+ type IXY = {
20
+ x: number;
21
+ y: number;
22
+ };
23
+ type IXYZ = {
24
+ x: number;
25
+ y: number;
26
+ z: number;
27
+ };
28
+ interface IMatrix<IMatrixArray extends number[][]> {
29
+ data: IMatrixArray;
30
+ }
31
+ interface IMatrix3 extends IMatrix<numberArrs3X3> {
32
+ }
33
+ interface IMatrix4 extends IMatrix<numberArrs4X4> {
34
+ }
35
+ interface IMatrix3Svd {
36
+ uTransform: Matrix3;
37
+ scale: Vec2;
38
+ vRotate: Matrix3;
39
+ }
40
+ interface IMatrix4Svd {
41
+ uTransform: Matrix4;
42
+ scale: Vec3;
43
+ vRotate: Matrix4;
44
+ }
45
+ interface IRenderDebug {
46
+ id?: number;
47
+ name: string;
48
+ visible: boolean;
49
+ selectedId?: number;
50
+ color?: string;
51
+ }
52
+ type IFlatMeshBase = {
53
+ [key: string]: number[];
54
+ };
55
+ /** 离散得到的三角面片,高效存储 */
56
+ interface IFlatMesh extends IFlatMeshBase {
57
+ /** 离散后的所有顶点, 每3个一组表示一个顶点 */
58
+ vertices: number[];
59
+ /** 三角片集,一个三角面片,每3个一组表示一个三角面片的三个顶点索引 */
60
+ faces: number[];
61
+ /** 顶点法矢,与vertices对应,每3个一组表示一个顶点的法向方向 */
62
+ normals: number[];
63
+ /** 顶点UV,与vertices对应,2个一组 */
64
+ uvs: number[];
65
+ }
66
+ type IFlatMeshPlus = IFlatMesh & {
67
+ uvs1?: number[];
68
+ };
69
+ /** 含有骨骼信息的网格 */
70
+ interface IBoneFlatMesh extends IFlatMesh {
71
+ /** 骨架索引,4个一组 */
72
+ boneIndices: number[];
73
+ /** 骨架权重,4个一组 */
74
+ boneWeights: number[];
75
+ }
76
+ interface IMesh {
77
+ vertices: numberArr3[];
78
+ faces: numberArr3[];
79
+ normals: numberArr3[];
80
+ uvs: numberArr2[];
81
+ }
82
+ interface IRenderNode {
83
+ points?: numberArr3[];
84
+ edges?: numberArr3[][];
85
+ mesh?: IMesh;
86
+ children?: IRenderNode[];
87
+ }
88
+ interface IRenderMesh {
89
+ mesh: IMesh;
90
+ }
91
+ interface IRenderEdge extends IRenderNode {
92
+ edges: numberArr3[][];
93
+ }
94
+ interface IRenderPoint extends IRenderNode {
95
+ points: numberArr3[];
96
+ }
97
+ interface IDBLibGeo {
98
+ type: EN_GEO_TYPE;
99
+ _d?: any;
100
+ }
101
+ interface IDBVector {
102
+ type: EN_GEO_TYPE;
103
+ data: number[];
104
+ }
105
+ interface IDBVector2 extends IDBVector {
106
+ type: EN_GEO_TYPE.VEC_2;
107
+ data: IXYArr;
108
+ }
109
+ interface IDBVector3 extends IDBVector {
110
+ type: EN_GEO_TYPE.VEC_3;
111
+ data: IXYZArr;
112
+ }
113
+ interface IDBMatrix {
114
+ type: EN_GEO_TYPE;
115
+ data: number[][];
116
+ }
117
+ interface IDBMatrix3 extends IDBMatrix {
118
+ type: EN_GEO_TYPE.MATRIX_3;
119
+ data: numberArrs3X3;
120
+ }
121
+ interface IDBMatrix4 extends IDBMatrix {
122
+ type: EN_GEO_TYPE.MATRIX_4;
123
+ data: numberArrs4X4;
124
+ }
125
+ interface IDBCoordinate2 extends IDBLibGeo {
126
+ type: EN_GEO_TYPE.COORD_2;
127
+ data: [
128
+ IXYArr,
129
+ IXYArr
130
+ ];
131
+ }
132
+ interface IDBCoordinate3 extends IDBLibGeo {
133
+ type: EN_GEO_TYPE.COORD_3;
134
+ data: [
135
+ IXYZArr,
136
+ IXYZArr,
137
+ IXYZArr
138
+ ];
139
+ }
140
+ interface IDBCurve2d extends IDBLibGeo {
141
+ type: EN_GEO_TYPE;
142
+ }
143
+ interface IDBLine2d extends IDBCurve2d {
144
+ type: EN_GEO_TYPE;
145
+ data: [
146
+ IXYArr,
147
+ IXYArr,
148
+ IInterval
149
+ ];
150
+ }
151
+ interface IDBArc2d extends IDBCurve2d {
152
+ type: EN_GEO_TYPE;
153
+ data: [
154
+ number,
155
+ number,
156
+ IDBCoordinate2,
157
+ 1 | -1,
158
+ IInterval
159
+ ];
160
+ }
161
+ interface IDBSmoothPoly2d extends IDBCurve2d {
162
+ type: EN_GEO_TYPE;
163
+ data: [
164
+ numberArr2[]
165
+ ];
166
+ }
167
+ interface IDBSmoothPoly3d extends IDBCurve3d {
168
+ type: EN_GEO_TYPE;
169
+ data: [
170
+ numberArr3[]
171
+ ];
172
+ }
173
+ interface IDBCircle3d extends IDBCurve3d {
174
+ type: EN_GEO_TYPE;
175
+ data: [
176
+ IDBCoordinate3,
177
+ number
178
+ ];
179
+ }
180
+ interface IDBArc3d extends IDBCurve3d {
181
+ type: EN_GEO_TYPE;
182
+ data: [
183
+ IDBCoordinate3,
184
+ number,
185
+ number,
186
+ IInterval
187
+ ];
188
+ }
189
+ interface IDBPolyCurve extends IDBLibGeo {
190
+ type: EN_GEO_TYPE;
191
+ data: IDBCurve2d[];
192
+ }
193
+ interface IDBLoop extends IDBPolyCurve {
194
+ type: EN_GEO_TYPE.POLY_CURVE;
195
+ }
196
+ interface IDBPolygon extends IDBLibGeo {
197
+ type: EN_GEO_TYPE.POLYGON;
198
+ data: IDBLoop[];
199
+ }
200
+ interface IDBCurve3d extends IDBLibGeo {
201
+ type: EN_GEO_TYPE;
202
+ }
203
+ interface IDBLine3d extends IDBCurve3d {
204
+ type: EN_GEO_TYPE;
205
+ data: [
206
+ IXYZArr,
207
+ IXYZArr,
208
+ IInterval
209
+ ];
210
+ }
211
+ interface IDBNurbsCurve2d extends IDBCurve2d {
212
+ type: EN_GEO_TYPE.NURBS_CURVE_2D;
213
+ data: [
214
+ number,
215
+ numberArr2[],
216
+ number[],
217
+ number[],
218
+ numberArr2
219
+ ];
220
+ }
221
+ interface IDBNurbsCurve3d extends IDBCurve3d {
222
+ type: EN_GEO_TYPE.NURBS_CURVE_3D;
223
+ data: [
224
+ number,
225
+ numberArr3[],
226
+ number[],
227
+ number[],
228
+ numberArr2
229
+ ];
230
+ }
231
+ interface IDBOffsetCurve2d extends IDBCurve2d {
232
+ type: EN_GEO_TYPE;
233
+ data: [
234
+ IDBLibGeo,
235
+ number,
236
+ IInterval
237
+ ];
238
+ }
239
+ interface IDBOffsetCurve3d extends IDBCurve3d {
240
+ type: EN_GEO_TYPE;
241
+ data: [
242
+ IDBLibGeo,
243
+ types.numberArr3,
244
+ number,
245
+ number,
246
+ IInterval
247
+ ];
248
+ }
249
+ interface IDBExtendCurve2d extends IDBCurve2d {
250
+ type: EN_GEO_TYPE;
251
+ data: [
252
+ IDBLibGeo,
253
+ types.numberArr2
254
+ ];
255
+ }
256
+ interface IDBSurface extends IDBLibGeo {
257
+ type: EN_GEO_TYPE;
258
+ }
259
+ interface IDBPlane extends IDBSurface {
260
+ type: EN_GEO_TYPE;
261
+ data: [IDBCoordinate3];
262
+ }
263
+ interface IDBCylinder extends IDBSurface {
264
+ type: EN_GEO_TYPE;
265
+ data: [
266
+ IDBCoordinate3,
267
+ number,
268
+ number
269
+ ];
270
+ }
271
+ interface IDBTrimmedSur extends IDBSurface {
272
+ type: EN_GEO_TYPE.TRIM;
273
+ data: [
274
+ IDBSurface,
275
+ boolean,
276
+ IDBPolygon
277
+ ];
278
+ }
279
+ }
280
+ export type { types };
@@ -0,0 +1,8 @@
1
+ export declare class ArrayUtil {
2
+ /**
3
+ * 给定增序数组,进行二分查找,找到最小包含 t 的区间,并返回区间的序号
4
+ * @param ts
5
+ * @param t
6
+ */
7
+ static binarySearch(ts: number[], t: number): number;
8
+ }
@@ -0,0 +1,21 @@
1
+ /**
2
+ * 调试警告
3
+ * @deprecated 使用 MathError 来替代
4
+ */
5
+ export declare class MathAssert {
6
+ /**
7
+ * 使用 MathError.assert() 来替代
8
+ * @param value
9
+ * @param message
10
+ * @param args
11
+ */
12
+ static assert(value: any, message?: string, ...args: any[]): void;
13
+ /**
14
+ * 使用 MathError.warn() 来替代
15
+ * @param value
16
+ * @param message
17
+ * @param args
18
+ */
19
+ static warn(value: any, message?: string, ...args: any[]): void;
20
+ static mutedWarn(value: any, message?: string, ...args: any[]): void;
21
+ }
@@ -0,0 +1,5 @@
1
+ import * as ClipperLib from 'clipper2-wasm/dist/clipper2z';
2
+ export declare class Clipper2Util {
3
+ static clipper2Z: ClipperLib.MainModule;
4
+ static initialize(Clipper2ZFactory: any): Promise<void>;
5
+ }
@@ -0,0 +1,21 @@
1
+ import * as ClipperLib from '../clipperlib/clipperlib';
2
+ import { Polygon } from '../topology/polygon';
3
+ import { Loop } from '../topology/loop';
4
+ import { PolyCurve } from '../topology/polycurve';
5
+ import { types } from '../type_define/i_types';
6
+ /**
7
+ * 格式转换类
8
+ */
9
+ declare class ClipperFormatConverter {
10
+ static vector2ToXY(vec: types.IXY): ClipperLib.IntPoint;
11
+ static vector2sToXY(vector2s: types.IXY[]): ClipperLib.IntPoint[];
12
+ static pathsToPolygon(solutionPolytree: ClipperLib.IntPoint[][]): Polygon;
13
+ static pathToLoop(path: ClipperLib.IntPoint[]): Loop;
14
+ static loopToPath(loop: Loop): ClipperLib.IntPoint[];
15
+ static pathToPolyline(path: ClipperLib.IntPoint[]): PolyCurve;
16
+ static polylineToPath(polyline: PolyCurve): ClipperLib.IntPoint[];
17
+ static polygonToPaths(polygon: Polygon): ClipperLib.IntPoint[][];
18
+ static clpExPolygonToPolygon(exPolygon: ClipperLib.ExPolygon): Polygon;
19
+ static clipperExPolygonsToPolygon(exPolygons: ClipperLib.ExPolygons): Polygon[];
20
+ }
21
+ export { ClipperFormatConverter };
@@ -0,0 +1,10 @@
1
+ import * as ClipperLib from '../clipperlib/clipperlib';
2
+ import { types } from '../type_define/i_types';
3
+ export declare class ClipperUtil {
4
+ static clipperTreeToPathLists(polyTree: ClipperLib.PolyTree): ClipperLib.Paths[];
5
+ static xyLoopsToClipper(loops: types.IXY[][], scale?: number): ClipperLib.IntPoint[][];
6
+ static clipperPathsToXys(clipPaths: ClipperLib.Paths, scale?: number): types.IXY[][];
7
+ static boolAsClipperPoint(polygons1: types.IXY[][][] | ClipperLib.IntPoint[][][], polygons2: types.IXY[][][] | ClipperLib.IntPoint[][][], operationType: ClipperLib.ClipType): ClipperLib.Paths[];
8
+ static boolAsXys(polygons1: types.IXY[][][] | ClipperLib.IntPoint[][][], polygons2: types.IXY[][][] | ClipperLib.IntPoint[][][], operationType: ClipperLib.ClipType): types.IXY[][][];
9
+ static removeGapByOffset(loops: types.IXY[][], gapWidth: number): types.IXY[][];
10
+ }
@@ -0,0 +1,72 @@
1
+ import { Vec3 } from '../base/vec3';
2
+ import { Arc3 } from '../geometry/arc3d';
3
+ import { Curve2 } from '../geometry/curve2';
4
+ import { Curve3 } from '../geometry/curve3d';
5
+ import { Ln2 } from '../geometry/ln2';
6
+ import { EvolutionMap } from '../topology/evolution_map';
7
+ import { types } from '../type_define/i_types';
8
+ export interface ICurveSimplifyOption {
9
+ clone?: boolean;
10
+ splitOffsetCurve?: boolean;
11
+ smoothPolyToNurbs?: boolean;
12
+ smoothPolyToLines?: boolean;
13
+ }
14
+ export declare class CurveUtil {
15
+ /**
16
+ * 获取平面曲线所在平面的法向。当曲线为直线时,若给定 hint 方向,则返回 hint;否则,将任意返回一垂直于直线的方向
17
+ * @param curve
18
+ * @param hint
19
+ */
20
+ static getDzByCurve(curve: Curve3, hint?: Vec3): Vec3;
21
+ /**
22
+ * 计算曲线所在平面的法向。当曲线为直线时,返回向量长度为 0;当曲线非平面曲线时,返回 undefined
23
+ * @param curve
24
+ * @param angleEps
25
+ */
26
+ static getDzByPlaneCurve(curve: Curve3, angleEps?: number): Vec3 | undefined;
27
+ /**
28
+ * 获取平面曲线所在平面的法向
29
+ * @param curve
30
+ * @param hint
31
+ */
32
+ static getDzByCurves(curves: Curve3[], hint?: Vec3): Vec3;
33
+ static getDzByPoints(pts: Vec3[]): Vec3 | undefined;
34
+ static makeRectangleByXY(x1: number, x2: number, y1: number, y2: number): Ln2[];
35
+ /**
36
+ * 根据曲线中的奇异点,将曲线进行分割
37
+ * @param curves
38
+ * @param options 简化选项,默认全为 true
39
+ * @returns splittedCurves: 分段结果;evolution:新曲线到旧曲线的映射关系
40
+ */
41
+ static simplifyCurves2d(curves: Curve2[], options?: ICurveSimplifyOption): {
42
+ curves: Curve2[];
43
+ evolution: EvolutionMap<Curve2>;
44
+ };
45
+ /**
46
+ * 根据曲线中的奇异点,将曲线进行分割;将 SmoothPolyline 转为 NurbsCurve
47
+ * @param curves
48
+ * @param options 简化选项,默认全为 true
49
+ * @returns splittedCurves: 分段结果;evolution:新曲线到旧曲线的映射关系
50
+ */
51
+ static simplifyCurves3d(curves: Curve3[], options?: ICurveSimplifyOption): {
52
+ curves: Curve3[];
53
+ evolution: EvolutionMap<Curve3>;
54
+ };
55
+ static filterParamsByDistance(params: number[], point: types.IXY, curve: Curve2, lengthEps?: number): number[];
56
+ static filterParamsByDistance(params: number[], point: types.IXYZ, curve: Curve3, lengthEps?: number): number[];
57
+ static getArc3dPoles(arc: Arc3): Vec3[];
58
+ /**
59
+ * 毛刺去除算法,扫掠的路径存在毛刺时会产生一些奇怪的结果
60
+ * 目前采用角度容差,距离容差的情况去除毛刺
61
+ */
62
+ static filterCurvesBurr(curves: Curve3[], angleEps: number, disEps: number): Curve3[];
63
+ /**
64
+ * 根据所给的两个点pt1和pt2设置曲线的参数域
65
+ * @param curve 曲线
66
+ * @param pt1 在曲线上的点
67
+ * @param pt2 在曲线上的点
68
+ * @param refPt 参考点,对于周期性曲线,会存在两段,refPt用于判断取哪一段。所以对于周期性曲线,要传入refPt
69
+ * @returns 返回是否交换起点和终点。譬如说直线,pt1的参数大于pt2的参数值,说明是从pt2到pt1方向的,就需要交换两个点的顺序
70
+ */
71
+ static setCurveRange(theCurve: Curve3, pt1: Vec3, pt2: Vec3, refPt?: Vec3): boolean;
72
+ }
@@ -0,0 +1,23 @@
1
+ import { Curve3 } from '../geometry/curve3d';
2
+ import { Curve2 } from '../geometry/curve2';
3
+ import { Vec3 } from '../base/vec3';
4
+ import { Vec2 } from '../base/vec2';
5
+ import { Curve } from '../geometry/curve';
6
+ import { Vec } from '../base/vec';
7
+ /**
8
+ * 和几何对象相关的一些公用方法,比较零散
9
+ */
10
+ export declare class GeomUtil {
11
+ /**
12
+ * 判断线条依次连接
13
+ * @param curves
14
+ * @param tol
15
+ */
16
+ static curvesConnected<VectorType extends Vec>(curves: Curve<VectorType>[], tol?: number): boolean;
17
+ /**
18
+ * 从一堆不重复的点集计算平面
19
+ * @param points
20
+ */
21
+ static createPlaneFromPts(points: Vec3[]): Vec3 | undefined;
22
+ static splitCurveByPoints(curve: Curve2 | Curve3, pts: (Vec2 | Vec3)[], tol?: number): (Curve2 | Curve3)[];
23
+ }
@@ -0,0 +1,19 @@
1
+ import { IGeo } from '../type_define/i_element';
2
+ /**
3
+ * 调试信息工具类
4
+ */
5
+ export declare class Log {
6
+ static showError: boolean;
7
+ private static _instance;
8
+ static instance(): Log;
9
+ /**
10
+ * 传入几何对象或者几何对象的数组,打印出几何的字符串
11
+ * @param geos
12
+ * @param prefix
13
+ * @param postfix
14
+ */
15
+ static d(geos: IGeo[] | IGeo, prefix?: string, postfix?: string): void;
16
+ static e(geos: IGeo[] | IGeo, prefix?: string, postfix?: string): void;
17
+ static w(geos: IGeo[] | IGeo, prefix?: string, postfix?: string): void;
18
+ static toString(geos: IGeo[] | IGeo): string;
19
+ }
@@ -0,0 +1,37 @@
1
+ import { IGeo } from '../type_define/i_element';
2
+ export type MathErrorParamType = IGeo | IGeo[] | number | Object;
3
+ export declare enum MathErrorType {
4
+ /** 输入错误 */
5
+ Input = "input",
6
+ /** 运算中发生异常 */
7
+ Algorithm = "algorithm",
8
+ /** 运算结果有误 */
9
+ Geometry = "geometry",
10
+ /** 未实现功能 */
11
+ Unimplemented = "unimplemented",
12
+ /** 未知 */
13
+ Unknown = "unknown",
14
+ /** 默认 */
15
+ Default = "default",
16
+ /** 成功,无报错 */
17
+ None = "none"
18
+ }
19
+ export declare class MathError extends Error {
20
+ private _algorithm;
21
+ private _type;
22
+ private _params;
23
+ static showMutedWarn: boolean;
24
+ static assert(value: (() => boolean) | any, message?: string, type?: MathErrorType, ...params: MathErrorParamType[]): void;
25
+ static warn(value: (() => boolean) | any, message?: string, type?: MathErrorType, ...params: MathErrorParamType[]): void;
26
+ static mutedWarn(value: (() => boolean) | any, message?: string, type?: MathErrorType, ...params: MathErrorParamType[]): void;
27
+ constructor(message?: string, _algorithm?: string, _type?: MathErrorType, _params?: MathErrorParamType[]);
28
+ get algorithm(): string;
29
+ set algorithm(value: string);
30
+ get type(): MathErrorType;
31
+ set type(type: MathErrorType);
32
+ get name(): string;
33
+ get params(): MathErrorParamType[];
34
+ set params(params: MathErrorParamType[]);
35
+ get fullMessage(): string;
36
+ toString(): string;
37
+ }