65.9K
CodeProject is changing. Read more.
Home

Sharp3D.Math - A 3D math library for .NET

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.30/5 (29 votes)

May 12, 2004

1 min read

viewsIcon

229445

downloadIcon

6582

A 3D math library written in C#

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.