bapsf-motion 0.2.2__tar.gz → 0.2.4__tar.gz

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.
Files changed (153) hide show
  1. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/PKG-INFO +1 -1
  2. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/bapsf_motion/gui/configure/configure_.py +1 -1
  3. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/bapsf_motion/gui/configure/motion_builder_overlay.py +8 -41
  4. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/bapsf_motion/gui/configure/motion_group_widget.py +294 -75
  5. bapsf_motion-0.2.4/bapsf_motion/gui/configure/motion_space_display.py +377 -0
  6. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/bapsf_motion/gui/widgets/__init__.py +2 -0
  7. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/bapsf_motion/gui/widgets/buttons.py +33 -6
  8. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/bapsf_motion/gui/widgets/misc.py +63 -2
  9. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/bapsf_motion/motion_builder/core.py +18 -0
  10. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/bapsf_motion.egg-info/PKG-INFO +1 -1
  11. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/bapsf_motion.egg-info/SOURCES.txt +1 -0
  12. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/.gitattributes +0 -0
  13. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/.github/dependabot.yml +0 -0
  14. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/.github/workflows/python-publish.yml +0 -0
  15. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/.github/workflows/test.yml +0 -0
  16. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/.gitignore +0 -0
  17. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/.readthedocs.yml +0 -0
  18. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/README.md +0 -0
  19. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/bapsf_motion/__init__.py +0 -0
  20. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/bapsf_motion/actors/__init__.py +0 -0
  21. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/bapsf_motion/actors/axis_.py +0 -0
  22. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/bapsf_motion/actors/base.py +0 -0
  23. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/bapsf_motion/actors/demos/__init__.py +0 -0
  24. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/bapsf_motion/actors/demos/drive_timed_run_1D.py +0 -0
  25. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/bapsf_motion/actors/demos/drive_timed_run_2D.py +0 -0
  26. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/bapsf_motion/actors/demos/mgroup_timed_run_2D.py +0 -0
  27. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/bapsf_motion/actors/drive_.py +0 -0
  28. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/bapsf_motion/actors/manager_.py +0 -0
  29. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/bapsf_motion/actors/motion_group_.py +0 -0
  30. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/bapsf_motion/actors/motor_.py +0 -0
  31. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/bapsf_motion/actors/tests/__init__.py +0 -0
  32. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/bapsf_motion/examples/20240627_2D_test_setup.toml +0 -0
  33. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/bapsf_motion/examples/20241004_2D_test_setup.toml +0 -0
  34. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/bapsf_motion/examples/bapsf_motion.toml +0 -0
  35. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/bapsf_motion/examples/benchtop_motion_group.toml +0 -0
  36. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/bapsf_motion/examples/benchtop_run.toml +0 -0
  37. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/bapsf_motion/examples/mg_1d.toml +0 -0
  38. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/bapsf_motion/examples/mg_2d_strb_test_setup.toml +0 -0
  39. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/bapsf_motion/examples/motion_group.toml +0 -0
  40. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/bapsf_motion/gui/__init__.py +0 -0
  41. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/bapsf_motion/gui/configure/__init__.py +0 -0
  42. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/bapsf_motion/gui/configure/bases.py +0 -0
  43. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/bapsf_motion/gui/configure/configure.qss +0 -0
  44. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/bapsf_motion/gui/configure/drive_overlay.py +0 -0
  45. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/bapsf_motion/gui/configure/helpers.py +0 -0
  46. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/bapsf_motion/gui/configure/transform_overlay.py +0 -0
  47. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/bapsf_motion/gui/helpers.py +0 -0
  48. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/bapsf_motion/gui/motor.py +0 -0
  49. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/bapsf_motion/gui/widgets/logging.py +0 -0
  50. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/bapsf_motion/motion_builder/__init__.py +0 -0
  51. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/bapsf_motion/motion_builder/exclusions/__init__.py +0 -0
  52. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/bapsf_motion/motion_builder/exclusions/base.py +0 -0
  53. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/bapsf_motion/motion_builder/exclusions/circular.py +0 -0
  54. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/bapsf_motion/motion_builder/exclusions/divider.py +0 -0
  55. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/bapsf_motion/motion_builder/exclusions/helpers.py +0 -0
  56. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/bapsf_motion/motion_builder/exclusions/lapd.py +0 -0
  57. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/bapsf_motion/motion_builder/exclusions/shadow.py +0 -0
  58. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/bapsf_motion/motion_builder/item.py +0 -0
  59. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/bapsf_motion/motion_builder/layers/__init__.py +0 -0
  60. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/bapsf_motion/motion_builder/layers/base.py +0 -0
  61. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/bapsf_motion/motion_builder/layers/helpers.py +0 -0
  62. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/bapsf_motion/motion_builder/layers/regular_grid.py +0 -0
  63. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/bapsf_motion/transform/__init__.py +0 -0
  64. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/bapsf_motion/transform/base.py +0 -0
  65. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/bapsf_motion/transform/helpers.py +0 -0
  66. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/bapsf_motion/transform/identity.py +0 -0
  67. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/bapsf_motion/transform/lapd.py +0 -0
  68. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/bapsf_motion/transform/lapd_droop.py +0 -0
  69. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/bapsf_motion/utils/__init__.py +0 -0
  70. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/bapsf_motion/utils/exceptions.py +0 -0
  71. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/bapsf_motion/utils/toml.py +0 -0
  72. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/bapsf_motion/utils/units_.py +0 -0
  73. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/bapsf_motion.egg-info/dependency_links.txt +0 -0
  74. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/bapsf_motion.egg-info/requires.txt +0 -0
  75. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/bapsf_motion.egg-info/top_level.txt +0 -0
  76. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/docs/Makefile +0 -0
  77. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/docs/_static/BaPSF_Logo_Color_RGB.png +0 -0
  78. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/docs/_static/BaPSF_Logo_Color_yellow_background_RGB_32px.ico +0 -0
  79. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/docs/_static/BaPSF_Logo_White_RGB.png +0 -0
  80. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/docs/_static/BaPSF_Logo_White_RGB_150px.png +0 -0
  81. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/docs/_static/css/overrides.css +0 -0
  82. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/docs/api_static/bapsf_motion.actors.axis_.rst +0 -0
  83. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/docs/api_static/bapsf_motion.actors.base.rst +0 -0
  84. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/docs/api_static/bapsf_motion.actors.drive_.rst +0 -0
  85. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/docs/api_static/bapsf_motion.actors.manager_.rst +0 -0
  86. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/docs/api_static/bapsf_motion.actors.motion_group_.rst +0 -0
  87. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/docs/api_static/bapsf_motion.actors.motor_.rst +0 -0
  88. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/docs/api_static/bapsf_motion.actors.rst +0 -0
  89. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/docs/api_static/bapsf_motion.gui.configure.rst +0 -0
  90. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/docs/api_static/bapsf_motion.gui.motor.rst +0 -0
  91. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/docs/api_static/bapsf_motion.gui.rst +0 -0
  92. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/docs/api_static/bapsf_motion.gui.widgets.buttons.rst +0 -0
  93. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/docs/api_static/bapsf_motion.gui.widgets.logging.rst +0 -0
  94. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/docs/api_static/bapsf_motion.gui.widgets.misc.rst +0 -0
  95. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/docs/api_static/bapsf_motion.gui.widgets.rst +0 -0
  96. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/docs/api_static/bapsf_motion.motion_builder.core.rst +0 -0
  97. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/docs/api_static/bapsf_motion.motion_builder.exclusions.base.rst +0 -0
  98. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/docs/api_static/bapsf_motion.motion_builder.exclusions.circular.rst +0 -0
  99. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/docs/api_static/bapsf_motion.motion_builder.exclusions.divider.rst +0 -0
  100. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/docs/api_static/bapsf_motion.motion_builder.exclusions.helpers.rst +0 -0
  101. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/docs/api_static/bapsf_motion.motion_builder.exclusions.lapd.rst +0 -0
  102. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/docs/api_static/bapsf_motion.motion_builder.exclusions.rst +0 -0
  103. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/docs/api_static/bapsf_motion.motion_builder.exclusions.shadow.rst +0 -0
  104. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/docs/api_static/bapsf_motion.motion_builder.item.rst +0 -0
  105. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/docs/api_static/bapsf_motion.motion_builder.layers.base.rst +0 -0
  106. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/docs/api_static/bapsf_motion.motion_builder.layers.helpers.rst +0 -0
  107. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/docs/api_static/bapsf_motion.motion_builder.layers.regular_grid.rst +0 -0
  108. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/docs/api_static/bapsf_motion.motion_builder.layers.rst +0 -0
  109. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/docs/api_static/bapsf_motion.motion_builder.rst +0 -0
  110. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/docs/api_static/bapsf_motion.rst +0 -0
  111. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/docs/api_static/bapsf_motion.transform.base.rst +0 -0
  112. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/docs/api_static/bapsf_motion.transform.helpers.rst +0 -0
  113. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/docs/api_static/bapsf_motion.transform.identity.rst +0 -0
  114. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/docs/api_static/bapsf_motion.transform.lapd.rst +0 -0
  115. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/docs/api_static/bapsf_motion.transform.lapd_droop.rst +0 -0
  116. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/docs/api_static/bapsf_motion.transform.rst +0 -0
  117. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/docs/api_static/bapsf_motion.utils.exceptions.rst +0 -0
  118. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/docs/api_static/bapsf_motion.utils.rst +0 -0
  119. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/docs/api_static/bapsf_motion.utils.toml.rst +0 -0
  120. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/docs/api_static/bapsf_motion.utils.units_.rst +0 -0
  121. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/docs/available_transformers.rst +0 -0
  122. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/docs/bibliography.bib +0 -0
  123. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/docs/bibliography.rst +0 -0
  124. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/docs/common_links.rst +0 -0
  125. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/docs/conf.py +0 -0
  126. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/docs/glossary.rst +0 -0
  127. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/docs/index.rst +0 -0
  128. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/docs/make.bat +0 -0
  129. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/docs/motion_builder/index.rst +0 -0
  130. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/docs/notebooks/motion_list/CircularExclusion.ipynb +0 -0
  131. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/docs/notebooks/motion_list/LaPDXYExclusion.ipynb +0 -0
  132. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/docs/notebooks/motion_list/Shadow2DExclusion.ipynb +0 -0
  133. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/docs/notebooks/motion_list/motionlist.ipynb +0 -0
  134. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/docs/notebooks/prototypes/README.md +0 -0
  135. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/docs/notebooks/transform/identity_transform.ipynb +0 -0
  136. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/docs/notebooks/transform/lapd_xy_droop_correction.ipynb +0 -0
  137. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/docs/notebooks/transform/lapd_xy_transform.ipynb +0 -0
  138. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/docs/notebooks_.rst +0 -0
  139. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/docs/robots.txt +0 -0
  140. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/docs/toml/index.rst +0 -0
  141. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/pyproject.toml +0 -0
  142. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/requirements/build.txt +0 -0
  143. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/requirements/docs.txt +0 -0
  144. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/requirements/extras.txt +0 -0
  145. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/requirements/gui.txt +0 -0
  146. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/requirements/install.txt +0 -0
  147. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/requirements/readthedocs.txt +0 -0
  148. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/requirements/tests.txt +0 -0
  149. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/requirements.txt +0 -0
  150. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/resources/README.md +0 -0
  151. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/resources/Remote module installation guide.pdf +0 -0
  152. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/setup.cfg +0 -0
  153. {bapsf_motion-0.2.2 → bapsf_motion-0.2.4}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: bapsf_motion
