@ccpc/math 0.1.0 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (459) hide show
  1. package/index.cjs +226 -0
  2. package/package.json +19 -37
  3. package/types/algorithm/bool_operate/bool2d/bool2d.d.ts +22 -0
  4. package/types/algorithm/bool_operate/bool2d/difference.d.ts +9 -0
  5. package/types/algorithm/bool_operate/bool2d/intersect.d.ts +9 -0
  6. package/types/algorithm/bool_operate/bool2d/split.d.ts +3 -0
  7. package/types/algorithm/bool_operate/bool2d/union.d.ts +9 -0
  8. package/types/algorithm/bool_operate/bool2d/utils.d.ts +40 -0
  9. package/types/algorithm/bool_operate/bool_operate_clipper.d.ts +18 -0
  10. package/types/algorithm/bool_operate/polycurve_polygon_bool.d.ts +13 -0
  11. package/types/algorithm/bool_operate_2d.d.ts +67 -0
  12. package/types/algorithm/calc_d.d.ts +85 -0
  13. package/types/algorithm/calc_offset.d.ts +70 -0
  14. package/types/algorithm/calc_overlap.d.ts +56 -0
  15. package/types/algorithm/calc_project.d.ts +29 -0
  16. package/types/algorithm/calc_x.d.ts +215 -0
  17. package/types/algorithm/calculate_util/geometry_subdevide_infos.d.ts +73 -0
  18. package/types/algorithm/calculate_util/iterative_method.d.ts +30 -0
  19. package/types/algorithm/discrete/discrete_curve.d.ts +31 -0
  20. package/types/algorithm/discrete/discrete_refiner.d.ts +35 -0
  21. package/types/algorithm/discrete/discrete_surface.d.ts +74 -0
  22. package/types/algorithm/discrete/discrete_topology.d.ts +32 -0
  23. package/types/algorithm/discrete/discrete_util.d.ts +96 -0
  24. package/types/algorithm/discrete/grid_discrete_data.d.ts +58 -0
  25. package/types/algorithm/discrete/libtess.d.ts +12 -0
  26. package/types/algorithm/discrete/uniform_grid_discrete.d.ts +3 -0
  27. package/types/algorithm/distance/base_calc_distance/curves_distance_util.d.ts +20 -0
  28. package/types/algorithm/distance/base_calc_distance/define_of_calculate_distance.d.ts +12 -0
  29. package/types/algorithm/distance/curve2ds_distance/arc2s_distance.d.ts +17 -0
  30. package/types/algorithm/distance/curve2ds_distance/line2d_to_arc2d_distance.d.ts +17 -0
  31. package/types/algorithm/distance/curve2ds_distance/line2s_distance.d.ts +15 -0
  32. package/types/algorithm/distance/curve2s_distance.d.ts +15 -0
  33. package/types/algorithm/distance/curve3ds_distance/line3d_to_line3d_distance_paramed.d.ts +12 -0
  34. package/types/algorithm/distance/curve3s_distance.d.ts +31 -0
  35. package/types/algorithm/distance/pt_to_curve2_signed_distance.d.ts +17 -0
  36. package/types/algorithm/distance/pt_to_curve3_distance.d.ts +25 -0
  37. package/types/algorithm/distance/pt_to_curve_distance_info.d.ts +12 -0
  38. package/types/algorithm/distance/pt_to_surface_distance.d.ts +17 -0
  39. package/types/algorithm/distance/pts_to_curves_distance.d.ts +13 -0
  40. package/types/algorithm/distance/pts_to_pts_distance.d.ts +7 -0
  41. package/types/algorithm/geometry_merge.d.ts +22 -0
  42. package/types/algorithm/index.d.ts +32 -0
  43. package/types/algorithm/intersect/box_cut_line.d.ts +6 -0
  44. package/types/algorithm/intersect/curve_self_x.d.ts +13 -0
  45. package/types/algorithm/intersect/curve_surface_x.d.ts +34 -0
  46. package/types/algorithm/intersect/curve_surface_x_util.d.ts +32 -0
  47. package/types/algorithm/intersect/curves_x/circulars_x.d.ts +35 -0
  48. package/types/algorithm/intersect/curves_x/linear_circular_x.d.ts +40 -0
  49. package/types/algorithm/intersect/curves_x/lines_x.d.ts +17 -0
  50. package/types/algorithm/intersect/curves_x/lines_x_util.d.ts +4 -0
  51. package/types/algorithm/intersect/curves_x.d.ts +26 -0
  52. package/types/algorithm/intersect/curves_x_util.d.ts +35 -0
  53. package/types/algorithm/intersect/intersect_info_util.d.ts +9 -0
  54. package/types/algorithm/intersect/surface_self_x.d.ts +8 -0
  55. package/types/algorithm/intersect/surfaces_x.d.ts +53 -0
  56. package/types/algorithm/intersect/surfaces_x_complex.d.ts +29 -0
  57. package/types/algorithm/intersect/surfaces_x_special.d.ts +16 -0
  58. package/types/algorithm/intersect/surfaces_x_util.d.ts +41 -0
  59. package/types/algorithm/intersect/x_info.d.ts +65 -0
  60. package/types/algorithm/loop_property/loop-area.d.ts +49 -0
  61. package/types/algorithm/loop_property/loop-centroid.d.ts +40 -0
  62. package/types/algorithm/merge_geometry/halfplane.d.ts +24 -0
  63. package/types/algorithm/merge_geometry/merge_curve.d.ts +14 -0
  64. package/types/algorithm/merge_geometry/merge_point.d.ts +18 -0
  65. package/types/algorithm/mesh/clip_mesh.d.ts +27 -0
  66. package/types/algorithm/mesh/extrude_clip.d.ts +236 -0
  67. package/types/algorithm/mesh/mesh_assist.d.ts +21 -0
  68. package/types/algorithm/mesh/mesh_contour.d.ts +26 -0
  69. package/types/algorithm/mesh/mesh_util.d.ts +115 -0
  70. package/types/algorithm/offset/loop2d_offset.d.ts +22 -0
  71. package/types/algorithm/offset/polygon_offset.d.ts +27 -0
  72. package/types/algorithm/overlap/curve_surface_coincide.d.ts +6 -0
  73. package/types/algorithm/overlap/curves_colinear.d.ts +38 -0
  74. package/types/algorithm/overlap/curves_merge.d.ts +74 -0
  75. package/types/algorithm/overlap/curves_overlap.d.ts +34 -0
  76. package/types/algorithm/overlap/i_overlap.d.ts +9 -0
  77. package/types/algorithm/overlap/surfaces_coplaner.d.ts +5 -0
  78. package/types/algorithm/pattern/blocks2Geometry.d.ts +50 -0
  79. package/types/algorithm/pattern/math.d.ts +42 -0
  80. package/types/algorithm/pattern/pattern.d.ts +43 -0
  81. package/types/algorithm/pattern/pattern_util.d.ts +53 -0
  82. package/types/algorithm/pattern/pave.d.ts +33 -0
  83. package/types/algorithm/pj/curves_oj.d.ts +19 -0
  84. package/types/algorithm/pj/curves_pj.d.ts +19 -0
  85. package/types/algorithm/pj/loops_pj.d.ts +13 -0
  86. package/types/algorithm/pj/pj_type.d.ts +46 -0
  87. package/types/algorithm/pj/pt_loop_pj.d.ts +24 -0
  88. package/types/algorithm/pj/pt_polygon_pj.d.ts +18 -0
  89. package/types/algorithm/pj/pt_polygon_position_judger.d.ts +11 -0
  90. package/types/algorithm/position_judge.d.ts +72 -0
  91. package/types/algorithm/project/curve3d_to_plane_project.d.ts +11 -0
  92. package/types/algorithm/project/curve_curve_project.d.ts +9 -0
  93. package/types/algorithm/search_graph/iloops_polygonex.d.ts +28 -0
  94. package/types/algorithm/search_graph/loop_tree_node.d.ts +30 -0
  95. package/types/algorithm/search_graph/loops_to_loop_tree_search_graph.d.ts +25 -0
  96. package/types/algorithm/search_graph/polygon_polygonex.d.ts +13 -0
  97. package/types/algorithm/search_graph/search_loop2d.d.ts +20 -0
  98. package/types/algorithm/search_graph/search_polyline.d.ts +11 -0
  99. package/types/algorithm/search_graph.d.ts +45 -0
  100. package/types/algorithm/topology_edit.d.ts +10 -0
  101. package/types/base/box.d.ts +100 -0
  102. package/types/base/box2.d.ts +17 -0
  103. package/types/base/box3.d.ts +20 -0
  104. package/types/base/coord.d.ts +10 -0
  105. package/types/base/coord2.d.ts +92 -0
  106. package/types/base/coord3.d.ts +139 -0
  107. package/types/base/discrete_param.d.ts +28 -0
  108. package/types/base/euler.d.ts +102 -0
  109. package/types/base/geo_element.d.ts +54 -0
  110. package/types/base/interval.d.ts +122 -0
  111. package/types/base/ivector.d.ts +126 -0
  112. package/types/base/matrix.d.ts +108 -0
  113. package/types/base/matrix3.d.ts +118 -0
  114. package/types/base/matrix4.d.ts +166 -0
  115. package/types/base/matrix_util.d.ts +5 -0
  116. package/types/base/period_inverval.d.ts +127 -0
  117. package/types/base/quaternion.d.ts +39 -0
  118. package/types/base/tangent_cone.d.ts +11 -0
  119. package/types/base/tilt_box.d.ts +11 -0
  120. package/types/base/tol.d.ts +120 -0
  121. package/types/base/vec.d.ts +46 -0
  122. package/types/base/vec2.d.ts +146 -0
  123. package/types/base/vec3.d.ts +158 -0
  124. package/types/brep-src/algorithm/alg_const.d.ts +23 -0
  125. package/types/brep-src/algorithm/alg_types.d.ts +47 -0
  126. package/types/brep-src/algorithm/algorithm_util/base_define.d.ts +7 -0
  127. package/types/brep-src/algorithm/algorithm_util/body_base_util.d.ts +4 -0
  128. package/types/brep-src/algorithm/algorithm_util/curve_solid_analysis.d.ts +28 -0
  129. package/types/brep-src/algorithm/algorithm_util/face_face_analysis.d.ts +39 -0
  130. package/types/brep-src/algorithm/algorithm_util/search_wire.d.ts +8 -0
  131. package/types/brep-src/algorithm/body_builder/basic_body_builder.d.ts +15 -0
  132. package/types/brep-src/algorithm/body_builder/extrude_body.d.ts +23 -0
  133. package/types/brep-src/algorithm/body_builder/sweep_body.d.ts +37 -0
  134. package/types/brep-src/algorithm/body_builder.d.ts +36 -0
  135. package/types/brep-src/algorithm/body_util.d.ts +21 -0
  136. package/types/brep-src/algorithm/bool_sk/brep_converter.d.ts +11 -0
  137. package/types/brep-src/algorithm/brep_calc_project.d.ts +50 -0
  138. package/types/brep-src/algorithm/brep_calc_x.d.ts +34 -0
  139. package/types/brep-src/algorithm/brep_pj.d.ts +47 -0
  140. package/types/brep-src/algorithm/index.d.ts +5 -0
  141. package/types/brep-src/algorithm/intersect/curve_face_overlap.d.ts +10 -0
  142. package/types/brep-src/algorithm/intersect/face_face_intersect.d.ts +22 -0
  143. package/types/brep-src/algorithm/intersect/face_faces_intersect.d.ts +15 -0
  144. package/types/brep-src/algorithm/intersect/line_face_intersect.d.ts +16 -0
  145. package/types/brep-src/algorithm/podition_judge/body_pj.d.ts +25 -0
  146. package/types/brep-src/algorithm/podition_judge/extrude_pj.d.ts +28 -0
  147. package/types/brep-src/algorithm/podition_judge/pt_body_pj.d.ts +32 -0
  148. package/types/brep-src/algorithm/project/body_project.d.ts +8 -0
  149. package/types/brep-src/algorithm/project/face_project.d.ts +20 -0
  150. package/types/brep-src/algorithm/project/face_surface_project.d.ts +8 -0
  151. package/types/brep-src/algorithm/project/space_project.d.ts +26 -0
  152. package/types/brep-src/algorithm/project/space_project_simple.d.ts +10 -0
  153. package/types/brep-src/algorithm/project/view_project.d.ts +25 -0
  154. package/types/brep-src/algorithm/shell_builder/create_shell_from_curves.d.ts +38 -0
  155. package/types/brep-src/algorithm/shell_builder.d.ts +25 -0
  156. package/types/brep-src/algorithm/shell_edit/add_edges/add_edges.d.ts +14 -0
  157. package/types/brep-src/algorithm/shell_edit/add_edges/add_edges_core.d.ts +11 -0
  158. package/types/brep-src/algorithm/shell_edit/copy_faces.d.ts +20 -0
  159. package/types/brep-src/algorithm/shell_edit/delete_faces_edges/delete_edge.d.ts +9 -0
  160. package/types/brep-src/algorithm/shell_edit/delete_faces_edges/delete_faces_edges.d.ts +17 -0
  161. package/types/brep-src/algorithm/shell_edit/faces_boolean/faces_boolean.d.ts +19 -0
  162. package/types/brep-src/algorithm/shell_edit/faces_boolean/faces_shells_boolean.d.ts +13 -0
  163. package/types/brep-src/algorithm/shell_edit/faces_boolean/octree.d.ts +11 -0
  164. package/types/brep-src/algorithm/shell_edit/isolate_faces.d.ts +21 -0
  165. package/types/brep-src/algorithm/shell_edit/merge_connect_faces.d.ts +14 -0
  166. package/types/brep-src/algorithm/shell_edit/merge_edges.d.ts +8 -0
  167. package/types/brep-src/algorithm/shell_edit/move_operators/move_edges.d.ts +31 -0
  168. package/types/brep-src/algorithm/shell_edit/move_operators/move_faces.d.ts +14 -0
  169. package/types/brep-src/algorithm/shell_edit/operator/dispose_topo.d.ts +2 -0
  170. package/types/brep-src/algorithm/shell_edit/operator/merge_connect_edge.d.ts +3 -0
  171. package/types/brep-src/algorithm/shell_edit/operator/merge_connect_face.d.ts +2 -0
  172. package/types/brep-src/algorithm/shell_edit/operator/merge_overlap_edge.d.ts +3 -0
  173. package/types/brep-src/algorithm/shell_edit/operator/merge_shell.d.ts +11 -0
  174. package/types/brep-src/algorithm/shell_edit/operator/merge_vertex.d.ts +2 -0
  175. package/types/brep-src/algorithm/shell_edit/operator/split_edge.d.ts +4 -0
  176. package/types/brep-src/algorithm/shell_edit/operator/split_shell.d.ts +6 -0
  177. package/types/brep-src/algorithm/shell_edit/pull_push_face/pull_push_face.d.ts +18 -0
  178. package/types/brep-src/algorithm/shell_edit/pull_push_face/pull_push_face_core.d.ts +6 -0
  179. package/types/brep-src/algorithm/shell_edit/pull_push_face/pull_push_face_preview.d.ts +16 -0
  180. package/types/brep-src/algorithm/shell_edit/pull_push_face/pull_push_face_preview_core.d.ts +24 -0
  181. package/types/brep-src/algorithm/shell_edit/roundinng/2d_rounding.d.ts +22 -0
  182. package/types/brep-src/algorithm/shell_edit/shell_modeling_base.d.ts +10 -0
  183. package/types/brep-src/algorithm/shell_edit/shell_modeling_result.d.ts +21 -0
  184. package/types/brep-src/algorithm/shell_edit/smooth/detect_loop_util.d.ts +27 -0
  185. package/types/brep-src/algorithm/shell_edit/smooth/shell_modeling_util.d.ts +24 -0
  186. package/types/brep-src/algorithm/shell_edit/smooth/smooth_util.d.ts +22 -0
  187. package/types/brep-src/algorithm/shell_edit/split_edge.d.ts +10 -0
  188. package/types/brep-src/algorithm/shell_edit.d.ts +119 -0
  189. package/types/brep-src/algorithm/shell_valid/base_brep_topo_error.d.ts +176 -0
  190. package/types/brep-src/algorithm/shell_valid/diagnose_shell.d.ts +14 -0
  191. package/types/brep-src/brep/brep_body.d.ts +19 -0
  192. package/types/brep-src/brep/coedge3d.d.ts +83 -0
  193. package/types/brep-src/brep/edge.d.ts +96 -0
  194. package/types/brep-src/brep/face.d.ts +150 -0
  195. package/types/brep-src/brep/shell.d.ts +166 -0
  196. package/types/brep-src/brep/topo_object.d.ts +40 -0
  197. package/types/brep-src/brep/vertex.d.ts +48 -0
  198. package/types/brep-src/brep/wire.d.ts +66 -0
  199. package/types/brep-src/continuous/continuous_edge.d.ts +17 -0
  200. package/types/brep-src/continuous/continuous_face.d.ts +10 -0
  201. package/types/brep-src/continuous/continuous_util.d.ts +60 -0
  202. package/types/brep-src/continuous/continuous_uv.d.ts +24 -0
  203. package/types/brep-src/continuous/index.d.ts +4 -0
  204. package/types/brep-src/index.d.ts +14 -0
  205. package/types/brep-src/type_define/i_types.d.ts +46 -0
  206. package/types/brep-src/util/util.d.ts +23 -0
  207. package/types/conversion/units_conversion.d.ts +14 -0
  208. package/types/geometry/arc2d.d.ts +249 -0
  209. package/types/geometry/arc3d.d.ts +204 -0
  210. package/types/geometry/circle3d.d.ts +92 -0
  211. package/types/geometry/circular_surface.d.ts +52 -0
  212. package/types/geometry/coord_based_surface.d.ts +25 -0
  213. package/types/geometry/curve.d.ts +228 -0
  214. package/types/geometry/curve2.d.ts +62 -0
  215. package/types/geometry/curve3d.d.ts +66 -0
  216. package/types/geometry/cylinder.d.ts +73 -0
  217. package/types/geometry/discrete_arrow.d.ts +3 -0
  218. package/types/geometry/extend_curve2.d.ts +75 -0
  219. package/types/geometry/geometry2d.d.ts +35 -0
  220. package/types/geometry/geometry3d.d.ts +36 -0
  221. package/types/geometry/intersect_curve3.d.ts +90 -0
  222. package/types/geometry/ln2.d.ts +168 -0
  223. package/types/geometry/ln3.d.ts +152 -0
  224. package/types/geometry/nurbs_curve2.d.ts +106 -0
  225. package/types/geometry/nurbs_curve3.d.ts +191 -0
  226. package/types/geometry/offset_curve2.d.ts +63 -0
  227. package/types/geometry/offset_curve3.d.ts +97 -0
  228. package/types/geometry/offset_parameter_mapper.d.ts +72 -0
  229. package/types/geometry/plane.d.ts +109 -0
  230. package/types/geometry/polyline.d.ts +12 -0
  231. package/types/geometry/smooth_poly2.d.ts +78 -0
  232. package/types/geometry/smooth_poly3.d.ts +85 -0
  233. package/types/geometry/surface.d.ts +173 -0
  234. package/types/index.d.ts +78 -0
  235. package/types/io/obj_parser.d.ts +4 -0
  236. package/types/io/svgparser.d.ts +22 -0
  237. package/types/loader/loader.d.ts +23 -0
  238. package/types/loader/register_geo.d.ts +7 -0
  239. package/types/math/gauss_integration.d.ts +13 -0
  240. package/types/math/inv_bilinear.d.ts +33 -0
  241. package/types/solve_equations/cubic_equation.d.ts +7 -0
  242. package/types/solve_equations/linear_system.d.ts +6 -0
  243. package/types/solve_equations/nonlinear_system.d.ts +11 -0
  244. package/types/solve_equations/plurality.d.ts +9 -0
  245. package/types/solve_equations/polynomial_equation.d.ts +6 -0
  246. package/types/solve_equations/quadratic_equation.d.ts +6 -0
  247. package/types/solve_equations/quartic_equation.d.ts +6 -0
  248. package/types/solve_equations/solve_equation_util.d.ts +50 -0
  249. package/types/test_util/loop_generator.d.ts +21 -0
  250. package/types/topology/evolution_map.d.ts +90 -0
  251. package/types/topology/loop.d.ts +50 -0
  252. package/types/topology/polycurve.d.ts +109 -0
  253. package/types/topology/polygon.d.ts +118 -0
  254. package/types/topology/trimmed_surface.d.ts +136 -0
  255. package/types/type_define/const.d.ts +18 -0
  256. package/types/type_define/i_element.d.ts +9 -0
  257. package/types/type_define/i_element_type.d.ts +34 -0
  258. package/types/type_define/i_geometry.d.ts +191 -0
  259. package/types/type_define/i_types.d.ts +280 -0
  260. package/types/util/array_util.d.ts +8 -0
  261. package/types/util/assert.d.ts +21 -0
  262. package/types/util/clipper2_util.d.ts +5 -0
  263. package/types/util/clipper_format_converter.d.ts +21 -0
  264. package/types/util/clipper_util.d.ts +10 -0
  265. package/types/util/curve_util.d.ts +72 -0
  266. package/types/util/geom_util.d.ts +23 -0
  267. package/types/util/log.d.ts +19 -0
  268. package/types/util/math_error.d.ts +37 -0
  269. package/types/util/surface_util.d.ts +13 -0
  270. package/types/util/util.d.ts +18 -0
  271. package/types/util/uv_util.d.ts +68 -0
  272. package/types/verb/export_verb.d.ts +2 -0
  273. package/types/wasm/a2d.d.ts +19 -0
  274. package/types/wasm/bx2.d.ts +16 -0
  275. package/types/wasm/c2d.d.ts +29 -0
  276. package/types/wasm/elli.d.ts +19 -0
  277. package/types/wasm/grapher2d.d.ts +39 -0
  278. package/types/wasm/grapherutil.d.ts +9 -0
  279. package/types/wasm/l2d.d.ts +14 -0
  280. package/types/wasm/loader.d.ts +8 -0
  281. package/types/wasm/pt.d.ts +19 -0
  282. package/types/wasm/wasm-geom.d.ts +296 -0
  283. package/types/wasm/wasminstance.d.ts +19 -0
  284. package/types/wasm/wrapper.d.ts +82 -0
  285. package/README.md +0 -21
  286. package/dist/constants/geom_type.d.ts +0 -13
  287. package/dist/constants/geom_type.d.ts.map +0 -1
  288. package/dist/constants/geom_type.js +0 -17
  289. package/dist/constants/math_const.d.ts +0 -9
  290. package/dist/constants/math_const.d.ts.map +0 -1
  291. package/dist/constants/math_const.js +0 -12
  292. package/dist/core/box2.d.ts +0 -71
  293. package/dist/core/box2.d.ts.map +0 -1
  294. package/dist/core/box2.js +0 -243
  295. package/dist/core/coord2d.d.ts +0 -62
  296. package/dist/core/coord2d.d.ts.map +0 -1
  297. package/dist/core/coord2d.js +0 -155
  298. package/dist/core/geom_base.d.ts +0 -19
  299. package/dist/core/geom_base.d.ts.map +0 -1
  300. package/dist/core/geom_base.js +0 -18
  301. package/dist/core/mat3.d.ts +0 -101
  302. package/dist/core/mat3.d.ts.map +0 -1
  303. package/dist/core/mat3.js +0 -290
  304. package/dist/core/vec2.d.ts +0 -138
  305. package/dist/core/vec2.d.ts.map +0 -1
  306. package/dist/core/vec2.js +0 -297
  307. package/dist/curves/arc2.d.ts +0 -49
  308. package/dist/curves/arc2.d.ts.map +0 -1
  309. package/dist/curves/arc2.js +0 -265
  310. package/dist/curves/bspline2.d.ts +0 -150
  311. package/dist/curves/bspline2.d.ts.map +0 -1
  312. package/dist/curves/bspline2.js +0 -793
  313. package/dist/curves/circle2.d.ts +0 -42
  314. package/dist/curves/circle2.d.ts.map +0 -1
  315. package/dist/curves/circle2.js +0 -135
  316. package/dist/curves/circle_curve2.d.ts +0 -38
  317. package/dist/curves/circle_curve2.d.ts.map +0 -1
  318. package/dist/curves/circle_curve2.js +0 -112
  319. package/dist/curves/curve2.d.ts +0 -214
  320. package/dist/curves/curve2.d.ts.map +0 -1
  321. package/dist/curves/curve2.js +0 -238
  322. package/dist/curves/ellipse2.d.ts +0 -42
  323. package/dist/curves/ellipse2.d.ts.map +0 -1
  324. package/dist/curves/ellipse2.js +0 -125
  325. package/dist/curves/ellipse_arc2.d.ts +0 -49
  326. package/dist/curves/ellipse_arc2.d.ts.map +0 -1
  327. package/dist/curves/ellipse_arc2.js +0 -184
  328. package/dist/curves/ellipse_curve2.d.ts +0 -56
  329. package/dist/curves/ellipse_curve2.d.ts.map +0 -1
  330. package/dist/curves/ellipse_curve2.js +0 -262
  331. package/dist/curves/interval.d.ts +0 -112
  332. package/dist/curves/interval.d.ts.map +0 -1
  333. package/dist/curves/interval.js +0 -200
  334. package/dist/curves/line2.d.ts +0 -64
  335. package/dist/curves/line2.d.ts.map +0 -1
  336. package/dist/curves/line2.js +0 -193
  337. package/dist/curves/period_interval.d.ts +0 -129
  338. package/dist/curves/period_interval.d.ts.map +0 -1
  339. package/dist/curves/period_interval.js +0 -240
  340. package/dist/discretize/discretize_defaults.d.ts +0 -12
  341. package/dist/discretize/discretize_defaults.d.ts.map +0 -1
  342. package/dist/discretize/discretize_defaults.js +0 -12
  343. package/dist/discretize/discretize_engine.d.ts +0 -33
  344. package/dist/discretize/discretize_engine.d.ts.map +0 -1
  345. package/dist/discretize/discretize_engine.js +0 -347
  346. package/dist/discretize/discretize_errors.d.ts +0 -15
  347. package/dist/discretize/discretize_errors.d.ts.map +0 -1
  348. package/dist/discretize/discretize_errors.js +0 -30
  349. package/dist/discretize/discretize_options.d.ts +0 -18
  350. package/dist/discretize/discretize_options.d.ts.map +0 -1
  351. package/dist/discretize/discretize_options.js +0 -19
  352. package/dist/discretize/discretize_types.d.ts +0 -36
  353. package/dist/discretize/discretize_types.d.ts.map +0 -1
  354. package/dist/discretize/discretize_types.js +0 -1
  355. package/dist/discretize/internal/curve_guards.d.ts +0 -35
  356. package/dist/discretize/internal/curve_guards.d.ts.map +0 -1
  357. package/dist/discretize/internal/curve_guards.js +0 -62
  358. package/dist/discretize/internal/postprocess.d.ts +0 -5
  359. package/dist/discretize/internal/postprocess.d.ts.map +0 -1
  360. package/dist/discretize/internal/postprocess.js +0 -109
  361. package/dist/discretize/internal/sampling_utils.d.ts +0 -8
  362. package/dist/discretize/internal/sampling_utils.d.ts.map +0 -1
  363. package/dist/discretize/internal/sampling_utils.js +0 -36
  364. package/dist/discretize/register_builtin_strategies.d.ts +0 -3
  365. package/dist/discretize/register_builtin_strategies.d.ts.map +0 -1
  366. package/dist/discretize/register_builtin_strategies.js +0 -10
  367. package/dist/discretize/strategies/bspline_strategy.d.ts +0 -4
  368. package/dist/discretize/strategies/bspline_strategy.d.ts.map +0 -1
  369. package/dist/discretize/strategies/bspline_strategy.js +0 -115
  370. package/dist/discretize/strategies/circle_strategy.d.ts +0 -7
  371. package/dist/discretize/strategies/circle_strategy.d.ts.map +0 -1
  372. package/dist/discretize/strategies/circle_strategy.js +0 -55
  373. package/dist/discretize/strategies/ellipse_strategy.d.ts +0 -7
  374. package/dist/discretize/strategies/ellipse_strategy.d.ts.map +0 -1
  375. package/dist/discretize/strategies/ellipse_strategy.js +0 -86
  376. package/dist/discretize/strategies/line_strategy.d.ts +0 -4
  377. package/dist/discretize/strategies/line_strategy.d.ts.map +0 -1
  378. package/dist/discretize/strategies/line_strategy.js +0 -40
  379. package/dist/discretize/strategy_registry.d.ts +0 -9
  380. package/dist/discretize/strategy_registry.d.ts.map +0 -1
  381. package/dist/discretize/strategy_registry.js +0 -34
  382. package/dist/index.d.ts +0 -30
  383. package/dist/index.d.ts.map +0 -1
  384. package/dist/index.js +0 -24
  385. package/dist/intersections/analytic_x_algorithm.d.ts +0 -10
  386. package/dist/intersections/analytic_x_algorithm.d.ts.map +0 -1
  387. package/dist/intersections/analytic_x_algorithm.js +0 -83
  388. package/dist/intersections/curve_x_engine.d.ts +0 -9
  389. package/dist/intersections/curve_x_engine.d.ts.map +0 -1
  390. package/dist/intersections/curve_x_engine.js +0 -27
  391. package/dist/intersections/index.d.ts +0 -5
  392. package/dist/intersections/index.d.ts.map +0 -1
  393. package/dist/intersections/index.js +0 -11
  394. package/dist/intersections/internal/certification.d.ts +0 -34
  395. package/dist/intersections/internal/certification.d.ts.map +0 -1
  396. package/dist/intersections/internal/certification.js +0 -238
  397. package/dist/intersections/internal/interval_clipping.d.ts +0 -29
  398. package/dist/intersections/internal/interval_clipping.d.ts.map +0 -1
  399. package/dist/intersections/internal/interval_clipping.js +0 -123
  400. package/dist/intersections/internal/kind.d.ts +0 -4
  401. package/dist/intersections/internal/kind.d.ts.map +0 -1
  402. package/dist/intersections/internal/kind.js +0 -16
  403. package/dist/intersections/internal/pair.d.ts +0 -9
  404. package/dist/intersections/internal/pair.d.ts.map +0 -1
  405. package/dist/intersections/internal/pair.js +0 -14
  406. package/dist/intersections/internal/result.d.ts +0 -20
  407. package/dist/intersections/internal/result.d.ts.map +0 -1
  408. package/dist/intersections/internal/result.js +0 -125
  409. package/dist/intersections/internal/sampling.d.ts +0 -15
  410. package/dist/intersections/internal/sampling.d.ts.map +0 -1
  411. package/dist/intersections/internal/sampling.js +0 -131
  412. package/dist/intersections/internal/segment.d.ts +0 -32
  413. package/dist/intersections/internal/segment.d.ts.map +0 -1
  414. package/dist/intersections/internal/segment.js +0 -137
  415. package/dist/intersections/internal/tolerance.d.ts +0 -10
  416. package/dist/intersections/internal/tolerance.d.ts.map +0 -1
  417. package/dist/intersections/internal/tolerance.js +0 -20
  418. package/dist/intersections/intersector.d.ts +0 -6
  419. package/dist/intersections/intersector.d.ts.map +0 -1
  420. package/dist/intersections/intersector.js +0 -1
  421. package/dist/intersections/numeric_x_algorithm.d.ts +0 -10
  422. package/dist/intersections/numeric_x_algorithm.d.ts.map +0 -1
  423. package/dist/intersections/numeric_x_algorithm.js +0 -73
  424. package/dist/intersections/solvers/bspline_self_solver.d.ts +0 -7
  425. package/dist/intersections/solvers/bspline_self_solver.d.ts.map +0 -1
  426. package/dist/intersections/solvers/bspline_self_solver.js +0 -308
  427. package/dist/intersections/solvers/line_line_pair_solver.d.ts +0 -7
  428. package/dist/intersections/solvers/line_line_pair_solver.d.ts.map +0 -1
  429. package/dist/intersections/solvers/line_line_pair_solver.js +0 -35
  430. package/dist/intersections/solvers/pair_solvers.d.ts +0 -94
  431. package/dist/intersections/solvers/pair_solvers.d.ts.map +0 -1
  432. package/dist/intersections/solvers/pair_solvers.js +0 -1078
  433. package/dist/intersections/solvers/polyline_pair_intersector.d.ts +0 -51
  434. package/dist/intersections/solvers/polyline_pair_intersector.d.ts.map +0 -1
  435. package/dist/intersections/solvers/polyline_pair_intersector.js +0 -731
  436. package/dist/intersections/types.d.ts +0 -11
  437. package/dist/intersections/types.d.ts.map +0 -1
  438. package/dist/intersections/types.js +0 -1
  439. package/dist/serialize/dump_types.d.ts +0 -101
  440. package/dist/serialize/dump_types.d.ts.map +0 -1
  441. package/dist/serialize/dump_types.js +0 -5
  442. package/dist/serialize/geom_mgr.d.ts +0 -24
  443. package/dist/serialize/geom_mgr.d.ts.map +0 -1
  444. package/dist/serialize/geom_mgr.js +0 -30
  445. package/dist/types/type_define.d.ts +0 -29
  446. package/dist/types/type_define.d.ts.map +0 -1
  447. package/dist/types/type_define.js +0 -10
  448. package/dist/types/type_guard.d.ts +0 -46
  449. package/dist/types/type_guard.d.ts.map +0 -1
  450. package/dist/types/type_guard.js +0 -5
  451. package/dist/utils/math_error.d.ts +0 -16
  452. package/dist/utils/math_error.d.ts.map +0 -1
  453. package/dist/utils/math_error.js +0 -35
  454. package/dist/utils/math_utils.d.ts +0 -9
  455. package/dist/utils/math_utils.d.ts.map +0 -1
  456. package/dist/utils/math_utils.js +0 -25
  457. package/dist/utils/precision.d.ts +0 -29
  458. package/dist/utils/precision.d.ts.map +0 -1
  459. package/dist/utils/precision.js +0 -44
