Skip to content

Commit

Permalink
Fixed bug where loading in a saved airfoil with exposed xy params wou…
Browse files Browse the repository at this point in the history
…ld fail to hold the same point reference between the exposed param and the point
  • Loading branch information
mlauer154 committed Feb 14, 2024
1 parent f8bcc3d commit e094ec4
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 6 deletions.
22 changes: 16 additions & 6 deletions pymead/core/geometry_collection.py
Original file line number Diff line number Diff line change
Expand Up @@ -839,15 +839,25 @@ def set_from_dict_rep(cls, d: dict, canvas=None, tree=None, gui_obj=None):
for name, point_dict in d["points"].items():
geo_col.add_point(**point_dict, name=name, assign_unique_name=False)
for name, desvar_dict in d["desvar"].items():
point = None
if ".x" in name or ".y" in name:
if ".x" in name:
point = geo_col.container()["points"][name.split(".")[0]]
geo_col.add_desvar(**desvar_dict, name=name, assign_unique_name=False, point=point)
geo_col.add_pymead_obj_by_ref(point.x(), assign_unique_name=False)
geo_col.promote_param_to_desvar(point.x(), lower=desvar_dict["lower"], upper=desvar_dict["upper"])
elif ".y" in name:
point = geo_col.container()["points"][name.split(".")[0]]
geo_col.add_pymead_obj_by_ref(point.y(), assign_unique_name=False)
geo_col.promote_param_to_desvar(point.y(), lower=desvar_dict["lower"], upper=desvar_dict["upper"])
else:
geo_col.add_desvar(**desvar_dict, name=name, assign_unique_name=False)
for name, param_dict in d["params"].items():
point = None
if ".x" in name or ".y" in name:
if ".x" in name:
point = geo_col.container()["points"][name.split(".")[0]]
geo_col.add_param(**param_dict, name=name, assign_unique_name=False, point=point)
geo_col.add_pymead_obj_by_ref(point.x(), assign_unique_name=False)
elif ".y" in name:
point = geo_col.container()["points"][name.split(".")[0]]
geo_col.add_pymead_obj_by_ref(point.y(), assign_unique_name=False)
else:
geo_col.add_param(**param_dict, name=name, assign_unique_name=False)
for name, line_dict in d["lines"].items():
geo_col.add_line(point_sequence=PointSequence(
points=[geo_col.container()["points"][k] for k in line_dict["points"]]),
Expand Down
1 change: 1 addition & 0 deletions pymead/core/point.py
Original file line number Diff line number Diff line change
Expand Up @@ -214,6 +214,7 @@ def request_move(self, xp: float, yp: float, force: bool = False):
constraints.
"""

print(f"{self.is_movement_allowed() = }")
if not self.is_movement_allowed() and not force:
return

Expand Down
1 change: 1 addition & 0 deletions pymead/gui/parameter_tree.py
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,7 @@ def __init__(self, parent, param: Param):
# return f"{UNITS.convert_angle_from_base(2 * np.pi)} {suffix}"

def onValueChanged(self, value: float):
print(f"Value changed! {value = }, {self.param = }, {self.param.point = }, {self.param is self.param.point.x() = }")
if self.param.point is None:
self.param.set_value(value)
else:
Expand Down

0 comments on commit e094ec4

Please sign in to comment.