IC: Add update values as data modification.

mesh
Pierre-Antoine Rouby 2023-05-31 15:24:35 +02:00
parent 16742b0319
commit a6e18aa7c9
2 changed files with 37 additions and 0 deletions

View File

@ -49,6 +49,13 @@ class Reach:
def profiles(self):
return self._profiles.copy()
def get_profiles_from_kp(self, kp):
return list(
filter(
lambda p: p.kp == kp, self._profiles
)
)
@property
def number_profiles(self):
"""

View File

@ -44,6 +44,31 @@ class Data(object):
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):
if key == "name":
self._name = str(value)
@ -51,14 +76,19 @@ class Data(object):
self._comment = str(value)
elif key == "kp":
self._kp = float(value)
self._update_from_kp()
elif key == "speed":
self._speed = float(value)
# Not supposed to be modified
elif key == "flow":
self._flow = float(value)
self._update_from_flow()
elif key == "elevation":
self._elevation = float(value)
self._update_from_elevation()
elif key == "draft":
self._draft = float(value)
self._update_from_draft()
self._status.modified()