Metadata-Version: 2.3
Name: m3d
Version: 1.1.0
Summary: Python3 3D transformation library with object oriented API and MIT licensed
Author: Kurant Robotics
Author-email: Kurant Robotics <olivier.roulet@solwr.com>
License: MIT
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Dist: numpy
Requires-Dist: twine>=6.2.0
Requires-Dist: scipy ; extra == 'orientation-mean'
Requires-Python: >=3.10
Project-URL: Homepage, https://gitlab.com/kurant-open/m3d
Provides-Extra: orientation-mean
Description-Content-Type: text/markdown



[![pipeline status](https://gitlab.com/kurant/m3d/badges/master/pipeline.svg)](https://gitlab.com/kurant/m3d/commits/master)
[![coverage report](https://gitlab.com/kurant/m3d/badges/master/coverage.svg)](https://gitlab.com/kurant/m3d/commits/master)

Object oriented transformation matrix library. m3d was originally developed as an MIT licenced API compatible replacement for pymath3d which is GPL, but is now developed independently. Development is happenig here: https://gitlab.com/kurant-open/m3d/

m3d uses some code from https://matthew-brett.github.io/transforms3d/ and its API is inspired by pymath3d API from Morten Lind https://gitlab.com/morlin/pymath3d.


Example use:

    t = m3d.Transform()
    t.orient.rotate_yb(1)
    t2 = t.copy()
    t2.pos.x = 1
    v = t2.inverse() @ t @ m3d.Vector(1, 2, 3)
    v.normalize()
    v *= 1.2
    o = m3d.Orientation.from_axis_angle(0, 0, 1)
    v = o * v
    o2 = m3d.Orientation.from_xy(m3d.Vector(1.1, 0.2, 0), m3d.Vector(0, 0, 1.1))
    v = o2 * o.inverse() * v

