Basic drawing
This commit is contained in:
@@ -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;
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user