InterpolatePy 3.2.1__tar.gz → 3.2.2__tar.gz
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.
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/InterpolatePy.egg-info/PKG-INFO +1 -1
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/PKG-INFO +1 -1
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/interpolatepy/b_spline_cubic.py +13 -15
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/interpolatepy/version.py +1 -1
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/tests/test_b_spline_variants.py +23 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/.editorconfig +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/.gitattributes +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/.github/FUNDING.yml +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/.github/workflows/docs.yml +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/.github/workflows/pre-commit.yml +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/.github/workflows/publish.yml +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/.github/workflows/test.yml +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/.gitignore +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/.pre-commit-config.yaml +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/.python-version +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/ALGORITHMS.md +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/InterpolatePy.egg-info/SOURCES.txt +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/InterpolatePy.egg-info/dependency_links.txt +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/InterpolatePy.egg-info/requires.txt +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/InterpolatePy.egg-info/top_level.txt +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/LICENSE +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/README.md +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/codecov.yml +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/CMakeLists.txt +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/bindings/CMakeLists.txt +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/bindings/bind_acc_splines.cpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/bindings/bind_bspline.cpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/bindings/bind_cubic_spline.cpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/bindings/bind_motion.cpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/bindings/bind_paths.cpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/bindings/bind_quaternion.cpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/bindings/bind_smoothing_search.cpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/bindings/bind_smoothing_spline.cpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/bindings/bind_tridiagonal.cpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/bindings/module.cpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/cmake/InterpolateCppConfig.cmake.in +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/cmake/version.hpp.in +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/examples/CMakeLists.txt +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/examples/bspline_approx_smooth_example.cpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/examples/bspline_cubic_example.cpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/examples/bspline_example.cpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/examples/bspline_interpolator_example.cpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/examples/concepts_example.cpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/examples/cubic_smoothing_example.cpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/examples/cubic_spline_acc1_example.cpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/examples/cubic_spline_acc2_example.cpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/examples/cubic_spline_example.cpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/examples/double_s_example.cpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/examples/parabolic_linear_example.cpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/examples/paths_example.cpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/examples/polynomial_example.cpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/examples/quaternion_example.cpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/examples/shared/example_utils.hpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/examples/trapezoidal_example.cpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/include/interpolatecpp/bspline/approximation_bspline.hpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/include/interpolatecpp/bspline/bspline.hpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/include/interpolatecpp/bspline/bspline_interpolator.hpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/include/interpolatecpp/bspline/bspline_parameters.hpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/include/interpolatecpp/bspline/cubic_bspline_interpolation.hpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/include/interpolatecpp/bspline/smoothing_cubic_bspline.hpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/include/interpolatecpp/concepts.hpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/include/interpolatecpp/config.hpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/include/interpolatecpp/motion/double_s_trajectory.hpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/include/interpolatecpp/motion/motion_types.hpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/include/interpolatecpp/motion/parabolic_blend_trajectory.hpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/include/interpolatecpp/motion/polynomial_trajectory.hpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/include/interpolatecpp/motion/trapezoidal_trajectory.hpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/include/interpolatecpp/path/circular_path.hpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/include/interpolatecpp/path/frenet_frame.hpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/include/interpolatecpp/path/linear_path.hpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/include/interpolatecpp/path/linear_traj.hpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/include/interpolatecpp/quat/log_quaternion_interpolation.hpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/include/interpolatecpp/quat/modified_log_quaternion_interpolation.hpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/include/interpolatecpp/quat/quaternion.hpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/include/interpolatecpp/quat/quaternion_spline.hpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/include/interpolatecpp/quat/squad_c2.hpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/include/interpolatecpp/spline/cubic_smoothing_spline.hpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/include/interpolatecpp/spline/cubic_spline.hpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/include/interpolatecpp/spline/cubic_spline_with_acc1.hpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/include/interpolatecpp/spline/cubic_spline_with_acc2.hpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/include/interpolatecpp/spline/smoothing_search.hpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/include/interpolatecpp/spline/spline_parameters.hpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/include/interpolatecpp/tridiagonal.hpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/src/approximation_bspline.cpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/src/bspline.cpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/src/bspline_interpolator.cpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/src/circular_path.cpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/src/cubic_bspline_interpolation.cpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/src/cubic_smoothing_spline.cpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/src/cubic_spline.cpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/src/cubic_spline_with_acc1.cpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/src/cubic_spline_with_acc2.cpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/src/double_s_trajectory.cpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/src/frenet_frame.cpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/src/linear_path.cpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/src/linear_traj.cpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/src/log_quaternion_interpolation.cpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/src/modified_log_quaternion_interpolation.cpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/src/parabolic_blend_trajectory.cpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/src/polynomial_trajectory.cpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/src/quaternion.cpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/src/quaternion_spline.cpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/src/smoothing_cubic_bspline.cpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/src/smoothing_search.cpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/src/squad_c2.cpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/src/trapezoidal_trajectory.cpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/tests/CMakeLists.txt +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/tests/shared/test_data.hpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/tests/test_bspline.cpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/tests/test_bspline_variants.cpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/tests/test_concepts.cpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/tests/test_cubic_smoothing_spline.cpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/tests/test_cubic_spline.cpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/tests/test_cubic_spline_with_acc1.cpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/tests/test_cubic_spline_with_acc2.cpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/tests/test_double_s_trajectory.cpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/tests/test_parabolic_blend_trajectory.cpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/tests/test_paths.cpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/tests/test_polynomial_trajectory.cpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/tests/test_quaternion.cpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/tests/test_quaternion_spline.cpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/tests/test_smoothing_search.cpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/tests/test_trapezoidal_trajectory.cpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/tests/test_tridiagonal.cpp +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/docs/algorithms.md +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/docs/api-reference.md +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/docs/architecture.md +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/docs/assets/extra.css +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/docs/assets/extra.js +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/docs/changelog.md +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/docs/contributing.md +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/docs/examples.md +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/docs/index.md +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/docs/installation.md +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/docs/quickstart.md +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/docs/troubleshooting.md +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/docs/tutorials/motion-profiles.md +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/docs/tutorials/path-planning.md +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/docs/tutorials/quaternion-interpolation.md +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/docs/tutorials/spline-interpolation.md +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/docs/user-guide.md +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/examples/b_spline_approx_ex.py +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/examples/b_spline_cubic_ex.py +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/examples/b_spline_ex.py +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/examples/b_spline_interpolate_ex.py +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/examples/b_spline_smooth_ex.py +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/examples/c_s_smoot_search_ex.py +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/examples/c_s_smoothing_ex.py +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/examples/c_s_with_acc1_ex.py +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/examples/c_s_with_acc2_ex.py +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/examples/cubic_spline_ex.py +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/examples/double_s_ex.py +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/examples/frenet_frame_ex.py +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/examples/lin_poly_parabolic_ex.py +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/examples/linear_ex.py +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/examples/log_quat_new_ex.py +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/examples/lqi_spiral_frenet_ex.py +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/examples/main.py +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/examples/mlqi_spiral_frenet_ex.py +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/examples/polynomials_ex.py +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/examples/protocols_ex.py +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/examples/quat_visualization_ex.py +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/examples/simple_paths_ex.py +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/examples/squad_c2_ex.py +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/examples/trapezoidal_ex.py +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/interpolatepy/__init__.py +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/interpolatepy/_adapters/__init__.py +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/interpolatepy/_adapters/_bspline.py +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/interpolatepy/_adapters/_direct.py +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/interpolatepy/_adapters/_motion.py +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/interpolatepy/_adapters/_paths.py +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/interpolatepy/_adapters/_quaternion.py +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/interpolatepy/_adapters/_spline.py +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/interpolatepy/_api.py +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/interpolatepy/_backend.py +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/interpolatepy/b_spline.py +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/interpolatepy/b_spline_approx.py +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/interpolatepy/b_spline_interpolate.py +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/interpolatepy/b_spline_smooth.py +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/interpolatepy/c_s_smoot_search.py +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/interpolatepy/c_s_smoothing.py +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/interpolatepy/c_s_with_acc1.py +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/interpolatepy/c_s_with_acc2.py +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/interpolatepy/cubic_spline.py +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/interpolatepy/double_s.py +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/interpolatepy/frenet_frame.py +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/interpolatepy/lin_poly_parabolic.py +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/interpolatepy/linear.py +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/interpolatepy/log_quat.py +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/interpolatepy/polynomials.py +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/interpolatepy/protocols.py +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/interpolatepy/quat_core.py +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/interpolatepy/quat_spline.py +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/interpolatepy/quat_visualization.py +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/interpolatepy/simple_paths.py +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/interpolatepy/squad_c2.py +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/interpolatepy/trapezoidal.py +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/interpolatepy/tridiagonal_inv.py +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/mkdocs.yml +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/pyproject.toml +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/scripts/__init__.py +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/scripts/check_doc_snippets.py +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/scripts/check_python_examples.py +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/setup.cfg +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/tests/__init__.py +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/tests/inv_test.py +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/tests/test_b_spline.py +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/tests/test_backend.py +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/tests/test_cubic_spline.py +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/tests/test_lin_poly_parabolic.py +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/tests/test_linear.py +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/tests/test_log_quat.py +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/tests/test_motion_profiles.py +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/tests/test_native_adapter_api.py +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/tests/test_path_planning.py +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/tests/test_polynomials.py +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/tests/test_protocols.py +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/tests/test_quat_interp.py +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/tests/test_quat_visualization.py +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/tests/test_smoothing.py +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/tests/test_squad_c2.py +0 -0
- {interpolatepy-3.2.1 → interpolatepy-3.2.2}/uv.lock +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: InterpolatePy
|
|
3
|
-
Version: 3.2.
|
|
3
|
+
Version: 3.2.2
|
|
4
4
|
Summary: A comprehensive Python library for generating smooth trajectories and curves with precise control over position, velocity, acceleration, and jerk profiles
|
|
5
5
|
Author-email: Giorgio Medico <giorgio.medico11@gmail.com>
|
|
6
6
|
Maintainer-email: Giorgio Medico <giorgio.medico11@gmail.com>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: InterpolatePy
|
|
3
|
-
Version: 3.2.
|
|
3
|
+
Version: 3.2.2
|
|
4
4
|
Summary: A comprehensive Python library for generating smooth trajectories and curves with precise control over position, velocity, acceleration, and jerk profiles
|
|
5
5
|
Author-email: Giorgio Medico <giorgio.medico11@gmail.com>
|
|
6
6
|
Maintainer-email: Giorgio Medico <giorgio.medico11@gmail.com>
|
|
@@ -400,25 +400,23 @@ class CubicBSplineInterpolation(BSpline):
|
|
|
400
400
|
b3_k1 = basis_vals[1]
|
|
401
401
|
b3_k2 = basis_vals[2]
|
|
402
402
|
|
|
403
|
-
#
|
|
403
|
+
# A known neighbour (p₁, pₙ₊₁) moves to the right-hand side, an unknown
|
|
404
|
+
# one gets an off-diagonal. Independent tests, not if/elif: at n == 2
|
|
405
|
+
# the only row is both first and last and needs both subtractions.
|
|
406
|
+
main_diagonal[k - 1] = b3_k1
|
|
407
|
+
rhs_k = np.asarray(self.interpolation_points[k], dtype=np.float64).copy()
|
|
408
|
+
|
|
404
409
|
if k == 1:
|
|
405
|
-
|
|
406
|
-
main_diagonal[0] = b3_k1
|
|
407
|
-
upper_diagonal[0] = b3_k2
|
|
408
|
-
right_hand_side[0] = self.interpolation_points[k] - b3_k * control_points[1]
|
|
409
|
-
elif k == n - 1:
|
|
410
|
-
# Last row
|
|
411
|
-
lower_diagonal[k - 2] = b3_k
|
|
412
|
-
main_diagonal[k - 1] = b3_k1
|
|
413
|
-
right_hand_side[k - 1] = (
|
|
414
|
-
self.interpolation_points[k] - b3_k2 * control_points[n + 1]
|
|
415
|
-
)
|
|
410
|
+
rhs_k -= b3_k * control_points[1]
|
|
416
411
|
else:
|
|
417
|
-
# Middle rows
|
|
418
412
|
lower_diagonal[k - 2] = b3_k
|
|
419
|
-
|
|
413
|
+
|
|
414
|
+
if k == n - 1:
|
|
415
|
+
rhs_k -= b3_k2 * control_points[n + 1]
|
|
416
|
+
else:
|
|
420
417
|
upper_diagonal[k - 1] = b3_k2
|
|
421
|
-
|
|
418
|
+
|
|
419
|
+
right_hand_side[k - 1] = rhs_k
|
|
422
420
|
|
|
423
421
|
# Solve the tridiagonal system for each dimension
|
|
424
422
|
for d in range(dimension):
|
|
@@ -352,6 +352,29 @@ class TestCubicBSplineInterpolation:
|
|
|
352
352
|
assert isinstance(spline, CubicBSplineInterpolation)
|
|
353
353
|
|
|
354
354
|
|
|
355
|
+
@pytest.mark.parametrize("n_points", [2, 3, 4, 5, 6, 7, 8])
|
|
356
|
+
def test_curve_passes_through_every_point(self, n_points: int) -> None:
|
|
357
|
+
"""The curve must pass through each point at that point's own u_bar.
|
|
358
|
+
|
|
359
|
+
Guards n == 2 (three points), where the single tridiagonal row is both
|
|
360
|
+
the first and the last: an if/elif chain there keeps only the left
|
|
361
|
+
term, drops b3_k2 * p[n+1] and displaces the middle control point.
|
|
362
|
+
Two points return before the solve and four or more have distinct
|
|
363
|
+
rows, so three is the only count that hits it -- hence the sweep.
|
|
364
|
+
"""
|
|
365
|
+
rng = np.random.default_rng(0)
|
|
366
|
+
for _ in range(20):
|
|
367
|
+
points = rng.uniform(-0.5, 0.5, (n_points, 3))
|
|
368
|
+
spline = CubicBSplineInterpolation(
|
|
369
|
+
points=points, v0=np.zeros(3), vn=np.zeros(3), method="chord_length"
|
|
370
|
+
)
|
|
371
|
+
for i, u_bar in enumerate(np.asarray(spline.u_bars)):
|
|
372
|
+
evaluated = np.asarray(spline.evaluate(float(u_bar)))
|
|
373
|
+
assert np.linalg.norm(evaluated - points[i]) == pytest.approx(
|
|
374
|
+
0.0, abs=1e-9
|
|
375
|
+
)
|
|
376
|
+
|
|
377
|
+
|
|
355
378
|
class TestApproximationBSpline:
|
|
356
379
|
"""Test suite for ApproximationBSpline class."""
|
|
357
380
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/include/interpolatecpp/motion/motion_types.hpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/include/interpolatecpp/path/circular_path.hpp
RENAMED
|
File without changes
|
{interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/include/interpolatecpp/path/frenet_frame.hpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/include/interpolatecpp/quat/quaternion_spline.hpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/include/interpolatecpp/spline/cubic_spline.hpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/include/interpolatecpp/spline/smoothing_search.hpp
RENAMED
|
File without changes
|
{interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/include/interpolatecpp/spline/spline_parameters.hpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/src/modified_log_quaternion_interpolation.cpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|