@@ -0,0 +1,191 @@
1
+ import * as verb from '../verb/verb';
2
+ import { Curve3 } from './curve3d';
3
+ import { Vec3 } from '../base/vec3';
4
+ import { Interval } from '../base/interval';
5
+ import { types } from '../type_define/i_types';
6
+ import { EN_GEO_TYPE } from '../type_define/i_element_type';
7
+ import { DiscreteParam } from '../base/discrete_param';
8
+ import { INurbsCurve } from '../type_define/i_geometry';
9
+ import { TangentCone } from '../base/tangent_cone';
10
+ import { Ln3 } from './ln3';
11
+ import { ICurvesOverlapInfo } from '../algorithm/overlap/i_overlap';
12
+ import { Coord3 } from '../base/coord3';
13
+ import { Box3 } from '../base/box3';
14
+ /**
15
+ * Nurbs曲线
16
+ */
17
+ export declare class NurbsCurve3 extends Curve3 implements INurbsCurve<Vec3> {
18
+ /**
19
+ * 合并nurbs曲线,目前仅支持合并三阶曲线
20
+ * @param curve1
21
+ * @param curve2
22
+ * @param overlap 保证第一条曲线对应的重合区间为第一段,且第一条曲线的重合段为后半段
23
+ */
24
+ static merge(curve1: NurbsCurve3, curve2: NurbsCurve3, overlap?: ICurvesOverlapInfo, degree?: number): NurbsCurve3 | undefined;
25
+ /**
26
+ * 构造Bezier曲线,degree 为控制点数-1,最大度数为 8.
27
+ */
28
+ static makeBezier(controlPoints: types.IXYZ[], weights?: number[]): NurbsCurve3;
29
+ /**
30
+ * 通过控制点和次数构造准均匀nurbs curve
31
+ */
32
+ static makeByControlPoints(controlPoints: types.IXYZ[], degree?: number, knots?: number[], weights?: number[], range?: types.IInterval): NurbsCurve3;
33
+ /**
34
+ * 插值构造nurbs curve
35
+ * 曲线将插值经过所有传入的点,曲线默认为三次
36
+ */
37
+ static makeByInterpolationPts(pts: types.IXYZ[], degree?: number, closeSmooth?: boolean): NurbsCurve3;
38
+ static makeByInterpolationPointsInPlane(pts: types.IXYZ[], planeCoord: Coord3, degree?: number, closeSmooth?: boolean): NurbsCurve3;
39
+ static getBezierKnots(degree: number): number[];
40
+ /**
41
+ * 过滤重复点,只过滤连续的重复点
42
+ * @param pts 输入点列
43
+ */
44
+ private static _fiterCoPoint;
45
+ /**
46
+ * 针对verb库中插值方法点修改,大致流程基本不变,主要修改解方程的方式
47
+ * @param points 输入插值点
48
+ * @returns
49
+ */
50
+ private static _make3dNurbsByInterPoint;
51
+ /**
52
+ * 快速求解的方式采用基于追赶法的方式,由于矩阵并不是很整齐的原因,条状矩阵外扩保证了整齐,然后采用多次追赶的方式
53
+ * 先“追”3次,然后“赶”3次,得到对角矩阵后,归一化直接得到解
54
+ * 相比与LU分解常规求解,时间得到很大的提升
55
+ * @param A 输入矩阵
56
+ * @param b 系数
57
+ * @returns
58
+ */
59
+ private static _quickSolve;
60
+ private _verbCurve;
61
+ private _degree;
62
+ private _knots;
63
+ private _controlPoints;
64
+ private _weights;
65
+ constructor(verbCurve?: verb.geom.NurbsCurve, range?: types.IInterval);
66
+ toVerbNurbs(): verb.geom.NurbsCurve;
67
+ getDegree(): number;
68
+ getWeights(): number[];
69
+ getKnots(): number[];
70
+ getControlPoints(): Vec3[];
71
+ /**
72
+ * 获取定义域,参数 t 超过该范围无法求值
73
+ * range 为定义域上的一部分,用于裁切曲线
74
+ */
75
+ getDomain(): Interval;
76
+ isBezier(): boolean;
77
+ /**
78
+ * 判断nurbs是否近似为一条直线
79
+ */
80
+ getCoincideLine(angleTol?: number): Ln3 | undefined;
81
+ /**
82
+ * 判断NurbsCurve3d是否是平面曲线
83
+ * 如果是平面曲线:并且控制顶点能构造一个平面,则返回平面的法向;不能构造平面的,例如是一条直线的,只返回true;
84
+ * 如果不是平面曲线,返回false
85
+ */
86
+ isPlaneCurve3d(angleTol?: number): boolean | Vec3;
87
+ /**
88
+ * 获取参数值对应的曲线上的点
89
+ * @param t 参数(弧长)
90
+ */
91
+ getPtAt(t: number): Vec3;
92
+ /**
93
+ * 利用nurbs导数连续的特性,比较两个连续离散点与求取垂足点的关系,看是否满足关系然后在进行迭代求解
94
+ * @param point 求取垂足的点
95
+ * @param distEps 距离容差
96
+ * @param angleEps 角度容差
97
+ * @returns
98
+ */
99
+ getAllFootParams(point: types.IXYZ, distEps?: number, angleEps?: number): number[];
100
+ /**
101
+ * 获取点在曲线上的参数
102
+ * @param point
103
+ */
104
+ getParamAt(point: types.IXYZ): number;
105
+ private _getParamAtWithPoints;
106
+ /**
107
+ * 计算参数域内的最近点参数
108
+ * @param point 给定点
109
+ * @returns 参数
110
+ */
111
+ getNearestT(point: Vec3, rRange?: Interval): number;
112
+ /**
113
+ * 获取参数值对应的曲线上的点处的切向量
114
+ * @param t
115
+ * @returns 单位切向量
116
+ */
117
+ getTangentAt(t: number): Vec3;
118
+ /**
119
+ * 获取某参数t处的几阶导数
120
+ * t : 参数t
121
+ * n : 导数的阶数 // 譬如n = 2,会计算曲线在参数t处的0阶导(即曲线点)、1阶导、2阶导
122
+ */
123
+ getDerivatives(t: number, nth: number): Vec3[];
124
+ getTangentCone(range?: Interval, approx?: boolean): TangentCone;
125
+ /**
126
+ * 获取曲线上的弧长等分点,返回的第一个和最后一个分别为曲线的起点和终点
127
+ * @param count 等分点数量,数目限制最小为3
128
+ * @returns 单位切向量
129
+ */
130
+ getEqualDiversionPts(count?: number): Vec3[];
131
+ getKontIndex(knot: number, eps?: number): number;
132
+ getMultiplicityOfKnot(knot: number, k: number, eps?: number): number;
133
+ /**
134
+ * 插入单个节点
135
+ * @param knot
136
+ * @param eps
137
+ */
138
+ insertKnot(knot: number, eps?: number): void;
139
+ /**
140
+ * 插入单个节点重复插入multi次
141
+ * @param knot
142
+ * @param insertTimes
143
+ * @param eps
144
+ */
145
+ insertMultiKnot(knot: number, insertTimes: number, eps?: number): void;
146
+ /**
147
+ * 插入多个节点(暂未实现)
148
+ * @param knot
149
+ * @param eps
150
+ */
151
+ insertKnots(knot: number[], eps?: number): void;
152
+ getBox(range?: Interval): Box3;
153
+ /**
154
+ * 节点细化
155
+ * @param useDomainOrRange true就是要对整个domain范围作节点细化,false只对range内的节点细化(待完善)。
156
+ */
157
+ knotRefinement(useDomainOrRange?: boolean): void;
158
+ /**
159
+ * 在参数 t 处将 Nurbs 曲线切分为两部分 // 分割成两条完全独立的nurbs,对控制顶点做了重新计算
160
+ * @param t 切分点处的参数
161
+ * @param useRange 若真,则根据原参数域进行同步切分;若假,则切分得到的曲线以定义域作为参数域
162
+ * @return 返回切分得到的参数曲线,并会根据原参数域设置新的参数域。若参数有误则返回空数组
163
+ */
164
+ splitCurve(t: number, useRange?: boolean): NurbsCurve3[];
165
+ reverse(): this;
166
+ clone(): NurbsCurve3;
167
+ /**
168
+ * 获取曲线长度
169
+ */
170
+ getLength(range?: Interval): number;
171
+ transform(m: types.IMatrix4 | types.numberArrs4X4): this;
172
+ /**
173
+ * 离散曲线
174
+ * @param tolerance 相邻三点组成的三角形面积的最大值
175
+ * @returns 离散点
176
+ */
177
+ discrete(params?: DiscreteParam): Vec3[];
178
+ getType(): EN_GEO_TYPE;
179
+ dump(): types.IDBNurbsCurve3d;
180
+ load({ data: [degree, controlPts, _knots, _weights, range] }: types.IDBNurbsCurve3d): this;
181
+ private _updateParameters;
182
+ private _newCtrlPtsAtInsertKnot;
183
+ /**
184
+ *
185
+ * @param k 位置索引
186
+ * @param t 插入的节点参数
187
+ * @param times 插入次数
188
+ * @param multi 已有重复度
189
+ */
190
+ private _newCtrlPtsAtInsertMultiKnot;
191
+ }
@@ -0,0 +1,63 @@
1
+ import { Vec2 } from '../base/vec2';
2
+ import { Interval } from '../base/interval';
3
+ import { DiscreteParam } from '../base/discrete_param';
4
+ import { types } from '../type_define/i_types';
5
+ import { EN_GEO_TYPE } from '../type_define/i_element_type';
6
+ import { OffsetParameterMapper } from './offset_parameter_mapper';
7
+ import { Curve2 } from './curve2';
8
+ import { ICurve2dTransformExtra, IOffsetCurve } from '../type_define/i_geometry';
9
+ import { NurbsCurve2 } from './nurbs_curve2';
10
+ export declare class OffsetCurve2 extends Curve2 implements IOffsetCurve<Vec2> {
11
+ static makeByOffset(curve: Curve2, offset?: number): Curve2;
12
+ private _paramMapper;
13
+ private _baseCurve;
14
+ private _offset;
15
+ constructor(curve?: Curve2, offset?: number, range?: types.IInterval);
16
+ /**
17
+ * curve should be emutable!
18
+ */
19
+ getBaseCurve(): Curve2;
20
+ getParamMapper(): OffsetParameterMapper;
21
+ getDomain(): Interval;
22
+ /**
23
+ * 判断该曲线是否为周期曲线
24
+ */
25
+ isPeriodic(): boolean;
26
+ /**
27
+ * 判断该曲线是否为直线
28
+ * @returns
29
+ */
30
+ isLineLike(): boolean;
31
+ getOffset(): number;
32
+ setOffset(offset: number): void;
33
+ getPtAt(t: number): Vec2;
34
+ getParamAt(point: types.IXY): number;
35
+ getAllFootParams(point: types.IXY, lengthEps?: number): number[];
36
+ /**
37
+ * 获取某参数t处的几阶导数,例如 n = 2 时,会返回曲线在参数t处的坐标、1阶导、2阶导
38
+ * @param t 参数
39
+ * @param n 需要计算的导数的最大阶数
40
+ * @param snapToPreviousEnd true时吸附到前一段domain的末尾,false时吸附到后一段domain的起始。当 t === range.min 时,默认为 false,否则默认为 true。
41
+ */
42
+ getDerivatives(t: number, nth: number, snapToPreviousEnd?: boolean): Vec2[];
43
+ getSingularities(): number[];
44
+ getContinuousRanges(): Interval[];
45
+ reverse(): this;
46
+ offset(dDist: number): boolean;
47
+ /**
48
+ * 拟合成nurbscurve2d
49
+ */
50
+ toNurbs(degree?: number, lengthEps?: number): NurbsCurve2;
51
+ transform(m: types.IMatrix3 | types.numberArrs3X3, extra?: ICurve2dTransformExtra): this;
52
+ transformed(m: types.IMatrix3 | types.numberArrs3X3, extra?: ICurve2dTransformExtra): Curve2;
53
+ discrete(params?: DiscreteParam): Vec2[];
54
+ getType(): EN_GEO_TYPE.OFFSET_CURVE_2D;
55
+ clone(): OffsetCurve2;
56
+ dump(): types.IDBOffsetCurve2d;
57
+ load(json: types.IDBOffsetCurve2d): this;
58
+ protected _refineDegerateTangent(t: number, snapPre: boolean, tan: Vec2): Vec2;
59
+ private _updateParamMapper;
60
+ private _initRange;
61
+ private _startSettingChange;
62
+ private _endSettingChange;
63
+ }
@@ -0,0 +1,97 @@
1
+ import { Interval } from '../base/interval';
2
+ import { DiscreteParam } from '../base/discrete_param';
3
+ import { types } from '../type_define/i_types';
4
+ import { EN_GEO_TYPE } from '../type_define/i_element_type';
5
+ import { OffsetParameterMapper } from './offset_parameter_mapper';
6
+ import { Curve3 } from './curve3d';
7
+ import { Vec3 } from '../base/vec3';
8
+ import { ICurve3dTransformExtra, IOffsetCurve } from '../type_define/i_geometry';
9
+ import { NurbsCurve3 } from './nurbs_curve3';
10
+ import { verb } from '../verb/export_verb';
11
+ /**
12
+ * 仅支持三维空间中的平面曲线
13
+ */
14
+ export declare class OffsetCurve3 extends Curve3 implements IOffsetCurve<Vec3> {
15
+ /**
16
+ * 基于给定曲线,根据偏移量生成偏置曲线
17
+ * @param curve 基曲线
18
+ * @param dz 偏移的 z 轴方向
19
+ * @param offsetXY 在 xy 平面上的偏移量
20
+ * @param offsetZ 在 z 轴方向上的偏移量
21
+ */
22
+ static makeByOffset(curve: Curve3, dz: Vec3, offsetXY: number, offsetZ?: number): Curve3;
23
+ /**
24
+ * 基于给定曲线,生成一条过给定目标点的偏置曲线
25
+ * @param curve 基曲线
26
+ * @param point 给定的目标点
27
+ */
28
+ static makeByTargetPoint(curve: Curve3, point: types.IXYZ): Curve3;
29
+ private _paramMapper;
30
+ private _baseCurve;
31
+ private _dz;
32
+ private _offsetXY;
33
+ private _offsetZ;
34
+ constructor();
35
+ /**
36
+ * 基于 curve 创建一条偏置曲线
37
+ * @param curve 基曲线
38
+ * @param dz 基曲线所在平面的法向
39
+ * @param offsetXY 偏置后在所在平面上的偏移量
40
+ * @param offsetZ 偏置后在所在平面法向上的偏移量
41
+ */
42
+ constructor(curve: Curve3, dz: Vec3, offsetXY?: number, offsetZ?: number, range?: types.IInterval);
43
+ getBaseCurve(): Curve3;
44
+ getParamMapper(): OffsetParameterMapper;
45
+ getDomain(): Interval;
46
+ /**
47
+ * 判断该曲线是否为直线
48
+ * @returns
49
+ */
50
+ isLineLike(): boolean;
51
+ toVerbNurbs(): verb.geom.NurbsCurve;
52
+ getOffsetXY(): number;
53
+ setOffsetXY(offsetXY: number): void;
54
+ getOffsetZ(): number;
55
+ setOffsetZ(offsetZ: number): void;
56
+ getDz(): Vec3;
57
+ getPtAt(t: number): Vec3;
58
+ getParamAt(point: types.IXYZ): number;
59
+ /**
60
+ * 判断Curve3d是否是平面曲线
61
+ * 如果是平面曲线:并且能构造一个平面,则返回平面的法向;不能构造平面的,例如是一条直线的,只返回true;如果不是平面曲线(即空间曲线),返回false
62
+ */
63
+ isPlaneCurve3d(angleTol?: number): boolean | Vec3;
64
+ getAllFootParams(point: types.IXYZ, lengthEps?: number): number[];
65
+ /**
66
+ * 获取某参数t处的几阶导数,例如 n = 2 时,会返回曲线在参数t处的坐标、1阶导、2阶导
67
+ * @param t 参数
68
+ * @param n 需要计算的导数的最大阶数
69
+ * @param snapToPreviousEnd true时吸附到前一段domain的末尾,false时吸附到后一段domain的起始。当 t === range.min 时,默认为 false,否则默认为 true。
70
+ */
71
+ getDerivatives(t: number, nth: number, snapToPreviousEnd?: boolean): Vec3[];
72
+ getSingularities(): number[];
73
+ getContinuousRanges(): Interval[];
74
+ reverse(): this;
75
+ /**
76
+ * 拟合成nurbscurve3d
77
+ */
78
+ toNurbs(degree?: number, lengthEps?: number): NurbsCurve3;
79
+ transform(m: types.IMatrix4 | types.numberArrs4X4, extra?: ICurve3dTransformExtra): this;
80
+ transformed(m: types.IMatrix4 | types.numberArrs4X4, extra?: ICurve3dTransformExtra): Curve3;
81
+ discrete(params?: DiscreteParam): Vec3[];
82
+ getType(): EN_GEO_TYPE.OFFSET_CURVE_3D;
83
+ clone(): OffsetCurve3;
84
+ dump(): types.IDBOffsetCurve3d;
85
+ load(json: types.IDBOffsetCurve3d): this;
86
+ protected _refineDegerateTangent(t: number, snapPre: boolean, tan: Vec3): Vec3;
87
+ private _updateParamMapper;
88
+ private _initRange;
89
+ /**
90
+ * 参数域发生变化时,可调用该 start/end 方法,以保留原 range
91
+ */
92
+ private _startSettingChange;
93
+ /**
94
+ * 参数域发生变化时,可调用该 start/end 方法,以保留原 range
95
+ */
96
+ private _endSettingChange;
97
+ }
@@ -0,0 +1,72 @@
1
+ import { Interval } from '../base/interval';
2
+ import { Vec } from '../base/vec';
3
+ import { IArc, IOffsetCurve } from '../type_define/i_geometry';
4
+ import { types } from '../type_define/i_types';
5
+ interface IDomain {
6
+ min: number;
7
+ baseMin: number;
8
+ length: number;
9
+ isReversed: boolean;
10
+ }
11
+ /**
12
+ * 参数种类。当映射结果为周期域中的非线性映射、或非周期域中的中间非线性映射部分为 MidGap;当映射结果为非周期定义域时,若小于定义域最小值则为 StartGap,若大于定义域最大值则为 EndGap;
13
+ */
14
+ export declare enum ParamType {
15
+ Normal = 0,
16
+ Reversed = 1,
17
+ StartGap = 2,// period === 0 时,参数小于最小定义域
18
+ MidGap = 3,
19
+ EndGap = 4
20
+ }
21
+ export declare class OffsetParameterMapper {
22
+ private _domains?;
23
+ private _period;
24
+ private _basePeriod;
25
+ private _singularities;
26
+ /**
27
+ * 生成基于椭圆弧的偏置曲线的参数映射器
28
+ * case 1. 正常周期曲线(dr > -rho_min || dr < -r_max)
29
+ * case 2. 周期曲线,含 4 奇异点(-r_max < dr < -r_min)
30
+ * case 3. 曲线自交,根据参数域进行裁剪和映射
31
+ * case 3.1 两头裁剪的周期,含 2 奇异点
32
+ * case 3.2 一端延长、一端裁剪的曲线,含 1 奇异点
33
+ * case 3.3 两端延长的曲线
34
+ * @param ofsCrv 待生成参数映射器的偏置曲线,需采用 Simple 映射器进行初始化。
35
+ * @param arc
36
+ * @param dr
37
+ */
38
+ static ByArc<VectorType extends Vec>(ofsCrv: IOffsetCurve<VectorType>, arc: IArc<VectorType>, dr: number): OffsetParameterMapper;
39
+ static periodicBaseCurve<VectorType extends Vec>(ofsCrv: IOffsetCurve<VectorType>, offset: number): OffsetParameterMapper;
40
+ static Simple(): OffsetParameterMapper;
41
+ private static _calcSelfIntersect;
42
+ constructor(_domains?: IDomain[] | undefined, _period?: number, _basePeriod?: number, _singularities?: number[]);
43
+ /**
44
+ * 计算在基曲线上的参数
45
+ * @param t 在映射曲线上的参数
46
+ * @param snapToPreviousEnd true时吸附到前一段domain的末尾,false时吸附到后一段domain的起始
47
+ */
48
+ getBaseParam(t: number, snapToPreviousEnd?: boolean, eps?: number): number;
49
+ /**
50
+ * 计算在映射曲线上的参数
51
+ * @param baseT 在基曲线上的参数
52
+ * @param snapToPreviousEnd true时吸附到前一段domain的末尾,false时吸附到后一段domain的起始
53
+ */
54
+ getParam(baseT: number, snapToPreviousEnd?: boolean): number;
55
+ /**
56
+ * 计算在映射曲线上的参数,并返回参数种类信息
57
+ * @param baseT
58
+ * @param snapToPreviousEnd 当基曲线为周期曲线时,若 bastT 位于首尾 gap 处:当传入参数为 true 时吸附到前一段domain的末尾,false时吸附到后一段domain的起始
59
+ */
60
+ getParamInfo(baseT: number, snapToPreviousEnd?: boolean): {
61
+ param: number;
62
+ type: ParamType;
63
+ };
64
+ isPeriod(): boolean;
65
+ getPeriod(): number;
66
+ getBasePeriod(): number;
67
+ getRange(baseRange: Interval | types.IInterval): Interval;
68
+ getSingularities(): number[];
69
+ getDomain(): Interval;
70
+ clone(): OffsetParameterMapper;
71
+ }
72
+ export {};
@@ -0,0 +1,109 @@
1
+ import { Coord3 } from '../base/coord3';
2
+ import { Vec2 } from '../base/vec2';
3
+ import { Vec3 } from '../base/vec3';
4
+ import { Ln2 } from './ln2';
5
+ import { Ln3 } from './ln3';
6
+ import { CoordBasedSurface } from './coord_based_surface';
7
+ import { Curve2 } from './curve2';
8
+ import { Curve3 } from './curve3d';
9
+ import { types } from '../type_define/i_types';
10
+ import { EN_GEO_TYPE } from '../type_define/i_element_type';
11
+ import { Tol } from '../base/tol';
12
+ import { Surface } from './surface';
13
+ /**
14
+ * 平面
15
+ */
16
+ declare class Plane extends CoordBasedSurface {
17
+ static XOY(z?: number): Plane;
18
+ static YOZ(x?: number): Plane;
19
+ static ZOX(y?: number): Plane;
20
+ /**
21
+ * 通过三个点创建平面. 如果三点共线则为undefined
22
+ */
23
+ static makeBy3Pts(pt1: types.IXYZ, pt2: types.IXYZ, pt3: types.IXYZ): Plane | undefined;
24
+ /**
25
+ * 从一堆不重复的点集计算平面,请尽量保证所有点共面。如果这些点共线,则计算不出平面,返回undefined
26
+ * @param points 一堆点集。根据一堆点集能计算出平面的法向
27
+ * @param refXDir 平面参考的x方向
28
+ */
29
+ static makeByPoints(points: Vec3[], refXDir?: Vec3): Plane | undefined;
30
+ /**
31
+ * 通过点,法向创建一个平面
32
+ * @param pt
33
+ * @param normal
34
+ * @param xDir(可选参数)如果不传,则会自动算出xy的方向
35
+ */
36
+ static makeByPtNormal(pt: types.IXYZ, normal: types.IXYZ, xDir?: types.IXYZ): Plane;
37
+ /**
38
+ * 原点+UV方向,当uv方向不垂直时,以U向为准,调整v向
39
+ * @param origin
40
+ * @param dirU
41
+ * @param dirV
42
+ */
43
+ constructor(origin: types.IXYZ, dirU: types.IXYZ, dirV: types.IXYZ);
44
+ /**
45
+ * 原点+法向, UV方向会自动计算出来
46
+ * @param origin
47
+ * @param norm
48
+ */
49
+ constructor(origin: types.IXYZ, norm: types.IXYZ);
50
+ constructor(coordinate: Coord3);
51
+ getOrigin(): Vec3;
52
+ getNorm(): Vec3;
53
+ reverse(): this;
54
+ getUDir(): Vec3;
55
+ getVDir(): Vec3;
56
+ getPtAt(uv: types.IXY): Vec3;
57
+ getNormAt(uv: Vec2): Vec3;
58
+ /**
59
+ * 获取某参数t处的n阶偏导数
60
+ * t : 参数t
61
+ * n : 导数的阶数 // 譬如n = 2,会计算曲线在参数t处的0阶导(即曲线点),1阶偏导(包含偏u、偏v),2阶偏导(包含偏uu、偏uv、偏vv)
62
+ */
63
+ getDerivatives(uv: types.IXY, n?: number): Vec3[];
64
+ getUVAt(pt: types.IXYZ): Vec2;
65
+ getLine3DByPts(uv1: types.IXY, uv2: types.IXY): Ln3;
66
+ getLine3D(line2d: Curve2): Ln3;
67
+ isRuled(): boolean;
68
+ isParellel(other: Plane, tol?: number): boolean;
69
+ isPerpendicular(other: Plane, tol?: number): boolean;
70
+ isCoplanar(other: Surface, tol?: Tol): boolean;
71
+ containsCurve(curve: Curve3, lengthTol?: number, angleTol?: number): boolean;
72
+ /**
73
+ * 获取等参曲线
74
+ * @param param 等参曲线处的参数
75
+ * @param useV true 时返回等 v 参数曲线,false 时返回等 u 参数曲线
76
+ */
77
+ getIsoCurve(param: number, useV: boolean): Curve3;
78
+ /**
79
+ * 返回undefined说明line3d投影成了1个点
80
+ * @param line3d
81
+ */
82
+ getLine2D(line3d: Ln3): Ln2 | undefined;
83
+ /**
84
+ * 将三维曲线,转成参数域的二维曲线,保证曲线的精确性
85
+ * @param curveOnSurface 在平面上的曲线 // 传入参数时,请保证曲线必须在平面上
86
+ */
87
+ getCurve2d(curveOnSurface: Curve3): Curve2;
88
+ /**
89
+ * 将参数域中的二维曲线映射到平面上的三维曲线
90
+ * @param curve
91
+ */
92
+ getCurve3d(curve: Curve2): Curve3;
93
+ /**
94
+ * 乘上一个变换矩阵
95
+ */
96
+ transform(m: types.IMatrix4 | types.numberArrs4X4): this;
97
+ /**
98
+ * 深拷贝
99
+ */
100
+ clone(): Plane;
101
+ getType(): EN_GEO_TYPE.PLANE;
102
+ /**
103
+ * 抽取元数据,用于序列化
104
+ * @returns 返回js对象
105
+ */
106
+ dump(): types.IDBPlane;
107
+ load(json: types.IDBPlane): this;
108
+ }
109
+ export { Plane };
@@ -0,0 +1,12 @@
1
+ export declare abstract class Polyline<PointType> {
2
+ protected _points: PointType[];
3
+ protected _ts: number[];
4
+ constructor(points: PointType[], ts: number[]);
5
+ protected abstract _getInterpolator(): (p1: PointType, p2: PointType, ratio: number) => PointType;
6
+ get ts(): ReadonlyArray<number>;
7
+ get points(): ReadonlyArray<PointType>;
8
+ getPtAt(t: number): PointType;
9
+ }
10
+ export declare class PolylineFunction extends Polyline<number> {
11
+ protected _getInterpolator(): (p1: number, p2: number, ratio: number) => number;
12
+ }
@@ -0,0 +1,78 @@
1
+ import { Curve2 } from './curve2';
2
+ import { types } from '../type_define/i_types';
3
+ import { Vec2 } from '../base/vec2';
4
+ import { Box2 } from '../base/box2';
5
+ import { EN_GEO_TYPE } from '../type_define/i_element_type';
6
+ import { Ln2 } from './ln2';
7
+ import { Interval } from '../base/interval';
8
+ import { DiscreteParam } from '../base/discrete_param';
9
+ /**
10
+ * 二维多段直线
11
+ * 主要用在拉伸,扫掠算法中,形成光滑的面
12
+ */
13
+ export declare class SmoothPoly2 extends Curve2 {
14
+ private _pts;
15
+ private _ts;
16
+ constructor();
17
+ constructor(pts: types.IXY[]);
18
+ /**
19
+ * 获取连续点的数组
20
+ */
21
+ getPoints(): ReadonlyArray<Vec2>;
22
+ /**
23
+ * 获取连续点对应参数的数组
24
+ */
25
+ getTs(): ReadonlyArray<number>;
26
+ /**
27
+ * 获取所有的直线段
28
+ */
29
+ getSegments(): Ln2[];
30
+ /**
31
+ * 获取某参数对应的点
32
+ */
33
+ getPtAt(t: number): Vec2;
34
+ /**
35
+ * 获取某参数对应的点
36
+ */
37
+ getParamAt(point: types.IXY): number;
38
+ /**
39
+ * 获取某参数处的切线
40
+ */
41
+ getTangentAt(t: number): Vec2;
42
+ /**
43
+ * 获取某参数t处的几阶导数
44
+ * t : 参数t
45
+ * n : 导数的阶数 // 譬如n = 2,会计算曲线在参数t处的0阶导(即曲线点)、1阶导、2阶导
46
+ */
47
+ getDerivatives(t: number, n: number): Vec2[];
48
+ /**
49
+ * 获取曲线(给定参数域区间段的)长度
50
+ */
51
+ getLength(range?: Interval): number;
52
+ /**
53
+ * 反向
54
+ */
55
+ reverse(): this;
56
+ offset(dDist: number): boolean;
57
+ /**
58
+ * 分割SmoothPoly为两段,如果分割点不在直线上,则返回空数组
59
+ * @param param
60
+ * @param tolerance
61
+ */
62
+ split(params: number[], tolerance?: number): Curve2[];
63
+ transform(m: types.IMatrix3 | types.numberArrs3X3): this;
64
+ /**
65
+ * 计算包围盒
66
+ */
67
+ getBBox(range?: Interval): Box2;
68
+ discrete(params?: DiscreteParam): Vec2[];
69
+ getType(): EN_GEO_TYPE.SMOOTHPOLY_2D;
70
+ clone(): SmoothPoly2;
71
+ /**
72
+ * 抽取元数据,用于序列化
73
+ */
74
+ dump(): types.IDBSmoothPoly2d;
75
+ load(json: types.IDBSmoothPoly2d): this;
76
+ private _getSegment;
77
+ private _calParams;
78
+ }