InterpolatePy 2.0.1__tar.gz → 3.0.1__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-2.0.1 → interpolatepy-3.0.1}/.github/workflows/docs.yml +11 -13
- interpolatepy-3.0.1/.github/workflows/pre-commit.yml +28 -0
- interpolatepy-3.0.1/.github/workflows/publish.yml +28 -0
- interpolatepy-3.0.1/.github/workflows/test.yml +36 -0
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/.gitignore +10 -3
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/.pre-commit-config.yaml +2 -2
- interpolatepy-3.0.1/.python-version +1 -0
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/InterpolatePy.egg-info/PKG-INFO +41 -39
- interpolatepy-3.0.1/InterpolatePy.egg-info/SOURCES.txt +215 -0
- interpolatepy-3.0.1/InterpolatePy.egg-info/requires.txt +3 -0
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/PKG-INFO +41 -39
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/README.md +36 -19
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/codecov.yml +0 -2
- interpolatepy-3.0.1/cpp/CMakeLists.txt +169 -0
- interpolatepy-3.0.1/cpp/bindings/CMakeLists.txt +26 -0
- interpolatepy-3.0.1/cpp/bindings/bind_acc_splines.cpp +96 -0
- interpolatepy-3.0.1/cpp/bindings/bind_bspline.cpp +116 -0
- interpolatepy-3.0.1/cpp/bindings/bind_cubic_spline.cpp +39 -0
- interpolatepy-3.0.1/cpp/bindings/bind_motion.cpp +124 -0
- interpolatepy-3.0.1/cpp/bindings/bind_paths.cpp +73 -0
- interpolatepy-3.0.1/cpp/bindings/bind_quaternion.cpp +142 -0
- interpolatepy-3.0.1/cpp/bindings/bind_smoothing_search.cpp +40 -0
- interpolatepy-3.0.1/cpp/bindings/bind_smoothing_spline.cpp +52 -0
- interpolatepy-3.0.1/cpp/bindings/bind_tridiagonal.cpp +13 -0
- interpolatepy-3.0.1/cpp/bindings/module.cpp +45 -0
- interpolatepy-3.0.1/cpp/cmake/InterpolateCppConfig.cmake.in +5 -0
- interpolatepy-3.0.1/cpp/cmake/version.hpp.in +6 -0
- interpolatepy-3.0.1/cpp/examples/CMakeLists.txt +29 -0
- interpolatepy-3.0.1/cpp/examples/bspline_approx_smooth_example.cpp +387 -0
- interpolatepy-3.0.1/cpp/examples/bspline_cubic_example.cpp +182 -0
- interpolatepy-3.0.1/cpp/examples/bspline_example.cpp +229 -0
- interpolatepy-3.0.1/cpp/examples/bspline_interpolator_example.cpp +360 -0
- interpolatepy-3.0.1/cpp/examples/concepts_example.cpp +398 -0
- interpolatepy-3.0.1/cpp/examples/cubic_smoothing_example.cpp +178 -0
- interpolatepy-3.0.1/cpp/examples/cubic_spline_acc1_example.cpp +316 -0
- interpolatepy-3.0.1/cpp/examples/cubic_spline_acc2_example.cpp +113 -0
- interpolatepy-3.0.1/cpp/examples/cubic_spline_example.cpp +67 -0
- interpolatepy-3.0.1/cpp/examples/double_s_example.cpp +222 -0
- interpolatepy-3.0.1/cpp/examples/parabolic_linear_example.cpp +206 -0
- interpolatepy-3.0.1/cpp/examples/paths_example.cpp +326 -0
- interpolatepy-3.0.1/cpp/examples/polynomial_example.cpp +212 -0
- interpolatepy-3.0.1/cpp/examples/quaternion_example.cpp +429 -0
- interpolatepy-3.0.1/cpp/examples/shared/example_utils.hpp +101 -0
- interpolatepy-3.0.1/cpp/examples/trapezoidal_example.cpp +218 -0
- interpolatepy-3.0.1/cpp/include/interpolatecpp/bspline/approximation_bspline.hpp +58 -0
- interpolatepy-3.0.1/cpp/include/interpolatecpp/bspline/bspline.hpp +77 -0
- interpolatepy-3.0.1/cpp/include/interpolatecpp/bspline/bspline_interpolator.hpp +61 -0
- interpolatepy-3.0.1/cpp/include/interpolatecpp/bspline/bspline_parameters.hpp +27 -0
- interpolatepy-3.0.1/cpp/include/interpolatecpp/bspline/cubic_bspline_interpolation.hpp +57 -0
- interpolatepy-3.0.1/cpp/include/interpolatecpp/bspline/smoothing_cubic_bspline.hpp +62 -0
- interpolatepy-3.0.1/cpp/include/interpolatecpp/concepts.hpp +56 -0
- interpolatepy-3.0.1/cpp/include/interpolatecpp/config.hpp +15 -0
- interpolatepy-3.0.1/cpp/include/interpolatecpp/motion/double_s_trajectory.hpp +57 -0
- interpolatepy-3.0.1/cpp/include/interpolatecpp/motion/motion_types.hpp +64 -0
- interpolatepy-3.0.1/cpp/include/interpolatecpp/motion/parabolic_blend_trajectory.hpp +52 -0
- interpolatepy-3.0.1/cpp/include/interpolatecpp/motion/polynomial_trajectory.hpp +63 -0
- interpolatepy-3.0.1/cpp/include/interpolatecpp/motion/trapezoidal_trajectory.hpp +66 -0
- interpolatepy-3.0.1/cpp/include/interpolatecpp/path/circular_path.hpp +29 -0
- interpolatepy-3.0.1/cpp/include/interpolatecpp/path/frenet_frame.hpp +49 -0
- interpolatepy-3.0.1/cpp/include/interpolatecpp/path/linear_path.hpp +25 -0
- interpolatepy-3.0.1/cpp/include/interpolatecpp/path/linear_traj.hpp +21 -0
- interpolatepy-3.0.1/cpp/include/interpolatecpp/quat/log_quaternion_interpolation.hpp +42 -0
- interpolatepy-3.0.1/cpp/include/interpolatecpp/quat/modified_log_quaternion_interpolation.hpp +58 -0
- interpolatepy-3.0.1/cpp/include/interpolatecpp/quat/quaternion.hpp +99 -0
- interpolatepy-3.0.1/cpp/include/interpolatecpp/quat/quaternion_spline.hpp +40 -0
- interpolatepy-3.0.1/cpp/include/interpolatecpp/quat/squad_c2.hpp +61 -0
- interpolatepy-3.0.1/cpp/include/interpolatecpp/spline/cubic_smoothing_spline.hpp +82 -0
- interpolatepy-3.0.1/cpp/include/interpolatecpp/spline/cubic_spline.hpp +71 -0
- interpolatepy-3.0.1/cpp/include/interpolatecpp/spline/cubic_spline_with_acc1.hpp +76 -0
- interpolatepy-3.0.1/cpp/include/interpolatecpp/spline/cubic_spline_with_acc2.hpp +53 -0
- interpolatepy-3.0.1/cpp/include/interpolatecpp/spline/smoothing_search.hpp +35 -0
- interpolatepy-3.0.1/cpp/include/interpolatecpp/spline/spline_parameters.hpp +28 -0
- interpolatepy-3.0.1/cpp/include/interpolatecpp/tridiagonal.hpp +47 -0
- interpolatepy-3.0.1/cpp/src/approximation_bspline.cpp +208 -0
- interpolatepy-3.0.1/cpp/src/bspline.cpp +308 -0
- interpolatepy-3.0.1/cpp/src/bspline_interpolator.cpp +261 -0
- interpolatepy-3.0.1/cpp/src/circular_path.cpp +61 -0
- interpolatepy-3.0.1/cpp/src/cubic_bspline_interpolation.cpp +213 -0
- interpolatepy-3.0.1/cpp/src/cubic_smoothing_spline.cpp +270 -0
- interpolatepy-3.0.1/cpp/src/cubic_spline.cpp +199 -0
- interpolatepy-3.0.1/cpp/src/cubic_spline_with_acc1.cpp +280 -0
- interpolatepy-3.0.1/cpp/src/cubic_spline_with_acc2.cpp +175 -0
- interpolatepy-3.0.1/cpp/src/double_s_trajectory.cpp +379 -0
- interpolatepy-3.0.1/cpp/src/frenet_frame.cpp +73 -0
- interpolatepy-3.0.1/cpp/src/linear_path.cpp +36 -0
- interpolatepy-3.0.1/cpp/src/linear_traj.cpp +31 -0
- interpolatepy-3.0.1/cpp/src/log_quaternion_interpolation.cpp +132 -0
- interpolatepy-3.0.1/cpp/src/modified_log_quaternion_interpolation.cpp +163 -0
- interpolatepy-3.0.1/cpp/src/parabolic_blend_trajectory.cpp +189 -0
- interpolatepy-3.0.1/cpp/src/polynomial_trajectory.cpp +227 -0
- interpolatepy-3.0.1/cpp/src/quaternion.cpp +252 -0
- interpolatepy-3.0.1/cpp/src/quaternion_spline.cpp +101 -0
- interpolatepy-3.0.1/cpp/src/smoothing_cubic_bspline.cpp +395 -0
- interpolatepy-3.0.1/cpp/src/smoothing_search.cpp +96 -0
- interpolatepy-3.0.1/cpp/src/squad_c2.cpp +192 -0
- interpolatepy-3.0.1/cpp/src/trapezoidal_trajectory.cpp +252 -0
- interpolatepy-3.0.1/cpp/tests/CMakeLists.txt +49 -0
- interpolatepy-3.0.1/cpp/tests/shared/test_data.hpp +37 -0
- interpolatepy-3.0.1/cpp/tests/test_bspline.cpp +449 -0
- interpolatepy-3.0.1/cpp/tests/test_bspline_variants.cpp +558 -0
- interpolatepy-3.0.1/cpp/tests/test_concepts.cpp +67 -0
- interpolatepy-3.0.1/cpp/tests/test_cubic_smoothing_spline.cpp +176 -0
- interpolatepy-3.0.1/cpp/tests/test_cubic_spline.cpp +266 -0
- interpolatepy-3.0.1/cpp/tests/test_cubic_spline_with_acc1.cpp +125 -0
- interpolatepy-3.0.1/cpp/tests/test_cubic_spline_with_acc2.cpp +171 -0
- interpolatepy-3.0.1/cpp/tests/test_double_s_trajectory.cpp +157 -0
- interpolatepy-3.0.1/cpp/tests/test_parabolic_blend_trajectory.cpp +122 -0
- interpolatepy-3.0.1/cpp/tests/test_paths.cpp +292 -0
- interpolatepy-3.0.1/cpp/tests/test_polynomial_trajectory.cpp +223 -0
- interpolatepy-3.0.1/cpp/tests/test_quaternion.cpp +161 -0
- interpolatepy-3.0.1/cpp/tests/test_quaternion_spline.cpp +334 -0
- interpolatepy-3.0.1/cpp/tests/test_smoothing_search.cpp +129 -0
- interpolatepy-3.0.1/cpp/tests/test_trapezoidal_trajectory.cpp +115 -0
- interpolatepy-3.0.1/cpp/tests/test_tridiagonal.cpp +103 -0
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/docs/api-reference.md +164 -4
- interpolatepy-3.0.1/docs/architecture.md +122 -0
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/docs/changelog.md +32 -8
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/docs/contributing.md +78 -30
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/docs/index.md +8 -4
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/docs/installation.md +104 -26
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/docs/quickstart.md +16 -19
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/docs/troubleshooting.md +32 -3
- interpolatepy-3.0.1/docs/tutorials/path-planning.md +248 -0
- interpolatepy-3.0.1/docs/tutorials/quaternion-interpolation.md +212 -0
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/docs/user-guide.md +2 -2
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/examples/double_s_ex.py +4 -4
- interpolatepy-3.0.1/examples/protocols_ex.py +476 -0
- interpolatepy-3.0.1/interpolatepy/__init__.py +111 -0
- interpolatepy-3.0.1/interpolatepy/_adapters/__init__.py +100 -0
- interpolatepy-3.0.1/interpolatepy/_adapters/_bspline.py +77 -0
- interpolatepy-3.0.1/interpolatepy/_adapters/_direct.py +23 -0
- interpolatepy-3.0.1/interpolatepy/_adapters/_motion.py +461 -0
- interpolatepy-3.0.1/interpolatepy/_adapters/_paths.py +130 -0
- interpolatepy-3.0.1/interpolatepy/_adapters/_quaternion.py +177 -0
- interpolatepy-3.0.1/interpolatepy/_adapters/_spline.py +68 -0
- interpolatepy-3.0.1/interpolatepy/_api.py +133 -0
- interpolatepy-3.0.1/interpolatepy/_backend.py +36 -0
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/interpolatepy/c_s_smoothing.py +2 -2
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/interpolatepy/double_s.py +81 -13
- interpolatepy-3.0.1/interpolatepy/protocols.py +116 -0
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/interpolatepy/quat_core.py +6 -6
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/interpolatepy/quat_spline.py +114 -0
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/interpolatepy/simple_paths.py +1 -2
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/interpolatepy/version.py +1 -1
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/mkdocs.yml +3 -0
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/pyproject.toml +21 -27
- interpolatepy-3.0.1/tests/test_backend.py +151 -0
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/tests/test_motion_profiles.py +14 -14
- interpolatepy-3.0.1/tests/test_protocols.py +349 -0
- interpolatepy-3.0.1/uv.lock +2142 -0
- interpolatepy-2.0.1/.github/workflows/pre-commit.yml +0 -17
- interpolatepy-2.0.1/.github/workflows/publish.yml +0 -29
- interpolatepy-2.0.1/.github/workflows/test.yml +0 -63
- interpolatepy-2.0.1/InterpolatePy.egg-info/SOURCES.txt +0 -98
- interpolatepy-2.0.1/InterpolatePy.egg-info/requires.txt +0 -21
- interpolatepy-2.0.1/interpolatepy/__init__.py +0 -100
- interpolatepy-2.0.1/requirements-dev.txt +0 -28
- interpolatepy-2.0.1/requirements.txt +0 -4
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/.editorconfig +0 -0
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/.gitattributes +0 -0
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/.github/FUNDING.yml +0 -0
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/ALGORITHMS.md +0 -0
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/InterpolatePy.egg-info/dependency_links.txt +0 -0
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/InterpolatePy.egg-info/top_level.txt +0 -0
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/LICENSE +0 -0
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/docs/algorithms.md +0 -0
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/docs/assets/extra.css +0 -0
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/docs/assets/extra.js +0 -0
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/docs/examples.md +0 -0
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/docs/tutorials/motion-profiles.md +0 -0
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/docs/tutorials/spline-interpolation.md +0 -0
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/examples/b_spline_approx_ex.py +0 -0
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/examples/b_spline_cubic_ex.py +0 -0
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/examples/b_spline_ex.py +0 -0
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/examples/b_spline_interpolate_ex.py +0 -0
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/examples/b_spline_smooth_ex.py +0 -0
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/examples/c_s_smoot_search_ex.py +0 -0
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/examples/c_s_smoothing_ex.py +0 -0
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/examples/c_s_with_acc1_ex.py +0 -0
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/examples/c_s_with_acc2_ex.py +0 -0
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/examples/cubic_spline_ex.py +0 -0
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/examples/frenet_frame_ex.py +0 -0
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/examples/lin_poly_parabolic_ex.py +0 -0
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/examples/linear_ex.py +0 -0
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/examples/log_quat_ex.py +0 -0
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/examples/log_quat_new_ex.py +0 -0
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/examples/main.py +0 -0
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/examples/polynomials_ex.py +0 -0
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/examples/quat_visualization_ex.py +0 -0
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/examples/simple_paths_ex.py +0 -0
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/examples/squad_c2_ex.py +0 -0
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/examples/trapezoidal_ex.py +0 -0
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/interpolatepy/b_spline.py +0 -0
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/interpolatepy/b_spline_approx.py +0 -0
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/interpolatepy/b_spline_cubic.py +0 -0
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/interpolatepy/b_spline_interpolate.py +0 -0
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/interpolatepy/b_spline_smooth.py +0 -0
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/interpolatepy/c_s_smoot_search.py +0 -0
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/interpolatepy/c_s_with_acc1.py +0 -0
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/interpolatepy/c_s_with_acc2.py +0 -0
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/interpolatepy/cubic_spline.py +0 -0
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/interpolatepy/frenet_frame.py +0 -0
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/interpolatepy/lin_poly_parabolic.py +0 -0
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/interpolatepy/linear.py +0 -0
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/interpolatepy/log_quat.py +0 -0
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/interpolatepy/polynomials.py +0 -0
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/interpolatepy/quat_visualization.py +0 -0
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/interpolatepy/squad_c2.py +0 -0
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/interpolatepy/trapezoidal.py +0 -0
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/interpolatepy/tridiagonal_inv.py +0 -0
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/setup.cfg +0 -0
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/tests/__init__.py +0 -0
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/tests/inv_test.py +0 -0
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/tests/test_b_spline.py +0 -0
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/tests/test_b_spline_variants.py +0 -0
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/tests/test_cubic_spline.py +0 -0
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/tests/test_lin_poly_parabolic.py +0 -0
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/tests/test_linear.py +0 -0
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/tests/test_log_quat.py +0 -0
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/tests/test_path_planning.py +0 -0
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/tests/test_polynomials.py +0 -0
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/tests/test_quat_interp.py +0 -0
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/tests/test_quat_visualization.py +0 -0
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/tests/test_smoothing.py +0 -0
- {interpolatepy-2.0.1 → interpolatepy-3.0.1}/tests/test_squad_c2.py +0 -0
|
@@ -32,22 +32,20 @@ jobs:
|
|
|
32
32
|
steps:
|
|
33
33
|
- name: Checkout repository
|
|
34
34
|
uses: actions/checkout@v4
|
|
35
|
-
|
|
36
|
-
- name: Set up Python
|
|
37
|
-
uses: actions/setup-python@v5
|
|
38
35
|
with:
|
|
39
|
-
|
|
40
|
-
cache: 'pip'
|
|
41
|
-
|
|
42
|
-
- name: Install dependencies
|
|
43
|
-
run: |
|
|
44
|
-
python -m pip install --upgrade pip
|
|
45
|
-
pip install -r requirements-dev.txt
|
|
46
|
-
pip install -e .
|
|
36
|
+
fetch-depth: 0
|
|
47
37
|
|
|
38
|
+
- name: Install uv
|
|
39
|
+
uses: astral-sh/setup-uv@v6
|
|
40
|
+
with:
|
|
41
|
+
enable-cache: true
|
|
42
|
+
cache-dependency-glob: uv.lock
|
|
43
|
+
|
|
44
|
+
- name: Sync dependencies
|
|
45
|
+
run: uv sync --locked --no-default-groups --group docs
|
|
46
|
+
|
|
48
47
|
- name: Build documentation
|
|
49
|
-
run:
|
|
50
|
-
mkdocs build --clean --strict
|
|
48
|
+
run: uv run mkdocs build --clean --strict
|
|
51
49
|
|
|
52
50
|
- name: Setup Pages
|
|
53
51
|
if: github.ref == 'refs/heads/main' && github.event_name == 'push'
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
name: pre-commit
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
pull_request:
|
|
5
|
+
push:
|
|
6
|
+
branches: [ main, master ]
|
|
7
|
+
|
|
8
|
+
jobs:
|
|
9
|
+
pre-commit:
|
|
10
|
+
runs-on: ubuntu-latest
|
|
11
|
+
steps:
|
|
12
|
+
- uses: actions/checkout@v4
|
|
13
|
+
- name: Install uv
|
|
14
|
+
uses: astral-sh/setup-uv@v6
|
|
15
|
+
with:
|
|
16
|
+
enable-cache: true
|
|
17
|
+
cache-dependency-glob: uv.lock
|
|
18
|
+
- name: Sync dependencies
|
|
19
|
+
run: uv sync --locked --no-default-groups --group dev
|
|
20
|
+
- name: Cache pre-commit hook environments
|
|
21
|
+
uses: actions/cache@v4
|
|
22
|
+
with:
|
|
23
|
+
path: ~/.cache/pre-commit
|
|
24
|
+
key: pre-commit-${{ runner.os }}-${{ hashFiles('.pre-commit-config.yaml') }}
|
|
25
|
+
restore-keys: |
|
|
26
|
+
pre-commit-${{ runner.os }}-
|
|
27
|
+
- name: Run pre-commit
|
|
28
|
+
run: uv run pre-commit run --all-files --show-diff-on-failure
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
name: Publish
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
release:
|
|
5
|
+
types: [created]
|
|
6
|
+
|
|
7
|
+
jobs:
|
|
8
|
+
deploy:
|
|
9
|
+
runs-on: ubuntu-latest
|
|
10
|
+
permissions:
|
|
11
|
+
id-token: write
|
|
12
|
+
contents: read
|
|
13
|
+
environment: pypi
|
|
14
|
+
steps:
|
|
15
|
+
- uses: actions/checkout@v4
|
|
16
|
+
with:
|
|
17
|
+
fetch-depth: 0
|
|
18
|
+
- name: Install uv
|
|
19
|
+
uses: astral-sh/setup-uv@v6
|
|
20
|
+
with:
|
|
21
|
+
enable-cache: true
|
|
22
|
+
cache-dependency-glob: uv.lock
|
|
23
|
+
- name: Build package
|
|
24
|
+
run: uv build
|
|
25
|
+
- name: Verify package
|
|
26
|
+
run: uvx twine check dist/*
|
|
27
|
+
- name: Publish to PyPI
|
|
28
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
name: ci-test
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [ main, master ]
|
|
6
|
+
pull_request:
|
|
7
|
+
branches: [ main, master ]
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
test:
|
|
11
|
+
runs-on: ${{ matrix.os }}
|
|
12
|
+
strategy:
|
|
13
|
+
matrix:
|
|
14
|
+
os: [ubuntu-latest, macos-latest]
|
|
15
|
+
python-version: ['3.11', '3.12', '3.13']
|
|
16
|
+
env:
|
|
17
|
+
UV_PYTHON: ${{ matrix.python-version }}
|
|
18
|
+
steps:
|
|
19
|
+
- uses: actions/checkout@v4
|
|
20
|
+
- name: Install uv
|
|
21
|
+
uses: astral-sh/setup-uv@v6
|
|
22
|
+
with:
|
|
23
|
+
enable-cache: true
|
|
24
|
+
cache-dependency-glob: uv.lock
|
|
25
|
+
- name: Sync dependencies
|
|
26
|
+
run: uv sync --locked --no-default-groups --group test
|
|
27
|
+
- name: Testing with coverage
|
|
28
|
+
run: uv run pytest tests --cov=interpolatepy --cov-report=xml --cov-report=term-missing
|
|
29
|
+
- name: Upload coverage to Codecov
|
|
30
|
+
uses: codecov/codecov-action@v5
|
|
31
|
+
with:
|
|
32
|
+
token: ${{ secrets.CODECOV_TOKEN }}
|
|
33
|
+
files: ./coverage.xml
|
|
34
|
+
flags: unittests
|
|
35
|
+
name: codecov-umbrella
|
|
36
|
+
fail_ci_if_error: false
|
|
@@ -99,9 +99,6 @@ target/
|
|
|
99
99
|
# Jupyter Notebook
|
|
100
100
|
.ipynb_checkpoints
|
|
101
101
|
|
|
102
|
-
# pyenv
|
|
103
|
-
.python-version
|
|
104
|
-
|
|
105
102
|
# celery beat schedule file
|
|
106
103
|
celerybeat-schedule
|
|
107
104
|
|
|
@@ -141,3 +138,13 @@ venv.bak/
|
|
|
141
138
|
.history
|
|
142
139
|
|
|
143
140
|
CLAUDE.md
|
|
141
|
+
|
|
142
|
+
################################
|
|
143
|
+
########### C++ BUILD ##########
|
|
144
|
+
################################
|
|
145
|
+
cpp/build/
|
|
146
|
+
*.o
|
|
147
|
+
*.a
|
|
148
|
+
*.so
|
|
149
|
+
*.dylib
|
|
150
|
+
compile_commands.json
|
|
@@ -12,14 +12,14 @@ repos:
|
|
|
12
12
|
- id: check-toml
|
|
13
13
|
|
|
14
14
|
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
15
|
-
rev: 'v0.
|
|
15
|
+
rev: 'v0.15.7'
|
|
16
16
|
hooks:
|
|
17
17
|
- id: ruff
|
|
18
18
|
types_or: [python, pyi, jupyter]
|
|
19
19
|
args: [ --fix, --exit-non-zero-on-fix, --preview ]
|
|
20
20
|
|
|
21
21
|
- repo: https://github.com/pre-commit/mirrors-mypy
|
|
22
|
-
rev: v1.
|
|
22
|
+
rev: v1.19.1
|
|
23
23
|
hooks:
|
|
24
24
|
- id: mypy
|
|
25
25
|
args: [--ignore-missing-imports]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
3.12
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: InterpolatePy
|
|
3
|
-
Version:
|
|
3
|
+
Version: 3.0.1
|
|
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>
|
|
@@ -17,7 +17,6 @@ Classifier: Intended Audience :: Science/Research
|
|
|
17
17
|
Classifier: Intended Audience :: Developers
|
|
18
18
|
Classifier: Intended Audience :: Education
|
|
19
19
|
Classifier: Programming Language :: Python :: 3
|
|
20
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
21
20
|
Classifier: Programming Language :: Python :: 3.11
|
|
22
21
|
Classifier: Programming Language :: Python :: 3.12
|
|
23
22
|
Classifier: Programming Language :: Python :: 3.13
|
|
@@ -31,32 +30,18 @@ Classifier: Topic :: Scientific/Engineering :: Physics
|
|
|
31
30
|
Classifier: Topic :: Scientific/Engineering :: Visualization
|
|
32
31
|
Classifier: Topic :: Software Development :: Libraries
|
|
33
32
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
33
|
+
Classifier: Programming Language :: C++
|
|
34
34
|
Requires-Python: >=3.11
|
|
35
35
|
Description-Content-Type: text/markdown
|
|
36
36
|
License-File: LICENSE
|
|
37
|
-
Requires-Dist: numpy>=
|
|
38
|
-
Requires-Dist: matplotlib>=3.
|
|
39
|
-
Requires-Dist: scipy>=1.
|
|
40
|
-
Provides-Extra: test
|
|
41
|
-
Requires-Dist: pytest>=8.4.0; extra == "test"
|
|
42
|
-
Requires-Dist: pytest-cov>=4.1.0; extra == "test"
|
|
43
|
-
Requires-Dist: codecov>=2.1.13; extra == "test"
|
|
44
|
-
Requires-Dist: pytest-benchmark>=4.0.0; extra == "test"
|
|
45
|
-
Requires-Dist: pre-commit>=4.2.0; extra == "test"
|
|
46
|
-
Provides-Extra: dev
|
|
47
|
-
Requires-Dist: ruff>=0.12.8; extra == "dev"
|
|
48
|
-
Requires-Dist: mypy>=1.17.0; extra == "dev"
|
|
49
|
-
Requires-Dist: pre-commit>=4.2.0; extra == "dev"
|
|
50
|
-
Requires-Dist: pyright>=1.1.400; extra == "dev"
|
|
51
|
-
Requires-Dist: build>=1.0.3; extra == "dev"
|
|
52
|
-
Requires-Dist: twine>=4.0.2; extra == "dev"
|
|
53
|
-
Provides-Extra: all
|
|
54
|
-
Requires-Dist: interpolatepy[dev,test]; extra == "all"
|
|
37
|
+
Requires-Dist: numpy>=1.26
|
|
38
|
+
Requires-Dist: matplotlib>=3.6
|
|
39
|
+
Requires-Dist: scipy>=1.11
|
|
55
40
|
Dynamic: license-file
|
|
56
41
|
|
|
57
42
|
# InterpolatePy
|
|
58
43
|
|
|
59
|
-

|
|
60
45
|
[](https://pepy.tech/projects/interpolatepy)
|
|
61
46
|
[](https://github.com/GiorgioMedico/InterpolatePy/actions/workflows/pre-commit.yml)
|
|
62
47
|
[](https://github.com/GiorgioMedico/InterpolatePy/actions/workflows/test.yml)
|
|
@@ -66,9 +51,9 @@ Dynamic: license-file
|
|
|
66
51
|
|
|
67
52
|
InterpolatePy provides 20+ algorithms for smooth trajectory generation with precise control over position, velocity, acceleration, and jerk. From cubic splines and B-curves to quaternion interpolation and S-curve motion profiles — everything you need for professional motion control.
|
|
68
53
|
|
|
69
|
-
**⚡ Fast:**
|
|
70
|
-
**🎯 Precise:** Research-grade algorithms with C² continuity and bounded derivatives
|
|
71
|
-
**📊 Visual:** Built-in plotting for every algorithm
|
|
54
|
+
**⚡ Fast:** Optional C++ backend with pybind11; pure-Python fallback uses vectorized NumPy
|
|
55
|
+
**🎯 Precise:** Research-grade algorithms with C² continuity and bounded derivatives
|
|
56
|
+
**📊 Visual:** Built-in plotting for every algorithm
|
|
72
57
|
**🔧 Complete:** Splines, motion profiles, quaternions, and path planning in one library
|
|
73
58
|
|
|
74
59
|
---
|
|
@@ -79,16 +64,20 @@ InterpolatePy provides 20+ algorithms for smooth trajectory generation with prec
|
|
|
79
64
|
pip install InterpolatePy
|
|
80
65
|
```
|
|
81
66
|
|
|
82
|
-
**Requirements:** Python ≥3.
|
|
67
|
+
**Requirements:** Python ≥3.11, NumPy ≥2.3, SciPy ≥1.16, Matplotlib ≥3.10.5
|
|
83
68
|
|
|
84
69
|
<details>
|
|
85
70
|
<summary><strong>Development Installation</strong></summary>
|
|
86
71
|
|
|
72
|
+
This project uses [uv](https://docs.astral.sh/uv/) for dependency and environment management.
|
|
73
|
+
|
|
87
74
|
```bash
|
|
88
75
|
git clone https://github.com/GiorgioMedico/InterpolatePy.git
|
|
89
76
|
cd InterpolatePy
|
|
90
|
-
|
|
77
|
+
uv sync # creates .venv with the default dev + test groups
|
|
91
78
|
```
|
|
79
|
+
|
|
80
|
+
To include the docs group as well: `uv sync --all-groups`.
|
|
92
81
|
</details>
|
|
93
82
|
|
|
94
83
|
## Quick Start
|
|
@@ -278,12 +267,23 @@ plt.show()
|
|
|
278
267
|
|
|
279
268
|
## Performance & Quality
|
|
280
269
|
|
|
281
|
-
- **Fast:**
|
|
282
|
-
- **Reliable:** 85%+ test coverage, continuous integration
|
|
283
|
-
- **Modern:** Python 3.
|
|
270
|
+
- **Fast:** Optional C++ backend (Eigen + pybind11) for maximum performance; pure-Python fallback uses vectorized NumPy
|
|
271
|
+
- **Reliable:** 85%+ test coverage, continuous integration, 142 additional C++ unit tests
|
|
272
|
+
- **Modern:** Python 3.11+, strict typing, dataclass-based APIs
|
|
284
273
|
- **Research-grade:** Peer-reviewed algorithms from robotics literature
|
|
285
274
|
|
|
286
|
-
**
|
|
275
|
+
**C++ Backend:**
|
|
276
|
+
|
|
277
|
+
InterpolatePy includes an optional compiled C++ extension for performance-critical workloads. The API is identical regardless of backend:
|
|
278
|
+
|
|
279
|
+
```python
|
|
280
|
+
import interpolatepy
|
|
281
|
+
print(f"C++ backend: {interpolatepy.HAS_CPP}") # True if extension is available
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
Set `INTERPOLATEPY_NO_CPP=1` to force pure-Python mode.
|
|
285
|
+
|
|
286
|
+
**Typical Performance (pure-Python):**
|
|
287
287
|
- Cubic spline (1000 points): ~1ms
|
|
288
288
|
- B-spline evaluation (10k points): ~5ms
|
|
289
289
|
- S-curve trajectory planning: ~0.5ms
|
|
@@ -298,20 +298,22 @@ plt.show()
|
|
|
298
298
|
```bash
|
|
299
299
|
git clone https://github.com/GiorgioMedico/InterpolatePy.git
|
|
300
300
|
cd InterpolatePy
|
|
301
|
-
|
|
302
|
-
pre-commit install
|
|
301
|
+
uv sync # creates .venv with dev + test groups
|
|
302
|
+
uv run pre-commit install
|
|
303
303
|
|
|
304
304
|
# Run tests
|
|
305
|
-
|
|
305
|
+
uv run pytest tests/
|
|
306
306
|
|
|
307
307
|
# Run tests with coverage
|
|
308
|
-
|
|
308
|
+
uv run pytest tests/ --cov=interpolatepy --cov-report=html --cov-report=term
|
|
309
309
|
|
|
310
310
|
# Code quality
|
|
311
|
-
ruff format interpolatepy/
|
|
312
|
-
ruff check interpolatepy/
|
|
313
|
-
mypy interpolatepy/
|
|
311
|
+
uv run ruff format interpolatepy/
|
|
312
|
+
uv run ruff check interpolatepy/
|
|
313
|
+
uv run mypy interpolatepy/
|
|
314
314
|
|
|
315
|
+
# Run all pre-commit hooks
|
|
316
|
+
uv run pre-commit run --all-files
|
|
315
317
|
```
|
|
316
318
|
</details>
|
|
317
319
|
|
|
@@ -322,9 +324,9 @@ mypy interpolatepy/
|
|
|
322
324
|
Contributions welcome! Please:
|
|
323
325
|
|
|
324
326
|
1. Fork the repo and create a feature branch
|
|
325
|
-
2. Install dev dependencies: `
|
|
327
|
+
2. Install dev dependencies: `uv sync`
|
|
326
328
|
3. Follow existing patterns and add tests
|
|
327
|
-
4. Run `pre-commit run --all-files` before submitting
|
|
329
|
+
4. Run `uv run pre-commit run --all-files` before submitting
|
|
328
330
|
5. Open a pull request with clear description
|
|
329
331
|
|
|
330
332
|
For major changes, open an issue first to discuss the approach.
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
.editorconfig
|
|
2
|
+
.gitattributes
|
|
3
|
+
.gitignore
|
|
4
|
+
.pre-commit-config.yaml
|
|
5
|
+
.python-version
|
|
6
|
+
ALGORITHMS.md
|
|
7
|
+
LICENSE
|
|
8
|
+
README.md
|
|
9
|
+
codecov.yml
|
|
10
|
+
mkdocs.yml
|
|
11
|
+
pyproject.toml
|
|
12
|
+
uv.lock
|
|
13
|
+
.github/FUNDING.yml
|
|
14
|
+
.github/workflows/docs.yml
|
|
15
|
+
.github/workflows/pre-commit.yml
|
|
16
|
+
.github/workflows/publish.yml
|
|
17
|
+
.github/workflows/test.yml
|
|
18
|
+
InterpolatePy.egg-info/PKG-INFO
|
|
19
|
+
InterpolatePy.egg-info/SOURCES.txt
|
|
20
|
+
InterpolatePy.egg-info/dependency_links.txt
|
|
21
|
+
InterpolatePy.egg-info/requires.txt
|
|
22
|
+
InterpolatePy.egg-info/top_level.txt
|
|
23
|
+
cpp/CMakeLists.txt
|
|
24
|
+
cpp/bindings/CMakeLists.txt
|
|
25
|
+
cpp/bindings/bind_acc_splines.cpp
|
|
26
|
+
cpp/bindings/bind_bspline.cpp
|
|
27
|
+
cpp/bindings/bind_cubic_spline.cpp
|
|
28
|
+
cpp/bindings/bind_motion.cpp
|
|
29
|
+
cpp/bindings/bind_paths.cpp
|
|
30
|
+
cpp/bindings/bind_quaternion.cpp
|
|
31
|
+
cpp/bindings/bind_smoothing_search.cpp
|
|
32
|
+
cpp/bindings/bind_smoothing_spline.cpp
|
|
33
|
+
cpp/bindings/bind_tridiagonal.cpp
|
|
34
|
+
cpp/bindings/module.cpp
|
|
35
|
+
cpp/cmake/InterpolateCppConfig.cmake.in
|
|
36
|
+
cpp/cmake/version.hpp.in
|
|
37
|
+
cpp/examples/CMakeLists.txt
|
|
38
|
+
cpp/examples/bspline_approx_smooth_example.cpp
|
|
39
|
+
cpp/examples/bspline_cubic_example.cpp
|
|
40
|
+
cpp/examples/bspline_example.cpp
|
|
41
|
+
cpp/examples/bspline_interpolator_example.cpp
|
|
42
|
+
cpp/examples/concepts_example.cpp
|
|
43
|
+
cpp/examples/cubic_smoothing_example.cpp
|
|
44
|
+
cpp/examples/cubic_spline_acc1_example.cpp
|
|
45
|
+
cpp/examples/cubic_spline_acc2_example.cpp
|
|
46
|
+
cpp/examples/cubic_spline_example.cpp
|
|
47
|
+
cpp/examples/double_s_example.cpp
|
|
48
|
+
cpp/examples/parabolic_linear_example.cpp
|
|
49
|
+
cpp/examples/paths_example.cpp
|
|
50
|
+
cpp/examples/polynomial_example.cpp
|
|
51
|
+
cpp/examples/quaternion_example.cpp
|
|
52
|
+
cpp/examples/trapezoidal_example.cpp
|
|
53
|
+
cpp/examples/shared/example_utils.hpp
|
|
54
|
+
cpp/include/interpolatecpp/concepts.hpp
|
|
55
|
+
cpp/include/interpolatecpp/config.hpp
|
|
56
|
+
cpp/include/interpolatecpp/tridiagonal.hpp
|
|
57
|
+
cpp/include/interpolatecpp/bspline/approximation_bspline.hpp
|
|
58
|
+
cpp/include/interpolatecpp/bspline/bspline.hpp
|
|
59
|
+
cpp/include/interpolatecpp/bspline/bspline_interpolator.hpp
|
|
60
|
+
cpp/include/interpolatecpp/bspline/bspline_parameters.hpp
|
|
61
|
+
cpp/include/interpolatecpp/bspline/cubic_bspline_interpolation.hpp
|
|
62
|
+
cpp/include/interpolatecpp/bspline/smoothing_cubic_bspline.hpp
|
|
63
|
+
cpp/include/interpolatecpp/motion/double_s_trajectory.hpp
|
|
64
|
+
cpp/include/interpolatecpp/motion/motion_types.hpp
|
|
65
|
+
cpp/include/interpolatecpp/motion/parabolic_blend_trajectory.hpp
|
|
66
|
+
cpp/include/interpolatecpp/motion/polynomial_trajectory.hpp
|
|
67
|
+
cpp/include/interpolatecpp/motion/trapezoidal_trajectory.hpp
|
|
68
|
+
cpp/include/interpolatecpp/path/circular_path.hpp
|
|
69
|
+
cpp/include/interpolatecpp/path/frenet_frame.hpp
|
|
70
|
+
cpp/include/interpolatecpp/path/linear_path.hpp
|
|
71
|
+
cpp/include/interpolatecpp/path/linear_traj.hpp
|
|
72
|
+
cpp/include/interpolatecpp/quat/log_quaternion_interpolation.hpp
|
|
73
|
+
cpp/include/interpolatecpp/quat/modified_log_quaternion_interpolation.hpp
|
|
74
|
+
cpp/include/interpolatecpp/quat/quaternion.hpp
|
|
75
|
+
cpp/include/interpolatecpp/quat/quaternion_spline.hpp
|
|
76
|
+
cpp/include/interpolatecpp/quat/squad_c2.hpp
|
|
77
|
+
cpp/include/interpolatecpp/spline/cubic_smoothing_spline.hpp
|
|
78
|
+
cpp/include/interpolatecpp/spline/cubic_spline.hpp
|
|
79
|
+
cpp/include/interpolatecpp/spline/cubic_spline_with_acc1.hpp
|
|
80
|
+
cpp/include/interpolatecpp/spline/cubic_spline_with_acc2.hpp
|
|
81
|
+
cpp/include/interpolatecpp/spline/smoothing_search.hpp
|
|
82
|
+
cpp/include/interpolatecpp/spline/spline_parameters.hpp
|
|
83
|
+
cpp/src/approximation_bspline.cpp
|
|
84
|
+
cpp/src/bspline.cpp
|
|
85
|
+
cpp/src/bspline_interpolator.cpp
|
|
86
|
+
cpp/src/circular_path.cpp
|
|
87
|
+
cpp/src/cubic_bspline_interpolation.cpp
|
|
88
|
+
cpp/src/cubic_smoothing_spline.cpp
|
|
89
|
+
cpp/src/cubic_spline.cpp
|
|
90
|
+
cpp/src/cubic_spline_with_acc1.cpp
|
|
91
|
+
cpp/src/cubic_spline_with_acc2.cpp
|
|
92
|
+
cpp/src/double_s_trajectory.cpp
|
|
93
|
+
cpp/src/frenet_frame.cpp
|
|
94
|
+
cpp/src/linear_path.cpp
|
|
95
|
+
cpp/src/linear_traj.cpp
|
|
96
|
+
cpp/src/log_quaternion_interpolation.cpp
|
|
97
|
+
cpp/src/modified_log_quaternion_interpolation.cpp
|
|
98
|
+
cpp/src/parabolic_blend_trajectory.cpp
|
|
99
|
+
cpp/src/polynomial_trajectory.cpp
|
|
100
|
+
cpp/src/quaternion.cpp
|
|
101
|
+
cpp/src/quaternion_spline.cpp
|
|
102
|
+
cpp/src/smoothing_cubic_bspline.cpp
|
|
103
|
+
cpp/src/smoothing_search.cpp
|
|
104
|
+
cpp/src/squad_c2.cpp
|
|
105
|
+
cpp/src/trapezoidal_trajectory.cpp
|
|
106
|
+
cpp/tests/CMakeLists.txt
|
|
107
|
+
cpp/tests/test_bspline.cpp
|
|
108
|
+
cpp/tests/test_bspline_variants.cpp
|
|
109
|
+
cpp/tests/test_concepts.cpp
|
|
110
|
+
cpp/tests/test_cubic_smoothing_spline.cpp
|
|
111
|
+
cpp/tests/test_cubic_spline.cpp
|
|
112
|
+
cpp/tests/test_cubic_spline_with_acc1.cpp
|
|
113
|
+
cpp/tests/test_cubic_spline_with_acc2.cpp
|
|
114
|
+
cpp/tests/test_double_s_trajectory.cpp
|
|
115
|
+
cpp/tests/test_parabolic_blend_trajectory.cpp
|
|
116
|
+
cpp/tests/test_paths.cpp
|
|
117
|
+
cpp/tests/test_polynomial_trajectory.cpp
|
|
118
|
+
cpp/tests/test_quaternion.cpp
|
|
119
|
+
cpp/tests/test_quaternion_spline.cpp
|
|
120
|
+
cpp/tests/test_smoothing_search.cpp
|
|
121
|
+
cpp/tests/test_trapezoidal_trajectory.cpp
|
|
122
|
+
cpp/tests/test_tridiagonal.cpp
|
|
123
|
+
cpp/tests/shared/test_data.hpp
|
|
124
|
+
docs/algorithms.md
|
|
125
|
+
docs/api-reference.md
|
|
126
|
+
docs/architecture.md
|
|
127
|
+
docs/changelog.md
|
|
128
|
+
docs/contributing.md
|
|
129
|
+
docs/examples.md
|
|
130
|
+
docs/index.md
|
|
131
|
+
docs/installation.md
|
|
132
|
+
docs/quickstart.md
|
|
133
|
+
docs/troubleshooting.md
|
|
134
|
+
docs/user-guide.md
|
|
135
|
+
docs/assets/extra.css
|
|
136
|
+
docs/assets/extra.js
|
|
137
|
+
docs/tutorials/motion-profiles.md
|
|
138
|
+
docs/tutorials/path-planning.md
|
|
139
|
+
docs/tutorials/quaternion-interpolation.md
|
|
140
|
+
docs/tutorials/spline-interpolation.md
|
|
141
|
+
examples/b_spline_approx_ex.py
|
|
142
|
+
examples/b_spline_cubic_ex.py
|
|
143
|
+
examples/b_spline_ex.py
|
|
144
|
+
examples/b_spline_interpolate_ex.py
|
|
145
|
+
examples/b_spline_smooth_ex.py
|
|
146
|
+
examples/c_s_smoot_search_ex.py
|
|
147
|
+
examples/c_s_smoothing_ex.py
|
|
148
|
+
examples/c_s_with_acc1_ex.py
|
|
149
|
+
examples/c_s_with_acc2_ex.py
|
|
150
|
+
examples/cubic_spline_ex.py
|
|
151
|
+
examples/double_s_ex.py
|
|
152
|
+
examples/frenet_frame_ex.py
|
|
153
|
+
examples/lin_poly_parabolic_ex.py
|
|
154
|
+
examples/linear_ex.py
|
|
155
|
+
examples/log_quat_ex.py
|
|
156
|
+
examples/log_quat_new_ex.py
|
|
157
|
+
examples/main.py
|
|
158
|
+
examples/polynomials_ex.py
|
|
159
|
+
examples/protocols_ex.py
|
|
160
|
+
examples/quat_visualization_ex.py
|
|
161
|
+
examples/simple_paths_ex.py
|
|
162
|
+
examples/squad_c2_ex.py
|
|
163
|
+
examples/trapezoidal_ex.py
|
|
164
|
+
interpolatepy/__init__.py
|
|
165
|
+
interpolatepy/_api.py
|
|
166
|
+
interpolatepy/_backend.py
|
|
167
|
+
interpolatepy/b_spline.py
|
|
168
|
+
interpolatepy/b_spline_approx.py
|
|
169
|
+
interpolatepy/b_spline_cubic.py
|
|
170
|
+
interpolatepy/b_spline_interpolate.py
|
|
171
|
+
interpolatepy/b_spline_smooth.py
|
|
172
|
+
interpolatepy/c_s_smoot_search.py
|
|
173
|
+
interpolatepy/c_s_smoothing.py
|
|
174
|
+
interpolatepy/c_s_with_acc1.py
|
|
175
|
+
interpolatepy/c_s_with_acc2.py
|
|
176
|
+
interpolatepy/cubic_spline.py
|
|
177
|
+
interpolatepy/double_s.py
|
|
178
|
+
interpolatepy/frenet_frame.py
|
|
179
|
+
interpolatepy/lin_poly_parabolic.py
|
|
180
|
+
interpolatepy/linear.py
|
|
181
|
+
interpolatepy/log_quat.py
|
|
182
|
+
interpolatepy/polynomials.py
|
|
183
|
+
interpolatepy/protocols.py
|
|
184
|
+
interpolatepy/quat_core.py
|
|
185
|
+
interpolatepy/quat_spline.py
|
|
186
|
+
interpolatepy/quat_visualization.py
|
|
187
|
+
interpolatepy/simple_paths.py
|
|
188
|
+
interpolatepy/squad_c2.py
|
|
189
|
+
interpolatepy/trapezoidal.py
|
|
190
|
+
interpolatepy/tridiagonal_inv.py
|
|
191
|
+
interpolatepy/version.py
|
|
192
|
+
interpolatepy/_adapters/__init__.py
|
|
193
|
+
interpolatepy/_adapters/_bspline.py
|
|
194
|
+
interpolatepy/_adapters/_direct.py
|
|
195
|
+
interpolatepy/_adapters/_motion.py
|
|
196
|
+
interpolatepy/_adapters/_paths.py
|
|
197
|
+
interpolatepy/_adapters/_quaternion.py
|
|
198
|
+
interpolatepy/_adapters/_spline.py
|
|
199
|
+
tests/__init__.py
|
|
200
|
+
tests/inv_test.py
|
|
201
|
+
tests/test_b_spline.py
|
|
202
|
+
tests/test_b_spline_variants.py
|
|
203
|
+
tests/test_backend.py
|
|
204
|
+
tests/test_cubic_spline.py
|
|
205
|
+
tests/test_lin_poly_parabolic.py
|
|
206
|
+
tests/test_linear.py
|
|
207
|
+
tests/test_log_quat.py
|
|
208
|
+
tests/test_motion_profiles.py
|
|
209
|
+
tests/test_path_planning.py
|
|
210
|
+
tests/test_polynomials.py
|
|
211
|
+
tests/test_protocols.py
|
|
212
|
+
tests/test_quat_interp.py
|
|
213
|
+
tests/test_quat_visualization.py
|
|
214
|
+
tests/test_smoothing.py
|
|
215
|
+
tests/test_squad_c2.py
|