Basic drawing

This commit is contained in:
2026-04-28 22:11:35 +02:00
parent edfc54b927
commit ccbf7344b5
6 changed files with 121 additions and 3 deletions

View File

@@ -1,11 +1,14 @@
const std = @import("std");
const Road = @import("road.zig").Road;
const Node = @import("node.zig").Node;
pub const RoadManager = struct {
next_id: usize,
roads: std.ArrayList(Road),
pub fn init() RoadManager {
return .{
.next_id = 0,
.roads = .empty,
};
}
@@ -19,4 +22,25 @@ pub const RoadManager = struct {
road.draw();
}
}
pub fn addRoad(self: *RoadManager, allocator: std.mem.Allocator, start: *Node, end: *Node) !void {
const road: Road = .init(self.getNextID(), start, end);
try self.roads.append(allocator, road);
const ref = &self.roads.items[self.roads.items.len - 1];
try ref.*.nodes[0].referenceRoad(allocator, ref);
try ref.*.nodes[1].referenceRoad(allocator, ref);
}
fn getNextID(self: *RoadManager) usize {
const id = self.next_id;
self.next_id += 1;
return id;
}
pub fn clear(self: *RoadManager) void {
self.roads.clearRetainingCapacity();
self.next_id = 0;
}
};