Ben Visness ad3039186d Initial quaternion implementation (#49)
* Various changes, and started work on Quaternions

* Worked on Quaternions (#46)

* Working on quaternions

* Finished operations, onto slerp

* Working on slerp

* Finished slerp implementation, next is NLerp

* Cleaned HandmadeMath.cpp

* Removed gbmath includes

* fixed minor issue.

* Fixed function names

* Fixed DotQuat call

* Did a style check

* Double Style Check

* Triple Style Check

* Fixed all the bullshit I did wrong

* Fixed more bs

* Added new functions

* Finished function implements

* Fixed some compile errors

* Fixed UTF-8 Error

* Added in most operator overrides

* Changed instances of HMM_PI to HMM_Pi32

* Fixed a warning

* Fixed a major issue with quaternion to matrix function where rotations about the y axis caused strange warping.

* Revert "Fixed a warning"

This reverts commit 043decab0d.

* Revert repo

* Fixed Quaternion to Matrix function.

* Fixed some prevalent issues, and now pulls triganometric funcitions from the std instead of implementing them.

* Fixed tab formatting, added in reverse multiplication function with Quaternions

* Removed error suppression cleanup, as it was causing more warnings. . .

* Added documentation

* Changed ATanf2 to ATan2f

* Fixed some typos and added additional documentation (#48)

* Add tests for quaternions

* Remove (very wrong) quaternion division in favor of multiplying by inverse

* Put back newlines at ends of files

* Make tweaks for PR

* Add assigning arithmetic operators for quaternions

* Add NLerp

Just to make Jonathan Blow happy: http://number-none.com/product/Understanding%20Slerp,%20Then%20Not%20Using%20It/

* Rearrange parameters of HMM_Slerp

It now matches HMM_Lerp and HMM_NLerp.

* Update README.md
2017-01-04 16:25:12 -08:00
2016-08-30 14:01:17 -05:00

Handmade-Math


Build Status

Single-file cross-platform public domain game math library for C/C++

This library is free and will stay free, but if you would like to support development, or you are a company using HandmadeMath, please consider financial support.

Patreon PayPal

Version Changes
1.1 Quaternions!
1.0 Lots of testing
0.7 Added HMM_Vec2, and HMM_Vec4 versions of HMM_LengthSquared, HMM_Length, and HMM_Normalize.
0.6 Made HMM_Power faster, Fixed possible efficiency problem with HMM_Normalize, RENAMED HMM_LengthSquareRoot to HMM_LengthSquared, RENAMED HMM_RSqrtF to HMM_RSquareRootF, RENAMED HMM_SqrtF to HMM_SquareRootF, REMOVED Inner function (user should use Dot now), REMOVED HMM_FastInverseSquareRoot function declaration
0.5.2 Fixed SSE code in HMM_SqrtF and HMM_RSqrtF
0.5.1 Fixed HMM_Translate producing row-major matrices, ensured column-major order for matrices throughout
0.5 Added scalar operations on vectors and matrices, added += and -= for hmm_mat4, reconciled headers and implementations, tidied up in general
0.4 Added SSE Optimized HMM_SqrtF, HMM_RSqrtF, Removed use of C Runtime
0.3 Added +=,-=, *=, /= for hmm_vec2, hmm_vec3, hmm_vec4
0.2b Disabled warning C4201 on MSVC, Added 64bit percision on HMM_PI
0.2a Prefixed Macros
0.2 Updated Documentation, Fixed C Compliance, Prefixed all functions, and added better operator overloading
0.1 Initial Version

This library is free and will stay free, but if you would like to support development, or you are a company using HandmadeMath, please consider financial support.

FAQ

What's the license?

This library is in the public domain. You can do whatever you want with them.

Where can I contact you to ask questions?

You can email me at: Zak@Handmade.Network

Description
A simple math library for games and computer graphics. Compatible with both C and C++. Public domain and easy to modify.
Readme CC0-1.0 3.8 MiB
Languages
C 95.7%
Python 2.2%
Makefile 1.2%
Batchfile 0.8%