Linear algebra functions and utilities for 3D rendering in C

izzy dff600c6e9 bug fixes 2 روز پیش
algorithms 558af45f6c 2d line rasterization algorithms designed for searching spatial hashes 6 ماه پیش
intersect dff600c6e9 bug fixes 2 روز پیش
optimizations 5d318b7e08 beginning migration to version 2 4 سال پیش
.gitignore 8827e68c4b tri/plane clipping 5 سال پیش
LICENSE fe493e9cf8 point-polygon distance function 3 سال پیش
README.md 7393055bee Matrix-vector multiplication that preserves /what you want/ when transforming world coordinates into clip space for culling purposes 3 سال پیش
build.sh b52e44cd97 test pcg functions, clearer pcg_init logic 3 ماه پیش
c3dlas.c 907b22813a generic vector helpers for some oddballs 6 روز پیش
c3dlas.h dff600c6e9 bug fixes 2 روز پیش
generic_vectors.h 907b22813a generic vector helpers for some oddballs 6 روز پیش
inertia.c 9475019198 Inertial moment functions 2 سال پیش
inertia.h 9475019198 Inertial moment functions 2 سال پیش
legacy_migration.sh 5d318b7e08 beginning migration to version 2 4 سال پیش
line.c dff600c6e9 bug fixes 2 روز پیش
matrix3.c 5b8cd715ba missing semicolon and some other fixes 2 سال پیش
matrix4.c 17796af1d4 fixed #if 7 ماه پیش
meshgen.c 7393055bee Matrix-vector multiplication that preserves /what you want/ when transforming world coordinates into clip space for culling purposes 3 سال پیش
meshgen.h 7393055bee Matrix-vector multiplication that preserves /what you want/ when transforming world coordinates into clip space for culling purposes 3 سال پیش
quad.c 73428f7bbb quad/point intersection 4 ماه پیش
quaternion.c 907b22813a generic vector helpers for some oddballs 6 روز پیش
short_macros.h e53f9c0dfb make the vector short macro initializers eat trailing commas 1 سال پیش
test.c b52e44cd97 test pcg functions, clearer pcg_init logic 3 ماه پیش
test.sh b52e44cd97 test pcg functions, clearer pcg_init logic 3 ماه پیش

README.md

c3dlas

Linear algebra functions and utilities for 3D rendering in C

This library exists because I couldn't find an MIT/BSD licensed C library for doing the math required in a OpenGL program. It's not optimized, extensive, or sophisticated. It is free and written in pure C.

C++ has become fat and ugly with age. Not that it was a 9 to start with...

ATLAS/CBLAS are an incomprehensible mess.

GPL, while a wonderful thing, is a bit heavy-handed for some basic math functions.

I firmly believe that such a library did not exist because most of the functionality was built in to older OpenGL versions. By the time OpenGL 3.3 came out most developers had converted to worshiping under the altar of OOP.

There are probably math bugs somewhere. If you find one, report it on github. Preferably include how to fix it to make my life easier.