Allow changing current path
Signed-off-by: Maxwell Henderson <mxwhenderson@gmail.com>
Change-Id: I7f4503564bd4ecc6f9cf433351d52e75e9ca468b
diff --git a/y2023/control_loops/python/graph_edit.py b/y2023/control_loops/python/graph_edit.py
index b9e29d0..b4b635a 100644
--- a/y2023/control_loops/python/graph_edit.py
+++ b/y2023/control_loops/python/graph_edit.py
@@ -162,6 +162,8 @@
self.ax = self.fig.add_subplot(111)
plt.show(block=False)
+ self.index = 0
+
def do_key_press(self, event):
pass
@@ -411,13 +413,16 @@
elif keyval == Gdk.KEY_r:
self.prev_segment_pt = self.now_segment_pt
+ elif keyval == Gdk.KEY_o:
+ # Only prints current segment
+ print(repr(self.segments[self.index]))
elif keyval == Gdk.KEY_p:
# Print out the segments.
print(repr(self.segments))
elif keyval == Gdk.KEY_g:
# Generate theta points.
if self.segments:
- print(repr(self.segments[0].ToThetaPoints()))
+ print(repr(self.segments[self.index].ToThetaPoints()))
elif keyval == Gdk.KEY_e:
best_pt = self.now_segment_pt
best_dist = 1e10
@@ -432,6 +437,10 @@
best_dist = d
self.now_segment_pt = best_pt
+ elif keyval == Gdk.KEY_k:
+ self.index += 1
+ self.index = self.index % len(self.segments)
+
elif keyval == Gdk.KEY_t:
# Toggle between theta and xy renderings
if self.theta_version:
@@ -449,9 +458,9 @@
elif keyval == Gdk.KEY_z:
self.edit_control1 = not self.edit_control1
if self.edit_control1:
- self.now_segment_pt = self.segments[0].control1
+ self.now_segment_pt = self.segments[self.index].control1
else:
- self.now_segment_pt = self.segments[0].control2
+ self.now_segment_pt = self.segments[self.index].control2
if not self.theta_version:
data = to_xy(self.now_segment_pt[0], self.now_segment_pt[1])
self.last_pos = (data[0], data[1])
@@ -474,9 +483,9 @@
self.now_segment_pt = np.array(shift_angles(pt_theta))
if self.edit_control1:
- self.segments[0].control1 = self.now_segment_pt
+ self.segments[self.index].control1 = self.now_segment_pt
else:
- self.segments[0].control2 = self.now_segment_pt
+ self.segments[self.index].control2 = self.now_segment_pt
print('Clicked at theta: %s' % (repr(self.now_segment_pt, )))
if not self.theta_version:
@@ -485,9 +494,11 @@
self.circular_index_select))
print('c1: np.array([%f, %f])' %
- (self.segments[0].control1[0], self.segments[0].control1[1]))
+ (self.segments[self.index].control1[0],
+ self.segments[self.index].control1[1]))
print('c2: np.array([%f, %f])' %
- (self.segments[0].control2[0], self.segments[0].control2[1]))
+ (self.segments[self.index].control2[0],
+ self.segments[self.index].control2[1]))
self.redraw()