Phillip Stephens
d63744eb07
Add CVector2i header
2023-12-15 14:29:01 -08:00
Phillip Stephens
316d937f11
Minor compile fixes and corrections
2023-10-22 17:18:03 -07:00
Luke Street
e9ec10a382
Add simd_none implementation
2022-08-03 18:15:45 -04:00
Luke Street
ac7d83009d
CMatrix4f: Explicit operator==/!=
2022-06-03 01:52:41 -04:00
Luke Street
6547f76752
Remove error-causing constexprs
2022-05-31 20:17:23 -04:00
Phillip Stephens
8410394d4b
Add toRGBA and toRGB5A3 to CColor
2022-05-13 23:46:19 -07:00
Luke Street
8e4dfb022a
CMatrix3f: Remove normalize from CQuaternion ctor
2022-05-12 12:05:29 -04:00
Luke Street
f3e649716a
Revert change to CAABox closestPointAlongVector / furthestPointAlongVector
2022-03-20 16:22:06 -04:00
Phillip Stephens
11606d3676
Fix constexpr in CQuaternion
2022-03-12 09:49:30 -08:00
Phillip Stephens
fc33e18b4a
constexpr fixes
2022-03-12 09:03:27 -08:00
Phillip Stephens
e9c0fe7a6e
Remove athena types
2022-02-27 20:46:10 -08:00
Phillip Stephens
e53b380f42
Add CVector2d/4d
2022-02-20 18:41:54 -08:00
Luke Street
ec125acf29
CColor: Fix COLOR macro (again)
2021-10-25 22:54:47 -04:00
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
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
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
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
82c2a2d85b
Minor fixes
2020-03-03 16:47:59 -08: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
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
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
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
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
Lioncash
53ac7d96b0
General: Amend documentation comments
...
Silences a few trivial -Wdocumentation warnings
2019-09-03 14:05:27 -04:00
Lioncash
f6854d8e82
General: Mark member functions as const where applicable
...
These don't modify internal member state, so they can be const.
2019-09-01 21:53:57 -04:00
Phillip Stephens
050e86aae8
Merge pull request #7 from lioncash/include
...
zeus: Amend inclusions
2019-09-01 11:06:45 -07:00
Lioncash
dafc850598
zeus: Amend inclusions
...
Trims out unused headers and ensures the necessary includes are
included.
2019-09-01 04:30:53 -04:00