Skip to content

Commit 539c17e

Browse files
committed
MN pannel + handler correction
1 parent d238a3c commit 539c17e

File tree

6 files changed

+33
-63
lines changed

6 files changed

+33
-63
lines changed

molecularnodes/addon.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@
1212
# along with this program. If not, see <http://www.gnu.org/licenses/>.
1313

1414
import bpy
15-
from bpy.app.handlers import frame_change_pre, frame_change_post, load_post, save_post
15+
from bpy.app.handlers import frame_change_pre, load_post, save_post
1616
from bpy.props import PointerProperty, CollectionProperty
17-
from .handlers import update_trajectories, update_interactions
17+
from .handlers import update_trajectories
1818
from . import entities, operators, props, session, ui
1919
from .utils import add_current_module_to_path
2020
from .ui import pref
@@ -59,7 +59,6 @@ def register():
5959
save_post.append(session._pickle)
6060
load_post.append(session._load)
6161
frame_change_pre.append(update_trajectories)
62-
frame_change_post.append(update_interactions)
6362

6463
bpy.types.Scene.MNSession = session.MNSession() # type: ignore
6564
bpy.types.Object.uuid = props.uuid_property # type: ignore
@@ -90,7 +89,6 @@ def unregister():
9089
save_post.remove(session._pickle)
9190
load_post.remove(session._load)
9291
frame_change_pre.remove(update_trajectories)
93-
frame_change_post.remove(update_interactions)
9492
del bpy.types.Scene.MNSession # type: ignore
9593
del bpy.types.Scene.mn # type: ignore
9694
del bpy.types.Scene.interaction_visualiser # type: ignore
Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
11
from .interaction import CLASSES as INTERACTION_CLASSES
2-
from .ui import CLASSES as UI_CLASSES
32

4-
CLASSES = INTERACTION_CLASSES + UI_CLASSES
3+
CLASSES = INTERACTION_CLASSES

molecularnodes/entities/interaction/interaction.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,11 @@ def __init__(self):
1515
self.bond_objects = {}
1616
self.trajectory_name = ""
1717
self.bond_width = 0.0025
18+
self._frame = None
19+
20+
def set_frame(self, frame: int) -> None:
21+
# self._frame = self.frame_mapper(frame)
22+
self.update_positions(frame)
1823

1924
@staticmethod
2025
def create_bond_material(interaction_type):
@@ -133,12 +138,12 @@ def create_bond_objects(self, all_bonds, bond_material, interaction_type):
133138

134139
return bond_objects
135140

136-
def update_bond_positions(self, scene):
141+
def update_positions(self, current_frame):
137142
blender_object = bpy.data.objects.get(self.trajectory_name)
138143
if not blender_object or not blender_object.data:
139144
return
140145

141-
frame = str(scene)
146+
frame = str(current_frame)
142147
for interaction_type, type_bonds in self.bond_objects.items():
143148
couples = self.frame_dict[interaction_type].get(frame, set())
144149

molecularnodes/entities/interaction/ui.py

Lines changed: 0 additions & 43 deletions
This file was deleted.

molecularnodes/handlers.py

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -46,32 +46,29 @@ def _selection_update_trajectories(self, context: bpy.types.Context) -> None:
4646
def update_trajectories(scene):
4747
"Call the set_frame method of all trajectories in the current session"
4848
session = scene.MNSession
49-
print('Update trajectory has been called')
5049
for traj in session.trajectories.values():
5150
# use the updated method if it exists but otherwise fallback on the old method
5251
# of updating the trajectories
5352
if hasattr(traj, "update_with_scene"):
5453
if traj.update_with_scene:
5554
traj.set_frame(scene.frame_current)
56-
print("Hey change !")
5755
else:
5856
traj.set_frame(traj.frame)
5957

6058
else:
61-
print("Hey change !")
6259
traj._update_positions(scene.frame_current)
6360
traj._update_selections()
6461
traj._update_calculations()
6562

66-
67-
@persistent
68-
def update_interactions(scene):
69-
print("Update interactions has been called")
70-
session = scene.MNSession
7163
for entity in session.entities.values():
64+
if hasattr(entity, "update_with_scene"):
65+
if entity.update_with_scene:
66+
entity.set_frame(scene.frame_current)
67+
else:
68+
entity.set_frame(entity.frame)
69+
7270
if entity._entity_type.value == "interaction":
73-
print("An entity has been found")
74-
entity.update_bond_positions(scene.frame_current)
71+
entity.set_frame(scene.frame_current)
7572

7673
# except NotImplementedError:
7774
# pass

molecularnodes/ui/panel.py

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,8 @@ def change_style_node_menu(self, context):
6666
layout.label(text="Molecular Nodes", icon="MOD_PARTICLES")
6767

6868
row = layout.row()
69-
op = row.operator_menu_enum("mn.node_swap", "node_items", text="Change Node")
69+
op = row.operator_menu_enum(
70+
"mn.node_swap", "node_items", text="Change Node")
7071
op.node_description = "The topology nodes"
7172

7273
layout.separator()
@@ -181,11 +182,24 @@ def panel_md_properties(layout, context):
181182
box.label(text="Invalid Selection", icon="ERROR")
182183
box.label(text=item.message)
183184
box.alert = True
184-
op = box.operator("wm.url_open", text="Selection Langauge Docs", icon="URL")
185+
op = box.operator(
186+
"wm.url_open", text="Selection Langauge Docs", icon="URL")
185187
op.url = (
186188
"https://docs.mdanalysis.org/stable/documentation_pages/selections.html"
187189
)
188190

191+
layout.label(text="Interactions", icon="OPTIONS")
192+
scene = context.scene
193+
interaction_props = scene.interaction_visualiser
194+
195+
box = layout.box()
196+
box.prop(interaction_props, "json_file")
197+
box.operator("object.interaction_visualiser")
198+
199+
box = layout.box()
200+
box.label(text="Visualisation Settings")
201+
box.prop(interaction_props, "bond_width")
202+
189203

190204
def panel_object(layout, context):
191205
object = context.active_object

0 commit comments

Comments
 (0)