Introduction
I started building this library as part of a C# 3D engine I am currently working on. Having noticed that there isn't any decent open-source C# library for dealing with complex math out there I decided to focus my efforts on this library and release it to the world.
More information could be found on the project's workspace at http://workspaces.gotdotnet.com/sharp3d.
Features
- Support both single-precision and double-precision floating point types.
- Full-featured implementation of mathematical data types including complex numbers' quaternion and various sizes of matrices and vectors.
- Geometric data types and algorithms for 2D and 3D - distance and intersection methods, bounding volumes etc.
- Random number and noise generation.
- Strong-Typed collections for the library's data types.
- Extension of standard mathematical functions, such as
Cos()
, Sqrt()
, and Exp()
, to work with vectors, matrices, and complex number classes.
- A support library for converting between DirectX and
Sharp3D.Math
structures.
History
- v1.1.1621.25560 - Update
- Added array lists for vector structures.
- Added a Polygon class to the Geometry3D and Geometry2D namespaces.
- Added a Triangle structure to the Geometry3D namespace.
- Intersection Methods : Ray to plane, AABB, OBB, Triangle and Sphere (not fully implemented yet).
- Intersection Methods between AABB, OBB and Sphere (not fully implemented yet).
- Added <, > , <=, >= operators to the vector structures.
- Added
IIntegrator
implementations : SimpsonIntegral.
- Implemented the Parse method for vectors and complex numbers.
- Created Sharp3D.Math.Tests library and moved all unit testing classes there so that Sharp3D.Math is no longer dependent on NUnit.Framework.dll.
- v1.1 - First release.