Commit Graph

459 Commits

Author SHA1 Message Date
Oliver Booth f5af7b9513
Fix xmldoc wording in Polygon and Polyhedron
It's a class now, not a struct
2022-06-01 18:59:31 +01:00
Oliver Booth 2b8f763184
Add Quaternion.Multiply(Vector3)
Functions as an equivalent to Unity's Quaternion*Vector3 operator
2022-06-01 18:34:12 +01:00
Oliver Booth ae82b92f23
Add Polyhedron class
Updates CHANGELOG to mention missing types
2022-06-01 18:33:30 +01:00
Oliver Booth 9d397b9538
Add Sphere struct 2022-06-01 18:32:34 +01:00
Oliver Booth b8e6169c6f
Add Cuboid struct
NB: This struct has 7 auto-properties totalling 88 bytes. I feel there may be a way to calculate LocalFront__ given the center point, orientation, and size, but it's been a long day and I cannot think how to optimize this at the moment
2022-06-01 18:32:26 +01:00
Oliver Booth 0b3bf01fa0
Convert Polygon/F to class
This change also now refers to "Points" as "Vertices"
2022-06-01 18:30:48 +01:00
Oliver Booth 34b4777a8e
Use in modifier where logical to reduce overhead 2022-06-01 18:29:41 +01:00
Oliver Booth 09393029e8
Add separated argument constructor to Circle/F 2022-06-01 18:29:12 +01:00
Oliver Booth b0cce087b3
Add additional ctor overloads for Ellipse/F 2022-06-01 17:05:25 +01:00
Oliver Booth ea56f2be48
Add Line3D 2022-06-01 16:47:03 +01:00
Oliver Booth 5e835e10f1
Add Ellipse struct 2022-06-01 15:36:18 +01:00
Oliver Booth 2f74ef5f50
Initialize _points field as null 2022-06-01 15:35:53 +01:00
Oliver Booth 5f53495817
Add Circle/F conversions 2022-06-01 15:35:33 +01:00
Oliver Booth e182b0f821
Fix invalid pattern match in CircleF 2022-06-01 15:33:44 +01:00
Oliver Booth 9c1714b419
Fix xmldoc for Line -> LineF conversion 2022-06-01 14:47:41 +01:00
Oliver Booth e9b0ed08d4
Add primitive 2D structs to complement System.Drawing types 2022-06-01 13:46:22 +01:00
Oliver Booth aca68cce72
[ci skip] Format csproj 2022-06-01 13:45:09 +01:00
Oliver Booth f35f398d7f
Add conversions between Size(F)/Point(F)/Vector and Rect/Rectangle(F) 2022-05-28 14:19:46 +01:00
Oliver Booth 7ca206721b
Add MathUtility.InverseLerp (#60) 2022-05-23 10:33:52 +01:00
Oliver Booth 683e02cc2a
Add RoundUpToPowerOf2 2022-05-18 11:55:47 +01:00
Oliver Booth d312d05f7a
Add vector tuple deconstruction 2022-05-16 10:30:55 +01:00
Oliver Booth 1bb1feb89b
Bump to 3.2.0 2022-05-16 10:19:53 +01:00
Oliver Booth 23e07b65b8
Add [ReadOnly]Span<T>.Count(Predicate<T>) 2022-05-12 13:52:04 +01:00
Oliver Booth 4d19e2f64c
Add Vector.With* methods (resolves #56) 2022-05-09 10:33:21 +01:00
Oliver Booth d904daf431
Add Color.With* methods (resolves #55) 2022-05-09 10:01:03 +01:00
Oliver Booth aa30abea93
Add Color.Inverted (#54) 2022-05-08 19:52:49 +01:00
Oliver Booth f2ed6aebce
Fix endianness reversal for float/double 2022-05-07 23:43:19 +01:00
Oliver Booth e6a858c7e7
Fix ulong.RotateRight left-shift 2022-05-07 23:37:40 +01:00
Oliver Booth d405faf6e2
Add IsEmoji method
Emoji validation is performed by using a regex which is generated from Twemoji. Source: https://raw.githubusercontent.com/twitter/twemoji-parser/master/src/lib/regex.js
2022-05-07 23:37:14 +01:00
Oliver Booth f257aebc28
Add .NET Standard 2.1 target, reintroduce Unity support 2022-05-05 18:00:38 +01:00
Oliver Booth 2d51f65834
Merge pull request #53 from oliverbooth/52-use-argumentnullexceptionthrowifnull-instead-of-is-null-check
Use ArgumentNullException.ThrowIfNull instead of is null check (resolves #52)
2022-05-04 10:54:23 +01:00
Oliver Booth 2a6bfadf58
Call ArgumentNullException.ThrowIfNull 2022-05-04 10:46:44 +01:00
Oliver Booth adf2281f21
Add DisposeAll(Async) and ClearAndDisposeAll(Async) 2022-05-02 22:31:09 +01:00
Oliver Booth 7b8c344ddd
Remove unused namespace import 2022-05-02 22:27:31 +01:00
Oliver Booth 5d3a82a33a
Add IEnumerable<T>.For and ForEach (#50) 2022-05-01 22:25:37 +01:00
Oliver Booth be845bccf2
Bump to 3.1.0 2022-05-01 22:05:15 +01:00
Oliver Booth b16e5a9de9
3.0.0 Update (#43)
For a full list of changes, see [CHANGELOG.md](CHANGELOG.md)
2022-04-30 14:13:16 +01:00
Oliver Booth 6505299c00
Move Stream extensions to IO namespace (#7)
* Finalizes unit tests, 99% coverage
* Update CHANGELOG
2022-04-30 13:52:34 +01:00
Oliver Booth 842053d571
[ci skip] Remove trailing whitespace 2022-04-30 13:09:47 +01:00
Oliver Booth a6139a5720
Migrate string extensions to appropriate namespaces (#7)
Introduces more tests
2022-04-30 13:08:39 +01:00
Oliver Booth c13cc934b6
Move ListOfByteExtensions to IO namespace
Also introduces unit tests
2022-04-30 11:59:03 +01:00
Oliver Booth 8ba5a5ad19
Remove empty lines and unnecessary namespace imports 2022-04-30 11:33:48 +01:00
Oliver Booth a7631b0efe
Add MultiplicativePersistence for integer types 2022-04-30 11:29:09 +01:00
Oliver Booth 49e5482b8f
Document ArgumentNullException (#15) 2022-04-30 10:35:50 +01:00
Oliver Booth e757ce08a0
Add argument null check (#42) 2022-04-30 10:35:21 +01:00
Oliver Booth 2547d4a227
Add comprehensive math tests
Introduces extension methods for decimal
2022-04-30 10:15:36 +01:00
Oliver Booth 8d4f82e964
Remove Lerp extension methods
These extension methods lead to confusion with the parameter order, and so the advice now is to simply use MathUtility.Lerp directly
2022-04-29 23:24:59 +01:00
Oliver Booth 155a604812
Add FromUnixTime(Milli)Seconds for unsigned types 2022-04-29 23:21:00 +01:00
Oliver Booth cacdf148d5
Add RotateLeft and RotateRight for integer types 2022-04-29 23:16:37 +01:00
Oliver Booth 2922b628f2
Decorate Pure functions with PureAttribute 2022-04-29 22:14:39 +01:00