Commit a6e18aa7 authored by Pierre-Antoine Rouby's avatar Pierre-Antoine Rouby
Browse files

IC: Add update values as data modification.

Showing with 37 additions and 0 deletions
+37 -0
...@@ -49,6 +49,13 @@ class Reach: ...@@ -49,6 +49,13 @@ class Reach:
def profiles(self): def profiles(self):
return self._profiles.copy() return self._profiles.copy()
def get_profiles_from_kp(self, kp):
return list(
filter(
lambda p: p.kp == kp, self._profiles
)
)
@property @property
def number_profiles(self): def number_profiles(self):
""" """
......
...@@ -44,6 +44,31 @@ class Data(object): ...@@ -44,6 +44,31 @@ class Data(object):
return val return val
def _update_get_min(self):
profile = self._reach.reach.get_profiles_from_kp(self._kp)
if len(profile) > 0:
min = profile[0].z_min()
else:
min = 0.0
return min
def _update_from_kp(self):
min = self._update_get_min()
self._elevation = min - self._draft
def _update_from_elevation(self):
min = self._update_get_min()
self._draft = self._elevation - min
def _update_from_draft(self):
min = self._update_get_min()
self._elevation = self._draft + min
def _update_from_flow(self):
min = self._update_get_min()
print("TODO")
def __setitem__(self, key, value): def __setitem__(self, key, value):
if key == "name": if key == "name":
self._name = str(value) self._name = str(value)
...@@ -51,14 +76,19 @@ class Data(object): ...@@ -51,14 +76,19 @@ class Data(object):
self._comment = str(value) self._comment = str(value)
elif key == "kp": elif key == "kp":
self._kp = float(value) self._kp = float(value)
self._update_from_kp()
elif key == "speed": elif key == "speed":
self._speed = float(value) self._speed = float(value)
# Not supposed to be modified
elif key == "flow": elif key == "flow":
self._flow = float(value) self._flow = float(value)
self._update_from_flow()
elif key == "elevation": elif key == "elevation":
self._elevation = float(value) self._elevation = float(value)
self._update_from_elevation()
elif key == "draft": elif key == "draft":
self._draft = float(value) self._draft = float(value)
self._update_from_draft()
self._status.modified() self._status.modified()
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment