get_triangle_centroid :: (t: Triangle) -> Vec2s64 { return get_triangle_centroid(t.p1, t.p2, t.p3); } get_triangle_centroid :: (p1: Vec2s64, p2: Vec2s64, p3: Vec2s64) -> Vec2s64 { x := (p1.x + p2.x + p3.x) / 3; y := (p1.y + p2.y + p3.y) / 3; return .{x, y}; } make_quad_from_rect :: (p1: Vec2s64, p2: Vec2s64) -> Quad { return .{ .{ p1.x, p1.y }, .{ p2.x, p1.y }, .{ p2.x, p2.y }, .{ p1.x, p2.y }, }; } scale :: (factor: float, pn: ..*Vec2s64) { for pn { it.x = cast(s64)(it.x * factor); it.y = cast(s64)(it.y * factor); } } scale :: (factor: float, t: *Triangle) { scale(factor, *t.p1, *t.p2, *t.p3); } scale :: (factor: float, q: *Quad) { scale(factor, *q.p1, *q.p2, *q.p3, *q.p4); }