@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.
- package/index.cjs +226 -0
- package/package.json +19 -37
- package/types/algorithm/bool_operate/bool2d/bool2d.d.ts +22 -0
- package/types/algorithm/bool_operate/bool2d/difference.d.ts +9 -0
- package/types/algorithm/bool_operate/bool2d/intersect.d.ts +9 -0
- package/types/algorithm/bool_operate/bool2d/split.d.ts +3 -0
- package/types/algorithm/bool_operate/bool2d/union.d.ts +9 -0
- package/types/algorithm/bool_operate/bool2d/utils.d.ts +40 -0
- package/types/algorithm/bool_operate/bool_operate_clipper.d.ts +18 -0
- package/types/algorithm/bool_operate/polycurve_polygon_bool.d.ts +13 -0
- package/types/algorithm/bool_operate_2d.d.ts +67 -0
- package/types/algorithm/calc_d.d.ts +85 -0
- package/types/algorithm/calc_offset.d.ts +70 -0
- package/types/algorithm/calc_overlap.d.ts +56 -0
- package/types/algorithm/calc_project.d.ts +29 -0
- package/types/algorithm/calc_x.d.ts +215 -0
- package/types/algorithm/calculate_util/geometry_subdevide_infos.d.ts +73 -0
- package/types/algorithm/calculate_util/iterative_method.d.ts +30 -0
- package/types/algorithm/discrete/discrete_curve.d.ts +31 -0
- package/types/algorithm/discrete/discrete_refiner.d.ts +35 -0
- package/types/algorithm/discrete/discrete_surface.d.ts +74 -0
- package/types/algorithm/discrete/discrete_topology.d.ts +32 -0
- package/types/algorithm/discrete/discrete_util.d.ts +96 -0
- package/types/algorithm/discrete/grid_discrete_data.d.ts +58 -0
- package/types/algorithm/discrete/libtess.d.ts +12 -0
- package/types/algorithm/discrete/uniform_grid_discrete.d.ts +3 -0
- package/types/algorithm/distance/base_calc_distance/curves_distance_util.d.ts +20 -0
- package/types/algorithm/distance/base_calc_distance/define_of_calculate_distance.d.ts +12 -0
- package/types/algorithm/distance/curve2ds_distance/arc2s_distance.d.ts +17 -0
- package/types/algorithm/distance/curve2ds_distance/line2d_to_arc2d_distance.d.ts +17 -0
- package/types/algorithm/distance/curve2ds_distance/line2s_distance.d.ts +15 -0
- package/types/algorithm/distance/curve2s_distance.d.ts +15 -0
- package/types/algorithm/distance/curve3ds_distance/line3d_to_line3d_distance_paramed.d.ts +12 -0
- package/types/algorithm/distance/curve3s_distance.d.ts +31 -0
- package/types/algorithm/distance/pt_to_curve2_signed_distance.d.ts +17 -0
- package/types/algorithm/distance/pt_to_curve3_distance.d.ts +25 -0
- package/types/algorithm/distance/pt_to_curve_distance_info.d.ts +12 -0
- package/types/algorithm/distance/pt_to_surface_distance.d.ts +17 -0
- package/types/algorithm/distance/pts_to_curves_distance.d.ts +13 -0
- package/types/algorithm/distance/pts_to_pts_distance.d.ts +7 -0
- package/types/algorithm/geometry_merge.d.ts +22 -0
- package/types/algorithm/index.d.ts +32 -0
- package/types/algorithm/intersect/box_cut_line.d.ts +6 -0
- package/types/algorithm/intersect/curve_self_x.d.ts +13 -0
- package/types/algorithm/intersect/curve_surface_x.d.ts +34 -0
- package/types/algorithm/intersect/curve_surface_x_util.d.ts +32 -0
- package/types/algorithm/intersect/curves_x/circulars_x.d.ts +35 -0
- package/types/algorithm/intersect/curves_x/linear_circular_x.d.ts +40 -0
- package/types/algorithm/intersect/curves_x/lines_x.d.ts +17 -0
- package/types/algorithm/intersect/curves_x/lines_x_util.d.ts +4 -0
- package/types/algorithm/intersect/curves_x.d.ts +26 -0
- package/types/algorithm/intersect/curves_x_util.d.ts +35 -0
- package/types/algorithm/intersect/intersect_info_util.d.ts +9 -0
- package/types/algorithm/intersect/surface_self_x.d.ts +8 -0
- package/types/algorithm/intersect/surfaces_x.d.ts +53 -0
- package/types/algorithm/intersect/surfaces_x_complex.d.ts +29 -0
- package/types/algorithm/intersect/surfaces_x_special.d.ts +16 -0
- package/types/algorithm/intersect/surfaces_x_util.d.ts +41 -0
- package/types/algorithm/intersect/x_info.d.ts +65 -0
- package/types/algorithm/loop_property/loop-area.d.ts +49 -0
- package/types/algorithm/loop_property/loop-centroid.d.ts +40 -0
- package/types/algorithm/merge_geometry/halfplane.d.ts +24 -0
- package/types/algorithm/merge_geometry/merge_curve.d.ts +14 -0
- package/types/algorithm/merge_geometry/merge_point.d.ts +18 -0
- package/types/algorithm/mesh/clip_mesh.d.ts +27 -0
- package/types/algorithm/mesh/extrude_clip.d.ts +236 -0
- package/types/algorithm/mesh/mesh_assist.d.ts +21 -0
- package/types/algorithm/mesh/mesh_contour.d.ts +26 -0
- package/types/algorithm/mesh/mesh_util.d.ts +115 -0
- package/types/algorithm/offset/loop2d_offset.d.ts +22 -0
- package/types/algorithm/offset/polygon_offset.d.ts +27 -0
- package/types/algorithm/overlap/curve_surface_coincide.d.ts +6 -0
- package/types/algorithm/overlap/curves_colinear.d.ts +38 -0
- package/types/algorithm/overlap/curves_merge.d.ts +74 -0
- package/types/algorithm/overlap/curves_overlap.d.ts +34 -0
- package/types/algorithm/overlap/i_overlap.d.ts +9 -0
- package/types/algorithm/overlap/surfaces_coplaner.d.ts +5 -0
- package/types/algorithm/pattern/blocks2Geometry.d.ts +50 -0
- package/types/algorithm/pattern/math.d.ts +42 -0
- package/types/algorithm/pattern/pattern.d.ts +43 -0
- package/types/algorithm/pattern/pattern_util.d.ts +53 -0
- package/types/algorithm/pattern/pave.d.ts +33 -0
- package/types/algorithm/pj/curves_oj.d.ts +19 -0
- package/types/algorithm/pj/curves_pj.d.ts +19 -0
- package/types/algorithm/pj/loops_pj.d.ts +13 -0
- package/types/algorithm/pj/pj_type.d.ts +46 -0
- package/types/algorithm/pj/pt_loop_pj.d.ts +24 -0
- package/types/algorithm/pj/pt_polygon_pj.d.ts +18 -0
- package/types/algorithm/pj/pt_polygon_position_judger.d.ts +11 -0
- package/types/algorithm/position_judge.d.ts +72 -0
- package/types/algorithm/project/curve3d_to_plane_project.d.ts +11 -0
- package/types/algorithm/project/curve_curve_project.d.ts +9 -0
- package/types/algorithm/search_graph/iloops_polygonex.d.ts +28 -0
- package/types/algorithm/search_graph/loop_tree_node.d.ts +30 -0
- package/types/algorithm/search_graph/loops_to_loop_tree_search_graph.d.ts +25 -0
- package/types/algorithm/search_graph/polygon_polygonex.d.ts +13 -0
- package/types/algorithm/search_graph/search_loop2d.d.ts +20 -0
- package/types/algorithm/search_graph/search_polyline.d.ts +11 -0
- package/types/algorithm/search_graph.d.ts +45 -0
- package/types/algorithm/topology_edit.d.ts +10 -0
- package/types/base/box.d.ts +100 -0
- package/types/base/box2.d.ts +17 -0
- package/types/base/box3.d.ts +20 -0
- package/types/base/coord.d.ts +10 -0
- package/types/base/coord2.d.ts +92 -0
- package/types/base/coord3.d.ts +139 -0
- package/types/base/discrete_param.d.ts +28 -0
- package/types/base/euler.d.ts +102 -0
- package/types/base/geo_element.d.ts +54 -0
- package/types/base/interval.d.ts +122 -0
- package/types/base/ivector.d.ts +126 -0
- package/types/base/matrix.d.ts +108 -0
- package/types/base/matrix3.d.ts +118 -0
- package/types/base/matrix4.d.ts +166 -0
- package/types/base/matrix_util.d.ts +5 -0
- package/types/base/period_inverval.d.ts +127 -0
- package/types/base/quaternion.d.ts +39 -0
- package/types/base/tangent_cone.d.ts +11 -0
- package/types/base/tilt_box.d.ts +11 -0
- package/types/base/tol.d.ts +120 -0
- package/types/base/vec.d.ts +46 -0
- package/types/base/vec2.d.ts +146 -0
- package/types/base/vec3.d.ts +158 -0
- package/types/brep-src/algorithm/alg_const.d.ts +23 -0
- package/types/brep-src/algorithm/alg_types.d.ts +47 -0
- package/types/brep-src/algorithm/algorithm_util/base_define.d.ts +7 -0
- package/types/brep-src/algorithm/algorithm_util/body_base_util.d.ts +4 -0
- package/types/brep-src/algorithm/algorithm_util/curve_solid_analysis.d.ts +28 -0
- package/types/brep-src/algorithm/algorithm_util/face_face_analysis.d.ts +39 -0
- package/types/brep-src/algorithm/algorithm_util/search_wire.d.ts +8 -0
- package/types/brep-src/algorithm/body_builder/basic_body_builder.d.ts +15 -0
- package/types/brep-src/algorithm/body_builder/extrude_body.d.ts +23 -0
- package/types/brep-src/algorithm/body_builder/sweep_body.d.ts +37 -0
- package/types/brep-src/algorithm/body_builder.d.ts +36 -0
- package/types/brep-src/algorithm/body_util.d.ts +21 -0
- package/types/brep-src/algorithm/bool_sk/brep_converter.d.ts +11 -0
- package/types/brep-src/algorithm/brep_calc_project.d.ts +50 -0
- package/types/brep-src/algorithm/brep_calc_x.d.ts +34 -0
- package/types/brep-src/algorithm/brep_pj.d.ts +47 -0
- package/types/brep-src/algorithm/index.d.ts +5 -0
- package/types/brep-src/algorithm/intersect/curve_face_overlap.d.ts +10 -0
- package/types/brep-src/algorithm/intersect/face_face_intersect.d.ts +22 -0
- package/types/brep-src/algorithm/intersect/face_faces_intersect.d.ts +15 -0
- package/types/brep-src/algorithm/intersect/line_face_intersect.d.ts +16 -0
- package/types/brep-src/algorithm/podition_judge/body_pj.d.ts +25 -0
- package/types/brep-src/algorithm/podition_judge/extrude_pj.d.ts +28 -0
- package/types/brep-src/algorithm/podition_judge/pt_body_pj.d.ts +32 -0
- package/types/brep-src/algorithm/project/body_project.d.ts +8 -0
- package/types/brep-src/algorithm/project/face_project.d.ts +20 -0
- package/types/brep-src/algorithm/project/face_surface_project.d.ts +8 -0
- package/types/brep-src/algorithm/project/space_project.d.ts +26 -0
- package/types/brep-src/algorithm/project/space_project_simple.d.ts +10 -0
- package/types/brep-src/algorithm/project/view_project.d.ts +25 -0
- package/types/brep-src/algorithm/shell_builder/create_shell_from_curves.d.ts +38 -0
- package/types/brep-src/algorithm/shell_builder.d.ts +25 -0
- package/types/brep-src/algorithm/shell_edit/add_edges/add_edges.d.ts +14 -0
- package/types/brep-src/algorithm/shell_edit/add_edges/add_edges_core.d.ts +11 -0
- package/types/brep-src/algorithm/shell_edit/copy_faces.d.ts +20 -0
- package/types/brep-src/algorithm/shell_edit/delete_faces_edges/delete_edge.d.ts +9 -0
- package/types/brep-src/algorithm/shell_edit/delete_faces_edges/delete_faces_edges.d.ts +17 -0
- package/types/brep-src/algorithm/shell_edit/faces_boolean/faces_boolean.d.ts +19 -0
- package/types/brep-src/algorithm/shell_edit/faces_boolean/faces_shells_boolean.d.ts +13 -0
- package/types/brep-src/algorithm/shell_edit/faces_boolean/octree.d.ts +11 -0
- package/types/brep-src/algorithm/shell_edit/isolate_faces.d.ts +21 -0
- package/types/brep-src/algorithm/shell_edit/merge_connect_faces.d.ts +14 -0
- package/types/brep-src/algorithm/shell_edit/merge_edges.d.ts +8 -0
- package/types/brep-src/algorithm/shell_edit/move_operators/move_edges.d.ts +31 -0
- package/types/brep-src/algorithm/shell_edit/move_operators/move_faces.d.ts +14 -0
- package/types/brep-src/algorithm/shell_edit/operator/dispose_topo.d.ts +2 -0
- package/types/brep-src/algorithm/shell_edit/operator/merge_connect_edge.d.ts +3 -0
- package/types/brep-src/algorithm/shell_edit/operator/merge_connect_face.d.ts +2 -0
- package/types/brep-src/algorithm/shell_edit/operator/merge_overlap_edge.d.ts +3 -0
- package/types/brep-src/algorithm/shell_edit/operator/merge_shell.d.ts +11 -0
- package/types/brep-src/algorithm/shell_edit/operator/merge_vertex.d.ts +2 -0
- package/types/brep-src/algorithm/shell_edit/operator/split_edge.d.ts +4 -0
- package/types/brep-src/algorithm/shell_edit/operator/split_shell.d.ts +6 -0
- package/types/brep-src/algorithm/shell_edit/pull_push_face/pull_push_face.d.ts +18 -0
- package/types/brep-src/algorithm/shell_edit/pull_push_face/pull_push_face_core.d.ts +6 -0
- package/types/brep-src/algorithm/shell_edit/pull_push_face/pull_push_face_preview.d.ts +16 -0
- package/types/brep-src/algorithm/shell_edit/pull_push_face/pull_push_face_preview_core.d.ts +24 -0
- package/types/brep-src/algorithm/shell_edit/roundinng/2d_rounding.d.ts +22 -0
- package/types/brep-src/algorithm/shell_edit/shell_modeling_base.d.ts +10 -0
- package/types/brep-src/algorithm/shell_edit/shell_modeling_result.d.ts +21 -0
- package/types/brep-src/algorithm/shell_edit/smooth/detect_loop_util.d.ts +27 -0
- package/types/brep-src/algorithm/shell_edit/smooth/shell_modeling_util.d.ts +24 -0
- package/types/brep-src/algorithm/shell_edit/smooth/smooth_util.d.ts +22 -0
- package/types/brep-src/algorithm/shell_edit/split_edge.d.ts +10 -0
- package/types/brep-src/algorithm/shell_edit.d.ts +119 -0
- package/types/brep-src/algorithm/shell_valid/base_brep_topo_error.d.ts +176 -0
- package/types/brep-src/algorithm/shell_valid/diagnose_shell.d.ts +14 -0
- package/types/brep-src/brep/brep_body.d.ts +19 -0
- package/types/brep-src/brep/coedge3d.d.ts +83 -0
- package/types/brep-src/brep/edge.d.ts +96 -0
- package/types/brep-src/brep/face.d.ts +150 -0
- package/types/brep-src/brep/shell.d.ts +166 -0
- package/types/brep-src/brep/topo_object.d.ts +40 -0
- package/types/brep-src/brep/vertex.d.ts +48 -0
- package/types/brep-src/brep/wire.d.ts +66 -0
- package/types/brep-src/continuous/continuous_edge.d.ts +17 -0
- package/types/brep-src/continuous/continuous_face.d.ts +10 -0
- package/types/brep-src/continuous/continuous_util.d.ts +60 -0
- package/types/brep-src/continuous/continuous_uv.d.ts +24 -0
- package/types/brep-src/continuous/index.d.ts +4 -0
- package/types/brep-src/index.d.ts +14 -0
- package/types/brep-src/type_define/i_types.d.ts +46 -0
- package/types/brep-src/util/util.d.ts +23 -0
- package/types/conversion/units_conversion.d.ts +14 -0
- package/types/geometry/arc2d.d.ts +249 -0
- package/types/geometry/arc3d.d.ts +204 -0
- package/types/geometry/circle3d.d.ts +92 -0
- package/types/geometry/circular_surface.d.ts +52 -0
- package/types/geometry/coord_based_surface.d.ts +25 -0
- package/types/geometry/curve.d.ts +228 -0
- package/types/geometry/curve2.d.ts +62 -0
- package/types/geometry/curve3d.d.ts +66 -0
- package/types/geometry/cylinder.d.ts +73 -0
- package/types/geometry/discrete_arrow.d.ts +3 -0
- package/types/geometry/extend_curve2.d.ts +75 -0
- package/types/geometry/geometry2d.d.ts +35 -0
- package/types/geometry/geometry3d.d.ts +36 -0
- package/types/geometry/intersect_curve3.d.ts +90 -0
- package/types/geometry/ln2.d.ts +168 -0
- package/types/geometry/ln3.d.ts +152 -0
- package/types/geometry/nurbs_curve2.d.ts +106 -0
- package/types/geometry/nurbs_curve3.d.ts +191 -0
- package/types/geometry/offset_curve2.d.ts +63 -0
- package/types/geometry/offset_curve3.d.ts +97 -0
- package/types/geometry/offset_parameter_mapper.d.ts +72 -0
- package/types/geometry/plane.d.ts +109 -0
- package/types/geometry/polyline.d.ts +12 -0
- package/types/geometry/smooth_poly2.d.ts +78 -0
- package/types/geometry/smooth_poly3.d.ts +85 -0
- package/types/geometry/surface.d.ts +173 -0
- package/types/index.d.ts +78 -0
- package/types/io/obj_parser.d.ts +4 -0
- package/types/io/svgparser.d.ts +22 -0
- package/types/loader/loader.d.ts +23 -0
- package/types/loader/register_geo.d.ts +7 -0
- package/types/math/gauss_integration.d.ts +13 -0
- package/types/math/inv_bilinear.d.ts +33 -0
- package/types/solve_equations/cubic_equation.d.ts +7 -0
- package/types/solve_equations/linear_system.d.ts +6 -0
- package/types/solve_equations/nonlinear_system.d.ts +11 -0
- package/types/solve_equations/plurality.d.ts +9 -0
- package/types/solve_equations/polynomial_equation.d.ts +6 -0
- package/types/solve_equations/quadratic_equation.d.ts +6 -0
- package/types/solve_equations/quartic_equation.d.ts +6 -0
- package/types/solve_equations/solve_equation_util.d.ts +50 -0
- package/types/test_util/loop_generator.d.ts +21 -0
- package/types/topology/evolution_map.d.ts +90 -0
- package/types/topology/loop.d.ts +50 -0
- package/types/topology/polycurve.d.ts +109 -0
- package/types/topology/polygon.d.ts +118 -0
- package/types/topology/trimmed_surface.d.ts +136 -0
- package/types/type_define/const.d.ts +18 -0
- package/types/type_define/i_element.d.ts +9 -0
- package/types/type_define/i_element_type.d.ts +34 -0
- package/types/type_define/i_geometry.d.ts +191 -0
- package/types/type_define/i_types.d.ts +280 -0
- package/types/util/array_util.d.ts +8 -0
- package/types/util/assert.d.ts +21 -0
- package/types/util/clipper2_util.d.ts +5 -0
- package/types/util/clipper_format_converter.d.ts +21 -0
- package/types/util/clipper_util.d.ts +10 -0
- package/types/util/curve_util.d.ts +72 -0
- package/types/util/geom_util.d.ts +23 -0
- package/types/util/log.d.ts +19 -0
- package/types/util/math_error.d.ts +37 -0
- package/types/util/surface_util.d.ts +13 -0
- package/types/util/util.d.ts +18 -0
- package/types/util/uv_util.d.ts +68 -0
- package/types/verb/export_verb.d.ts +2 -0
- package/types/wasm/a2d.d.ts +19 -0
- package/types/wasm/bx2.d.ts +16 -0
- package/types/wasm/c2d.d.ts +29 -0
- package/types/wasm/elli.d.ts +19 -0
- package/types/wasm/grapher2d.d.ts +39 -0
- package/types/wasm/grapherutil.d.ts +9 -0
- package/types/wasm/l2d.d.ts +14 -0
- package/types/wasm/loader.d.ts +8 -0
- package/types/wasm/pt.d.ts +19 -0
- package/types/wasm/wasm-geom.d.ts +296 -0
- package/types/wasm/wasminstance.d.ts +19 -0
- package/types/wasm/wrapper.d.ts +82 -0
- package/README.md +0 -21
- package/dist/constants/geom_type.d.ts +0 -13
- package/dist/constants/geom_type.d.ts.map +0 -1
- package/dist/constants/geom_type.js +0 -17
- package/dist/constants/math_const.d.ts +0 -9
- package/dist/constants/math_const.d.ts.map +0 -1
- package/dist/constants/math_const.js +0 -12
- package/dist/core/box2.d.ts +0 -71
- package/dist/core/box2.d.ts.map +0 -1
- package/dist/core/box2.js +0 -243
- package/dist/core/coord2d.d.ts +0 -62
- package/dist/core/coord2d.d.ts.map +0 -1
- package/dist/core/coord2d.js +0 -155
- package/dist/core/geom_base.d.ts +0 -19
- package/dist/core/geom_base.d.ts.map +0 -1
- package/dist/core/geom_base.js +0 -18
- package/dist/core/mat3.d.ts +0 -101
- package/dist/core/mat3.d.ts.map +0 -1
- package/dist/core/mat3.js +0 -290
- package/dist/core/vec2.d.ts +0 -138
- package/dist/core/vec2.d.ts.map +0 -1
- package/dist/core/vec2.js +0 -297
- package/dist/curves/arc2.d.ts +0 -49
- package/dist/curves/arc2.d.ts.map +0 -1
- package/dist/curves/arc2.js +0 -265
- package/dist/curves/bspline2.d.ts +0 -150
- package/dist/curves/bspline2.d.ts.map +0 -1
- package/dist/curves/bspline2.js +0 -793
- package/dist/curves/circle2.d.ts +0 -42
- package/dist/curves/circle2.d.ts.map +0 -1
- package/dist/curves/circle2.js +0 -135
- package/dist/curves/circle_curve2.d.ts +0 -38
- package/dist/curves/circle_curve2.d.ts.map +0 -1
- package/dist/curves/circle_curve2.js +0 -112
- package/dist/curves/curve2.d.ts +0 -214
- package/dist/curves/curve2.d.ts.map +0 -1
- package/dist/curves/curve2.js +0 -238
- package/dist/curves/ellipse2.d.ts +0 -42
- package/dist/curves/ellipse2.d.ts.map +0 -1
- package/dist/curves/ellipse2.js +0 -125
- package/dist/curves/ellipse_arc2.d.ts +0 -49
- package/dist/curves/ellipse_arc2.d.ts.map +0 -1
- package/dist/curves/ellipse_arc2.js +0 -184
- package/dist/curves/ellipse_curve2.d.ts +0 -56
- package/dist/curves/ellipse_curve2.d.ts.map +0 -1
- package/dist/curves/ellipse_curve2.js +0 -262
- package/dist/curves/interval.d.ts +0 -112
- package/dist/curves/interval.d.ts.map +0 -1
- package/dist/curves/interval.js +0 -200
- package/dist/curves/line2.d.ts +0 -64
- package/dist/curves/line2.d.ts.map +0 -1
- package/dist/curves/line2.js +0 -193
- package/dist/curves/period_interval.d.ts +0 -129
- package/dist/curves/period_interval.d.ts.map +0 -1
- package/dist/curves/period_interval.js +0 -240
- package/dist/discretize/discretize_defaults.d.ts +0 -12
- package/dist/discretize/discretize_defaults.d.ts.map +0 -1
- package/dist/discretize/discretize_defaults.js +0 -12
- package/dist/discretize/discretize_engine.d.ts +0 -33
- package/dist/discretize/discretize_engine.d.ts.map +0 -1
- package/dist/discretize/discretize_engine.js +0 -347
- package/dist/discretize/discretize_errors.d.ts +0 -15
- package/dist/discretize/discretize_errors.d.ts.map +0 -1
- package/dist/discretize/discretize_errors.js +0 -30
- package/dist/discretize/discretize_options.d.ts +0 -18
- package/dist/discretize/discretize_options.d.ts.map +0 -1
- package/dist/discretize/discretize_options.js +0 -19
- package/dist/discretize/discretize_types.d.ts +0 -36
- package/dist/discretize/discretize_types.d.ts.map +0 -1
- package/dist/discretize/discretize_types.js +0 -1
- package/dist/discretize/internal/curve_guards.d.ts +0 -35
- package/dist/discretize/internal/curve_guards.d.ts.map +0 -1
- package/dist/discretize/internal/curve_guards.js +0 -62
- package/dist/discretize/internal/postprocess.d.ts +0 -5
- package/dist/discretize/internal/postprocess.d.ts.map +0 -1
- package/dist/discretize/internal/postprocess.js +0 -109
- package/dist/discretize/internal/sampling_utils.d.ts +0 -8
- package/dist/discretize/internal/sampling_utils.d.ts.map +0 -1
- package/dist/discretize/internal/sampling_utils.js +0 -36
- package/dist/discretize/register_builtin_strategies.d.ts +0 -3
- package/dist/discretize/register_builtin_strategies.d.ts.map +0 -1
- package/dist/discretize/register_builtin_strategies.js +0 -10
- package/dist/discretize/strategies/bspline_strategy.d.ts +0 -4
- package/dist/discretize/strategies/bspline_strategy.d.ts.map +0 -1
- package/dist/discretize/strategies/bspline_strategy.js +0 -115
- package/dist/discretize/strategies/circle_strategy.d.ts +0 -7
- package/dist/discretize/strategies/circle_strategy.d.ts.map +0 -1
- package/dist/discretize/strategies/circle_strategy.js +0 -55
- package/dist/discretize/strategies/ellipse_strategy.d.ts +0 -7
- package/dist/discretize/strategies/ellipse_strategy.d.ts.map +0 -1
- package/dist/discretize/strategies/ellipse_strategy.js +0 -86
- package/dist/discretize/strategies/line_strategy.d.ts +0 -4
- package/dist/discretize/strategies/line_strategy.d.ts.map +0 -1
- package/dist/discretize/strategies/line_strategy.js +0 -40
- package/dist/discretize/strategy_registry.d.ts +0 -9
- package/dist/discretize/strategy_registry.d.ts.map +0 -1
- package/dist/discretize/strategy_registry.js +0 -34
- package/dist/index.d.ts +0 -30
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -24
- package/dist/intersections/analytic_x_algorithm.d.ts +0 -10
- package/dist/intersections/analytic_x_algorithm.d.ts.map +0 -1
- package/dist/intersections/analytic_x_algorithm.js +0 -83
- package/dist/intersections/curve_x_engine.d.ts +0 -9
- package/dist/intersections/curve_x_engine.d.ts.map +0 -1
- package/dist/intersections/curve_x_engine.js +0 -27
- package/dist/intersections/index.d.ts +0 -5
- package/dist/intersections/index.d.ts.map +0 -1
- package/dist/intersections/index.js +0 -11
- package/dist/intersections/internal/certification.d.ts +0 -34
- package/dist/intersections/internal/certification.d.ts.map +0 -1
- package/dist/intersections/internal/certification.js +0 -238
- package/dist/intersections/internal/interval_clipping.d.ts +0 -29
- package/dist/intersections/internal/interval_clipping.d.ts.map +0 -1
- package/dist/intersections/internal/interval_clipping.js +0 -123
- package/dist/intersections/internal/kind.d.ts +0 -4
- package/dist/intersections/internal/kind.d.ts.map +0 -1
- package/dist/intersections/internal/kind.js +0 -16
- package/dist/intersections/internal/pair.d.ts +0 -9
- package/dist/intersections/internal/pair.d.ts.map +0 -1
- package/dist/intersections/internal/pair.js +0 -14
- package/dist/intersections/internal/result.d.ts +0 -20
- package/dist/intersections/internal/result.d.ts.map +0 -1
- package/dist/intersections/internal/result.js +0 -125
- package/dist/intersections/internal/sampling.d.ts +0 -15
- package/dist/intersections/internal/sampling.d.ts.map +0 -1
- package/dist/intersections/internal/sampling.js +0 -131
- package/dist/intersections/internal/segment.d.ts +0 -32
- package/dist/intersections/internal/segment.d.ts.map +0 -1
- package/dist/intersections/internal/segment.js +0 -137
- package/dist/intersections/internal/tolerance.d.ts +0 -10
- package/dist/intersections/internal/tolerance.d.ts.map +0 -1
- package/dist/intersections/internal/tolerance.js +0 -20
- package/dist/intersections/intersector.d.ts +0 -6
- package/dist/intersections/intersector.d.ts.map +0 -1
- package/dist/intersections/intersector.js +0 -1
- package/dist/intersections/numeric_x_algorithm.d.ts +0 -10
- package/dist/intersections/numeric_x_algorithm.d.ts.map +0 -1
- package/dist/intersections/numeric_x_algorithm.js +0 -73
- package/dist/intersections/solvers/bspline_self_solver.d.ts +0 -7
- package/dist/intersections/solvers/bspline_self_solver.d.ts.map +0 -1
- package/dist/intersections/solvers/bspline_self_solver.js +0 -308
- package/dist/intersections/solvers/line_line_pair_solver.d.ts +0 -7
- package/dist/intersections/solvers/line_line_pair_solver.d.ts.map +0 -1
- package/dist/intersections/solvers/line_line_pair_solver.js +0 -35
- package/dist/intersections/solvers/pair_solvers.d.ts +0 -94
- package/dist/intersections/solvers/pair_solvers.d.ts.map +0 -1
- package/dist/intersections/solvers/pair_solvers.js +0 -1078
- package/dist/intersections/solvers/polyline_pair_intersector.d.ts +0 -51
- package/dist/intersections/solvers/polyline_pair_intersector.d.ts.map +0 -1
- package/dist/intersections/solvers/polyline_pair_intersector.js +0 -731
- package/dist/intersections/types.d.ts +0 -11
- package/dist/intersections/types.d.ts.map +0 -1
- package/dist/intersections/types.js +0 -1
- package/dist/serialize/dump_types.d.ts +0 -101
- package/dist/serialize/dump_types.d.ts.map +0 -1
- package/dist/serialize/dump_types.js +0 -5
- package/dist/serialize/geom_mgr.d.ts +0 -24
- package/dist/serialize/geom_mgr.d.ts.map +0 -1
- package/dist/serialize/geom_mgr.js +0 -30
- package/dist/types/type_define.d.ts +0 -29
- package/dist/types/type_define.d.ts.map +0 -1
- package/dist/types/type_define.js +0 -10
- package/dist/types/type_guard.d.ts +0 -46
- package/dist/types/type_guard.d.ts.map +0 -1
- package/dist/types/type_guard.js +0 -5
- package/dist/utils/math_error.d.ts +0 -16
- package/dist/utils/math_error.d.ts.map +0 -1
- package/dist/utils/math_error.js +0 -35
- package/dist/utils/math_utils.d.ts +0 -9
- package/dist/utils/math_utils.d.ts.map +0 -1
- package/dist/utils/math_utils.js +0 -25
- package/dist/utils/precision.d.ts +0 -29
- package/dist/utils/precision.d.ts.map +0 -1
- 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
|
+
}
|