diff --git a/doc/python/pages/changelog.rst b/doc/python/pages/changelog.rst index ff48ef6..53f2edd 100644 --- a/doc/python/pages/changelog.rst +++ b/doc/python/pages/changelog.rst @@ -69,6 +69,8 @@ Changelog - Exposed :ref:`Color3.from_xyz()`, :ref:`Color3.from_linear_rgb_int()`, :ref:`Color3.to_xyz()`, :ref:`Color3.to_linear_rgb_int()` and equivalent APIs on :ref:`Color4` +- Exposed unsigned :ref:`Range1Dui`, :ref:`Range2Dui` and :ref:`Range3Dui` + types in addition to the signed variants - Exposed new :ref:`Quaternion.rotation()`, :ref:`Quaternion.reflection()`, :ref:`Quaternion.reflect_vector()`, :ref:`Quaternion.xyzw` and :ref:`Quaternion.wxyz` APIs diff --git a/src/python/magnum/__init__.py b/src/python/magnum/__init__.py index 4cc78e1..9944399 100644 --- a/src/python/magnum/__init__.py +++ b/src/python/magnum/__init__.py @@ -76,9 +76,9 @@ __all__ = [ 'Matrix3', 'Matrix4', 'Matrix3d', 'Matrix4d', 'Quaternion', 'Quaterniond', - 'Range1D', 'Range1Di', 'Range1Dd', - 'Range2D', 'Range2Di', 'Range2Dd', - 'Range3D', 'Range3Di', 'Range3Dd', + 'Range1D', 'Range1Di', 'Range1Dui', 'Range1Dd', + 'Range2D', 'Range2Di', 'Range2Dui', 'Range2Dd', + 'Range3D', 'Range3Di', 'Range3Dui', 'Range3Dd', 'MeshPrimitive', 'MeshIndexType', diff --git a/src/python/magnum/math.range.cpp b/src/python/magnum/math.range.cpp index 5408117..f1d4f8d 100644 --- a/src/python/magnum/math.range.cpp +++ b/src/python/magnum/math.range.cpp @@ -335,12 +335,14 @@ template class Type, class T, class ...Args> void conve template class Type, UnsignedInt dimensions, class T, class ...Args> void convertible(py::class_, Args...>& c) { convertibleImplementation(c, std::is_same{}); + convertibleImplementation(c, std::is_same{}); convertibleImplementation(c, std::is_same{}); convertibleImplementation(c, std::is_same{}); } template class Type, class T, class ...Args> void convertible(py::class_, Args...>& c) { convertibleImplementation(c, std::is_same{}); + convertibleImplementation(c, std::is_same{}); convertibleImplementation(c, std::is_same{}); convertibleImplementation(c, std::is_same{}); } @@ -356,6 +358,10 @@ void mathRange(py::module_& root, py::module_& m) { py::class_ range2Di{root, "Range2Di", "Two-dimensional signed integral range"}; py::class_ range3Di{root, "Range3Di", "Three-dimensional signed integral range"}; + py::class_ range1Dui{root, "Range1Dui", "One-dimensional unsigned integral range"}; + py::class_ range2Dui{root, "Range2Dui", "Two-dimensional unsigned integral range"}; + py::class_ range3Dui{root, "Range3Dui", "Three-dimensional unsigned integral range"}; + py::class_ range1Dd{root, "Range1Dd", "One-dimensional double range"}; py::class_ range2Dd{root, "Range2Dd", "Two-dimensional double range"}; py::class_ range3Dd{root, "Range3Dd", "Three-dimensional double range"}; @@ -366,6 +372,9 @@ void mathRange(py::module_& root, py::module_& m) { convertible(range1Di); convertible(range2Di); convertible(range3Di); + convertible(range1Dui); + convertible(range2Dui); + convertible(range3Dui); convertible(range1Dd); convertible(range2Dd); convertible(range3Dd); @@ -376,23 +385,30 @@ void mathRange(py::module_& root, py::module_& m) { range(m, range1Di); range(m, range2Di); range(m, range3Di); + range(m, range1Dui); + range(m, range2Dui); + range(m, range3Dui); range(m, range1Dd); range(m, range2Dd); range(m, range3Dd); rangeND(range2D_); rangeND(range2Di); + rangeND(range2Dui); rangeND(range2Dd); rangeND(range3D_); rangeND(range3Di); + rangeND(range3Dui); rangeND(range3Dd); range2D(range2D_); range2D(range2Di); + range2D(range2Dui); range2D(range2Dd); range3D(range3D_); range3D(range3Di); + range3D(range3Dui); range3D(range3Dd); }