def _set_client_from_grip(value): """Update client.slice given grip value""" if not self.main.enabled: return slc = list(self.client.slice) # client.slice stored in pixel coords value = Extractor.world2pixel(self.data, self.profile_axis, value) slc[self.profile_axis] = value # prevent callback bouncing. Fixes #298 with ignore_callback(self.grip, 'value'): self.client.slice = tuple(slc)
def _set_grip_from_client(slc): """Update grip.value given client.slice""" if not self.main.enabled: return # grip.value is stored in world coordinates val = slc[self.profile_axis] val = Extractor.pixel2world(self.data, self.profile_axis, val) # If pix2world not monotonic, this can trigger infinite recursion. # Avoid by disabling callback loop # XXX better to specifically ignore _set_client_from_grip with ignore_callback(self.client, 'slice'): self.grip.value = val
def _set_client_from_grip(value): """Update client.slice given grip value""" if not self.main.enabled: return slc = list(self.client.slice) # client.slice stored in pixel coords value = Extractor.world2pixel( self.data, self.profile_axis, value) slc[self.profile_axis] = value # prevent callback bouncing. Fixes #298 with ignore_callback(self.grip, 'value'): self.client.slice = tuple(slc)
def _set_grip_from_state(slc): """Update grip.value given state.slices""" if not self.main.enabled: return # grip.value is stored in world coordinates val = slc[self.profile_axis] if isinstance(val, AggregateSlice): val = val.center val = Extractor.pixel2world(self.data, self.profile_axis, val) # If pix2world not monotonic, this can trigger infinite recursion. # Avoid by disabling callback loop # XXX better to specifically ignore _set_state_from_grip with ignore_callback(self.grip, 'value'): self.grip.value = val