This commit is contained in:
2024-10-11 01:52:10 -04:00
parent 823a8f79d3
commit a663e45131
7 changed files with 96 additions and 76 deletions

View File

@@ -1,5 +1,5 @@
// single point rotation
rotate :: (p: *Vec2s64, center: Vec2s64, angle: s64) {
rotate :: (angle: s64, center: Vec2s64, p: *Vec2s64) {
rad := cast(float64)angle * (PI / 180.0);
// translate to center
@@ -16,18 +16,18 @@ rotate :: (p: *Vec2s64, center: Vec2s64, angle: s64) {
}
// rotate n points
rotate :: (pn: ..*Vec2s64, center: Vec2s64, angle: s64) {
rotate :: (angle: s64, center: Vec2s64, pn: ..*Vec2s64) {
for pn {
rotate(it, center, angle);
rotate(angle, center, it);
}
}
// rotate 3 points via triangle struct
rotate :: (t: *Triangle, center: Vec2s64, angle: s64) {
rotate(*t.p1, *t.p2, *t.p3, center = center, angle = angle);
rotate :: (angle: s64, center: Vec2s64, t: *Triangle) {
rotate(angle, center, *t.p1, *t.p2, *t.p3);
}
// rotate 4 points via quad struct
rotate :: (q: *Quad, center: Vec2s64, angle: s64) {
rotate(*q.p1, *q.p2, *q.p3, *q.p4, center = center, angle = angle);
rotate :: (angle: s64, center: Vec2s64, q: *Quad) {
rotate(angle, center, *q.p1, *q.p2, *q.p3, *q.p4);
}