/* Magnum::Math — a graphics-focused vector math library https://doc.magnum.graphics/magnum/namespaceMagnum_1_1Math.html https://doc.magnum.graphics/magnum/namespaceMagnum_1_1EigenIntegration.html https://doc.magnum.graphics/magnum/namespaceMagnum_1_1GlmIntegration.html This is a single-header library generated from the Magnum project. With the goal being easy integration, it's deliberately free of all comments to keep the file size small. More info, changelogs and full docs here: - Project homepage — https://magnum.graphics/magnum/ - Documentation — https://doc.magnum.graphics/ - GitHub project page — https://github.com/mosra/magnum - GitHub Singles repository — https://github.com/mosra/magnum-singles Generated from Corrade {{revision:corrade/src}}, Magnum {{revision:magnum/src}} and Magnum Integration {{revision:magnum-integration/src}}, {{stats:loc}} / {{stats:preprocessed}} LoC */ #include "base.h" // {{includes}} #if (!defined(CORRADE_ASSERT) || !defined(CORRADE_CONSTEXPR_ASSERT) || !defined(CORRADE_INTERNAL_ASSERT_OUTPUT) || !defined(CORRADE_ASSERT_UNREACHABLE)) && !defined(NDEBUG) #include #endif /* We're taking stuff from integration as well */ #pragma ACME path ../../../magnum-integration/src #pragma ACME revision magnum-integration/src echo "$(git describe --match 'v*') ($(date -d @$(git log -1 --format=%at) +%Y-%m-%d))" /* Disable asserts that are not used. CORRADE_ASSERT, CORRADE_CONSTEXPR_ASSERT, CORRADE_INTERNAL_ASSERT_OUTPUT and CORRADE_ASSERT_UNREACHABLE are used, wrapping the #include above. When enabling additional asserts, be sure to update them above as well. */ #pragma ACME enable CORRADE_ASSERT_OUTPUT #pragma ACME enable CORRADE_INTERNAL_ASSERT #pragma ACME enable CORRADE_INTERNAL_CONSTEXPR_ASSERT /* We don't need anything from configure.h here */ #pragma ACME enable Corrade_configure_h #pragma ACME enable Magnum_configure_h #if defined(_MSC_VER) && _MSC_VER <= 1920 #define CORRADE_MSVC2017_COMPATIBILITY #endif #if defined(_MSC_VER) && _MSC_VER <= 1910 #define CORRADE_MSVC2015_COMPATIBILITY #endif #ifdef _WIN32 #define CORRADE_TARGET_WINDOWS #endif #ifdef __EMSCRIPTEN__ #define CORRADE_TARGET_EMSCRIPTEN #endif #ifdef __ANDROID__ #define CORRADE_TARGET_ANDROID #endif /* Our own subset of visibility macros */ #pragma ACME enable Magnum_visibility_h #pragma ACME enable Corrade_Utility_VisibilityMacros_h #ifndef MAGNUM_EXPORT #define MAGNUM_EXPORT #endif /* Our own subset of Containers.h and Magnum.h */ #pragma ACME enable Corrade_Containers_Containers_h #pragma ACME enable Magnum_Magnum_h #include "Magnum/Math/Math.h" #ifndef MagnumMath_hpp #define MagnumMath_hpp namespace Magnum { typedef Math::Half Half; typedef Math::Vector2 Vector2; typedef Math::Vector3 Vector3; typedef Math::Vector4 Vector4; typedef Math::Vector2 Vector2ui; typedef Math::Vector3 Vector3ui; typedef Math::Vector4 Vector4ui; typedef Math::Vector2 Vector2i; typedef Math::Vector3 Vector3i; typedef Math::Vector4 Vector4i; typedef Math::Color3 Color3; typedef Math::Color4 Color4; typedef Math::Color3 Color3ub; typedef Math::Color4 Color4ub; typedef Math::Matrix3 Matrix3; typedef Math::Matrix4 Matrix4; typedef Math::Matrix2x2 Matrix2x2; typedef Math::Matrix3x3 Matrix3x3; typedef Math::Matrix4x4 Matrix4x4; typedef Math::Matrix2x3 Matrix2x3; typedef Math::Matrix3x2 Matrix3x2; typedef Math::Matrix2x4 Matrix2x4; typedef Math::Matrix4x2 Matrix4x2; typedef Math::Matrix3x4 Matrix3x4; typedef Math::Matrix4x3 Matrix4x3; typedef Math::QuadraticBezier2D QuadraticBezier2D; typedef Math::QuadraticBezier3D QuadraticBezier3D; typedef Math::CubicBezier2D CubicBezier2D; typedef Math::CubicBezier3D CubicBezier3D; typedef Math::CubicHermite1D CubicHermite1D; typedef Math::CubicHermite2D CubicHermite2D; typedef Math::CubicHermite3D CubicHermite3D; typedef Math::CubicHermiteComplex CubicHermiteComplex; typedef Math::CubicHermiteQuaternion CubicHermiteQuaternion; typedef Math::Complex Complex; typedef Math::DualComplex DualComplex; typedef Math::Quaternion Quaternion; typedef Math::DualQuaternion DualQuaternion; typedef Math::Constants Constants; typedef Math::Deg Deg; typedef Math::Rad Rad; typedef Math::Range1D Range1D; typedef Math::Range2D Range2D; typedef Math::Range3D Range3D; typedef Math::Range1D Range1Di; typedef Math::Range2D Range2Di; typedef Math::Range3D Range3Di; typedef Math::Frustum Frustum; typedef Math::Vector2 Vector2d; typedef Math::Vector3 Vector3d; typedef Math::Vector4 Vector4d; typedef Math::Matrix3 Matrix3d; typedef Math::Matrix4 Matrix4d; typedef Math::Matrix2x2 Matrix2x2d; typedef Math::Matrix3x3 Matrix3x3d; typedef Math::Matrix4x4 Matrix4x4d; typedef Math::Matrix2x3 Matrix2x3d; typedef Math::Matrix3x2 Matrix3x2d; typedef Math::Matrix2x4 Matrix2x4d; typedef Math::Matrix4x2 Matrix4x2d; typedef Math::Matrix3x4 Matrix3x4d; typedef Math::Matrix4x3 Matrix4x3d; typedef Math::QuadraticBezier2D QuadraticBezier2Dd; typedef Math::QuadraticBezier3D QuadraticBezier3Dd; typedef Math::CubicBezier2D CubicBezier2Dd; typedef Math::CubicBezier3D CubicBezier3Dd; typedef Math::CubicHermite1D CubicHermite1Dd; typedef Math::CubicHermite2D CubicHermite2Dd; typedef Math::CubicHermite3D CubicHermite3Dd; typedef Math::CubicHermiteComplex CubicHermiteComplexd; typedef Math::CubicHermiteQuaternion CubicHermiteQuaterniond; typedef Math::Complex Complexd; typedef Math::DualComplex DualComplexd; typedef Math::Quaternion Quaterniond; typedef Math::DualQuaternion DualQuaterniond; typedef Math::Constants Constantsd; typedef Math::Deg Degd; typedef Math::Rad Radd; typedef Math::Range1D Range1Dd; typedef Math::Range2D Range2Dd; typedef Math::Range3D Range3Dd; typedef Math::Frustum Frustumd; } #endif #include "Magnum/Magnum.h" #include "Magnum/Math/Angle.h" #include "Magnum/Math/Bezier.h" #include "Magnum/Math/Color.h" #include "Magnum/Math/Complex.h" #include "Magnum/Math/Constants.h" #include "Magnum/Math/CubicHermite.h" #include "Magnum/Math/Distance.h" #include "Magnum/Math/Dual.h" #include "Magnum/Math/DualComplex.h" #include "Magnum/Math/DualQuaternion.h" #include "Magnum/Math/Frustum.h" #include "Magnum/Math/Functions.h" #include "Magnum/Math/Half.h" #include "Magnum/Math/Intersection.h" #include "Magnum/Math/Matrix.h" #include "Magnum/Math/Matrix3.h" #include "Magnum/Math/Matrix4.h" #include "Magnum/Math/Packing.h" #include "Magnum/Math/Quaternion.h" #include "Magnum/Math/Range.h" #include "Magnum/Math/RectangularMatrix.h" #include "Magnum/Math/StrictWeakOrdering.h" #include "Magnum/Math/Swizzle.h" #include "Magnum/Math/Tags.h" #include "Magnum/Math/TypeTraits.h" #include "Magnum/Math/Unit.h" #include "Magnum/Math/Vector.h" #include "Magnum/Math/Vector2.h" #include "Magnum/Math/Vector3.h" #include "Magnum/Math/Vector4.h" #include "Magnum/Math/Algorithms/GaussJordan.h" #include "Magnum/Math/Algorithms/GramSchmidt.h" #include "Magnum/Math/Algorithms/KahanSum.h" #include "Magnum/Math/Algorithms/Qr.h" //#include "Magnum/Math/Algorithms/Svd.h" // TODO: uses #ifdef MAGNUM_MATH_GLM_INTEGRATION // {{includes}} #include "Magnum/GlmIntegration/Integration.h" #include "Magnum/GlmIntegration/GtcIntegration.h" #include "Magnum/GlmIntegration/GtxIntegration.h" #endif #ifdef MAGNUM_MATH_EIGEN_INTEGRATION // {{includes}} #include "Magnum/EigenIntegration/Integration.h" #include "Magnum/EigenIntegration/GeometryIntegration.h" #endif #ifdef MAGNUM_MATH_IMPLEMENTATION // {{ includes }} #include "Magnum/Math/Functions.cpp" #include "Magnum/Math/Packing.cpp" #endif