Luke Street
6e865b656a
MSVC build fix for COLOR macro
2021-10-25 19:17:25 -04:00
Phillip Stephens
f3630be9de
Add CVector3f->CEulerAngles constructor to CEulerAngles
2021-07-11 17:56:32 -07:00
Phillip Stephens
bb9b4c83af
Fix incorrect division operator
2021-05-23 11:52:00 -07:00
Phillip Stephens
9130bf977e
Add IsNan helper function to CVector3f
2021-05-16 15:29:06 -07:00
Luke Street
b3806c03a5
Fixes for MSVC arch detection & SIMD compilation
2021-02-15 21:03:44 -05:00
Luke Street
3c4bcf37d2
Update simd_neon
...
- Fixes m128d dot3
- Simplifies negate operations
2021-01-09 14:27:27 -05:00
Luke Street
9ea070c2d7
CVector2f: Remove unnecessary constexpr
2021-01-06 20:33:36 -05:00
Luke Street
906e7736a0
Add simd_neon.hpp to CMakeLists
2020-10-20 02:28:17 -04:00
Luke Street
566db657d9
Add NEON support & more constexpr
2020-10-20 02:25:44 -04:00
Phillip Stephens
eec855018a
Add countLeadingZeros
2020-09-19 15:43:35 -07:00
Luke Street
58c8a902ac
CVector3f/CVector2f: Fix isZero
2020-09-16 00:41:47 -04:00
Luke Street
f99184556a
CVector3f/CVector2f: Fix clamp in getAngleDiff
2020-04-19 21:01:49 -04:00
Lioncash
5520001117
General: Mark file-scope constexpr variables as inline
...
Allows the compiler to unify all usages of these constants down to a
single address if they're ODR used, rather than creating an individual
copy within each translation unit.
Unfortunately all file-scope variables don't have inline implied for
them by default (only for static class member variables).
Shrinks the size of the emitted binary a little bit.
2020-04-19 03:22:13 -04:00
Jack Andersen
6c46735ab1
Make zeustest work with nodiscard
2020-04-11 12:50:02 -10:00
Jack Andersen
ef35789909
Exclude CMake CXX standard from MSVC
2020-04-10 19:02:01 -10:00
Phillip Stephens
6ac3066a6f
Merge pull request #22 from lioncash/nodiscard
...
General: Mark functions as nodiscard where applicable
2020-03-04 17:31:13 -08:00
Lioncash
81f9b4a4ee
General: Mark functions as nodiscard where applicable
...
Given this aims to be a general purpose math library for use in various
other libraries applications for axiodl, we can annotate functions that
return by value or reference with [[nodiscard]] where it's very obvious
that not making use of the return value is a bug.
This allows the compiler to diagnose and emit warnings for these API
misuses at compile-time, preventing silent bugs from occurring.
Any cases where not using the return value is desirable may still be
casted to void in order to silence warnings.
2020-03-04 03:07:54 -05:00
Phillip Stephens
97cec53046
Merge branch 'master' of ssh+git://git.axiodl.com/AxioDL/zeus
2020-03-03 16:48:12 -08:00
Phillip Stephens
82c2a2d85b
Minor fixes
2020-03-03 16:47:59 -08:00
Phillip Stephens
c70243ff32
Merge pull request #21 from encounter/sse4a
...
Add SSE4a CPUID check
2019-12-10 20:48:34 -08:00
Luke Street
c3671245e2
Add SSE4a CPUID check
2019-12-10 17:09:24 -05:00
Phillip Stephens
bf416af1ed
Merge pull request #20 from lioncash/local
...
CQuaternion: Remove unnecessary local in slerp()
2019-09-21 05:46:07 -07:00
Lioncash
9409825ace
CQuaternion: Remove unnecessary local in slerp()
...
We can turn this assignment into a direct return expression, tidying up
the code a little bit.
2019-09-20 21:01:17 -04:00
Phillip Stephens
949dbff9b8
Merge pull request #19 from lioncash/constexpr
...
CVector2i: Make CVector2f-related constructor non-constexpr
2019-09-06 00:59:47 -07:00
Lioncash
9045766c52
CVector2i: Make CVector2f-related constructor non-constexpr
...
These make use of SIMD accessors, which aren't constexpr.
2019-09-06 02:25:33 -04:00
Phillip Stephens
419c1369ee
Merge pull request #18 from lioncash/color
...
CColor: Correct luminance setting within toHSL()
2019-09-05 19:36:32 -07:00
Lioncash
9f0c1e8218
CColor: Correct luminance setting within toHSL()
...
The function wasn't setting the luminance out reference, this corrects
that.
2019-09-05 21:27:37 -04:00
Lioncash
53c6c115fe
CColor: Use initializer_list version of std::min/std::max where applicable
...
Same behavior, but less verbose.
2019-09-05 21:21:35 -04:00
Phillip Stephens
63ecd31813
Merge pull request #16 from lioncash/rot
...
Global: Remove unused rotr/rotl functions
2019-09-04 19:35:25 -07:00
Phillip Stephens
4d0e4f21ab
Merge pull request #15 from lioncash/noexcept
...
Global: Mark hash_combine_impl() as noexcept
2019-09-04 19:33:47 -07:00
Phillip Stephens
85035bc178
Merge pull request #17 from lioncash/matrix
...
CMatrix4f: Make copy assignment constexpr
2019-09-04 19:32:56 -07:00
Lioncash
29399159e9
CMatrix4f: Make copy assignment constexpr
...
Matches the constexpr copy constructor.
2019-09-04 11:59:53 -04:00
Lioncash
76a7129d80
Global: Remove unused rotr/rotl functions
...
These don't appear to be used by anything, so they can be removed.
2019-09-04 10:37:21 -04:00
Lioncash
3d14be889c
Global: Mark hash_combine_impl() as noexcept
...
This is used with hashes that are declared noexcept, so this should also
be noexcept.
2019-09-04 10:35:27 -04:00
Phillip Stephens
2206497e35
Merge pull request #14 from lioncash/vec
...
CVector2i: Make interface constexpr where applicable
2019-09-04 01:03:42 -07:00
Lioncash
890c1e28e0
CVector2i: Add static assert for enforcing vector size
...
Provides compile-time guarantees about struct layout.
2019-09-04 03:05:28 -04:00
Lioncash
c39186d3ba
CVector2i: Make conversions to float explicit
2019-09-04 02:53:29 -04:00
Lioncash
056515b2d3
CVector2i: Make interface constexpr where applicable
...
These are just manipulating two integral values, so they can be made
constexpr. While we're at it, we can also apply the noexcept specifier.
2019-09-04 02:53:06 -04:00
Lioncash
3083285c79
CVector2i: Implement operator!= in terms of operator==
...
Same behavior, but without duplicated inverted logic.
2019-09-04 02:42:58 -04:00
Lioncash
5f892dda81
CVector2i: Remove use of union and unnamed struct
...
Nothing uses the v data array, so we can remove it entirely. This
removes the use of a compiler extension (anonymous struct), and
simplifies the underlying data within the vector.
2019-09-04 02:41:28 -04:00
Phillip Stephens
35127116f8
Merge pull request #9 from lioncash/docs
...
General: Amend documentation comments
2019-09-03 19:52:56 -07:00
Phillip Stephens
f0a7db2282
Merge pull request #10 from lioncash/using
...
CColor: Use using where applicable
2019-09-03 19:52:07 -07:00
Phillip Stephens
55ead1bada
Merge pull request #11 from lioncash/array
...
CFrustum: Use std::array where applicable
2019-09-03 19:51:16 -07:00
Phillip Stephens
7e737b7e26
Merge pull request #13 from lioncash/rel-angle
...
CRelAngle: Make member functions constexpr where applicable
2019-09-03 19:50:46 -07:00
Phillip Stephens
3d4d304db5
Merge pull request #12 from lioncash/matrix
...
CMatrix3f/CMatrix4f: Use std::array where applicable
2019-09-03 19:50:12 -07:00
Lioncash
a88e50e296
CRelAngle: Make member functions constexpr where applicable
...
Many of these member functions can be made constexpr, given their
manipulation of a simple internal float.
2019-09-03 16:32:50 -04:00
Lioncash
dca23c69d2
CMatrix4f: Use std::array where applicable
...
Makes for stronger typing and also allows querying the size directly.
2019-09-03 15:06:35 -04:00
Lioncash
f03714bdbd
CMatrix3f: Use std::array where applicable
2019-09-03 14:49:28 -04:00
Lioncash
0e516b9f0b
CFrustum: Use std::array where applicable
...
Makes the array stronger-typed. We can also use it to convert a few
loops into algorithms.
2019-09-03 14:29:36 -04:00
Lioncash
9058b6bbcc
CColor: Use using where applicable
...
We can also simplify RGBA32's declaration. This also allows the type to
be forward declared.
2019-09-03 14:11:56 -04:00