6.3 KiB
Nerd_STF v2.3.1.52
Read this to know what works and what doesn't!
The v2.3.1.x updates go through every single field and method in Nerd_STF to make sure it works correctly.
You see, up until now I haven't actually tested literally anything at all. Partly because I didn't have the tools to and partly because I was lazy. But now, it's guarenteed to work in most cases (unless I like don't pick up some bug, you know).
The following types have been checked for the most part and can be safe to use:
Nerd_STF.FileTypeNerd_STF.FillNerd_STF.Fill2DNerd_STF.ForeachNerd_STF.IClosestNerd_STF.IContainerNerd_STF.IEncapsulatorNerd_STF.IGroupNerd_STF.IGroup2DNerd_STF.LoggerNerd_STF.LogMessageNerd_STF.LogSeverityNerd_STF.ModifierNerd_STF.Modifier2DNerd_STF.Exceptions.DifferingVertCountExceptionNerd_STF.Exceptions.DisconnectedLinesExceptionNerd_STF.Exceptions.InvalidSizeExceptionNerd_STF.Exceptions.Nerd_STFExceptionNerd_STF.Exceptions.NoInverseExceptionNerd_STF.Extensions.Container2DExtensionNerd_STF.Extensions.ConversionExtensionNerd_STF.Extensions.EquationExtensionNerd_STF.Extensions.ToFillExtensionNerd_STF.Graphics.CMYKANerd_STF.Graphics.CMYKAByteNerd_STF.Graphics.ColorChannelNerd_STF.Graphics.HSVANerd_STF.Graphics.HSVAByteNerd_STF.Graphics.IColorNerd_STF.Graphics.IColorByteNerd_STF.Graphics.IlluminationFlagsNerd_STF.Graphics.IlluminationModelNerd_STF.Graphics.ImageNerd_STF.Graphics.MaterialNerd_STF.Graphics.RGBANerd_STF.Graphics.RGBAByteNerd_STF.Graphics.TextureConfigNerd_STF.Mathematics.AngleNerd_STF.Mathematics.CalculusNerd_STF.Mathematics.EquationNerd_STF.Mathematics.Float2Nerd_STF.Mathematics.Float3Nerd_STF.Mathematics.Float4Nerd_STF.Mathematics.Int2Nerd_STF.Mathematics.Int3Nerd_STF.Mathematics.Int4Nerd_STF.Mathematics.MathfNerd_STF.Mathematics.Geometry.ISubdividableNerd_STF.Mathematics.NumberSystems.ComplexNerd_STF.Mathematics.NumberSystems.QuaternionNerd_STF.Mathematics.Samples.ConstantsNerd_STF.Mathematics.Samples.Equations
The following types haven't been checked yet, and should still be taken with a grain of salt:
Nerd_STF.Mathematics.Algebra.IMatrixNerd_STF.Mathematics.Algebra.MatrixNerd_STF.Mathematics.Algebra.Matrix2x2Nerd_STF.Mathematics.Algebra.Matrix3x3Nerd_STF.Mathematics.Algebra.Matrix4x4Nerd_STF.Mathematics.Algebra.Vector2dNerd_STF.Mathematics.Algebra.Vector3dNerd_STF.Mathematics.Geometry.Box2DNerd_STF.Mathematics.Geometry.Box3DNerd_STF.Mathematics.Geometry.ITriangulatableNerd_STF.Mathematics.Geometry.LineNerd_STF.Mathematics.Geometry.PolygonNerd_STF.Mathematics.Geometry.QuadrilateralNerd_STF.Mathematics.Geometry.SphereNerd_STF.Mathematics.Geometry.TriangleNerd_STF.Mathematics.Geometry.Vert
16 left to go.
Honestly, most of the time taken for this update was spent on Quaternions. Turns out my multiply function was subtley wrong. Who knew! Just a relief to be done with it. The other stuff wasn't too much of a problem. Matrixes are probably going to be a huge pain if they don't work first try, though. That'll be in the next update, probably.
I should also note that I just realized after way to long that the .csproj file isn't included in the Github. It's included in this new release, and sometime in the future I'll go back and add a correctly working .csproj file to all the other releases as well (with the exception of the legacy Nerd_STF 2021 versions likely. We'll see). I'll now not include the /bin build files. They'll be in the release and you can build it yourself if you need to now. Anyway, have fun.
* Nerd_STF
* Extensions
* Container2DExtension
= Fixed `Flatten<T>(T[,], Int2)`
= `GetColumn<T>(T[,], int, int)` and `GetRow<T>(T[,], int, int)` have been fixed (They had swapped roles)
* ConversionExtension
+ ToFill<T>(T[])
+ ToFill<T>(T[,], Int2)
+ ToFill2D<T>(T[,])
* EquationExtension
= Fixed `Scale(Equation, float, ScaleType)` by swapping all instances of `x` and `value` (oops)
= Moved `ScaleType` out of parent class `EquationExtension` and into namespace `Nerd_STF`
* Geometry
* ITriangulatable
+ TriangulateAll<T>(T[]) where T : ITriangulatable
* Graphics
+ Renamed `IColor` to `IColorFloat`
= Made IColor an object both `IColorFloat` and `IColorByte` inherit from.
* CMYKA
= Made `ToRGBA()` include the alpha value of the color.
* CMYKAByte
= In `ToHSVA()` and `ToHSVAByte()`, swapped some conversions from `RGBA` to `CMYKA`
* HSVA
= Made `ToRGBA()` include the alpha value of the color.
* Image
- Removed some useless constructors
= Fixed some broken constructors
* Mathematics
* Algebra
* Vector2d
= Removed a default parameter value in `ToString(Angle.Type)` to prevent confusion.
* Vector3d
+ string ToString()
+ string ToString(Angle.Type)
+ string ToString(IFormatProvider, Angle.Type)
= Fixed `ToXYZ()`
* NumberSystems
* Complex
+ operator ~(Complex)
* Quaternion
+ Rotate(Float3)
+ Rotate(Vector3d)
+ operator ~(Quaternion)
- ToVector()
= Gave `IJK` proper get and set accessors.
= Renamed some terms in `ToString()`
= Fixed the `Quaternion.FromAngles(*)` methods to do the proper thing.
= Fixed `Quaternion.Rotate(Quaternion)`
= Fixed `Quaternion.Rotate(Float3)`
= Fixed `operator *(Quaternion, Quaternion)`
= Optimized `GetAxis()`
= Simplified `ToXYZ()`
= Swapped the order of `Rotate(Quaternion)`
= Made `GetAxis()` not accidentally create an infinite vector.
* Angle
+ Complimentary
+ Supplementary
* Float2
+ operator *(Float2, Quaternion)
* Float3
+ operator *(Float3, Quaternion)
= Fixed `ToVector()`