2
0
mirror of https://github.com/boostorg/qvm.git synced 2026-01-19 16:32:16 +00:00

54 Commits

Author SHA1 Message Date
Joshua Nelson
c303cb573c Add constexpr to quat,mat and vec
This is required for constexpr assignment which requires converting to a user defined type.
2025-08-15 06:10:54 +01:00
Jan Niklas Hasse
587289e487 Fix unused parameter warning in Release builds
BOOST_QVM_ASSERT is disabled there, so cast the variables to void
instead.
2025-01-16 23:06:40 +01:00
Emil Dotchevski
c26cbf5c0d Header generation changes 2024-09-21 21:10:37 -07:00
Emil Dotchevski
c4b9c063a0 Fix for issue 54 2024-09-19 22:21:59 -07:00
Emil Dotchevski
68f960dc43 Added signed/unsigned long long specializations for is_scalar 2024-02-27 00:36:08 -08:00
Emil Dotchevski
0713e55bcf Simplified to_string definition 2023-11-05 23:01:42 -08:00
Emil Dotchevski
ec2725754d Removing bad ascii character insterted by mistake 2023-10-08 23:43:49 -07:00
Emil Dotchevski
830af205ea Issue 45 2023-10-08 22:31:28 -07:00
Emil Dotchevski
fa272cb0b0 Issue 44 2023-06-06 12:48:59 -07:00
Emil Dotchevski
e659dc47a6 translation() supports non-square matrices 2023-03-08 22:44:36 -08:00
Emil Dotchevski
bb440047d5 Deprecated slerp, added slerp180/slerp360. 2023-03-01 21:21:26 -08:00
Jan Niklas Hasse
6d767ae0e5 Fix -Wunused-parameter in quat_operations.hpp 2023-01-18 11:17:43 +01:00
Emil Dotchevski
b9e75e0ddd Issue #41 2023-01-17 20:33:28 -08:00
Emil Dotchevski
5791440b34 SFINAE use in conversion operator member functions. Fixes issue 39. 2022-04-15 11:12:06 -07:00
Emil Dotchevski
f7a3f6f759 Optional support for write_element definitions that take the value to write as an argument, instead of returning a reference to the element. 2022-03-14 20:20:49 -07:00
Emil Dotchevski
786303cdbb Support for std::array if C++11 is available (Issue #38) 2022-02-06 19:55:03 -08:00
Emil Dotchevski
be39b1008a Updated copyright message 2022-01-18 15:02:54 -08:00
Emil Dotchevski
cfa94dbd40 is_scalar<char>::value is now false 2021-11-26 12:51:58 -08:00
Emil Dotchevski
54aa1f8d93 C++17 constexpr where easily doable 2021-11-25 16:04:49 -08:00
Emil Dotchevski
36ab7dfd00 Issue 33 2021-07-21 21:24:57 -07:00
Emil Dotchevski
46797f11f7 Invoking math functions via ADL 2021-07-18 18:21:41 -07:00
Emil Dotchevski
6cdb7477e8 Better single header distribution generation 2021-01-30 12:46:29 -08:00
Emil Dotchevski
9b8a496080 Generating qvm.hpp and qvm_lite.hpp on GitHub Actions 2020-12-19 23:46:20 -08:00
Emil Dotchevski
9fd0764eaa Major refactor: single header support, deduce_quat2/deduce_vec2/deduce_mat2 used in all binary operations, cross product for 2D vectors, Meson build 2020-12-16 00:05:15 -08:00
Emil Dotchevski
e59006aa27 long double overloads in math.hpp 2020-04-01 21:51:30 -07:00
Emil Dotchevski
ffb434f1fa Issue #23, thanks steveire 2020-02-29 13:02:49 -08:00
Emil Dotchevski
1dd8654c24 Merge branch 'master' of https://github.com/boostorg/qvm 2019-12-21 11:10:38 -08:00
Emil Dotchevski
eb64271a11 Switched include guards from UUID_ to BOOST_QVM_ 2019-12-20 23:21:57 -08:00
DionHo
0ba983d3cd Quaternion slerp() using incorrect precision
In my use cases, the slerp operation returned a quaternion with nan-values because the angle between input quaternions was too low. I used double precision for the quaternions, but the acosf() function reduced the calculation accuracy, resulting in "theta==0.0".

Using acos<TR> instead of acosf is consistent with the other trigonometrical functions used in this method and solves the problem of precision loss in my use case.

(With even smaller angle differences, the calculation could still result in nan-quaternions when using double precision, but this is still an improvement, imho.)
2019-10-05 16:35:53 +02:00
Emil Dotchevski
79612faa2c Added missing copyright messages 2019-08-05 12:27:01 -07:00
Emil Dotchevski
084c93f565 Removed equal_to, removed deduce_scalar from cmp<>. 2019-08-04 19:07:50 -07:00
agate-pris
a8ef094a00 Add equal_to
Added to compare different types.
2019-08-03 18:55:43 +09:00
agate-pris
fa035be9a0 Fix cmp of mat for non default constructible scalar types 2019-08-03 18:55:10 +09:00
agate-pris
641d5d4162 Fix cmp of vec for non default constructible scalar types 2019-08-03 18:54:47 +09:00
agate-pris
6f9af4aedd Fix cmp of quat for non default constructible scalar types 2019-08-03 18:51:16 +09:00
agate-pris
8222bc437f Add quaternion comparer
Added qvm_detail::cmp_quat.
2019-08-03 18:50:28 +09:00
Emil Dotchevski
a4ec8db5da Workaround for a compiler warning, thanks Luigi Castelli 2019-07-19 16:47:08 -07:00
Emil Dotchevski
f15c67aa78 vec_register, thanks agate-pris 2018-12-17 14:59:00 -08:00
Emil Dotchevski
f648828173 Merge branch 'develop' of https://github.com/boostorg/qvm 2018-08-09 20:45:59 -07:00
Emil Dotchevski
7f7a846bca Euler angles 2018-03-14 21:12:15 -07:00
Adam Wulkiewicz
d927bbf634 Fix unused parameter of identity_mat's mat_traits::read_element(). 2017-12-24 03:51:22 +01:00
Emil Dotchevski
5209c985d8 Fixing the "assign" bug. Thanks nightsparc! 2017-05-13 21:23:26 -07:00
Emil Dotchevski
dfb75902c7 Full set of swizzling permutations. 2016-12-23 18:46:28 -08:00
Emil Dotchevski
5c079d4492 Implemented "swizzling" for scalars->vectors, e.g. X001(42.0f)->(42.0f,0,0,1) 2016-12-23 18:20:44 -08:00
Emil Dotchevski
2f315d7fd7 Changed MatType to mat_type in mat_traits_defaults. 2016-12-21 14:24:08 -08:00
Emil Dotchevski
5393fc3f1f Implemented quat_traits_defaults, vec_traits_defaults, mat_traits_defaults. Deleted mat_index/vec_index. 2016-12-21 12:29:03 -08:00
Emil Dotchevski
a08d224368 is_scalar<long double>::value is now true. 2016-11-03 20:23:58 -07:00
Emil Dotchevski
d9e1584aef scalar*vec, scalar*mat operations implemented 2016-11-03 20:13:27 -07:00
Emil Dotchevski
23589568c8 Fixing more pedantic warnings 2016-04-11 19:38:08 -07:00
Emil Dotchevski
1c9b2c16af Fixed pedantic warnings. 2016-04-09 11:43:48 -07:00