-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathEdge.py
More file actions
31 lines (23 loc) · 876 Bytes
/
Edge.py
File metadata and controls
31 lines (23 loc) · 876 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
from Node import Node
import math
class Edge:
def __init__(self, id, node1: Node, node2: Node):
self.id = id
self.node1 = node1
self.node2 = node2
self.visible = True
def calculate_length(self):
return math.sqrt((self.node1.x - self.node2.x) ** 2 + (self.node1.y - self.node2.y) ** 2)
def hide_edge(self):
self.visible = False
def restore_edge(self):
self.visible = True
def find_other_node(self, node: Node) -> Node:
if node == self.node1:
return self.node2
else:
return self.node1
def __eq__(self, obj):
return obj.node1 == self.node1 and obj.node2 == self.node2 or obj.node1 == self.node2 and obj.node2 == self.node1
def __hash__(self):
return hash(hash(self.node1) * hash(self.node2))