@ccpc/math 0.1.0 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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,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,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
|
+
}
|