예제 #1
0
 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
예제 #2
0
 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
예제 #3
0
 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
예제 #4
0
    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)
예제 #5
0
 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
예제 #6
0
 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