return
print("Select first node (click on it)")
[Link].mpl_connect('button_press_event',
self.on_click_select_first_node)
def on_click_select_first_node(self, event):
"""Handle first node selection for element creation"""
if [Link] != [Link]:
return
# Find closest node
min_dist = float('inf')
selected_node = None
for node_id, node in [Link]():
dist = [Link](([Link] - node['x'])**2 + ([Link] -
node['y'])**2)
if dist < min_dist:
min_dist = dist
selected_node = node_id
if min_dist > 0.5: # Threshold for selection
print("No node selected nearby")
[Link].mpl_disconnect([Link].button_press_event)
return
print(f"Selected Node {selected_node}, now select second node")
self.selected_node1 = selected_node
[Link].mpl_disconnect([Link].button_press_event)
[Link].mpl_connect('button_press_event',
self.on_click_select_second_node)
def on_click_select_second_node(self, event):
"""Handle second node selection for element creation"""
if [Link] != [Link]:
return
# Find closest node
min_dist = float('inf')
selected_node = None
for node_id, node in [Link]():
if node_id == self.selected_node1:
continue
dist = [Link](([Link] - node['x'])**2 + ([Link] -
node['y'])**2)
if dist < min_dist:
min_dist = dist
selected_node = node_id
if min_dist > 0.5 or selected_node is None: # Threshold for
selection
print("No valid second node selected nearby")
[Link].mpl_disconnect([Link].button_press_event)
return
P a g e 6 | 62