nettracer3d 0.8.7__py3-none-any.whl → 0.8.8__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2180,8 +2180,10 @@ class ImageViewerWindow(QMainWindow):
2180
2180
  self.pm.finish_current_virtual_operation()
2181
2181
  # Now convert to real data
2182
2182
  self.pm.convert_virtual_strokes_to_data()
2183
- self.update_display()
2184
- if self.pan_mode or self.brush_mode:
2183
+ current_xlim = self.ax.get_xlim()
2184
+ current_ylim = self.ax.get_ylim()
2185
+ self.update_display(preserve_zoom=(current_xlim, current_ylim))
2186
+ if self.pan_mode:
2185
2187
  current_xlim = self.ax.get_xlim()
2186
2188
  current_ylim = self.ax.get_ylim()
2187
2189
  self.update_display(preserve_zoom=(current_xlim, current_ylim))
@@ -2198,6 +2200,7 @@ class ImageViewerWindow(QMainWindow):
2198
2200
  self.pan_mode = self.pan_button.isChecked()
2199
2201
  if self.pan_mode:
2200
2202
 
2203
+
2201
2204
  self.zoom_button.setChecked(False)
2202
2205
  self.pen_button.setChecked(False)
2203
2206
  self.zoom_mode = False
@@ -2213,14 +2216,34 @@ class ImageViewerWindow(QMainWindow):
2213
2216
  self.pm.finish_current_virtual_operation()
2214
2217
  # Now convert to real data
2215
2218
  self.pm.convert_virtual_strokes_to_data()
2216
- self.update_display()
2217
- if self.machine_window is not None:
2218
- self.machine_window.silence_button()
2219
- self.canvas.setCursor(Qt.CursorShape.OpenHandCursor)
2220
- if self.brush_mode:
2221
2219
  current_xlim = self.ax.get_xlim()
2222
2220
  current_ylim = self.ax.get_ylim()
2223
2221
  self.update_display(preserve_zoom=(current_xlim, current_ylim))
2222
+ if self.machine_window is not None:
2223
+ self.machine_window.silence_button()
2224
+ self.canvas.setCursor(Qt.CursorShape.OpenHandCursor)
2225
+
2226
+ if self.pan_background_image is None:
2227
+
2228
+ if self.machine_window is not None:
2229
+ if self.machine_window.segmentation_worker is not None:
2230
+ if not self.machine_window.segmentation_worker._paused:
2231
+ self.resume = True
2232
+ self.machine_window.segmentation_worker.pause()
2233
+
2234
+ # Store current channel visibility state
2235
+ self.pre_pan_channel_state = self.channel_visible.copy()
2236
+
2237
+ # Create static background from currently visible channels
2238
+ self.create_pan_background()
2239
+
2240
+ # Hide all channels and show only the background
2241
+ self.channel_visible = [False] * 4
2242
+ self.is_pan_preview = True
2243
+
2244
+ # Update display to show only background
2245
+ self.update_display_pan_mode()
2246
+
2224
2247
  else:
2225
2248
  current_xlim = self.ax.get_xlim()
2226
2249
  current_ylim = self.ax.get_ylim()
@@ -2266,7 +2289,6 @@ class ImageViewerWindow(QMainWindow):
2266
2289
  self.pm.finish_current_virtual_operation()
2267
2290
  # Now convert to real data
2268
2291
  self.pm.convert_virtual_strokes_to_data()
2269
- self.update_display()
2270
2292
  # Get current zoom and do display update
2271
2293
  current_xlim = self.ax.get_xlim()
2272
2294
  current_ylim = self.ax.get_ylim()
@@ -2520,29 +2542,7 @@ class ImageViewerWindow(QMainWindow):
2520
2542
 
2521
2543
  self.panning = True
2522
2544
  self.pan_start = (event.xdata, event.ydata)
2523
-
2524
- if self.pan_background_image is None:
2525
-
2526
- if self.machine_window is not None:
2527
- if self.machine_window.segmentation_worker is not None:
2528
- if not self.machine_window.segmentation_worker._paused:
2529
- self.resume = True
2530
- self.machine_window.segmentation_worker.pause()
2531
-
2532
- # Store current channel visibility state
2533
- self.pre_pan_channel_state = self.channel_visible.copy()
2534
-
2535
- # Create static background from currently visible channels
2536
- self.create_pan_background()
2537
-
2538
- # Hide all channels and show only the background
2539
- self.channel_visible = [False] * 4
2540
- self.is_pan_preview = True
2541
-
2542
- # Update display to show only background
2543
- self.update_display_pan_mode()
2544
- else:
2545
- self.canvas.setCursor(Qt.CursorShape.ClosedHandCursor)
2545
+ self.canvas.setCursor(Qt.CursorShape.ClosedHandCursor)
2546
2546
 
2547
2547
 
2548
2548
  elif self.brush_mode:
@@ -2985,7 +2985,7 @@ class ImageViewerWindow(QMainWindow):
2985
2985
  if z1 == z2 == self.current_slice:
2986
2986
  self.ax.plot([x1, x2], [y1, y2], 'r--', alpha=0.5)
2987
2987
 
