@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,25 @@
1
+ import { Surface } from './surface';
2
+ import { Coord3 } from '../base/coord3';
3
+ import { types } from '../type_define/i_types';
4
+ export declare abstract class CoordBasedSurface extends Surface {
5
+ protected _coord: Coord3;
6
+ /**
7
+ * 获取局部坐标系
8
+ */
9
+ getCoord(): Coord3;
10
+ /**
11
+ * 设置局部坐标系
12
+ */
13
+ setCoord(v: Coord3): void;
14
+ /**
15
+ * 平移,改变自己
16
+ */
17
+ translate(offset: types.IXYZ): this;
18
+ /**
19
+ * 绕坐标轴/点的旋转,改变自己
20
+ * @param angle 旋转的角度
21
+ * @param pivot 旋转轴上一点
22
+ * @param axis 绕哪个轴旋转
23
+ */
24
+ rotate(angle: number, pivot: types.IXYZ, axis?: types.IXYZ): this;
25
+ }
@@ -0,0 +1,228 @@
1
+ import { Interval } from '../base/interval';
2
+ import { Vec } from '../base/vec';
3
+ import { DiscreteParam } from '../base/discrete_param';
4
+ import { types } from '../type_define/i_types';
5
+ import { GeoElement } from '../base/geo_element';
6
+ /**
7
+ * @author tiansk
8
+ * 参数曲线的基类
9
+ */
10
+ declare abstract class Curve<PointType extends Vec> extends GeoElement {
11
+ protected _range: Interval;
12
+ constructor();
13
+ /**
14
+ * 获取某参数对应的点
15
+ */
16
+ abstract getPtAt(t: number): PointType;
17
+ /**
18
+ * 获取某点(点也可以不在曲线上)对应的参数t(不限参数域)
19
+ */
20
+ abstract getParamAt(point: types.IXY | PointType): number;
21
+ /**
22
+ * 获得曲线在参数域 rRange 上的切向锥
23
+ * @param range 参数域
24
+ * @param bApprox true = 近似切向锥;false = 精确切向锥
25
+ */
26
+ /**
27
+ * 获取某参数t处的几阶导数,例如 n = 2 时,会返回曲线在参数t处的坐标、1阶导、2阶导
28
+ * @param t 参数
29
+ * @param n 需要计算的导数的最大阶数
30
+ * @param snapToPreviousEnd 参数点在奇异点附近时,当输入为true时返回奇异点的前导数,false时返回奇异点的后导数。当 t === range.min 时,默认为 false,否则默认为 true。
31
+ */
32
+ abstract getDerivatives(t: number, n: number, snapToPreviousEnd?: boolean): PointType[];
33
+ /**
34
+ * 反向,改变自己
35
+ */
36
+ abstract reverse(): this;
37
+ /**
38
+ * 依据给定参数点,将曲线分割成多段。如果参数点都不在曲线上,则返回空的数组
39
+ * @param param
40
+ * @param tolerance
41
+ */
42
+ abstract split(params: number[], tolerance?: number): Curve<PointType>[];
43
+ /**
44
+ * 获取某点在曲线上的所有垂足点的参数t
45
+ * 备注:此外,在pt_to_curve3d_distance.ts文件中,包装了一个getFootPointInRange函数,直接计算range内最小距离垂足点的函数,比计算所有的比较垂足然后取最小效率更高
46
+ */
47
+ getAllFootParams(point: types.IXY | PointType, _lengthEps?: number): number[];
48
+ /**
49
+ * 计算给定点的参数
50
+ * @param thePt 要反求参数的point
51
+ * @param refT 给一个参考的参数
52
+ * @param lengthEps 反求参数的精度容差
53
+ * @param validLength 如果需要验证求到的参数是否距离给定参考的参数refT太远,如果距离太远可能是计算的参数不准,用其他方法计算所有的参数,选一个最近的参数
54
+ */
55
+ getParamNearT(thePt: types.IXY | PointType, refT: number, lengthEps?: number, angleEps?: number, validLength?: number): number;
56
+ /**
57
+ * 判断该曲线是否为周期曲线
58
+ */
59
+ isPeriodic(): boolean;
60
+ /**
61
+ * 判断该曲线是否为直线
62
+ * @returns
63
+ */
64
+ isLineLike(): boolean;
65
+ /**
66
+ * 反向,得到一个新的曲线对象
67
+ */
68
+ reversed(): Curve<PointType>;
69
+ /**
70
+ * 获取曲线起点
71
+ */
72
+ getStartPt(): PointType;
73
+ /**
74
+ * 获取曲线末点
75
+ */
76
+ getEndPt(): PointType;
77
+ /**
78
+ * 获取曲线中点
79
+ */
80
+ getMidPt(): PointType;
81
+ /**
82
+ * 获取曲线(给定参数域区间段的)长度
83
+ */
84
+ getLength(range?: Interval): number;
85
+ /**
86
+ * 离散成点集
87
+ */
88
+ discrete(params?: DiscreteParam): PointType[];
89
+ /**
90
+ * 获取曲线的domain
91
+ */
92
+ getDomain(): Interval;
93
+ /**
94
+ * 获取曲线起点处参数值
95
+ */
96
+ getStartParam(): number;
97
+ /**
98
+ * 获取曲线末点处参数值
99
+ */
100
+ getEndParam(): number;
101
+ /**
102
+ * 获取起点处的切线
103
+ */
104
+ getStartTangent(): PointType;
105
+ /**
106
+ * 获取末点处的切线
107
+ */
108
+ getEndTangent(): PointType;
109
+ /**
110
+ * 获取中点处的切线
111
+ */
112
+ getMidTangent(): PointType;
113
+ /**
114
+ * 获取某参数处的切线
115
+ * @param t 参数
116
+ * @param snapToPreviousEnd 参数点在奇异点附近时,当输入为true时返回奇异点前的切向量,false时返回奇异点后的切向量。当 t === range.min 时,默认为 false,否则默认为 true。
117
+ */
118
+ getTangentAt(t: number, snapToPreviousEnd?: boolean): PointType;
119
+ /**
120
+ * 获取奇异点
121
+ */
122
+ getSingularities(): number[];
123
+ /**
124
+ * 从几何上判断该点是否是起点
125
+ * @param point
126
+ */
127
+ isStartPt(point: types.IXY | PointType, tolerance?: number): boolean;
128
+ /**
129
+ * 从几何上判断该点是否是末点
130
+ * @param point
131
+ */
132
+ isEndPt(point: types.IXY | PointType, tolerance?: number): boolean;
133
+ /**
134
+ * point投影在curve上的点p是否在曲线上
135
+ * @param point
136
+ */
137
+ containsProjectedPt(point: types.IXY | PointType, tolerance?: number): boolean;
138
+ /**
139
+ * 是否包含某个点, 即某点是否在该曲线段上
140
+ */
141
+ containsPt(point: types.IXY | PointType, tolerance?: number): boolean;
142
+ /**
143
+ * 点到曲线的垂足
144
+ */
145
+ getProjectedPtBy(point: types.IXY | PointType): PointType;
146
+ /**
147
+ * 计算距离迭代方法函数:从给定参数出发,迭代求取最近的垂足的点;如果没有垂足点返回undefined。(二维三维曲线通用)
148
+ * @param point 目标点
149
+ * @param param0 迭代的初始参数
150
+ * @param paramEps 参数的迭代终止误差
151
+ */
152
+ getFootByIterate(point: types.IXY | PointType, param0?: number, distEps?: number, angleEps?: number, clampParam?: boolean): number | undefined;
153
+ /**
154
+ * 二分+迭代方法:从给定参数出发,迭代求取最近的垂足的点;如果没有垂足点返回undefined。(二维三维曲线通用)
155
+ * @param point 目标点
156
+ * @param param0 迭代的初始参数
157
+ * @param paramEps 参数的迭代终止误差
158
+ */
159
+ getFootByDichotomy(point: types.IXY | PointType, param1: number, param2: number, distEps?: number, angleEps?: number, clampParam?: boolean): number | undefined;
160
+ /**
161
+ * 延伸曲线,若曲线参数域为[0,1]
162
+ * > 从尾部增加1,参数域变为[0,2]
163
+ *
164
+ * > 从头部增加1,参数域变为[-1,1]
165
+ * @param howLong 延伸长度
166
+ * @param bTail 是否从尾部增加
167
+ */
168
+ extend(howLong: number, bTail?: boolean): this;
169
+ /**
170
+ * 从参数域的2端延伸曲线
171
+ * @param howLong 延伸长度
172
+ */
173
+ extendDouble(howLong: number): this;
174
+ /**
175
+ * 获取参数域的拷贝
176
+ */
177
+ getRange(): Interval;
178
+ /**
179
+ * 重设参数域
180
+ */
181
+ setRange(min: number, max: number): this;
182
+ /**
183
+ * 重设参数域
184
+ */
185
+ setRange(range: Interval): this;
186
+ /**
187
+ * 设置参数域为单向或双向无穷
188
+ * @param min
189
+ */
190
+ setRangeInfinit(min?: number): void;
191
+ /**
192
+ * 设置参数域为单向无穷
193
+ * @param min
194
+ */
195
+ setRangeMaxInfinit(): void;
196
+ /**
197
+ * 设置参数域为单向无穷
198
+ * @param min
199
+ */
200
+ setRangeMinInfinit(): void;
201
+ /**
202
+ * 2曲线是否在几何上相等
203
+ * > 返回值:
204
+ * - 0不相等
205
+ * - 1相等且方向相同
206
+ * - -1相等且方向相反
207
+ * @param another
208
+ * @param torlerance
209
+ */
210
+ equals(another: Curve<PointType>, torlerance?: number): 0 | 1 | -1;
211
+ clone(): Curve<PointType>;
212
+ /**
213
+ * 通过等分参数域来获得离散结果
214
+ * @param segmentCount
215
+ */
216
+ discreteBySegmentCount(segmentCount: number): PointType[];
217
+ /**
218
+ * 获取插值点
219
+ */
220
+ getInterpPts(lengthEps: number): {
221
+ params: number[];
222
+ pts: Vec[];
223
+ };
224
+ protected _tessellateByPoints(points: PointType[], name: string): types.IRenderEdge;
225
+ protected _getSnapToPrevious(t: number, snapPre?: boolean): boolean;
226
+ protected _refineDegerateTangent(_t: number, _snapPre: boolean, tan: PointType): PointType;
227
+ }
228
+ export { Curve };
@@ -0,0 +1,62 @@
1
+ import { Box2 } from '../base/box2';
2
+ import { Curve } from './curve';
3
+ import { types } from '../type_define/i_types';
4
+ import { Vec2 } from '../base/vec2';
5
+ import { ICurve2dTransformExtra, IGeometry2d } from '../type_define/i_geometry';
6
+ import { Interval } from '../base/interval';
7
+ /**
8
+ * 二维曲线的基类,所有二维曲线都是参数曲线,且是弧长参数化曲线
9
+ */
10
+ declare abstract class Curve2 extends Curve<Vec2> implements IGeometry2d {
11
+ /**
12
+ * 曲线按给定距离进行偏移
13
+ * @param distance 等距量:>0 = 右侧;<0 = 左侧
14
+ * @returns 是否等距成功:true = 是;false = 否
15
+ * @deprecated 使用 OffsetCurve2.makeByCurve() 来代替
16
+ */
17
+ abstract offset(distance: number): boolean;
18
+ /**
19
+ * 乘上一个变换矩阵,改变自己(圆弧,暂时只支持等比例缩放)
20
+ */
21
+ abstract transform(m: types.IMatrix3 | types.numberArrs3X3, extra?: ICurve2dTransformExtra): this;
22
+ /**
23
+ * 计算曲线在给定参数区间的包围盒,计算效率更高,但是包的没有BoundingBox紧凑
24
+ * @param range
25
+ */
26
+ getBox(range?: Interval): Box2;
27
+ /**
28
+ * 计算曲线在给定参数区间的包围盒,如果没有传入参数域则计算曲线默认参数域的包围盒
29
+ */
30
+ getBBox(range?: Interval): Box2;
31
+ /**
32
+ * 依据给定参数点,将曲线分割成多段。如果参数点都不在曲线上,则返回空的数组
33
+ * @param param
34
+ * @param tolerance
35
+ */
36
+ split(params: number[], tolerance?: number): Curve2[];
37
+ /**
38
+ * 平移,改变自己
39
+ */
40
+ translate(offset: types.IXY): this;
41
+ /**
42
+ * 绕坐标轴/点的旋转,改变自己
43
+ * @param angle 旋转的角度
44
+ * @param pivot 旋转轴上一点
45
+ */
46
+ rotate(angle: number, pivot?: types.IXY): this;
47
+ /**
48
+ * 缩放,改变自己
49
+ * 直线支持非等比,其他情况都是等比例缩放
50
+ * @param factor 放大因子
51
+ * @param center 缩放中心
52
+ */
53
+ scale(factor: number, center?: types.IXY): this;
54
+ /**
55
+ * 变换,得到变换后新的曲线对象
56
+ * @param m
57
+ */
58
+ transformed(m: types.IMatrix3 | types.numberArrs3X3, extra?: ICurve2dTransformExtra): Curve2;
59
+ reversed(): Curve2;
60
+ clone(): Curve2;
61
+ }
62
+ export { Curve2 };
@@ -0,0 +1,66 @@
1
+ import { Curve } from './curve';
2
+ import { types } from '../type_define/i_types';
3
+ import { Box3 } from '../base/box3';
4
+ import { ICurve3dTransformExtra, IGeometry3d } from '../type_define/i_geometry';
5
+ import { Interval } from '../base/interval';
6
+ import { Vec3 } from '../base/vec3';
7
+ import { verb } from '../verb/export_verb';
8
+ /**
9
+ * 三维参数曲线
10
+ */
11
+ declare abstract class Curve3 extends Curve<Vec3> implements IGeometry3d {
12
+ /**
13
+ * 乘上一个变换矩阵,改变自己
14
+ */
15
+ abstract transform(m: types.IMatrix4 | types.numberArrs4X4, extra?: ICurve3dTransformExtra): this;
16
+ /**
17
+ * 转成nurbs曲线
18
+ */
19
+ abstract toVerbNurbs(range?: Interval): verb.geom.NurbsCurve;
20
+ /**
21
+ * 计算曲线在给定参数区间的包围盒,计算效率更高,但是包的没有BoundingBox紧凑
22
+ * @param range
23
+ */
24
+ getBox(range?: Interval): Box3;
25
+ /**
26
+ * 计算曲线在给定参数区间的紧包围盒,如果没有传入参数域则计算曲线默认参数域的包围盒
27
+ */
28
+ getBBox(range?: Interval): Box3;
29
+ /**
30
+ * 平移,改变自己
31
+ */
32
+ translate(offset: types.IXYZ): this;
33
+ /**
34
+ * 绕坐标轴/点的旋转,改变自己
35
+ * @param angle 旋转的角度
36
+ * @param pivot 旋转轴上一点
37
+ * @param axis 绕哪个轴旋转
38
+ */
39
+ rotate(angle: number, pivot: types.IXYZ, axis?: types.IXYZ): this;
40
+ /**
41
+ * 缩放,改变自己
42
+ * 直线支持非等比,其他情况都是等比例缩放
43
+ * @param factor 放大因子
44
+ * @param center 缩放中心
45
+ */
46
+ scale(factor: number, center: types.IXYZ): this;
47
+ /**
48
+ * 变换,得到变换后新的曲线对象
49
+ * @param m
50
+ */
51
+ transformed(m: types.IMatrix4 | types.numberArrs4X4, extra?: ICurve3dTransformExtra): Curve3;
52
+ /**
53
+ * 判断Curve3d是否是平面曲线
54
+ * 如果是平面曲线:并且能构造一个平面,则返回平面的法向;不能构造平面的,例如是一条直线的,只返回true;如果不是平面曲线(即空间曲线),返回false
55
+ */
56
+ isPlaneCurve3d(angleTol?: number): boolean | Vec3;
57
+ /**
58
+ * 依据给定参数点,将曲线分割成多段。如果参数点都不在曲线上,则返回空的数组
59
+ * @param param
60
+ * @param tolerance
61
+ */
62
+ split(params: number[], tolerance?: number): Curve3[];
63
+ reversed(): Curve3;
64
+ clone(): Curve3;
65
+ }
66
+ export { Curve3 };
@@ -0,0 +1,73 @@
1
+ import { Coord3 } from '../base/coord3';
2
+ import { Vec2 } from '../base/vec2';
3
+ import { Vec3 } from '../base/vec3';
4
+ import { Curve2 } from './curve2';
5
+ import { Curve3 } from './curve3d';
6
+ import { types } from '../type_define/i_types';
7
+ import { EN_GEO_TYPE } from '../type_define/i_element_type';
8
+ import { Arc3 } from './arc3d';
9
+ import { Tol } from '../base/tol';
10
+ import { PeriodInterval } from '../base/period_inverval';
11
+ import { CircularSurface } from './circular_surface';
12
+ import { Surface } from './surface';
13
+ /**
14
+ *
15
+ * 圆柱面, U向参数域[0, 2PI*r], V向参数域[-OO, +OO]
16
+ * 构造整跨周期 Brep 圆柱面时,需添加 Edge 连接上下两侧 Edge,从而形成外环
17
+ */
18
+ declare class Cylinder extends CircularSurface {
19
+ static makeCylinderByArc3d(arc3: Arc3): Cylinder;
20
+ constructor();
21
+ constructor(coord: Coord3, a: number);
22
+ constructor(coord: Coord3, a: number, b: number);
23
+ getRadius(): number;
24
+ getCenterAxis(): Vec3;
25
+ getPtAt(uv: types.IXY): Vec3;
26
+ getNormAt(uv: Vec2): Vec3;
27
+ isRuled(): boolean;
28
+ /**
29
+ * 获取某参数t处的n阶偏导数
30
+ * t : 参数t
31
+ * n : 导数的阶数 // 譬如n = 2,会计算曲线在参数t处的0阶导(即曲线点),1阶偏导(包含偏u、偏v),2阶偏导(包含偏uu、偏uv、偏vv)
32
+ */
33
+ getDerivatives(uv: types.IXY, n?: number): Vec3[];
34
+ /**
35
+ * 获取三维点处的uv值,(反求参数)
36
+ * @param uv
37
+ */
38
+ getUVAt(pt: types.IXYZ): Vec2;
39
+ isCoplanar(other: Surface, tol?: Tol): boolean;
40
+ containsCurve(curve: Curve3, eps?: number): boolean;
41
+ getDomainU(): PeriodInterval;
42
+ /**
43
+ * 获取等参曲线
44
+ * @param param 等参曲线处的参数
45
+ * @param useV true 时返回等 v 参数曲线,false 时返回等 u 参数曲线
46
+ */
47
+ getIsoCurve(param: number, useV: boolean): Curve3;
48
+ /**
49
+ * 将参数域中的二维曲线转成三维曲线
50
+ * 暂时只支持直线(横平竖直,斜的需要定义椭圆)
51
+ * @param curve
52
+ */
53
+ getCurve3d(curve: Curve2): Curve3;
54
+ /**
55
+ * 乘上一个变换矩阵
56
+ * 注意:柱面若是镜像,若想镜像后u参数不变,点正好镜像,则v参数一定会相反(z轴会反了);反之,若想v参数不变,点正好镜像,则u参数一定会相反(x或者y轴会反了)
57
+ * 为了保持一致,统一让v参数不变。因为考虑到镜像锥面,如果做了yoz镜像之后,z轴反了,锥面会明显倒过来。而考虑到u向是周期的,直接反u参数会更好
58
+ * 【原来的点镜像之后到新的点,新的点和原来的点的v参数相同,但是u参数变成了-u。这个地方curve2d相关的处理时需要注意。】
59
+ */
60
+ transform(m: types.IMatrix4 | types.numberArrs4X4): this;
61
+ /**
62
+ * 深拷贝
63
+ */
64
+ clone(): Cylinder;
65
+ getType(): EN_GEO_TYPE.CYLINDER;
66
+ /**
67
+ * 抽取元数据,用于序列化
68
+ * @returns 返回js对象
69
+ */
70
+ dump(): types.IDBCylinder;
71
+ load(json: types.IDBCylinder): this;
72
+ }
73
+ export { Cylinder };
@@ -0,0 +1,3 @@
1
+ import { types } from '../type_define/i_types';
2
+ export declare function discreteArrow(origin: types.IXY, direction: types.IXY, len: number): types.IXYZArr[];
3
+ export declare function discreteArrow(origin: types.IXYZ, direction: types.IXYZ, len: number): types.IXYZArr[];
@@ -0,0 +1,75 @@
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 { Curve2 } from './curve2';
6
+ import { Vec2 } from '../base/vec2';
7
+ import { Box2 } from '../base/box2';
8
+ import { ICurve2dTransformExtra, IExtendCurve } from '../type_define/i_geometry';
9
+ import { NurbsCurve2 } from './nurbs_curve2';
10
+ /**
11
+ * 延长曲线,根据首尾切线向量生成,1阶连续。
12
+ * 仅作为中间表达式内部使用,目前仅用于扫掠面以及扫掠过程中部分曲线的延长线使用
13
+ */
14
+ export declare class ExtendCurve2 extends Curve2 implements IExtendCurve<Vec2> {
15
+ /**
16
+ * 以 baseCurve 为基础,生成延长线
17
+ * @param baseCurve
18
+ * @param cloneCurve 为假时,将以 baseCurve 作为基线、或直接修改 baseCurve 作为返回结果
19
+ */
20
+ static makeByCurve(baseCurve: Curve2, cloneCurve?: boolean): Curve2;
21
+ private _baseCurve;
22
+ private _head;
23
+ private _tail;
24
+ constructor(baseCurve?: Curve2, range?: types.IInterval);
25
+ getBaseCurve(): Curve2;
26
+ setBaseCurve(curve: Curve2): void;
27
+ getSingularities(): number[];
28
+ getHeadScale(): number;
29
+ getTailScale(): number;
30
+ updateExtension(): void;
31
+ /**
32
+ * 判断该曲线是否为直线
33
+ * @returns
34
+ */
35
+ isLineLike(): boolean;
36
+ getPtAt(t: number): Vec2;
37
+ getParamAt(point: types.IXYZ): number;
38
+ getAllFootParams(point: types.IXY, lengthEps?: number): number[];
39
+ /**
40
+ * 获取某参数处的切线
41
+ * @param t 参数
42
+ * @param snapToPreviousEnd 参数点在奇异点附近时,当输入为true时返回奇异点前的切向量,false时返回奇异点后的切向量。当 t === range.min 时,默认为 false,否则默认为 true。
43
+ */
44
+ getTangentAt(t: number, snapToPreviousEnd?: boolean): Vec2;
45
+ /**
46
+ * 获取某参数t处的几阶导数,例如 n = 2 时,会返回曲线在参数t处的坐标、1阶导、2阶导
47
+ * @param t 参数
48
+ * @param n 需要计算的导数的最大阶数
49
+ * @param snapToPreviousEnd 参数点在奇异点附近时,当输入为true时返回奇异点的前导数,false时返回奇异点的后导数。当 t === range.min 时,默认为 false,否则默认为 true。
50
+ */
51
+ getDerivatives(t: number, nth: number, snapToPreviousEnd?: boolean): Vec2[];
52
+ getLength(range?: Interval): number;
53
+ /**
54
+ * split into simple curves
55
+ */
56
+ toSimpleCurves(): Curve2[];
57
+ offset(dist: number): boolean;
58
+ reverse(): this;
59
+ transform(m: types.IMatrix3 | types.numberArrs3X3, extra?: ICurve2dTransformExtra): this;
60
+ transformed(m: types.IMatrix3 | types.numberArrs3X3, extra?: ICurve2dTransformExtra): Curve2;
61
+ /**
62
+ * 拟合成nurbscurve2d
63
+ */
64
+ toNurbs(degree?: number, lengthEps?: number): NurbsCurve2;
65
+ /**
66
+ * 计算曲线在给定参数区间的包围盒,如果没有传入参数域则计算曲线默认参数域的包围盒
67
+ */
68
+ getBBox(range?: Interval): Box2;
69
+ discrete(params?: DiscreteParam): Vec2[];
70
+ getType(): EN_GEO_TYPE.EXTEND_CURVE_2D;
71
+ clone(): ExtendCurve2;
72
+ dump(): types.IDBExtendCurve2d;
73
+ load(json: types.IDBExtendCurve2d): this;
74
+ private _getBase;
75
+ }
@@ -0,0 +1,35 @@
1
+ import { types } from '../type_define/i_types';
2
+ import { Box2 } from '../base/box2';
3
+ import { GeoElement } from '../base/geo_element';
4
+ import { IGeometry2d, ITransformExtra } from '../type_define/i_geometry';
5
+ /**
6
+ * @author tiansk
7
+ * 所有几何对象的基类
8
+ */
9
+ export declare abstract class Geometry2d extends GeoElement implements IGeometry2d {
10
+ /**
11
+ * 乘上一个变换矩阵,改变自己
12
+ */
13
+ abstract transform(m: types.IMatrix3 | types.numberArrs3X3, extra?: ITransformExtra): this;
14
+ /**
15
+ * 计算包围盒
16
+ */
17
+ abstract getBBox(): Box2;
18
+ /**
19
+ * 平移,改变自己
20
+ */
21
+ translate(offset: types.IXY): this;
22
+ /**
23
+ * 绕坐标轴/点的旋转,改变自己
24
+ * @param angle 旋转的角度
25
+ * @param pivot 旋转轴上一点
26
+ */
27
+ rotate(angle: number, pivot: types.IXYZ): this;
28
+ /**
29
+ * 缩放,改变自己
30
+ * 直线支持非等比,其他情况都是等比例缩放
31
+ * @param factor 放大因子
32
+ * @param center 缩放中心
33
+ */
34
+ scale(factor: number, center: types.IXY): this;
35
+ }
@@ -0,0 +1,36 @@
1
+ import { types } from '../type_define/i_types';
2
+ import { Box3 } from '../base/box3';
3
+ import { IGeometry3d, ITransformExtra } from '../type_define/i_geometry';
4
+ import { GeoElement } from '../base/geo_element';
5
+ /**
6
+ * @author tiansk
7
+ * 所有几何对象的基类
8
+ */
9
+ export declare abstract class Geometry3d extends GeoElement implements IGeometry3d {
10
+ /**
11
+ * 乘上一个变换矩阵,改变自己
12
+ */
13
+ abstract transform(m: types.IMatrix4 | types.numberArrs4X4, extra?: ITransformExtra): this;
14
+ /**
15
+ * 计算包围盒
16
+ */
17
+ abstract getBBox(): Box3;
18
+ /**
19
+ * 平移,改变自己
20
+ */
21
+ translate(offset: types.IXYZ): this;
22
+ /**
23
+ * 绕坐标轴/点的旋转,改变自己
24
+ * @param angle 旋转的角度
25
+ * @param pivot 旋转轴上一点
26
+ * @param axis 绕哪个轴旋转
27
+ */
28
+ rotate(angle: number, pivot: types.IXYZ, axis?: types.IXYZ): this;
29
+ /**
30
+ * 缩放,改变自己
31
+ * 直线支持非等比,其他情况都是等比例缩放
32
+ * @param factor 放大因子
33
+ * @param center 缩放中心
34
+ */
35
+ scale(factor: number, center: types.IXYZ): this;
36
+ }