diff --git a/Makefile b/Makefile deleted file mode 100644 index e24766e..0000000 --- a/Makefile +++ /dev/null @@ -1,55 +0,0 @@ -EXE = t3dsr -TEXE = t3dsr_test - -INC = include -SRC = src -TST = test -BLD = build - -DDIR = $(BLD)/debug -TDIR = $(BLD)/test - -CC = clang -CFLAGS = -Wall -Wextra -I$(INC) -g - -SRCS := $(shell find $(SRC) -name "*.c") -OBJS := $(SRCS:$(SRC)/%.c=$(DDIR)/%.o) - -all: $(EXE) -.PHONY: all - -$(EXE): $(OBJS) | $(DDIR) - @$(CC) $^ -o $(BLD)/$@ - -$(DDIR): - @mkdir -p $(DDIR) - -$(DDIR)/%.o: $(SRC)/%.c | $(DDIR) - @mkdir -p $(dir $@) - @$(CC) $(CFLAGS) -c $< -o $@ - -clean: - @rm -rf $(BLD) $(EXE) - -run: $(EXE) - @./$(BLD)/$(EXE) - -TSRCS := $(shell find $(TST) -name "*.c") -TOBJS := $(TSRCS:$(TST)/%.c=$(TDIR)/%.o) \ - $(filter-out $(DDIR)/main.o, $(OBJS)) - -debug: - @echo "$(OBJS)\n$(TOBJS)" - -$(TDIR)/%.o: $(TST)/%.c | $(TDIR) - @mkdir -p $(dir $@) - @$(CC) $(CFLAGS) -c $< -o $@ - -$(TDIR): - @mkdir -p $(TDIR) - -$(TEXE): $(TOBJS) | $(TDIR) $(DDIR) - @$(CC) $^ -o $(BLD)/$@ - -test: $(TEXE) - @./$(BLD)/$(TEXE) \ No newline at end of file diff --git a/src/main.c b/src/main.c index bc8fa7c..d96d838 100644 --- a/src/main.c +++ b/src/main.c @@ -1,4 +1,4 @@ -#include "math/vector3.h" +#include "math/vec3.h" #include #define printVector3(v) { printf("(%f, %f, %f)", v.x, v.y, v.z); } diff --git a/src/math/matrix3.c b/src/math/mat3.c similarity index 63% rename from src/math/matrix3.c rename to src/math/mat3.c index 3d4843e..6308f61 100644 --- a/src/math/matrix3.c +++ b/src/math/mat3.c @@ -1,7 +1,7 @@ -#include "matrix3.h" +#include "mat3.h" #include -Mat3 mat3(float arr[9]) +Mat3 mat3(const float arr[9]) { Mat3 mat; memcpy(mat.m, arr, 9*sizeof(float)); @@ -90,30 +90,30 @@ Mat3 mat3_tpo(const Mat3* m) return mat; } -float mat3_det(const Mat3* m) +float mat3_Det(const Mat3* m) { return m->m[0] * (m->m[4] * m->m[8] - m->m[5] * m->m[7]) - m->m[1] * (m->m[3] * m->m[8] - m->m[5] * m->m[6]) + m->m[2] * (m->m[3] * m->m[7] - m->m[4] * m->m[6]); } -// Mat3 Mat3Inv(Mat3 m) { -// Mat3 inv; -// float det = Mat3Det(m); -// if (det == 0) return Mat3Ity(); +Mat3 mat3_inv(const Mat3* m) { + Mat3 inv; + float det = mat3_det(m); + if (det == 0) return mat3_ity(); -// float invDet = 1.0f / det; + float invDet = 1.0f / det; -// // ??? -// inv.m[0] = (m->m[4] * m->m[8] - m->m[5] * m->m[7]) * invDet; -// inv.m[1] = -(m->m[1] * m->m[8] - m->m[2] * m->m[7]) * invDet; -// inv.m[2] = (m->m[1] * m->m[5] - m->m[2] * m->m[4]) * invDet; -// inv.m[3] = -(m->m[3] * m->m[8] - m->m[5] * m->m[6]) * invDet; -// inv.m[4] = (m->m[0] * m->m[8] - m->m[2] * m->m[6]) * invDet; -// inv.m[5] = -(m->m[0] * m->m[5] - m->m[2] * m->m[3]) * invDet; -// inv.m[6] = (m->m[3] * m->m[7] - m->m[4] * m->m[6]) * invDet; -// inv.m[7] = -(m->m[0] * m->m[7] - m->m[1] * m->m[6]) * invDet; -// inv.m[8] = (m->m[0] * m->m[4] - m->m[1] * m->m[3]) * invDet; + // ??? + inv.m[0] = (m->m[4] * m->m[8] - m->m[5] * m->m[7]) * invDet; + inv.m[1] = -(m->m[1] * m->m[8] - m->m[2] * m->m[7]) * invDet; + inv.m[2] = (m->m[1] * m->m[5] - m->m[2] * m->m[4]) * invDet; + inv.m[3] = -(m->m[3] * m->m[8] - m->m[5] * m->m[6]) * invDet; + inv.m[4] = (m->m[0] * m->m[8] - m->m[2] * m->m[6]) * invDet; + inv.m[5] = -(m->m[0] * m->m[5] - m->m[2] * m->m[3]) * invDet; + inv.m[6] = (m->m[3] * m->m[7] - m->m[4] * m->m[6]) * invDet; + inv.m[7] = -(m->m[0] * m->m[7] - m->m[1] * m->m[6]) * invDet; + inv.m[8] = (m->m[0] * m->m[4] - m->m[1] * m->m[3]) * invDet; -// return inv; -// } \ No newline at end of file + return inv; +} \ No newline at end of file diff --git a/src/math/matrix3.h b/src/math/mat3.h similarity index 93% rename from src/math/matrix3.h rename to src/math/mat3.h index af4dcf6..6012452 100644 --- a/src/math/matrix3.h +++ b/src/math/mat3.h @@ -6,7 +6,7 @@ typedef struct float m[9]; } Mat3; -Mat3 mat3(float arr[9]); +Mat3 mat3(const float arr[9]); Mat3 mat3_zro(); Mat3 mat3_ity(); diff --git a/src/math/vector3.c b/src/math/vec3.c similarity index 94% rename from src/math/vector3.c rename to src/math/vec3.c index 2781814..5f980b5 100644 --- a/src/math/vector3.c +++ b/src/math/vec3.c @@ -2,7 +2,7 @@ #include #include -#include "vector3.h" +#include "vec3.h" inline Vec3 vec3(float x, float y, float z) { @@ -24,11 +24,6 @@ Vec3 vec3_scale(Vec3 v, float scalar) return vec3(v.x * scalar, v.y * scalar, v.z * scalar); } -Vec3 vec3_mul(Vec3 v1, Vec3 v2) -{ - return vec3(v1.x * v2.x, v1.y * v2.y, v1.z * v2.z); -} - float vec3_dot(Vec3 a, Vec3 b) { return a.x * b.x + a.y * b.y + a.z * b.z; diff --git a/src/math/vector3.h b/src/math/vec3.h similarity index 100% rename from src/math/vector3.h rename to src/math/vec3.h diff --git a/src/math/vector4.c b/src/math/vec4.c similarity index 98% rename from src/math/vector4.c rename to src/math/vec4.c index 70cc0b5..8196a15 100644 --- a/src/math/vector4.c +++ b/src/math/vec4.c @@ -2,7 +2,7 @@ #include #include -#include "vector4.h" +#include "vec4.h" inline Vec4 vec4(float x, float y, float z, float w) { diff --git a/src/math/vector4.h b/src/math/vec4.h similarity index 100% rename from src/math/vector4.h rename to src/math/vec4.h