Skip to content

Instantly share code, notes, and snippets.

@BitPuffin
Created December 5, 2013 17:38
Show Gist options
  • Save BitPuffin/7809816 to your computer and use it in GitHub Desktop.
Save BitPuffin/7809816 to your computer and use it in GitHub Desktop.
proc rotate(axis: TVector, angle: float): TMat4 =
result = [[cos(angle) + (1 - cos(angle))*axis[0].pow(2.0), (1 - cos(angle))*axis[0]*axis[1] - axis[2]*sin(angle), (1 - cos(angle))*axis[0]*axis[2] + axis[1]*sin(angle), 0],
[(1 - cos(angle))*axis[0]*axis[1] + axis[2]*sin(angle), cos(angle) + (1 - cos(angle))*axis[1].pow(2.0), (1 - cos(angle))*axis[1]*axis[2] - axis[0]*sin(angle), 0],
[(1 - cos(angle))*axis[0]*axis[2] - axis[1]*sin(angle), (1 - cos(angle))*axis[1]*axis[2] + axis[0]*sin(angle), cos(angle) + (1 - cos(angle))*axis[2].pow(2.0), 0],
[0f32, 0f32, 0f32, 1f32]]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment