mat4.c
v1.0.0
Published
gl-matrix's mat4, in c, split into smaller pieces
Downloads
7
Maintainers
Readme
mat4.c
Part of a fork of @toji's
gl-matrix in c, split into smaller pieces: this
package contains glMatrix.mat4
.
Usage
main.c
#include <mat4/type.h>
#include <mat4/create.h>
mat4 m4 = mat4_create();
gcc main.c -o main -Inode_modules/mat4.c/include
with cmake
CMakeLists.txt
cmake_minimum_required(VERSION 3.2)
project (mat4-test)
file(GLOB CMAKE_INCLUDES "node_modules/*/CMakeLists.txt")
include(${CMAKE_INCLUDES})
add_executable(main main.c)
API
- mat4_adjoint()
- mat4_clone()
- mat4_copy()
- mat4_create()
- mat4_determinant()
- mat4_fromQuat()
- mat4_fromRotationTranslation()
- mat4_frustum()
- mat4_identity()
- mat4_invert()
- mat4_lookAt()
- mat4_multiply()
- mat4_ortho()
- mat4_perspective()
- mat4_perspectiveFromFieldOfView()
- mat4_rotate()
- mat4_rotateX()
- mat4_rotateY()
- mat4_rotateZ()
- mat4_scale()
- mat4_translate()
- mat4_transpose()
mat4_adjoint(out:mat4, a:mat4)
Calculates the adjugate of a mat4
mat4_clone(a:mat4)
Creates a new mat4 initialized with values from an existing matrix
mat4_copy(out:mat4, a:mat4)
Copy the values from one mat4 to another
mat4_create()
Creates a new identity mat4
mat4_determinant(a:mat4)
Calculates the determinant of a mat4
mat4_fromQuat(out:mat4, q:quat4)
Creates a matrix from a quaternion rotation.
mat4_fromRotationTranslation(out:mat4, q:quat4, v:vec3)
Creates a matrix from a quaternion rotation and vector translation This is equivalent to (but much faster than):
mat4_identity(dest);
mat4_translate(dest, vec);
mat4 quatMat = mat4_create();
quat4_toMat4(quat, quatMat);
mat4_multiply(dest, quatMat);
mat4_frustum(out:mat4, left:float, right:float, bottom:float, top:float, near:float, far:float)
Generates a frustum matrix with the given bounds
mat4_identity(out:mat4)
Set a mat4 to the identity matrix
mat4_invert(out:mat4, a:mat4)
Inverts a mat4
mat4_lookAt(out:mat4, eye:vec3, center:vec3, up:vec3)
Generates a look-at matrix with the given eye position, focal point, and up axis
mat4_multiply(out:mat4, a:mat4, b:mat4)
Multiplies two mat4's
mat4_ortho(out:mat4, left:float, right:float, bottom:float, top:float, near:float, far:float)
Generates a orthogonal projection matrix with the given bounds
mat4_perspective(out:mat4, fovy:float, aspect:float, near:float, far:float)
Generates a perspective projection matrix with the given bounds
mat4_perspectiveFromFieldOfView(out:mat4, fov:float[4], near:float, far:float)
Generates a perspective projection matrix with the given field of view.
mat4_rotate(out:mat4, a:mat4, rad:float, axis:vec3)
Rotates a mat4 by the given angle
mat4_rotateX(out:mat4, a:mat4, rad:float)
Rotates a matrix by the given angle around the X axis
mat4_rotateY(out:mat4, a:mat4, rad:float)
Rotates a matrix by the given angle around the Y axis
mat4_rotateZ(out:mat4, a:mat4, rad:float)
Rotates a matrix by the given angle around the Z axis
mat4_scale(out:mat4, a:mat4, v:vec3)
Scales the mat4 by the dimensions in the given vec3
mat4_translate(out:mat4, a:mat4, v:vec3)
Translate a mat4 by the given vector
mat4_transpose(out:mat4, a:mat4)
Transpose the values of a mat4
License
zlib. See LICENSE.md for details.