added drag-selection
This commit is contained in:
@ -9,8 +9,8 @@ class Graph:
|
||||
self.edges: list[Edge] = []
|
||||
self.nodes: list[Node] = []
|
||||
|
||||
def add_node(self, x: int, y: int, name: str) -> None:
|
||||
self.nodes.append(Node(x, y, name, len(self.nodes)))
|
||||
def add_node(self, x: int, z: int, name: str) -> None:
|
||||
self.nodes.append(Node(x, z, name, len(self.nodes)))
|
||||
|
||||
def add_edge(self, start_index: int, end_index: int, length: float) -> None:
|
||||
self.edges.append(Edge(start_index, end_index, length, len(self.edges)))
|
||||
@ -47,6 +47,12 @@ class Graph:
|
||||
|
||||
def get_edge_nodes(self, edge: Edge) -> tuple[Node, Node]:
|
||||
return self.nodes[edge.start], self.nodes[edge.end]
|
||||
|
||||
def get_edge_center(self, edge_index: int) -> tuple[float, float]:
|
||||
edge = self.edges[edge_index]
|
||||
start_n = self.nodes[edge.start]
|
||||
end_n = self.nodes[edge.end]
|
||||
return (start_n.x + end_n.x) / 2, (start_n.z + end_n.z) / 2
|
||||
|
||||
def edges_adjacent_to(self, node_i: int) -> Iterator[Edge]:
|
||||
return filter(lambda e: e.start == node_i or e.end == node_i, self.edges)
|
||||
|
Reference in New Issue
Block a user