34 lines
779 B
Plaintext
34 lines
779 B
Plaintext
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);
|
|
} |