1.0.0 • Published 9 years ago

mat4.c v1.0.0

Weekly downloads
5
License
Zlib
Repository
github
Last release
9 years ago

mat4.c stable

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(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:float4, 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.