@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,115 @@
1
+ import { Box2 } from '../../base/box2';
2
+ import { Box3 } from '../../base/box3';
3
+ import { Coord3 } from '../../base/coord3';
4
+ import { Ln3 } from '../../geometry/ln3';
5
+ import { Surface } from '../../geometry/surface';
6
+ import { types } from '../../type_define/i_types';
7
+ import { IMesh2d } from '../discrete/discrete_refiner';
8
+ import { BrepBody, Shell } from '../../brep-src';
9
+ import { DiscreteParam } from '../..';
10
+ import { Curve3, Polygon } from '../..';
11
+ export declare class MeshUtil {
12
+ /**
13
+ *
14
+ * @param box
15
+ * @param mesh 被切割mesh
16
+ * @param fillClip 是否对切割mesh补面
17
+ */
18
+ static boxClip(box: types.IFlatMesh, mesh: types.IFlatMesh, fillClip?: boolean): types.IFlatMesh;
19
+ static createFlatMeshByMesh2d(mesh2d: IMesh2d, surface?: Surface): types.IFlatMesh;
20
+ static createFlatMesh(): types.IFlatMesh;
21
+ static createFlatMeshByBox2(box: Box2, z?: number): types.IFlatMesh;
22
+ static createFlatMeshByBox3(box: Box3): types.IFlatMesh;
23
+ static toFlatMesh(mesh: types.IMesh): types.IFlatMesh;
24
+ static toMesh(mesh: types.IFlatMesh): types.IMesh;
25
+ static clone<MeshType extends types.IFlatMesh>(mesh: MeshType): MeshType;
26
+ static merge(...meshes: types.IFlatMesh[]): types.IFlatMesh;
27
+ /**
28
+ * 将 mesh 投影到 xy 平面,并返回其轮廓线
29
+ * @param mesh
30
+ * @returns 返回的轮廓线按含内环多边形列表进行组织
31
+ */
32
+ static getContour(mesh: types.IFlatMesh): types.IXY[][][];
33
+ /**
34
+ * 计算 mesh 与 line 的交点
35
+ * @param mesh
36
+ * @param line
37
+ * @returns 返回交点在 line 上的参数,并按从小到大排序
38
+ */
39
+ static intersectLine(mesh: types.IFlatMesh, line: Ln3): number[];
40
+ /**
41
+ * 裁切 mesh,仅保留 plane 上方的三角面片。方法支持多组 uv,支持多组mesh,输出为裁切后的mesh以及对应的之前的mesh,补面生成的mesh对应为undefined
42
+ * @example 若有 a、b 两组 uv,则 uv 的表达为: [a0.x, a0.y, a1.x, a1.y ... aN.x, aN.y, b0.x, b0.y, b1.x, b1.y ... bN.x, bN.y]
43
+ * @param mesh 待裁切网格,支持多组 uv 数据
44
+ * @param coord 切平面所在坐标系
45
+ * @param fillClip 是否要对裁切面进行补面
46
+ * @param xRange 当指定 xRange 参数时,仅对 xRange 范围内部分进行裁切
47
+ * @param interpolateFunction 额外插值函数。clip 函数会默认对顶点坐标、法向、uv进行插值,可通过该插值函数进行额外插值。例如,对于含有骨骼的模型,可传入 MeshUtil.clipBoneInterpolation
48
+ */
49
+ static clipSeperate<MeshType extends types.IFlatMesh>(meshes: MeshType[], coord: Coord3, fillClip?: boolean, xRange?: types.IInterval[], interpolateFunction?: (oldMesh: MeshType, newMesh: MeshType, vertexIndex1: number, vertexIndex2: number, weight1: number) => void): Map<MeshType, MeshType | undefined>;
50
+ /**
51
+ * 裁切 mesh,仅保留 plane 上方的三角面片。方法支持多组 uv。
52
+ * @example 若有 a、b 两组 uv,则 uv 的表达为: [a0.x, a0.y, a1.x, a1.y ... aN.x, aN.y, b0.x, b0.y, b1.x, b1.y ... bN.x, bN.y]
53
+ * @param mesh 待裁切网格,支持多组 uv 数据
54
+ * @param coord 切平面所在坐标系
55
+ * @param fillClip 是否要对裁切面进行补面
56
+ * @param xRange 当指定 xRange 参数时,仅对 xRange 范围内部分进行裁切
57
+ * @param interpolateFunction 额外插值函数。clip 函数会默认对顶点坐标、法向、uv进行插值,可通过该插值函数进行额外插值。例如,对于含有骨骼的模型,可传入 MeshUtil.clipBoneInterpolation
58
+ */
59
+ static clip<MeshType extends types.IFlatMeshPlus>(mesh: MeshType, coord: Coord3, fillClip?: boolean, xRange?: types.IInterval, interpolateFunction?: (oldMesh: MeshType, newMesh: MeshType, vertexIndex1: number, vertexIndex2: number, weight1: number) => void): MeshType;
60
+ /**
61
+ * clip 函数可选用的插值函数
62
+ * @param oldMesh
63
+ * @param newMesh
64
+ * @param vertexIndex1
65
+ * @param vertexIndex2
66
+ * @param weight1
67
+ */
68
+ static clipBoneInterpolation(oldMesh: types.IBoneFlatMesh, newMesh: types.IBoneFlatMesh, vertexIndex1: number, vertexIndex2: number, weight1: number): void;
69
+ /**
70
+ * brep转mesh
71
+ * @param brep BrepBody
72
+ * @param discreteParams 离散参数
73
+ * @returns types.IFlatMesh
74
+ */
75
+ static brepToMesh(brep: BrepBody | Shell, discreteParams?: DiscreteParam): types.IFlatMesh;
76
+ /**
77
+ * 扫掠算法
78
+ * @param coordinate 扫描轮廓所在的局部坐标系
79
+ * @param polygon2d 扫描轮廓
80
+ * @param path3d 扫描路径
81
+ * @param discreteParams 离散参数
82
+ * @param adjustProfile 自动调整扫描轮廓,垂直于路径
83
+ * @param adjustPath 自动调整扫描路径,寻找起始路径(距离近,且角度大)
84
+ * @returns types.IFlatMesh
85
+ */
86
+ static sweep(coordinate: Coord3, polygon2d: Polygon, path3d: Curve3[], discreteParams?: DiscreteParam, adjustProfile?: boolean, adjustPath?: boolean): types.IFlatMesh;
87
+ /**
88
+ * 拉伸算法
89
+ * @param loop2ds 二维点集合
90
+ * @param coord 二维平面在三维空间中的坐标系
91
+ * @param offset 世界坐标系下的挤出方向
92
+ * @param isSmooth 法向量是否为均匀过渡,默认法向为非光滑,若指定该参数,需与loop2ds维度一致
93
+ */
94
+ static extrude(loop2ds: types.IXY[][], coord: Coord3, offset: types.IXYZ, isSmooth?: boolean[][]): types.IFlatMesh;
95
+ /**
96
+ * 拉伸算法
97
+ * @param loop2ds 二维点集合
98
+ * @param coord 二维平面在三维空间中的坐标系
99
+ * @param offset 世界坐标系下的挤出方向
100
+ * @param isSmooth 法向量是否为均匀过渡,默认法向为非光滑,若指定该参数,需与loop2ds维度一致
101
+ */
102
+ static extrudeSeperateFaces(loop2ds: types.IXY[][], coord: Coord3, offset: types.IXYZ, isSmooth?: boolean[][]): {
103
+ top: types.IFlatMesh;
104
+ bottom: types.IFlatMesh;
105
+ sides: types.IFlatMesh[][];
106
+ };
107
+ /**
108
+ * 平面切割mesh,同时计算平面切割时部分,补面的uvTransform
109
+ */
110
+ private static _clip;
111
+ private static _fillClip;
112
+ private static _fillClipSeperate;
113
+ private static _distanceToPlane;
114
+ private static _isNext;
115
+ }
@@ -0,0 +1,22 @@
1
+ import { Tol } from '../../base/tol';
2
+ import { Curve2 } from '../../geometry/curve2';
3
+ import { EvolutionMap } from '../../topology/evolution_map';
4
+ export declare class Loop2dOffset {
5
+ static execute(curves: Curve2[], offsetDist: number, tol?: Tol, isMerge?: boolean, offsetIndexes?: number[]): {
6
+ loops: Curve2[][];
7
+ evolution: EvolutionMap<Curve2>;
8
+ };
9
+ /**
10
+ * 根据给定偏移量,偏置平面曲线,保证曲线首尾相接
11
+ * @param curves 待偏置的曲线组
12
+ * @param offsetDist 平面方向偏移量。关于偏移方向:以第一条curve为准,正值的offset就是第一条curve的右边;负值的offset就是第一条curve的左边
13
+ */
14
+ static offsetCurve2dList(curves: Curve2[], offsetDist: number): {
15
+ curveList: Curve2[];
16
+ evolution: EvolutionMap<Curve2>;
17
+ };
18
+ private static _isDegeneratedCurve2d;
19
+ private static _connectCurve2ds;
20
+ private static _makeJoints;
21
+ private static _findLoop2ds;
22
+ }
@@ -0,0 +1,27 @@
1
+ import { Polygon } from '../../topology/polygon';
2
+ import { Curve2 } from '../../geometry/curve2';
3
+ export interface IPolygonOffsetResult {
4
+ /**
5
+ * 偏移的结果
6
+ */
7
+ offsetPolygon: Polygon;
8
+ /**
9
+ * 结果和原始曲线之间的对应关系 new --> origin
10
+ */
11
+ evolution?: Map<Curve2, Curve2>;
12
+ }
13
+ /**
14
+ * polygon的offset
15
+ */
16
+ export declare class PolygonOffset {
17
+ static execute(loop: Polygon, _delta: number, withEvolution?: boolean): IPolygonOffsetResult;
18
+ /**
19
+ * 偏移polygon中部分曲线
20
+ * @param polygon 路径
21
+ * @param _delta 偏移距离
22
+ * @param offsetIndexes 偏移曲线角标 number[][], [[loop角标, curve角标]]
23
+ * @param isMerge 是否合并和简化线段,默认true,如果不简化,有部分polygon可能会有一定问题。
24
+ */
25
+ static offsetCurves(polygon: Polygon, _delta: number, offsetIndexes: number[][], isMerge?: boolean): Polygon;
26
+ private static _calEvolution;
27
+ }
@@ -0,0 +1,6 @@
1
+ import { Curve3 } from '../../geometry/curve3d';
2
+ import { Surface } from '../../geometry/surface';
3
+ import { Tol } from '../../base/tol';
4
+ export declare class CurveSurfaceCoincide {
5
+ static execute(curve: Curve3, surface: Surface, tol: Tol): boolean;
6
+ }
@@ -0,0 +1,38 @@
1
+ import { Tol } from '../../base/tol';
2
+ import { Vec } from '../../base/vec';
3
+ import { IArc, ILine, IOffsetCurve, INurbsCurve, IExtendCurve } from '../../type_define/i_geometry';
4
+ import { Arc2 } from '../../geometry/arc2d';
5
+ import { Arc3 } from '../../geometry/arc3d';
6
+ import { Ln2 } from '../../geometry/ln2';
7
+ import { Ln3 } from '../../geometry/ln3';
8
+ import { OffsetCurve3 } from '../../geometry/offset_curve3';
9
+ import { OffsetCurve2 } from '../../geometry/offset_curve2';
10
+ import { Curve3 } from '../../geometry/curve3d';
11
+ import { Curve2 } from '../../geometry/curve2';
12
+ import { Curve } from '../../geometry/curve';
13
+ export declare class CurvesColinear {
14
+ static curve3ds(curve1: Curve3, curve2: Curve3, tol?: Tol): boolean;
15
+ static curve2ds(curve1: Curve2, curve2: Curve2, tol?: Tol): boolean;
16
+ static lines(line1: Ln2, line2: Ln2, tol?: Tol): boolean;
17
+ static lines(line1: Ln3, line2: Ln3, tol?: Tol): boolean;
18
+ static lines<VectorType extends Vec>(line1: ILine<VectorType>, line2: ILine<VectorType>, tol?: Tol): boolean;
19
+ static arcs(arc1: Arc3, arc2: Arc3, tol?: Tol): boolean;
20
+ static arcs(arc1: Arc2, arc2: Arc2, tol?: Tol): boolean;
21
+ static arcs<VectorType extends Vec>(arc1: IArc<VectorType>, arc2: IArc<VectorType>, tol: Tol): boolean;
22
+ static areArcsSameDirection<VectorType extends Vec>(arc1: IArc<VectorType>, arc2: IArc<VectorType>): boolean;
23
+ static offsetCurves(offCurv1: OffsetCurve3, offCurv2: OffsetCurve3, tol?: Tol): boolean;
24
+ static offsetCurves(offCurv1: OffsetCurve2, offCurv2: OffsetCurve2, tol?: Tol): boolean;
25
+ static offsetCurves<VectorType extends Vec>(offCurv1: IOffsetCurve<VectorType>, offCurv2: IOffsetCurve<VectorType>, tol: Tol): boolean;
26
+ static extendCurves<VectorType extends Vec>(etdCurv1: IExtendCurve<VectorType>, etdCurv2: IExtendCurve<VectorType>, tol: Tol): boolean;
27
+ /**
28
+ * 采用采样的方式,判断 crv 在 range 范围内是否与 crv0 重合
29
+ * @param crv0
30
+ * @param crv
31
+ * @param range
32
+ * @param tol
33
+ * @param pointCount
34
+ * @returns
35
+ */
36
+ static testBySamples<VectorType extends Vec>(crv0: Curve<VectorType>, crv: Curve<VectorType>, range?: import("../..").Interval, tol?: Tol, pointCount?: number): boolean;
37
+ static nurbsCurves<VectorType extends Vec>(nurbsCurv1: INurbsCurve<VectorType>, nurbsCurv2: INurbsCurve<VectorType>, tol: Tol): boolean;
38
+ }
@@ -0,0 +1,74 @@
1
+ import { Tol } from '../../base/tol';
2
+ import { Vec } from '../../base/vec';
3
+ import { Arc2 } from '../../geometry/arc2d';
4
+ import { Arc3 } from '../../geometry/arc3d';
5
+ import { Curve2 } from '../../geometry/curve2';
6
+ import { Curve3 } from '../../geometry/curve3d';
7
+ import { Ln2 } from '../../geometry/ln2';
8
+ import { Ln3 } from '../../geometry/ln3';
9
+ import { EvolutionMap } from '../../topology/evolution_map';
10
+ import { IArc, ILine, INurbsCurve, IOffsetCurve } from '../../type_define/i_geometry';
11
+ export declare enum MergeReverseMode {
12
+ merge = 0,
13
+ remove = 1
14
+ }
15
+ /**
16
+ * 尝试将两曲线的合并,并返回合并后的曲线
17
+ */
18
+ export declare class CurvesMerge {
19
+ /**
20
+ * 将loop简化:合并相邻的共线的curve
21
+ * @param curves
22
+ * @param tol
23
+ */
24
+ static mergeLoopCurve3ds(curves: Curve3[], tol?: Tol): Curve3[];
25
+ static mergeCurves3ds(curves: Curve3[], tol?: Tol): Curve3[];
26
+ static mergeCurves2ds(curves: Curve2[], tol?: Tol): Curve2[];
27
+ /**
28
+ * 尝试合并曲线,返回合并后的结果。若无法合并,则返回 undefined
29
+ * @param curve1
30
+ * @param curve2
31
+ * @param mode merge:无论曲线方向,一律合并;remove:当曲线反向时,会将反向部分从合并结果中去除
32
+ * @param tol
33
+ */
34
+ static curve2ds(curve1: Curve2, curve2: Curve2, mode?: MergeReverseMode, tol?: Tol): Curve2[] | undefined;
35
+ /**
36
+ * 尝试合并曲线,返回合并后的结果。若无法合并,则返回 undefined
37
+ * @param curve1
38
+ * @param curve2
39
+ * @param mode merge:无论曲线方向,一律合并;remove:当曲线反向时,会将反向部分从合并结果中去除
40
+ * @param tol
41
+ * @returns 演化关系,从新曲线映射到旧曲线
42
+ */
43
+ static curve2dsEvolution(curve1: Curve2, curve2: Curve2, mode?: MergeReverseMode, tol?: Tol): EvolutionMap<Curve2> | undefined;
44
+ /**
45
+ * 尝试合并曲线,返回合并后的结果。若无法合并,则返回 undefined
46
+ * @param curve1
47
+ * @param curve2
48
+ * @param mode merge:无论曲线方向,一律合并;remove:当曲线反向时,会将反向部分从合并结果中去除
49
+ * @param tol
50
+ */
51
+ static curve3ds(curve1: Curve3, curve2: Curve3, mode?: MergeReverseMode, tol?: Tol): Curve3[] | undefined;
52
+ /**
53
+ * 尝试合并曲线,返回合并后的结果。若无法合并,则返回 undefined
54
+ * @param curve1
55
+ * @param curve2
56
+ * @param mode merge:无论曲线方向,一律合并;remove:当曲线反向时,会将反向部分从合并结果中去除
57
+ * @param tol
58
+ * @returns 演化关系,从新曲线映射到旧曲线
59
+ */
60
+ static curve3dsEvolution(curve1: Curve3, curve2: Curve3, mode?: MergeReverseMode, tol?: Tol): EvolutionMap<Curve3> | undefined;
61
+ static lines(line1: Ln2, line2: Ln2, mode?: MergeReverseMode, tol?: Tol): Ln2[] | undefined;
62
+ static lines(line1: Ln3, line2: Ln3, mode?: MergeReverseMode, tol?: Tol): Ln3[] | undefined;
63
+ static lines<VectorType extends Vec>(line1: ILine<VectorType>, line2: ILine<VectorType>, mode?: MergeReverseMode, tol?: Tol): ILine<VectorType>[] | undefined;
64
+ static linesEvolution<VectorType extends Vec>(line1: ILine<VectorType>, line2: ILine<VectorType>, mode?: MergeReverseMode, tol?: Tol): EvolutionMap<ILine<VectorType>> | undefined;
65
+ static arcs(arc1: Arc2, arc2: Arc2, mode?: MergeReverseMode, tol?: Tol): Arc2[] | undefined;
66
+ static arcs(arc1: Arc3, arc2: Arc3, mode?: MergeReverseMode, tol?: Tol): Arc3[] | undefined;
67
+ static arcs<VectorType extends Vec>(arc1: IArc<VectorType>, arc2: IArc<VectorType>, mode?: MergeReverseMode, tol?: Tol): IArc<VectorType>[] | undefined;
68
+ static arcsEvolution<VectorType extends Vec>(arc1: IArc<VectorType>, arc2: IArc<VectorType>, mode?: MergeReverseMode, tol?: Tol): EvolutionMap<IArc<VectorType>> | undefined;
69
+ static nurbsEvolution<VectorType extends Vec>(nurbs1: INurbsCurve<VectorType>, nurbs2: INurbsCurve<VectorType>, mode?: MergeReverseMode, tol?: Tol): EvolutionMap<INurbsCurve<VectorType>> | undefined;
70
+ static offsetCurvesEvolution<VectorType extends Vec>(crv1: IOffsetCurve<VectorType>, crv2: IOffsetCurve<VectorType>, mode?: MergeReverseMode, tol?: Tol): EvolutionMap<IOffsetCurve<VectorType>> | undefined;
71
+ private static _simpleCurves;
72
+ private static _nurbsRange;
73
+ private static _periodCurves;
74
+ }
@@ -0,0 +1,34 @@
1
+ import { Tol } from '../../base/tol';
2
+ import { Vec } from '../../base/vec';
3
+ import { Curve2 } from '../../geometry/curve2';
4
+ import { Curve3 } from '../../geometry/curve3d';
5
+ import { IArc, ILine, IOffsetCurve, INurbsCurve, IExtendCurve } from '../../type_define/i_geometry';
6
+ import { ICurvesOverlapInfo } from './i_overlap';
7
+ import { Curve } from '../../geometry/curve';
8
+ /**
9
+ * 计算两曲线的重合情况
10
+ */
11
+ export declare class CurvesOverlap {
12
+ static curve2ds(curve1: Curve2, curve2: Curve2, tol?: Tol): ICurvesOverlapInfo[];
13
+ static curve3ds(curve1: Curve3, curve2: Curve3, tol?: Tol): ICurvesOverlapInfo[];
14
+ static lines<VectorType extends Vec>(line1: ILine<VectorType>, line2: ILine<VectorType>, tol?: Tol): ICurvesOverlapInfo[];
15
+ static arcs<VectorType extends Vec>(arc1: IArc<VectorType>, arc2: IArc<VectorType>, tol?: Tol): ICurvesOverlapInfo[];
16
+ static offsetCurves<VectorType extends Vec>(offCurv1: IOffsetCurve<VectorType>, offCurv2: IOffsetCurve<VectorType>, tol?: Tol): ICurvesOverlapInfo[] | undefined;
17
+ static extendCurves<VectorType extends Vec>(etdCurv1: IExtendCurve<VectorType>, etdCurv2: IExtendCurve<VectorType>, tol?: Tol): ICurvesOverlapInfo[] | undefined;
18
+ static nurbsCurves<VectorType extends Vec>(nurbsCurv1: INurbsCurve<VectorType>, nurbsCurv2: INurbsCurve<VectorType>, tol?: Tol): ICurvesOverlapInfo[] | undefined;
19
+ static generalCurves<VectorType extends Vec>(crv1: Curve<VectorType>, crv2: Curve<VectorType>, tol?: Tol, testPointCount?: number): ICurvesOverlapInfo[];
20
+ private static _linesOverlap;
21
+ private static _arcsOverlap;
22
+ private static _offsetCurvesOverlap;
23
+ private static _extendCurvesOverlap;
24
+ private static _nurbsCurvesOverlap;
25
+ /**
26
+ *
27
+ * @param crv1 openCrv
28
+ * @param crv2
29
+ * @param tol
30
+ * @param testPointCount
31
+ * @returns
32
+ */
33
+ private static _generalOpenCurves;
34
+ }
@@ -0,0 +1,9 @@
1
+ import { Interval } from '../../base/interval';
2
+ export interface ICurvesOverlapInfo {
3
+ /** 重合段在第一条曲线上的参数 */
4
+ range1: Interval;
5
+ /** 重合段在第二条曲线上的参数 */
6
+ range2: Interval;
7
+ /** 重合段同向时为 true */
8
+ isSameDirection: boolean;
9
+ }
@@ -0,0 +1,5 @@
1
+ import { Tol } from '../../base/tol';
2
+ import { Surface } from '../../geometry/surface';
3
+ export declare class SurfacesCoplaner {
4
+ static simple(surface1: Surface, surface2: Surface, tol: Tol): boolean;
5
+ }
@@ -0,0 +1,50 @@
1
+ import { IPoint, Paths } from "./pave";
2
+ export declare function clipBlocks2Geometry(result: {
3
+ blocks: {
4
+ data: Map<number, Paths[] | boolean>;
5
+ offset: IPoint;
6
+ };
7
+ joints: Paths[];
8
+ }[], unitDefs: {
9
+ joint: Paths;
10
+ blocks: Paths[];
11
+ coords: number[][][];
12
+ }): {
13
+ joints: {
14
+ vertices: number[];
15
+ indices: number[];
16
+ uvs: number[];
17
+ };
18
+ blocks: {
19
+ vertices: Float32Array<ArrayBuffer>;
20
+ uvs: Float32Array<ArrayBuffer>;
21
+ indices: Uint32Array<ArrayBuffer>;
22
+ unitIndex: number;
23
+ }[];
24
+ };
25
+ export declare function fullBlocks2Geometry(fullBlocks: IPoint[], unitDef: {
26
+ joint: Paths;
27
+ blocks: Paths[];
28
+ coords: number[][][];
29
+ }): {
30
+ blocks: {
31
+ uvs: Float32Array<ArrayBuffer>;
32
+ vertices: Float32Array<ArrayBuffer>;
33
+ indices: Uint32Array<ArrayBuffer>;
34
+ }[];
35
+ joints: {
36
+ vertices: Float32Array<ArrayBuffer>;
37
+ indices: Uint32Array<ArrayBuffer>;
38
+ uvs: Float32Array<ArrayBuffer>;
39
+ };
40
+ };
41
+ /**
42
+ * 三角化
43
+ * @param paths
44
+ * @returns
45
+ */
46
+ export declare function triangle(paths: Paths): {
47
+ uvs: number[];
48
+ indices: number[];
49
+ vertices: number[];
50
+ };
@@ -0,0 +1,42 @@
1
+ import { Paths64, PolyPath64 } from 'clipper2-wasm/dist/clipper2z';
2
+ import { IPoint, Path, Paths } from './pave';
3
+ export interface Point<T extends bigint | number> {
4
+ x: T;
5
+ y: T;
6
+ }
7
+ export declare function dot(v1: IPoint, another: IPoint): number;
8
+ export declare function getUVMinMax(uDirNormal: IPoint, vDirNormal: IPoint, path: IPoint[], origin: IPoint): {
9
+ uMin: number;
10
+ uMax: number;
11
+ vMin: number;
12
+ vMax: number;
13
+ };
14
+ export declare function getParamAtUV(uDirNormal: IPoint, vDirNormal: IPoint, another: IPoint): number[];
15
+ export declare function getPointAt(dir: IPoint, param: number): {
16
+ x: number;
17
+ y: number;
18
+ };
19
+ /**
20
+ *
21
+ * @param data [
22
+ [this._xDir.x, this._xDir.y, 0],
23
+ [this._yDir.x, this._yDir.y, 0],
24
+ [this._origin.x, this._origin.y, 1],
25
+ ],
26
+ */
27
+ export declare function applyMatrix(arr: number[], start: number, matrix: number[][]): void;
28
+ export declare function applyMatrixToPt(pt: IPoint, matrix: number[][]): {
29
+ x: number;
30
+ y: number;
31
+ };
32
+ export declare function multiplyMatrix(A: number[][], B: number[][]): number[][];
33
+ export declare function inv(square: number[][]): number[][];
34
+ export declare function getBBox(bg: IPoint[][], offset?: number): {
35
+ right: number;
36
+ left: number;
37
+ bottom: number;
38
+ top: number;
39
+ };
40
+ export declare function convert2Js(solution: Paths64, precise: number): Paths;
41
+ export declare function toArray(path: Path, reversed?: boolean): number[];
42
+ export declare function addPolyPathToResult(solution: PolyPath64, joints: Paths[], precise: number, holes: Point<bigint>[][]): void;
@@ -0,0 +1,43 @@
1
+ import { IPoint, Paths } from './pave';
2
+ import { IPavePattern, IPolygon } from './pattern_util';
3
+ export declare class Pattern {
4
+ private precise;
5
+ private recOffset;
6
+ private jointOffset;
7
+ private _clip;
8
+ private _clipLines;
9
+ private _unitJoints;
10
+ private _unitsBlock;
11
+ private _holes;
12
+ private _unitRect;
13
+ private _unitsPaths;
14
+ private _bgRects;
15
+ patternData: IPavePattern;
16
+ private _clipper;
17
+ private _enableGap;
18
+ constructor(patternData: IPavePattern, background: IPolygon, enableGap?: boolean);
19
+ getUnit(): {
20
+ joint: Paths;
21
+ blocks: Paths[];
22
+ coords: number[][][];
23
+ };
24
+ /**
25
+ * 单元box与边界是否相交
26
+ * @param offset
27
+ * @returns -1: outer, 0: 不与线相交, 1: 与线相交, 2: box中有洞
28
+ */
29
+ isUnitXBackground(offset: IPoint): 2 | 1 | 0 | -1;
30
+ /**
31
+ * 计算clip
32
+ * @param offset 偏移
33
+ * @param canUseHole 是否可以使用切砖缝的洞作为砖
34
+ * @returns
35
+ */
36
+ execute(offset: IPoint, canUseHole?: boolean): {
37
+ blocks: {
38
+ data: Map<number, boolean | Paths[]>;
39
+ offset: IPoint;
40
+ };
41
+ joints: Paths[];
42
+ } | undefined;
43
+ }
@@ -0,0 +1,53 @@
1
+ import { Coord2, Curve2 } from '../..';
2
+ import { types } from '../../type_define/i_types';
3
+ import { IPoint, Paths } from './pave';
4
+ export declare class RegionMesh {
5
+ buffer: types.IFlatMesh;
6
+ material: number;
7
+ }
8
+ export declare class IPavePattern {
9
+ gap: {
10
+ unit: number;
11
+ material: number;
12
+ };
13
+ units: {
14
+ outer: Curve2[];
15
+ holes: Curve2[][];
16
+ materials: number[];
17
+ seed: number;
18
+ coord: Coord2;
19
+ }[];
20
+ udir: types.IXY;
21
+ vdir: types.IXY;
22
+ coord: Coord2;
23
+ }
24
+ export declare class IPolygon {
25
+ outer: Curve2[];
26
+ holes: Curve2[][];
27
+ }
28
+ export declare class PatternUtil {
29
+ /**
30
+ * 铺贴
31
+ * @param pattern 铺贴模板
32
+ * @param background 铺贴区域
33
+ * @param enableGap 是否生成砖缝
34
+ * @returns
35
+ */
36
+ static getRegionMesh(pavePattern: IPavePattern, background: IPolygon, enableGap?: boolean): RegionMesh[];
37
+ static executeClip(patternData: IPavePattern, background: IPolygon, enableGap?: boolean): {
38
+ clipBlocks: {
39
+ blocks: {
40
+ data: Map<number, Paths[] | boolean>;
41
+ offset: IPoint;
42
+ };
43
+ joints: Paths[];
44
+ }[];
45
+ fullBlocks: IPoint[];
46
+ unit: {
47
+ joint: Paths;
48
+ blocks: Paths[];
49
+ coords: number[][][];
50
+ };
51
+ };
52
+ private static geos2IMesh;
53
+ }
@@ -0,0 +1,33 @@
1
+ import { MainModule } from "clipper2-wasm/dist/clipper2z";
2
+ export interface IPoint {
3
+ x: number;
4
+ y: number;
5
+ }
6
+ export type Path = IPoint[];
7
+ export type Paths = Path[];
8
+ export declare const allUnits: {
9
+ x: number;
10
+ y: number;
11
+ }[][];
12
+ export declare const unit: {
13
+ x: number;
14
+ y: number;
15
+ }[];
16
+ export declare const unitBlock: {
17
+ x: number;
18
+ y: number;
19
+ }[];
20
+ export declare function toArray(path: Path, reversed?: boolean): number[];
21
+ export declare function clipBlock(unit: Path, block: Path, bg: Paths, clipperLib: MainModule): (offset: IPoint, onlyEdgeX?: boolean) => {
22
+ joint: Paths;
23
+ tile: Paths;
24
+ isX: boolean;
25
+ isFull: boolean;
26
+ offset: IPoint;
27
+ } | undefined;
28
+ export declare function getBBox(bg: IPoint[]): {
29
+ maxX: number;
30
+ minX: number;
31
+ maxY: number;
32
+ minY: number;
33
+ };
@@ -0,0 +1,19 @@
1
+ import { Curve } from '../../geometry/curve';
2
+ import { CurvesPJType } from './pj_type';
3
+ import { Vec } from '../../base/vec';
4
+ import { Interval } from '../../base/interval';
5
+ export interface ISimpleXInfo {
6
+ param1: number;
7
+ param2: number;
8
+ isOverlap: boolean;
9
+ overlap1?: Interval;
10
+ overlap2?: Interval;
11
+ overlapDirection?: boolean;
12
+ }
13
+ /**
14
+ *
15
+ * 两曲线间的重叠关系判断:不重叠、重叠、完全重叠
16
+ */
17
+ export declare class CurvesOverlapJudge {
18
+ static execute<PointType extends Vec>(curve1: Curve<PointType>, curve2: Curve<PointType>, distanceTol?: number, angleTol?: number): CurvesPJType;
19
+ }
@@ -0,0 +1,19 @@
1
+ import { CurvesPJType } from './pj_type';
2
+ import { Vec } from '../../base/vec';
3
+ import { Curve } from '../../geometry/curve';
4
+ /**
5
+ * #### 2.两曲线间的位置关系`curveToCurve`:重叠,相交,不相交
6
+ */
7
+ declare class CurvesPJ {
8
+ /**
9
+ * 曲线与曲线的位置关系判断:相交,重叠,不相交
10
+ *
11
+ * 支持 Ln2 Arc2
12
+ * @param curve1
13
+ * @param curve2
14
+ * @param tolerance
15
+ * @returns `CurvesPJType`
16
+ */
17
+ static execute<PointType extends Vec>(curve1: Curve<PointType>, curve2: Curve<PointType>, distanceTol?: number, angleTol?: number): CurvesPJType;
18
+ }
19
+ export { CurvesPJ };
@@ -0,0 +1,13 @@
1
+ import { LoopsPJType } from './pj_type';
2
+ import { Loop } from '../../topology/loop';
3
+ declare class LoopsPJ {
4
+ /**
5
+ * Loop1与Loop2的位置关系判断,以loop2位基准
6
+ * @param loop1
7
+ * @param loop2
8
+ * @param tolerance
9
+ */
10
+ static execute(loop1: Loop, loop2: Loop, tol?: number, tangentIsIntersect?: boolean): LoopsPJType;
11
+ private static _polygonIsValid;
12
+ }
13
+ export { LoopsPJ };
@@ -0,0 +1,46 @@
1
+ /**
2
+ * 曲线间位置关系类型
3
+ *
4
+ * 重叠,十位数为1:
5
+ * - OVERLAP 部分或完全重叠x
6
+
7
+
8
+
9
+ *
10
+ * 相交,十位数为2
11
+ * - INTERSECT_IN 在曲线内部相交
12
+ * - INTERSECT_ON 在曲线端点处相交
13
+ *
14
+ * 不相交(为0)
15
+ * - NOT_INTERSECT 不相交
16
+ */
17
+ declare enum CurvesPJType {
18
+ NOT_INTERSECT = 0,
19
+ OVERLAP = 10,
20
+ TOTALLY_OVERLAP = 11,
21
+ INTERSECT_IN = 21,
22
+ INTERSECT_ON = 22
23
+ }
24
+ /**
25
+ * 点与loop的关系类型:
26
+ * - OUT 点在loop外部
27
+ * - ON 点在loop边界上
28
+ * - IN 点在loop内部
29
+ */
30
+ declare enum PtLoopPJType {
31
+ OUT = 0,
32
+ ONEDGE = -1,
33
+ ONVERTEX = -2,
34
+ IN = 1
35
+ }
36
+ /**
37
+ * loop与loop的关系
38
+ */
39
+ declare enum LoopsPJType {
40
+ INTERSECT = "x",
41
+ EQUAL = "eq",
42
+ IN = "in",
43
+ CONTAIN = "ct",
44
+ OUT = "out"
45
+ }
46
+ export { CurvesPJType, PtLoopPJType, LoopsPJType };