Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@paniq
Created October 16, 2019 07:51
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save paniq/a88e961de269d5442fa39b96d8f2497c to your computer and use it in GitHub Desktop.
Save paniq/a88e961de269d5442fa39b96d8f2497c to your computer and use it in GitHub Desktop.
// gcc glmtest.cpp -o glmtest -lstdc++ && ./glmtest
#include <stdio.h>
#include <glm/glm.hpp>
using namespace glm;
void print(const vec3 &v) {
printf("%f %f %f\n\n", v[0], v[1], v[2]);
}
void print(const vec4 &v) {
printf("%f %f %f %f\n\n", v[0], v[1], v[2], v[3]);
}
void print(const mat3 &m) {
printf("%f %f %f\n%f %f %f\n%f %f %f\n\n",
m[0][0], m[0][1], m[0][2],
m[1][0], m[1][1], m[1][2],
m[2][0], m[2][1], m[2][2]);
}
void print(const mat4 &m) {
printf("%f %f %f %f\n%f %f %f %f\n%f %f %f %f\n%f %f %f %f\n\n",
m[0][0], m[0][1], m[0][2], m[0][3],
m[1][0], m[1][1], m[1][2], m[1][3],
m[2][0], m[2][1], m[2][2], m[2][3],
m[3][0], m[3][1], m[3][2], m[3][3]);
}
void print(const mat4x3 &m) {
printf("%f %f %f\n%f %f %f\n%f %f %f\n%f %f %f\n\n",
m[0][0], m[0][1], m[0][2],
m[1][0], m[1][1], m[1][2],
m[2][0], m[2][1], m[2][2],
m[3][0], m[3][1], m[3][2]);
}
void print(const mat3x4 &m) {
printf("%f %f %f %f\n%f %f %f %f\n%f %f %f %f\n\n",
m[0][0], m[0][1], m[0][2], m[0][3],
m[1][0], m[1][1], m[1][2], m[1][3],
m[2][0], m[2][1], m[2][2], m[2][3]);
}
int main(int argc, char **argv) {
mat4 mat1(
vec4(3,3,3,1),
vec4(2,2,3,3),
vec4(1,2,3,4),
vec4(1,2,5,5));
{
mat4x3 mat(mat1);
mat3x4 mat2 = transpose(mat);
print(mat);
printf("4x3 * 3x4:\n");
print(mat * mat2);
printf("3x4 * 4x3:\n");
print(mat2 * mat);
print(vec3(2.0,3.0,4.0) * mat);
print(mat * vec4(2.0,3.0,4.0,5.0));
//print_vec(mat * vec4(2.0,3.0,4.0,5.0));
}
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment