def mouse_up_add_edge(self, position): self.state = "idle" for node in self.nodes: if MF.distance(position, node.circle.position) <= node.circle.radius: self.add_edge(self.selected_node, node) break
def mouse_down_add_edge(self, position): for node in self.nodes: if MF.distance(position, node.circle.position) <= node.circle.radius: self.selected_node = node self.state = "add_edge" break
def mouse_down_move_graph(self, position): for node in self.nodes: if MF.distance(position, node.circle.position) <= node.circle.radius: self.selected_node = node self.state = "move_graph" break
def mouse_down_add_node(self, position): touching_node = False for node in self.nodes: if MF.distance(position, node.circle.position) <= node.circle.radius: touching_node = True break if touching_node == False: self.add_node(position)
def update(self, position): if self.state == "move_graph": self.selected_node.move(position, [self.x, self.y], [self.width, self.height]) elif self.state == "add_edge": touching_node = False for node in self.nodes: if MF.distance(position, node.circle.position) <= node.circle.radius: self.last_pos = node.get_position() touching_node = True break if touching_node == False: self.last_pos = position
def mouse_down_remove(self, position): for node in self.nodes: if MF.distance(position, node.circle.position) <= node.circle.radius: self.remove_node(node) break