Splitting road implementation preparation

This commit is contained in:
2026-05-01 07:49:07 +02:00
parent 5040bbbe47
commit 680e07c976
6 changed files with 105 additions and 23 deletions

View File

@@ -1,8 +1,9 @@
const std = @import("std");
const rl = @import("raylib");
const st = @import("../common/structures.zig");
const e = @import("../errors.zig");
const st = @import("../common/structures.zig");
const ut = @import("../common/utils.zig");
const Road = @import("road.zig").Road;
const Node = @import("node.zig").Node;
@@ -93,25 +94,6 @@ pub const RoadManager = struct {
return null;
}
pub fn getIntersectingRoads(self: *const RoadManager, allocator: std.mem.Allocator, start: *const Node, end: *const Node) ![]st.IntersectionData {
var intersections: std.ArrayList(st.IntersectionData) = .empty;
const collision_point: rl.Vector2 = undefined;
for (self.roads.items) |road| {
if (!rl.checkCollisionLines(start.pos, end.pos, road.nodes[0].pos, road.nodes[1].pos, &collision_point))
continue;
const intersection = st.IntersectionData {
.road = road,
.pos = collision_point,
};
try intersections.append(allocator, intersection);
}
return intersections.toOwnedSlice(allocator);
}
};
const Vector2 = @import("raylib").Vector2;