mirror of
https://gitlab.com/pamhyr/pamhyr2.git
synced 2026-10-30 03:20:41 +01:00
Geometry: Update guidelines computation.
* src/Model/Geometry/Reach.py (compute_guidelines): Now return complete and incomplete guidelines names.
This commit is contained in:
1 parent
d22ab3bbd7
commit
634d0a4194
3 files changed
+73
-70
No files matched your search
@@ -227,9 +227,7 @@ class ProfileXYZ(Profile):
|
||||
station_i = (normalized_direction_vec[0] * xi +
|
||||
normalized_direction_vec[1] * yi)
|
||||
station.append(station_i)
|
||||
|
||||
ret = np.array(station)
|
||||
|
||||
constant = ret[index_first_named_point]
|
||||
elif first_named_point is None:
|
||||
vector = Vector1d(first_point_not_nan,
|
||||
|
||||
+17
-11
@@ -166,9 +166,11 @@ class Reach:
|
||||
|
||||
# Guidelines
|
||||
|
||||
def _compute_guidelines_cache(self, guide_set, named_points):
|
||||
def _compute_guidelines_cache(self, guide_set, named_points,
|
||||
complete, incomplete):
|
||||
# Reset guide lines cache
|
||||
self._guidelines = {}
|
||||
self._guidelines_is_valid = len(incomplete) == 0
|
||||
|
||||
# Make a list of point for each guideline
|
||||
for guide in guide_set:
|
||||
@@ -190,7 +192,7 @@ class Reach:
|
||||
"""Compute reach guideline and check if is valid for all profiles
|
||||
|
||||
Returns:
|
||||
True if all guide line is valid
|
||||
Tuple of complete and incomplete guidelines name.
|
||||
"""
|
||||
# Get all point contains into a guideline
|
||||
named_points = [profile.named_points() for profile in self._profiles]
|
||||
@@ -207,20 +209,24 @@ class Reach:
|
||||
points_name
|
||||
)
|
||||
|
||||
# All guide line is valid
|
||||
is_ok = reduce(
|
||||
bool.__and__,
|
||||
map(
|
||||
lambda l: len(set(l).symmetric_difference(guide_set)) == 0,
|
||||
points_name
|
||||
# Get incomplete guideline
|
||||
incomplete = set(
|
||||
reduce(
|
||||
lambda acc, h: acc[1] + h[1],
|
||||
map(
|
||||
lambda l: list(set(l).symmetric_difference(guide_set)),
|
||||
points_name
|
||||
)
|
||||
)
|
||||
)
|
||||
self._guidelines_is_valid = is_ok
|
||||
|
||||
complete = guide_set - incomplete
|
||||
|
||||
# Compute guideline and put data in cache
|
||||
self._compute_guidelines_cache(guide_set, named_points)
|
||||
self._compute_guidelines_cache(guide_set, named_points,
|
||||
complete, incomplete)
|
||||
|
||||
return is_ok
|
||||
return (complete, incomplete)
|
||||
|
||||
def _map_guidelines_points(self, func):
|
||||
return list(
|
||||
|
||||
Reference in new issue
Block a user