From 2a204c2e2c0909deed1f1eec7ec3ce5d3e6c1f1c Mon Sep 17 00:00:00 2001 From: Alexandre Date: Tue, 27 Aug 2024 19:20:03 +0200 Subject: [PATCH] started implementing 3D renderer --- Makefile | 3 +- bin/back | Bin 102168 -> 137096 bytes obj/base.o | Bin 0 -> 34304 bytes obj/display.o | Bin 0 -> 24144 bytes obj/generation.o | Bin 0 -> 54088 bytes obj/hash.o | Bin 0 -> 13640 bytes obj/main.o | Bin 0 -> 15120 bytes obj/move.o | Bin 0 -> 62280 bytes obj/threed.o | Bin 0 -> 73448 bytes src/base.c | 17 ++ src/base.h | 6 + src/display.c | 1 + src/main.c | 25 ++- src/structure.h | 25 +++ src/threed.c | 442 +++++++++++++++++++++++++++++++++++++++++++++++ src/threed.h | 42 +++++ 16 files changed, 559 insertions(+), 2 deletions(-) create mode 100644 obj/base.o create mode 100644 obj/display.o create mode 100644 obj/generation.o create mode 100644 obj/hash.o create mode 100644 obj/main.o create mode 100644 obj/move.o create mode 100644 obj/threed.o create mode 100644 src/threed.c create mode 100644 src/threed.h diff --git a/Makefile b/Makefile index f77cad8..4b35150 100644 --- a/Makefile +++ b/Makefile @@ -16,7 +16,7 @@ test2: bin/back test3: bin/back bin/back templates_lv3.txt 33 -bin/back: obj/main.o obj/generation.o obj/display.o obj/base.o obj/hash.o obj/move.o +bin/back: obj/main.o obj/generation.o obj/display.o obj/base.o obj/hash.o obj/move.o obj/threed.o mkdir -p bin $(CC) $(FLAGS) $^ $(LFLAGS) -o $@ @@ -30,6 +30,7 @@ obj/display.o: src/display.c obj/base.o: src/base.c obj/hash.o: src/hash.c obj/move.o: src/move.c +obj/threed.o: src/threed.c .PHONY: clean mrproper diff --git a/bin/back b/bin/back index 594527e33be893dbfa235f5deb412eadba3e1e7f..abf8e863fde5f49ccd3a2c5f601d6702dd5c2a52 100755 GIT binary patch literal 137096 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 XCc-X%FCw-}|Hg|Y{e4yf>(lu^Iw>9x literal 102168 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 LE=kB|?Z5vA>ie_@ literal 0 HcmV?d00001 diff --git a/obj/hash.o b/obj/hash.o new file mode 100644 index 0000000000000000000000000000000000000000..4633f4ec83566893d630b1266cbaf44e1a18d0e2 GIT binary patch literal 13640 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 QwDzyE|0852b1>WgFFy)ALI3~& literal 0 HcmV?d00001 diff --git a/obj/move.o b/obj/move.o new file mode 100644 index 0000000000000000000000000000000000000000..61c6ad8bb6d92d909c60ce0077d4c51f9f8f7cc6 GIT binary patch literal 62280 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 literal 0 HcmV?d00001 diff --git a/obj/threed.o b/obj/threed.o new file mode 100644 index 0000000000000000000000000000000000000000..4760302fad6139b044d9313ecac575dca7fe1f63 GIT binary patch literal 73448 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 E0K89*HUIzs literal 0 HcmV?d00001 diff --git a/src/base.c b/src/base.c index aba5b62..34a5e9a 100644 --- a/src/base.c +++ b/src/base.c @@ -68,6 +68,18 @@ int convex_seg(int x1, int x2, double theta) { return (int)(((1.0f - theta) * x1 + theta * x2)); } +double convex_seg_double(double x1, double x2, double theta) { + return ((1.0f - theta) * x1 + theta * x2); +} + +pt_3d convex_3d(pt_3d p1, pt_3d p2, double theta) { + pt_3d res ; + res.x = convex_seg_double(p1.x, p2.x, theta); + res.y = convex_seg_double(p1.y, p2.z, theta); + res.z = convex_seg_double(p1.z, p2.z, theta); + return res ; +} + bool is_an_integer(char c) { return ((int)c >= 48 && (int)c <= 57); } @@ -84,6 +96,11 @@ double distance_pt(int x1, int x2, int y1, int y2) { return sqrt(to_double(pw(x2 - x1, 2) + pw(y2 - y1, 2))); } + +double distance_pt_double(double x1, double x2, double y1, double y2) { + return sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1)); +} + int line_count(char* filename) { FILE* ptr = fopen(filename, "r"); char c = 'd'; diff --git a/src/base.h b/src/base.h index c693eb7..bf4db1b 100644 --- a/src/base.h +++ b/src/base.h @@ -15,6 +15,10 @@ double absf(double n); int convex_seg(int x1, int x2, double theta); +double convex_seg_double(double x1, double x2, double theta); + +pt_3d convex_3d(pt_3d p1, pt_3d p2, double theta); + bool is_an_integer(char c); double to_double(int n); @@ -23,6 +27,8 @@ int to_int(double n); double distance_pt(int x1, int x2, int y1, int y2); +double distance_pt_double(double x1, double x2, double y1, double y2); + int line_count(char* filename); int str_to_int(char* s); diff --git a/src/display.c b/src/display.c index ff17c0c..bfc6754 100644 --- a/src/display.c +++ b/src/display.c @@ -15,6 +15,7 @@ #include "structure.h" #include "base.h" #include "generation.h" +#include "threed.h" #include "display.h" void updateRenderer(SDL_Renderer* renderer) { diff --git a/src/main.c b/src/main.c index 98bedf3..b20633e 100644 --- a/src/main.c +++ b/src/main.c @@ -16,6 +16,7 @@ #include "base.h" #include "display.h" #include "generation.h" +#include "threed.h" #include "move.h" int main(int argc, char** argv) { @@ -55,6 +56,8 @@ int main(int argc, char** argv) { parse_configs(filename, length); initialize(rend); + init_3d(); + init_sincos(); int temp = render_distance ; for(int i = 1; i <= temp; i++) { @@ -63,9 +66,29 @@ int main(int argc, char** argv) { drawMapToRenderer(rend, -300 * 250/zoom + to_int(50 * (8*player_cx + player_x + εx)), 300 * 250/zoom + to_int(50 * (8*player_cx + player_x + εx)), -300 * 250/zoom + to_int(50 * (8*player_cy + player_y + εy)), 300 * 250/zoom + to_int(50 * (8*player_cy + player_y + εy))); }; - moveFunctionMaster(rend); + printf("entering\n"); + + pt_3d p1 ; + pt_3d p2 ; + pt_3d p3 ; + pt_3d p4 ; + + p1.x = 0.0 ; p1.y = 0.0 ; p1.z = 1.0 ; + p2.x = 12.0 ; p2.y = 0.0 ; p2.z = 1.0 ; + p3.x = 12.0 ; p3.y = 8.0 ; p3.z = 1.0 ; + p4.x = 0.0 ; p4.y = 8.0 ; p4.z = 1.0 ; + + project_rectangle(p1, p2, p3, p4); + bufferUpdateRenderer(rend); + + printf("pass\n"); + usleep(3000000); + + //moveFunctionMaster(rend); destroy(); + destroy_3d(); + destroy_sincos(); /* -------------------------------------------------------- */ diff --git a/src/structure.h b/src/structure.h index b33afd8..a5576a0 100644 --- a/src/structure.h +++ b/src/structure.h @@ -11,6 +11,18 @@ typedef struct array { int len ; } array ; +typedef struct pt_3d { + double x; + double y; + double z; +} pt_3d ; + +typedef struct pt_3d_int { + int x; + int y; + double z; +} pt_3d_int ; + typedef enum cardinal {NORTH, EAST, SOUTH, WEST} cardinal ; extern Grid map ; @@ -47,4 +59,17 @@ extern imgs letters ; extern template full ; +extern double** screen_zbuffer ; +extern uint8_t** screen_red ; +extern uint8_t** screen_green ; +extern uint8_t** screen_blue ; + +extern double three_render_distance ; +extern int three_angle ; + +extern double* cosinuses ; +extern double* sinuses ; + +extern double ar ; + #endif \ No newline at end of file diff --git a/src/threed.c b/src/threed.c new file mode 100644 index 0000000..eec0abe --- /dev/null +++ b/src/threed.c @@ -0,0 +1,442 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "hash.h" +#include "structure.h" +#include "base.h" +#include "generation.h" // initialize constants +#include "display.h" +#include "threed.h" + +// ----------------------------------------------- // + +double** screen_zbuffer ; +uint8_t** screen_red ; +uint8_t** screen_green ; +uint8_t** screen_blue ; + +double three_render_distance = 20.0 ; +int three_angle = 0 ; + +double* cosinuses ; +double* sinuses ; + +static pt_3d* polygon_b ; +static int poly_length ; + +static double epsilon = 0.75; + +static pt_3d* projected ; +static pt_3d* projected2 ; +static int pt_count ; + +static double draw_const ; + +static double tfov ; + +double ar ; + +// ----------------------------------------------- // + +void init_3d() { + printf("initializing 3d matrixes... "); + screen_zbuffer = malloc(sizeof(double*) * __width__); + screen_red = malloc(sizeof(uint8_t*) * __width__); + screen_green = malloc(sizeof(uint8_t*) * __width__); + screen_blue = malloc(sizeof(uint8_t*) * __width__); + + for(int i = 0; i < __width__; i++) { + screen_zbuffer[i] = malloc(sizeof(double) * __height__); + screen_red[i] = malloc(sizeof(uint8_t) * __height__); + screen_green[i] = malloc(sizeof(uint8_t) * __height__); + screen_blue[i] = malloc(sizeof(uint8_t) * __height__); + + for(int j = 0; j < __height__; j++) { + screen_zbuffer[i][j] = three_render_distance ; + screen_red[i][j] = 0 ; + screen_green[i][j] = 0 ; + screen_blue[i][j] = 0 ; + } + }; + polygon_b = malloc(sizeof(pt_3d)*20); + poly_length = 0 ; + + projected = malloc(sizeof(pt_3d)*12); + projected2 = malloc(sizeof(pt_3d)*12); + pt_count = 0 ; + + ar = ((double)__height__) / ((double)__width__); + + tfov = tan((75.0 * 3.14159265358 / 180.0) / 2.0) ; + + draw_const = 1.0 ; + + printf("done\n"); +} + +void init_sincos() { + cosinuses = malloc(sizeof(double)*360); + sinuses = malloc(sizeof(double)*360); + for(int i = 0; i < 360; i++) { + cosinuses[i] = cos(((double)i) * 3.14159265358 / 180.0); + sinuses[i] = sin(((double)i) * 3.14159265358 / 180.0); + } +} + +int cropx(int x) { + return max(min(__width__-1, x), 0) ; +} + +int cropy(int y) { + return max(min(__height__-1, y), 0) ; +} + +void placeRectToBuffer(int x, int y, double z, int width, int height, int R, int G, int B) { + for(int w = 0; w < width; w++) { + for(int h = 0; h < height; h++) { + if(z >= 0 && z < screen_zbuffer[cropx(x+w)][cropy(y+h)] && cropx(x+w) == x+w && cropy(y+h) == y+h) { + //printf("(%d, %d)\n", x+w, y+h); + screen_zbuffer[cropx(x+w)][cropy(y+h)] = z ; + screen_red[cropx(x+w)][cropy(y+h)] = R ; + screen_green[cropx(x+w)][cropy(y+h)] = G ; + screen_blue[cropx(x+w)][cropy(y+h)] = B ; + } + } + } +} + +void drawLineWithThiccToBuffer(int width, double x1, double x2, int y1, int y2, int z1, int z2, int R, int G, int B) { + // draw projected 3D line to buffer + double theta = 0.0; + double seglen = distance_pt(z1, z2, y1, y2); + while(theta < 1.0) { + placeRectToBuffer(convex_seg(z1, z2, theta)-width/2, convex_seg(y1, y2, theta)-width/2, convex_seg_double(x1, x2, theta), width, width, R, G, B); + theta += 1 / seglen; + } +} + +double get_zdepth_on_edge(int py, int pz) { + for(int i = 0; i < poly_length; i++) { + //[ Ax * (By - Cy) + Bx * (Cy - Ay) + Cx * (Ay - By) ] + if((double)py * (polygon_b[i].z - polygon_b[(i+1)%poly_length].z) + polygon_b[i].y * (polygon_b[(i+1)%poly_length].z - (double)pz) + polygon_b[(i+1)%poly_length].y * ((double)pz - polygon_b[i].z) < epsilon) { + return convex_seg_double(polygon_b[i].x, polygon_b[(i+1)%poly_length].x, (pz - polygon_b[i].z)/(polygon_b[(i+1)%poly_length].z - polygon_b[i].z)); + } + } + fprintf(stderr, "ERROR : point is nowhere near an edge of the polygon\n"); + exit(1); +} + +int getLeftMost() { + double my = polygon_b[0].y ; + int mi = 0 ; + for(int i = 1; i < pt_count; i++) { + if(my > polygon_b[i].y) { + my = polygon_b[i].y ; + mi = i ; + } + } + return mi ; +} + +int getRightMost() { + double my = polygon_b[0].y ; + int mi = 0 ; + for(int i = 1; i < pt_count; i++) { + if(my < polygon_b[i].y) { + my = polygon_b[i].y ; + mi = i ; + } + } + return mi ; +} + +bool is_in_convex(int px, int py) { + double previous = 0.0 ; + for(int i = 0; i < poly_length; i++) { + double nw = (polygon_b[(i+1)%poly_length].y - polygon_b[i].y) * ((double)py - polygon_b[i].z) - ((double)px - polygon_b[i].y) * (polygon_b[(i+1)%poly_length].z - polygon_b[i].z); + //(x2 - x1) * (yp - y1) - (xp - x1) * (y2 - y1) + if(nw * previous < 0.0) { + return false ; + } else { + previous = nw ; + } + } + return true ; +} + +void drawPolygonToBuffer(int count, ...) { + // takes a 'list' of pt_3d and draws the coresponding polygon to renderer + // /!\ : this draws PROJECTED polygons + if(count > 20) { + fprintf(stderr, "ERROR : polygon has too many vertexes (%d)\n", count); + exit(1); + } else if(count >= 3) { + poly_length = count ; + + va_list list; + va_start(list, count); + for(int j = 0; j < count; j++) { + polygon_b[j] = va_arg(list, pt_3d); + } + va_end(list); + + /*int pmin = getLeftMost() ; + int pmax = getRightMost() ; + + printf("(%d -> %d)\n", pmin, pmax);*/ + + for(int i = 0; i < poly_length; i++) { + drawLineWithThiccToBuffer(4, polygon_b[i].x, polygon_b[(i+1)%poly_length].x, (int)polygon_b[i].y, (int)polygon_b[(i+1)%poly_length].y, (int)polygon_b[i].z, (int)polygon_b[(i+1)%poly_length].z, 255, 255, 255); + } + } +} + +pt_3d adjust(pt_3d p) { + pt_3d res; + res.x = p.x - (player_cx * 8 + player_x + εx) ; + res.y = p.y - (player_cy * 8 + player_y + εy) ; + res.z = p.z - 1.8 ; // height of player + + res.x = res.y * sinuses[three_angle] + res.x * cosinuses[three_angle]; + res.y = (p.y - (player_cy * 8 + player_y + εy)) * cosinuses[three_angle] + res.x * sinuses[three_angle] ; + + return res; +} + +/* +let reduce xmin xmax ymin ymax segx segy (dx : int) (dy : int) = + (* + line crossing rectangles + *) + + let ps = [|-dx; dx; -dy; dy|] in + let qs = [|segx - xmin; xmax - segx; segy - ymin; ymax - segy|] in + let ts = [|None; None; None; None|] in + for k = 0 to 3 do + if ps.(k) <> 0 then + ts.(k) <- Some ((float_of_int qs.(k)) /. (float_of_int ps.(k))) + done ; + + let u1 = ref (-. 1. /. 0.) + and u2 = ref (1. /. 0.) in + + for k = 0 to 3 do + if ps.(k) < 0 then + opt_max ts.(k) u1 + else if ps.(k) > 0 then + opt_min ts.(k) u2 + done ; + + if 0. < !u1 && !u1 < 1. then + (segx + int_of_float (!u1 *. float_of_int dx), segy + int_of_float (!u1 *. float_of_int dy)) + else if 0. < !u2 && !u2 < 1. then + (segx + int_of_float (!u2 *. float_of_int dx), segy + int_of_float (!u2 *. float_of_int dy)) + else + (segx + dx, segy + dy) ;; +*/ + +void opt_max(double *ts_k, double *u1) { + if (ts_k && *ts_k > *u1) { + *u1 = *ts_k; + } +} + +void opt_min(double *ts_k, double *u2) { + if (ts_k && *ts_k < *u2) { + *u2 = *ts_k; + } +} + +void reduce(int xmin, int xmax, int ymin, int ymax, int segx, int segy, int dx, int dy, double *result_x, double *result_y, double *result_x2, double *result_y2) { + int ps[4] = {-dx, dx, -dy, dy}; + int qs[4] = {segx - xmin, xmax - segx, segy - ymin, ymax - segy}; + double ts[4] = {DBL_MAX, DBL_MAX, DBL_MAX, DBL_MAX}; // Initialize to some large value + + for (int k = 0; k < 4; k++) { + if (ps[k] != 0) { + ts[k] = (double)qs[k] / (double)ps[k]; + } + } + + double u1 = -DBL_MAX; + double u2 = DBL_MAX; + + for (int k = 0; k < 4; k++) { + if (ps[k] < 0) { + opt_max(&ts[k], &u1); + } else if (ps[k] > 0) { + opt_min(&ts[k], &u2); + } + } + + if (0.0 < u1 && u1 < 1.0) { + *result_x = (double)segx + (u1 * dx); + *result_y = (double)segy + (u1 * dy); + } else if (0.0 < u2 && u2 < 1.0) { + *result_x2 = (double)segx + (u2 * dx); + *result_y2 = (double)segy + (u2 * dy); + } else if (0.0 < u1 && u1 < u2 && u2 < 1.0) { + *result_x = (double)segx + (u1 * dx); + *result_y = (double)segy + (u1 * dy); + *result_x2 = (double)segx + (u2 * dx); + *result_y2 = (double)segy + (u2 * dy); + } else { + // nah + } +} + +void project_front(pt_3d p) { + double ppy = p.y / (p.x * tfov) ; + double ppz = p.z / (ar * p.x * tfov) ; + projected[pt_count].x = p.x ; + projected[pt_count].y = (__height__ * (1.0 + ppy) / 2); + projected[pt_count].z = (__width__ * (1.0 + ppz) / 2); + pt_count += 1; +} + +void project_back(pt_3d p) { + double ppy = p.y / (draw_const * tfov) ; + double ppz = p.z / (ar * draw_const * tfov) ; + projected[pt_count].x = p.x ; + projected[pt_count].y = (__height__ * (1.0 + ppy) / 2); + projected[pt_count].z = (__width__ * (1.0 + ppz) / 2); + pt_count += 1; +} + +void project_seg(pt_3d p1, pt_3d p2, bool first) { + if(p1.x >= draw_const && p2.x >= draw_const) { + printf("+/+\n"); + project_front(p1); + if(first) { + project_front(p2); + } + } else if(p1.x >= draw_const) { + printf("+/-\n"); + project_front(p1); + project_front(convex_3d(p1, p2, (draw_const - p1.x)/(p2.x - p1.x))); + if(first) { + project_back(p2); + } + } else if(p2.x >= draw_const) { + printf("-/+\n"); + project_back(p1); + project_front(convex_3d(p2, p1, (draw_const - p2.x)/(p1.x - p2.x))); + if(first) { + project_front(p2); + } + } else { + printf("-/-\n"); + // else do nothing + } +} + +void project_and_render(pt_3d p1, pt_3d p2, pt_3d p3, pt_3d p4) { + pt_count = 0 ; + + printf("rect :\n"); + printf("%lf, %lf, %lf\n", p1.x, p1.y, p1.z); + printf("%lf, %lf, %lf\n", p2.x, p2.y, p2.z); + printf("%lf, %lf, %lf\n", p3.x, p3.y, p3.z); + printf("%lf, %lf, %lf\n\n", p4.x, p4.y, p4.z); + + printf("(%lf)\n", ar); + + project_seg(p1, p2, true); + project_seg(p2, p3, true); + project_seg(p3, p4, true); + project_seg(p4, p1, true); + + printf("C : %d\n\n", pt_count); + for(int i = 0; i < pt_count; i++) { + printf("pt %d : (%lf, %lf, %lf)\n", i, projected[i].x, projected[i].y, projected[i].z); + projected2[i] = projected[i] ; + reduce(0, __width__, 0, __height__, (int)projected[i].y, (int)projected[i].z, (int)(projected[(i+1)%pt_count].y - projected[i].y), (int)(projected[(i+1)%pt_count].z - projected[i].z), &(projected2[i].y), &(projected2[i].z), &(projected2[(i+1)%pt_count].y), &(projected2[(i+1)%pt_count].z)); + } + printf("\n"); + for(int i = 0; i < pt_count; i++) { + printf("pt %d+ : (%lf, %lf, %lf)\n", i, projected2[i].x, projected2[i].y, projected2[i].z); + } + + if(pt_count == 2) { + drawPolygonToBuffer(2, projected2[0], projected2[1]); + } else if(pt_count == 3) { + drawPolygonToBuffer(3, projected2[0], projected2[1], projected2[2]); + } else if(pt_count == 4) { + drawPolygonToBuffer(4, projected2[0], projected2[1], projected2[2], projected2[3]); + } else if(pt_count == 5) { + drawPolygonToBuffer(5, projected2[0], projected2[1], projected2[2], projected2[3], projected2[4]); + } else if(pt_count == 6) { + drawPolygonToBuffer(6, projected2[0], projected2[1], projected2[2], projected2[3], projected2[4], projected2[5]); + } else if(pt_count == 7) { + drawPolygonToBuffer(7, projected2[0], projected2[1], projected2[2], projected2[3], projected2[4], projected2[5], projected2[6]); + } else if(pt_count == 8) { + drawPolygonToBuffer(8, projected2[0], projected2[1], projected2[2], projected2[3], projected2[4], projected2[5], projected2[6], projected2[7]); + } else if(pt_count == 9) { + drawPolygonToBuffer(9, projected2[0], projected2[1], projected2[2], projected2[3], projected2[4], projected2[5], projected2[6], projected2[7], projected2[8]); + } +} + +void project_rectangle(pt_3d p1, pt_3d p2, pt_3d p3, pt_3d p4) { + printf("rawRect :\n"); + printf("%lf, %lf, %lf\n", p1.x, p1.y, p1.z); + printf("%lf, %lf, %lf\n", p2.x, p2.y, p2.z); + printf("%lf, %lf, %lf\n", p3.x, p3.y, p3.z); + printf("%lf, %lf, %lf\n\n", p4.x, p4.y, p4.z); + + project_and_render(adjust(p1), adjust(p2), adjust(p3), adjust(p4)); +} + +void resetBuffer() { + for(int i = 0; i < __width__; i++) { + for(int j = 0; j < __height__; j++) { + screen_blue[i][j] = 0 ; + screen_red[i][j] = 0 ; + screen_green[i][j] = 0 ; + screen_zbuffer[i][j] = three_render_distance ; + } + } +} + +void bufferUpdateRenderer(SDL_Renderer* renderer) { + resetRenderer(renderer); + for(int i = 0; i < __height__; i++) { + for(int j = 0; j < __width__; j++) { + SDL_SetRenderDrawColor(renderer, screen_red[i][j], screen_green[i][j], screen_blue[i][j], SDL_ALPHA_OPAQUE); + SDL_RenderDrawPoint(renderer, j, __height__ - i); + } + } + updateRenderer(renderer); +} + +void destroy_3d() { + for(int i = 0; i < __width__; i++) { + free(screen_zbuffer[i]); + free(screen_red[i]); + free(screen_green[i]); + free(screen_blue[i]); + }; + free(screen_zbuffer); + free(screen_red); + free(screen_green); + free(screen_blue); + + free(polygon_b); +} + +void destroy_sincos() { + free(cosinuses); + free(sinuses); + free(projected); + free(projected2); +} \ No newline at end of file diff --git a/src/threed.h b/src/threed.h new file mode 100644 index 0000000..c2dca38 --- /dev/null +++ b/src/threed.h @@ -0,0 +1,42 @@ +#ifndef BACK_3D_H +#define BACK_3D_H + +void init_3d(); + +void init_sincos(); + +void placeRectToBuffer(int x, int y, double z, int width, int height, int R, int G, int B); + +void drawLineWithThiccToBuffer(int width, double x1, double x2, int y1, int y2, int z1, int z2, int R, int G, int B); + +bool is_in_convex(int px, int py); + +void drawPolygonToBuffer(int count, ...); + +pt_3d adjust(pt_3d p); + +void opt_max(double *ts_k, double *u1); + +void opt_min(double *ts_k, double *u2); + +void reduce(int xmin, int xmax, int ymin, int ymax, int segx, int segy, int dx, int dy, double *result_x, double *result_y, double *result_x2, double *result_y2); + +void project_front(pt_3d p); + +void project_back(pt_3d p); + +void project_seg(pt_3d p1, pt_3d p2, bool first) ; + +void project_and_render(pt_3d p1, pt_3d p2, pt_3d p3, pt_3d p4); + +void project_rectangle(pt_3d p1, pt_3d p2, pt_3d p3, pt_3d p4); + +void resetBuffer(); + +void bufferUpdateRenderer(SDL_Renderer* renderer); + +void destroy_3d(); + +void destroy_sincos(); + +#endif \ No newline at end of file