Nerd_STF/Changelog.md

151 lines
6.3 KiB
Markdown

# 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.FileType`
- `Nerd_STF.Fill`
- `Nerd_STF.Fill2D`
- `Nerd_STF.Foreach`
- `Nerd_STF.IClosest`
- `Nerd_STF.IContainer`
- `Nerd_STF.IEncapsulator`
- `Nerd_STF.IGroup`
- `Nerd_STF.IGroup2D`
- `Nerd_STF.Logger`
- `Nerd_STF.LogMessage`
- `Nerd_STF.LogSeverity`
- `Nerd_STF.Modifier`
- `Nerd_STF.Modifier2D`
- `Nerd_STF.Exceptions.DifferingVertCountException`
- `Nerd_STF.Exceptions.DisconnectedLinesException`
- `Nerd_STF.Exceptions.InvalidSizeException`
- `Nerd_STF.Exceptions.Nerd_STFException`
- `Nerd_STF.Exceptions.NoInverseException`
- `Nerd_STF.Extensions.Container2DExtension`
- `Nerd_STF.Extensions.ConversionExtension`
- `Nerd_STF.Extensions.EquationExtension`
- `Nerd_STF.Extensions.ToFillExtension`
- `Nerd_STF.Graphics.CMYKA`
- `Nerd_STF.Graphics.CMYKAByte`
- `Nerd_STF.Graphics.ColorChannel`
- `Nerd_STF.Graphics.HSVA`
- `Nerd_STF.Graphics.HSVAByte`
- `Nerd_STF.Graphics.IColor`
- `Nerd_STF.Graphics.IColorByte`
- `Nerd_STF.Graphics.IlluminationFlags`
- `Nerd_STF.Graphics.IlluminationModel`
- `Nerd_STF.Graphics.Image`
- `Nerd_STF.Graphics.Material`
- `Nerd_STF.Graphics.RGBA`
- `Nerd_STF.Graphics.RGBAByte`
- `Nerd_STF.Graphics.TextureConfig`
- `Nerd_STF.Mathematics.Angle`
- `Nerd_STF.Mathematics.Calculus`
- `Nerd_STF.Mathematics.Equation`
- `Nerd_STF.Mathematics.Float2`
- `Nerd_STF.Mathematics.Float3`
- `Nerd_STF.Mathematics.Float4`
- `Nerd_STF.Mathematics.Int2`
- `Nerd_STF.Mathematics.Int3`
- `Nerd_STF.Mathematics.Int4`
- `Nerd_STF.Mathematics.Mathf`
- `Nerd_STF.Mathematics.Geometry.ISubdividable`
- `Nerd_STF.Mathematics.NumberSystems.Complex`
- `Nerd_STF.Mathematics.NumberSystems.Quaternion`
- `Nerd_STF.Mathematics.Samples.Constants`
- `Nerd_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.IMatrix`
- `Nerd_STF.Mathematics.Algebra.Matrix`
- `Nerd_STF.Mathematics.Algebra.Matrix2x2`
- `Nerd_STF.Mathematics.Algebra.Matrix3x3`
- `Nerd_STF.Mathematics.Algebra.Matrix4x4`
- `Nerd_STF.Mathematics.Algebra.Vector2d`
- `Nerd_STF.Mathematics.Algebra.Vector3d`
- `Nerd_STF.Mathematics.Geometry.Box2D`
- `Nerd_STF.Mathematics.Geometry.Box3D`
- `Nerd_STF.Mathematics.Geometry.ITriangulatable`
- `Nerd_STF.Mathematics.Geometry.Line`
- `Nerd_STF.Mathematics.Geometry.Polygon`
- `Nerd_STF.Mathematics.Geometry.Quadrilateral`
- `Nerd_STF.Mathematics.Geometry.Sphere`
- `Nerd_STF.Mathematics.Geometry.Triangle`
- `Nerd_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()`
```