3
- Version: 0.2.2
3
+ Version: 0.2.4
4
4
  Summary: Package for controlling motion devices in a BaPSF DAQ system
5
5
  Author: Basic Plasma Science Facility
6
6
  Keywords: plasma physics,plasma,science,bapsf,motion
@@ -358,7 +358,7 @@ class ConfigureGUI(QMainWindow):
358
358
  return self._logging_config_dict
359
359
 
360
360
  def replace_rm(self, config):
361
- if isinstance(self.rm, RunManager) and not self.rm.terminated:
361
+ if isinstance(self.rm, RunManager):
362
362
  self.rm.terminate()
363
363
 
364
364
  self.logger.info(f"Replacing the run manager with new config: {config}.")
@@ -8,9 +8,8 @@ import matplotlib as mpl
8
8
  import re
9
9
 
10
10
  from PySide6.QtCore import Qt, Slot, QSize
11
- from PySide6.QtGui import QIcon, QDoubleValidator
11
+ from PySide6.QtGui import QDoubleValidator
12
12
  from PySide6.QtWidgets import (
13
- QFrame,
14
13
  QHBoxLayout,
15
14
  QLabel,
16
15
  QGridLayout,
@@ -29,6 +28,7 @@ import qtawesome as qta
29
28
  from bapsf_motion.actors import MotionGroup
30
29
  from bapsf_motion.gui.configure import motion_group_widget as mgw
31
30
  from bapsf_motion.gui.configure.bases import _ConfigOverlay
31
+ from bapsf_motion.gui.configure.motion_space_display import MotionSpaceDisplay
32
32
  from bapsf_motion.gui.widgets import (
33
33
  DiscardButton,
34
34
  DoneButton,
@@ -107,24 +107,9 @@ class MotionBuilderConfigOverlay(_ConfigOverlay):
107
107
  self.edit_ex_btn.setEnabled(False)
108
108
 
109
109
  # SET UP PLOT WIDGET
110
- self.mpl_canvas = FigureCanvas()
111
- self.mpl_canvas.setParent(self)
112
- self.setSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding)
113
-
114
- self.mpl_canvas_frame = QFrame(parent=self)
115
- self.mpl_canvas_frame.setObjectName("mpl_canvas_frame")
116
- self.mpl_canvas_frame.setStyleSheet(
117
- """
118
- QFrame#mpl_canvas_frame {
119
- border: 2px solid rgb(125, 125, 125);
120
- border-radius: 5px;
121
- padding: 0px;
122
- margin: 0px;
123
- }
124
- """
125
- )
126
- self.mpl_canvas_frame.setLayout(QVBoxLayout())
127
- self.mpl_canvas_frame.layout().addWidget(self.mpl_canvas)
110
+ self.mpl_canvas = MotionSpaceDisplay(parent=self)
111
+ if isinstance(self.mg, MotionGroup) and isinstance(self.mg.mb, MotionBuilder):
112
+ self.mpl_canvas.link_motion_builder(self.mg.mb)
128
113
 
129
114
  # SET UP INPUT WIDGETS (those in self._params_widget)
130
115
 
@@ -304,7 +289,7 @@ class MotionBuilderConfigOverlay(_ConfigOverlay):
304
289
 
305
290
  layout = QVBoxLayout(_widget)
306
291
  layout.setContentsMargins(0, 0, 0, 0)
307
- layout.addWidget(self.mpl_canvas_frame)
292
+ layout.addWidget(self.mpl_canvas)
308
293
  layout.addWidget(self._define_params_widget())
309
294
  layout.addStretch(1)
310
295
 
@@ -1142,26 +1127,7 @@ class MotionBuilderConfigOverlay(_ConfigOverlay):
1142
1127
  self.remove_ly_btn.setEnabled(enable)
1143
1128
 
1144
1129
  def update_canvas(self):
1145
- self.logger.info("Redrawing plot...")
1146
- self.logger.info(f"MB config = {self.mb.config}")
1147
-
1148
- self.mpl_canvas.figure.clear()
1149
- ax = self.mpl_canvas.figure.gca()
1150
- xdim, ydim = self.mb.mspace_dims
1151
- self.mb.mask.plot(x=xdim, y=ydim, ax=ax)
1152
-
1153
- pts = self.mb.motion_list
1154
- if pts is not None:
1155
- ax.scatter(
1156
- x=pts[..., 0],
1157
- y=pts[..., 1],
1158
- linewidth=1,
1159
- s=2 ** 2,
1160
- facecolors="deepskyblue",
1161
- edgecolors="black",
1162
- )
1163
-
1164
- self.mpl_canvas.draw()
1130
+ self.mpl_canvas.update_canvas()
1165
1131
 
1166
1132
  def update_exclusion_list_box(self):
1167
1133
  self.logger.info("Updating Exclusion List Box")
@@ -1301,6 +1267,7 @@ class MotionBuilderConfigOverlay(_ConfigOverlay):
1301
1267
  self.logger.info(f"layer looks like : {layers}")
1302
1268
 
1303
1269
  self._mb = MotionBuilder(space=space, exclusions=exclusions, layers=layers)
1270
+ self.mpl_canvas.link_motion_builder(self._mb)
1304
1271
  self.configChanged.emit()
1305
1272
  return self._mb
1306
1273