Repository navigation
What's Changed
- fix: skip docs build/publish on pull_request, not just push by @petercorke in #222
- fix: normalize ICP2d's returned transform to exact orthonormality by @petercorke in #204
- Fix Line3 distance for parallel and non-unit directions by @Doribelove in #224
- Require typing_extensions with Self support on Python 3.10 by @Doribelove in #233
- fix: preserve small rotations in quaternion logarithms by @dddd-jh in #237
- Fold latitude angles correctly across complete turns by @xiehuanyi in #241
- Make vector projections independent of direction scale by @xiehuanyi in #242
- fix: version guard catches everything and leaves it unset on failure by @petercorke in #206
- test: add regression coverage for trlog near-identity division by @petercorke in #208
- refactor(base): collapse the three-way Python-version type shim into one file by @petercorke in #212
- perf(base): speed up isR/ishom/ishom2 orthogonality checks by @petercorke in #213
- perf(base): speed up trnorm and tr2adjoint by @petercorke in #214
- perf(base): speed up qqmul and qvmul by @petercorke in #215
- perf(base): speed up isskewa, cache identity in trexp/trlog/rodrigues by @petercorke in #216
- chore: switch docs build to PyPI sphinx-pyrunblock instead of git+https by @petercorke in #221
- docs: add sphinx-copybutton and sphinx-codeautolink by @petercorke in #223
- fix: broken docstring examples in Twist2/Twist3/DualQuaternion (and their shared root cause) by @petercorke in #225
- chore: declare Python 3.13/3.14 support, add 3.14 to CI by @petercorke in #228
- chore: reorganize timing script as benchmarks/benchmark_smtb.py by @petercorke in #229
- fix: trplot/trplot2 silently swallowed unknown keyword arguments by @petercorke in #230
- Make Line3 relation tests invariant to Plücker scale by @Doribelove in #232
- Fix animation start pose being applied twice in Animate.trplot by @RoboX2020 in #238
- Reject unsupported ndarray ranks in isvector by @MokiMeow in #239
- test+fix: direct tests for e2h/h2e, h2e rejects <2 rows, document contract by @petercorke in #240
- Broadcast scalar integration steps over twist sequences by @antonsoo in #248
- Keep twist poles invariant under angular speed scaling by @antonsoo in #249
- fix: pre-commit is a development tool, not a runtime dependency by @petercorke in #250
- fix(base): angle_std returned nan for identical angles by @petercorke in #254
- Normalize the axis in UnitQuaternion.AngVec by @wpyaoxueros in #266
- fix: make the OA and conjugation docstrings raw strings by @petercorke in #251
- docs(base): fix the angle_std formula and the angle_mean and angle_wrap parameter docs by @petercorke in #253
- fix: Twist2.ad raised ValueError for every twist; add Twist2.Ad and SE2.Ad by @petercorke in #259
- docs: fix the math block in the tr2adjoint and tr2adjoint2 docstrings by @petercorke in #260
- fix(graphics): ignore sign of scalar in expand_dims, document reversed limits by @petercorke in #262
- feat(base): set_window_title, set the title of a figure's window if it has one by @petercorke in #263
- angvec2r: reject a zero axis for a non-zero angle by @petercorke in #267
- fix: Twist3 * SpatialVector raised ValueError instead of dispatching by @petercorke in #210
- fix: preserve rotation quadrants in trlog2 by @vera-rubin in #256
- fix: twist sequence predicates, scalar left-multiply, copied docstrings; document twist usages (builds on #248) by @petercorke in #258
- fix(graphics): accept unspecified dimensions in expand_dims by @Doribelove in #270
- deprecate: UnitQuaternion.interp1's shortest parameter is a no-op by @petercorke in #209
- perf: compute Twist3.Ad() directly instead of via a throwaway SE3 by @petercorke in #211
- Accept a stacked (N, r, c) ndarray as a sequence of poses (SE3, SO3, SE2, SO2) by @RoboX2020 in #243
- Defer scipy imports so import spatialmath is faster by @RoboX2020 in #244
- Defer optional SymPy imports until symbolic operations need them by @RoboX2020 in #264
- fix(graphics): axes_logic uses an empty current figure instead of creating a second one by @petercorke in #265
- feat(base): add environment() and move isnotebook out of the matplotlib block by @petercorke in #271
- fix(geom3d): return the intersection point of two lines by @Doribelove in #273
- Fix intersection of three planes by @xixihaha-ha in #279
- Fix the constant coefficient sign in Plane3.contains by @xixihaha-ha in #280
- Include line moment when constructing a plane from a line and point by @xixihaha-ha in #281
- build: drop oldest-supported-numpy from build requirements by @taughz in #286
- chore: bump version to 1.1.19 by @taughz in #284
New Contributors
- @Doribelove made their first contribution in #224
- @dddd-jh made their first contribution in #237
- @xiehuanyi made their first contribution in #241
- @RoboX2020 made their first contribution in #238
- @MokiMeow made their first contribution in #239
- @antonsoo made their first contribution in #248
- @wpyaoxueros made their first contribution in #266
- @vera-rubin made their first contribution in #256
- @xixihaha-ha made their first contribution in #279
Full Changelog: 1.1.18...1.1.19