From fcc31f22e7782a8dfcbe7e3a751e1263b31bd4b8 Mon Sep 17 00:00:00 2001 From: Pierre-Antoine Rouby <pierre-antoine.rouby@inrae.fr> Date: Tue, 18 Apr 2023 12:03:58 +0200 Subject: [PATCH] Geometry: Minor change. --- src/Model/Geometry/Profile.py | 6 +++++ src/Model/Geometry/ProfileXYZ.py | 40 ++++++++++++++++---------------- 2 files changed, 26 insertions(+), 20 deletions(-) diff --git a/src/Model/Geometry/Profile.py b/src/Model/Geometry/Profile.py index 2da94571..71fc6d6b 100644 --- a/src/Model/Geometry/Profile.py +++ b/src/Model/Geometry/Profile.py @@ -1,5 +1,7 @@ # -*- coding: utf-8 -*- +from Model.Except import NotImplementedMethodeError + class Profile(object): def __init__(self, num: int = 0, kp:float = 0.0, name:str = "", @@ -102,3 +104,7 @@ class Profile(object): """ return [point for point in self._points if point.point_is_named()] + + # Abstract method, must be implemented for in non abstract class + def get_station(self): + raise NotImplementedMethodeError(self, self.get_station) diff --git a/src/Model/Geometry/ProfileXYZ.py b/src/Model/Geometry/ProfileXYZ.py index 5485d63e..f172a7c1 100644 --- a/src/Model/Geometry/ProfileXYZ.py +++ b/src/Model/Geometry/ProfileXYZ.py @@ -179,6 +179,26 @@ class ProfileXYZ(Profile): """ return [x for x in lst if not np.isnan(x)] + def _first_point_not_nan(self): + first_point = self._points[0] + + for point in self._points: + if not point.is_nan(): + first_point = point + break + + return first_point + + def _last_point_not_nan(self): + last_point = self._points[-1] + + for point in self._points[::-1]: + if not point.is_nan(): + last_point = point + break + + return last_point + def get_station(self) -> np.ndarray: """Projection of the points of the profile on a plane. @@ -249,23 +269,3 @@ class ProfileXYZ(Profile): constant = ret[index_profile_z_min] return (ret - constant) - - def _first_point_not_nan(self): - first_point = self._points[0] - - for point in self._points: - if not point.is_nan(): - first_point = point - break - - return first_point - - def _last_point_not_nan(self): - last_point = self._points[-1] - - for point in self._points[::-1]: - if not point.is_nan(): - last_point = point - break - - return last_point -- GitLab