2988
- self.canvas.setCursor(Qt.CursorShape.ClosedHandCursor)
2988
+ #self.canvas.setCursor(Qt.CursorShape.ClosedHandCursor)
2989
2989
 
2990
2990
  self.canvas.draw_idle()
2991
2991
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: nettracer3d
3
- Version: 0.8.7
3
+ Version: 0.8.8
4
4
  Summary: Scripts for intializing and analyzing networks from segmentations of three dimensional images.
5
5
  Author-email: Liam McLaughlin <liamm@wustl.edu>
6
6
  Project-URL: Documentation, https://nettracer3d.readthedocs.io/en/latest/
@@ -110,6 +110,6 @@ McLaughlin, L., Zhang, B., Sharma, S. et al. Three dimensional multiscalar neuro
110
110
 
111
111
  NetTracer3D was developed by Liam McLaughlin while working under Dr. Sanjay Jain at Washington University School of Medicine.
112
112
 
113
- -- Version 0.8.7 Updates --
113
+ -- Version 0.8.8 Updates --
114
114
 
115
115
  * See Documentation Once Updated
@@ -6,7 +6,7 @@ nettracer3d/modularity.py,sha256=O9OeKbjD3v6gSFz9K2GzP6LsxlpQaPfeJbM1pyIEigw,217
6
6
  nettracer3d/morphology.py,sha256=jyDjYzrZ4LvI5jOyw8DLsxmo-i5lpqHsejYpW7Tq7Mo,19786
7
7
  nettracer3d/neighborhoods.py,sha256=VWubD5CBu9aNPhUea7FbAk9aTOq0FLKR9y-1VT7YkAc,39677
8
8
  nettracer3d/nettracer.py,sha256=TEV-nDmkcGP3UjWEor1LtEwm5mFBQu2nB0VRyz9Lt08,253649
9
- nettracer3d/nettracer_gui.py,sha256=yrWkpWVt7IvgGFkvc8tbMWy8t6O8P_2ulOKW-eOe9B4,540425
9
+ nettracer3d/nettracer_gui.py,sha256=fD03qJU3W5VHW4OeHZg0SnCu4k6km5_vxPoTbd1OAmg,540421
10
10
  nettracer3d/network_analysis.py,sha256=kBzsVaq4dZkMe0k-VGvQIUvM-tK0ZZ8bvb-wtsugZRQ,46150
11
11
  nettracer3d/network_draw.py,sha256=F7fw6Pcf4qWOhdKwLmhwqWdschbDlHzwCVolQC9imeU,14117
12
12
  nettracer3d/node_draw.py,sha256=kZcR1PekLg0riioNeGcALIXQyZ5PtHA_9MT6z7Zovdk,10401
@@ -17,9 +17,9 @@ nettracer3d/segmenter.py,sha256=O3xjCimPwoL8LM1w4cKVTB7saY-UptFuYC8qOIo3iWg,6163
17
17
  nettracer3d/segmenter_GPU.py,sha256=3CJLXCiySZP2dJbkpfBoXwAYbV4TnvIYAm6oQv-T-y4,63479
18
18
  nettracer3d/simple_network.py,sha256=dkG4jpc4zzdeuoaQobgGfL3PNo6N8dGKQ5hEEubFIvA,9947
19
19
  nettracer3d/smart_dilate.py,sha256=TvRUh6B4q4zIdCO1BWH-xgTdND5OUNmo99eyxG9oIAU,27145
20
- nettracer3d-0.8.7.dist-info/licenses/LICENSE,sha256=jnNT-yBeIAKAHpYthPvLeqCzJ6nSurgnKmloVnfsjCI,764
21
- nettracer3d-0.8.7.dist-info/METADATA,sha256=6Q68XlohpUOpHNK6V7doYlQ4R9twu5D9qoJNwoyfs48,7008
22
- nettracer3d-0.8.7.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
23
- nettracer3d-0.8.7.dist-info/entry_points.txt,sha256=Nx1rr_0QhJXDBHAQg2vcqCzLMKBzSHfwy3xwGkueVyc,53
24
- nettracer3d-0.8.7.dist-info/top_level.txt,sha256=zsYy9rZwirfCEOubolhee4TyzqBAL5gSUeFMzhFTX8c,12
25
- nettracer3d-0.8.7.dist-info/RECORD,,
20
+ nettracer3d-0.8.8.dist-info/licenses/LICENSE,sha256=jnNT-yBeIAKAHpYthPvLeqCzJ6nSurgnKmloVnfsjCI,764
21
+ nettracer3d-0.8.8.dist-info/METADATA,sha256=t1q1vmtqmJ1h1L67QdYCWDnGBB5XH6ZyQXhBc7gJN_o,7008
22
+ nettracer3d-0.8.8.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
23
+ nettracer3d-0.8.8.dist-info/entry_points.txt,sha256=Nx1rr_0QhJXDBHAQg2vcqCzLMKBzSHfwy3xwGkueVyc,53
24
+ nettracer3d-0.8.8.dist-info/top_level.txt,sha256=zsYy9rZwirfCEOubolhee4TyzqBAL5gSUeFMzhFTX8c,12
25
+ nettracer3d-0.8.8.dist-info/RECORD,,