#include "include/render.h" #include "include/gen.h" #include "include/geom.h" #include "include/util.h" #include Vector2 PointToVector2(Pt p) { Vector2 v; v.x = (float)(p.x * 100) + 50.; v.y = (float)(p.y * 100) + 50.; return v; } Vector2 PointpToVector2(Pt* p) { Vector2 v; v.x = (float)(p->x * 100) + 50; v.y = (float)(p->y * 100) + 50; return v; } void draw_tri(Tri* tri) { DrawTriangleLines( PointToVector2(tri->a), PointToVector2(tri->b), PointToVector2(tri->c), RED ); } void draw_tri_inside(Tri* tri, Color col) { int maxx = MAX3(tri->a.x, tri->b.x, tri->c.x); int maxy = MAX3(tri->a.y, tri->b.y, tri->c.y); int minx = MIN3(tri->a.x, tri->b.x, tri->c.x); int miny = MIN3(tri->a.y, tri->b.y, tri->c.y); for (int x = minx; x <= maxx; x++) { for (int y = miny; y <= maxy; y++) { if (tri_within((Pt){x, y}, tri)) { // DrawCircleV(PointToVector2((Pt){x, y}), 4.f, col); DrawLineV( PointToVector2((Pt){x, y}), PointToVector2(tri_center(tri)), col ); } } } } void render() { for (int x = 0; x < WORLD_SZ; x++) { for (int y = 0; y < WORLD_SZ; y++) { Vector2 v = PointToVector2((Pt){x, y}); DrawCircleV(v, 4.f, WHITE); DrawLineV( v, (Vector2){v.x + asth[x][y].x * WORLD_SZ, v.y + asth[x][y].y * WORLD_SZ}, WHITE ); } } for (int i = 0; i < NPLATES; i++) { Plate plate = lith[i]; draw_tri(plate.tris); draw_tri_inside(plate.tris, plate.col); } }