Nerd_STF 2.3.2

There is a newer version of this package available.
See the version list below for details.
dotnet add package Nerd_STF --version 2.3.2
NuGet\Install-Package Nerd_STF -Version 2.3.2
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Nerd_STF" Version="2.3.2" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Nerd_STF --version 2.3.2
#r "nuget: Nerd_STF, 2.3.2"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Nerd_STF as a Cake Addin
#addin nuget:?package=Nerd_STF&version=2.3.2

// Install Nerd_STF as a Cake Tool
#tool nuget:?package=Nerd_STF&version=2.3.2

Nerd_STF

Table of Contents

What is it?

Nerd_STF is a multi-purpose .NET 7.0 library that contains many objects I feel would help the default C# library package. Feel free to do with it what you'd like.

Nerd_STF includes some math as well as many other computer science topics. It contains types like groups of floats/ints, geometry types like Vert, Line, and Triangle, and color types like RGBA, CMYKA, HSVA, and their byte equivalents, all of which can convert seamlessly between each other.

What about Nerd_STF Versions 2021?

Nerd_STF 2021 used an different version scheme, based on the year, as you might have guessed (it is not the year 2 right now), and while I will be keeping the 2021 versions up, I wouldn't recommend using them, and the code is old code, written by a more naive me. Hell, I wrote an entire List<T> class there before I knew of the System.Collections.Generic.List<T> class that did literally everything for me already. Oh well. So, keep that in mind when you check out those versions of the library.

How do I install it?

The NuGet package for this library is here, so you could always install it that way using the .NET CLI:

  1. Open your terminal in your project directory.
  2. Enter this command: dotnet add package Nerd_STF
  3. There is no step 3.

You can also include the NuGet package via a package reference in your project file:

  1. Open your project file.
  2. Add this to the XML data: <PackageReference Include="Nerd_STF" />
  3. There is no step 3.

Alternatively, you can install it via a project reference in Visual Studio 2019 and 2022. Here's how:

  1. Download the latest library release from the GitHub repository, extract the files, and save them somewhere you can find later. The files must all be in the same direcrtory/folder together.
  2. Open Visual Studio 2019 or 2022.
  3. Right-click your .NET project in the Solution Explorer.
  4. Hover over "Add >" list and then click "Project Reference..."
  5. Click "Browse," and locate the .dll file you previously extracted (the full name is "Nerd_STF.dll").
  6. Click "Add," then "OK," and the library is now imported!

I've found a bug!

I'm not suprised, there are definitely a bunch of undiscovered bugs in Nerd_STF simply because I'm just one person. If you've found one, please do me a favor and create an issue about it in the GitHub repository. They likely aren't difficult fixes, they are just hard to spot even with some level of testing.

I'd like to contribute.

I would love some contributions! I probably won't accept drastic pull requests or merges with the library, but small changes are quite welcome! I'm just one person and I can only do so much work by myself. If you want to contribute, please only edit the current version branch (eg. if we are on version 2.3.1, edit the v2.3 branch). Please do not edit the main branch. I will merge the changes with main myself.

Try to follow a similar style to the current library, but otherwise I'm open to changes. Thank you to those who contribute!

Product Compatible and additional computed target framework versions.
.NET net7.0 is compatible.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net7.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
2.4.1 202 7/17/2023
2.4.0 147 7/10/2023
2.3.2 244 3/9/2023
2.3.1.68 339 11/12/2022
2.3.1.52-alpha 210 10/31/2022
2.3.1.39-alpha 178 9/30/2022
2.3.0 400 8/2/2022
2.2.0 413 6/10/2022
2.1.2 421 5/2/2022
2.1.1 387 4/17/2022
2.1.0 408 4/17/2022
2.0.1 416 4/3/2022
2.0.0 408 4/3/2022

A bunch of stuff has changed, hasn't it?

This update was originally intended to be a support update. But among other problems, I don't want to maintain 3 slightly different versions of Nerd_STF at the same time. So I'm going to put the support update on hold for now. I won't delete my progress on it (I got about a quarter of the way done with support for .NET Standard 2.0. It's a big undertaking), I won't promise any completion date either.

Instead, this update ended up being a quality-of-life update. I already finished this part of the update before I decided to cancel the support update. This update now has lots of support for the new .NET 7 features. I'm now using a bunch of static abstract interfaces. I also added range indexing to almost all of the types available. The color byte types now have int fields instead of byte fields because ints are much more common. The values are automatically clamped between 0 and 255 just in case. Basically all types are records now because records are really nice. Lastly, some stuff has been marked as deprecated and to be removed in a future release because they already, exist, are kind of useless, and/or are misleading. Most of the deprecated stuff will be removed in either 2.4.0 or 2.5.0.

Also, just want to note that despite the Vert`struct not being marked as deprecated, it will still be removed in 2.5.0. I didn't mark it because that would have created a bunch of warnings in my library. And I don't like warnings.

One final note, I've changed the description of the library and I've changed a bunch of the assembly and compilation settings.

Anyway, that's it for this update. The longest delay was just getting this project to other versions of .NET. Stay tuned for v2.4.0, the Equations and Numbers update!