Geometry: Compute KP at shape file import.

This commit is contained in:
Pierre-Antoine Rouby committed 2024-04-23 14:32:21 +02:00
1 parent 0fe71b2b92
commit 8c2874e04d
2 files changed
+39 -2

No files matched your search

+22 -1
View File
@@ -573,7 +573,6 @@ class Reach(SQLSubModel):
ind += 1
prof = ProfileXYZ(
kp=round(points[0][0]),
reach=self, status=self._status
)
prof.import_points(points)
@@ -582,6 +581,7 @@ class Reach(SQLSubModel):
self.profiles = profiles + self.profiles
self._update_profile_numbers()
self._recompute_kp()
return profiles
@@ -814,3 +814,24 @@ class Reach(SQLSubModel):
except Exception as e:
logger_exception(e)
return 0
def _recompute_kp(self, offset=0.0):
self._recompute_kp_no_gl(offset=offset)
def _recompute_kp_no_gl(self, offset=0.0):
profiles = iter(self.profiles)
previous = next(profiles)
previous.kp = offset
for profile in profiles:
prev_points = previous.points
curr_points = profile.points
dist = (
prev_points[0].dist_2d(curr_points[0]) +
prev_points[-1].dist_2d(curr_points[-1])
) / 2.0
profile.kp = previous.kp + dist
previous = profile