Skip to content

philstopford/DesignLibs_GPL

Repository files navigation

DesignLibs_GPL

GPLv3 release of DesignLibs

DesignLibs comprises a multitude of libraries. These are primarily built for use by the Variance (https://github.com/philstopford/Variance_GPL) and Quilt (https://github.com/philstopford/Quilt_GPL) tools. Gradually, documentation will be added to the wiki.

Common

Burkardt:

This is a WIP port of the huge resource available at https://people.sc.fsu.edu/~jburkardt/cpp_src/cpp_src.html. Validation is being tracked at #2. The port was constrained in scope (a subset of the reference has been tackled, focussed on areas I found most interesting / useful) and the port is also kept as close to the original design as possible to limit the initial scope. The upstream code makes practically no use of object orientation and has Fortran-isms and usage patterns that aren't fully addressed (yet) in this effort. Functionality and correctness were the initial goals.

Color:

This provides color representations and common variables that are used by the Eto.Forms-based viewports, and end-user tools.

KDTree:

This is a copy of the KDTree formerly hosted at https://code.google.com/p/kd-sharp/

LibTessDotNet:

This is a copy of https://github.com/speps/LibTessDotNet

MersenneTwister:

This is a copy of http://www.centerspace.net/resources/free-stuff/mersenne-twister

MiscUtil:

This is a modified copy of http://yoda.arachsys.com/csharp/miscutil/. The modification was the removal of some code that could not be supported under .NET Core 3.1 and later .NET releases, but which was not needed by the projects DesignLibs serves.

Noise:

This provides Perlin, Simplex and OpenSimplex noise functions.

Clipper:

This is a copy of the C# library from github.com/AngusJohnson/Clipper2. This is heavily used for polygon clipping, including raycasting.

info.lundin.math

This is a copy of http://lundin.info/mathparser

EntropyRNG:

This provides a threadsafe RNG system (interacting also optionally with the MersenneTwister).

GeoLib:

This provides the basic geometric primitives (integer and floating point both). Points, arrays, matrices, and rectangles are available. These were written due to the multi-platform operation, where System.Drawing was not necessarily available, and relying on Eto.Forms introduced awkward dependencies on headless platforms.

GeoWrangler:

This is a general purpose library for various transformations and conversions of geometry.

It also provides:

  • raycaster
  • fragmentation and decimation features
  • keyholding
  • arraying
  • inversion (including n-polygon forms)
  • sanitization (point sequence orientation, re-ordering, etc.)

GeoCore:

This is a layout parsing library for GDSII and Oasis files. The design is a mix of inspiration from various references. Example usage is available in the root level geoCoreTest and also the gdsTest and oasTest projects.

Eto

Eto.VeldridSurface:

This uses the Eto.Veldrid project to deliver a common 2D viewport library for use inside end-user applications. The choice of API depends on platform. This viewport is supported on .NET Core 3.1 and modern .NET, where etoViewport cannot run due to OpenTK issues. The shaders folder is relevant to this project.

etoViewport:

This is legacy code. It uses Eto.OpenTK to provide common 2D viewports, but has been replaced by Eto.Veldrid due to general incompatibility with .NET Core 3.1 and later.

errorReporter:

Simple error handler, intended to allow end-user code to call errorReporter in headless or Eto without worrying about how the error is being shown to the user.

About

DesignLibs is a collection of libraries used by Quilt and Variance for various purposes.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published