From 6d593bf16416b453ecb3aa4fdca5c4205febc9ce Mon Sep 17 00:00:00 2001 From: Alejandro Soto Date: Fri, 31 May 2024 10:16:41 -0600 Subject: tb/models: fix triangle winding in gfx_pineda --- tb/models/gfx_pineda.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/tb/models/gfx_pineda.py b/tb/models/gfx_pineda.py index 0e673d7..7f8ccd3 100644 --- a/tb/models/gfx_pineda.py +++ b/tb/models/gfx_pineda.py @@ -35,6 +35,12 @@ def edge_fn(p, q, sx, sy): def raster(p0, p1, p2, msaa=True): global fb + # https://math.stackexchange.com/questions/1324179/how-to-tell-if-3-connected-points-are-connected-clockwise-or-counter-clockwise + A = p1[0][0] * p0[0][1] + p2[0][0] * p1[0][1] + p0[0][0] * p2[0][1] + B = p0[0][0] * p1[0][1] + p1[0][0] * p2[0][1] + p2[0][0] * p0[0][1] + if A > B: + p1, p2 = p2, p1 + minx, miny, maxx, maxy = bounding(p0, p1, p2) sx, sy = minx // 16 * 16, miny // 16 * 16 -- cgit v1.2.3