Skip to content

AlexMarinescu/pyGameMath

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ScreenShot

pyGameMath Build Status Code Health Codacy Badge

This is a math library written in python for 2D/3D game development which is also compatible with pypy. I made it while I was learning more about the math used in graphics development and for personal use in OpenGL related projects.
It’s still a work in progress.

Dependencies:

It uses six to allow support between python2.x and python3.x.

Install:

To install the library just do

pip install gem

It will install the dependicies automatically.

Documentation and Examples:

The examples on how to use the library and more info are maintained on the github wiki:

Wiki Link

Supported features:

NxN Matrices:

  • Transpose
  • Scale
  • NxN Matrix Multiplication
  • NxN Matrix * N Dimensions Vector Multiplication
  • 4x4 Perspective Projection Matrix
  • lookAt 4x4 Matrix
  • Translation (3x3, 4x4)
  • Rotation (2x2, 3x3, 4x4)
  • Shear (2x2, 3x3, 4x4)
  • Project
  • Unproject
  • Orthographic Projection
  • Perspective Projection
  • lookAt 4x4 matrix
  • Determinant 2x2, 3x3, 4x4
  • Inverse 2x2, 3x3, 4x4

N Dimensions Vectors:

  • Dot Product
  • Cross Product (3D, No 7D as of now)
  • 2D get angle of vector
  • 2D -90 degree rotation
  • 2D +90 degree rotation
  • Refraction
  • Reflection
  • Negate
  • Normalize
  • Linear Interpolation
  • Max Vector/Scalar
  • Min Vector/Scalar
  • Clamp
  • Transform
  • Barycentric
  • isInSameDirection test
  • isInOppositeDirection test
  • 3D Vector swizzling, similar to GLSL
  • 3D Vector idenitities

Quaternions:

  • Normalize
  • Dot Product
  • Rotation
  • Conjugate
  • Inverse
  • Negate
  • Rotate X, Y, Z
  • Arbitary Axis Rotation
  • From angle Rotation
  • To Rotation Matrix (4x4)
  • From Rotation Matrix (4x4)
  • Cross Product
  • Vector3D, Scalar Multiplication
  • Logarithm
  • Exponential
  • Power
  • Liner Interpolation (LERP)
  • Spherical Interpolation (SLERP)
  • Spherical Interpoliaton No Invert
  • Quaternion Splines (SQUAD)

Plane:

  • Define using
    • 3 Vectors
    • Point and Normal
    • Manual input
  • Dot Product
  • Normalize
  • Best fit normal and D value
  • Distance from plane to a point
  • Point location
  • Output
  • Flip

Ray:

  • Rotate using Matrix
  • Rotate using Quaternions
  • Translate
  • Output

Legendre Polynomial (Experimental, not complete):

  • For spherical harmonics
  • (l - m)PML(x) = x(2l - 1)PML-1(x
  • Irradiance maps