From 5357eb9735025865dca2387c9068924fdde894f9 Mon Sep 17 00:00:00 2001 From: Theophile Terraz Date: Mon, 9 Feb 2026 10:06:24 +0100 Subject: [PATCH] debug geometry --- src/Model/Geometry/Reach.py | 33 +++++++++++++++++++++++++---- tests_cases/Hogneau/hogneau.pamhyr | Bin 778240 -> 794624 bytes 2 files changed, 29 insertions(+), 4 deletions(-) diff --git a/src/Model/Geometry/Reach.py b/src/Model/Geometry/Reach.py index 503d0639..318adcb8 100644 --- a/src/Model/Geometry/Reach.py +++ b/src/Model/Geometry/Reach.py @@ -197,8 +197,10 @@ class Reach(SQLSubModel): self.undelete([profile]) profile.num = index else: - profile.num = index - self._profiles.insert(index, profile) + gi = self.get_global_profil_index(index) + profile.num = gi + print(f"gi = {gi}") + self._profiles.insert(gi, profile) self.modified() @@ -211,11 +213,12 @@ class Reach(SQLSubModel): Returns: Nothing. """ + gi = [self.get_global_profil_index(i) for i in indexes] list( map( lambda p: p[1].set_as_deleted(), filter( - lambda e: e[0] in indexes, + lambda e: e[0] in gi, enumerate(self._profiles) ) ) @@ -231,11 +234,12 @@ class Reach(SQLSubModel): Returns: Nothing. """ + gi = [self.get_global_profil_index(i) for i in indexes] self._profiles = list( map( lambda p: p[1], filter( - lambda e: e[0] not in indexes, + lambda e: e[0] not in gi, enumerate(self._profiles) ) ) @@ -931,3 +935,24 @@ class Reach(SQLSubModel): nr2._profiles = list(map(lambda p: p.cloned_for(nr2), nr2_profiles)) return nr1, nr2 + + def get_local_profil_index(self, index): + local_index = -1 + for i, p in enumerate(self._profiles): + if not p.is_deleted(): + local_index += 1 + if i == index: + break + + return local_index + + def get_global_profil_index(self, index): + local_index = -1 + for i, p in enumerate(self._profiles): + if not p.is_deleted(): + local_index += 1 + if local_index == index: + global_index = i + break + + return global_index diff --git a/tests_cases/Hogneau/hogneau.pamhyr b/tests_cases/Hogneau/hogneau.pamhyr index 5488aa32bb0e91439ea4f3f9e9e1a7960baa0692..66b1e6d8ebc35ef8250f6a7aebcaf233777a5f1e 100644 GIT binary patch delta 750 zcmZ9HO=uHA6vtIm3O!UR7AewRMEq!+#3;1`|NndM_l7rbGR4+R zv28x!UjP8CG5tMnbIl#f0%$q^4l^W@jdEj+?2#Svm3$&U$Op2q>R*Zy^}5D7U4zU{ zU1lboW=5KsHJ)P@8Ca3_3GA3IDKjMnGI4H6;qflSE|$=um*a1+IRm_R`p%#z_x8f9 zN#97Q!98&ozlT{BJyS7vHE06NkAfq!p3gNmae<{4ANJ|stWWVNxyUhuO}>-OY3JQh z8-IhSZVrU=xv37fkj6U#0s!u__IK#cP2$@yo59(Pu$U3sRtiX(K}C_NhRMU^by2bQ zrvkmJuuxJKcRA_N5~>%)9zfQ8Lfva`$n#5lDE6>MhQ74r*qR=T zX))c=we~T?{*Qnc_eKm+4u!Y}wT>ROjKdcW*Puw}ZG6=8Z)SdZD@?ai_&6>4dBkbs zG`9wW)nbDBr*I=ShK)q5!cjV5I^|47nq?&Nd)o>er%y(45KffC%Y15E7XCa+Hw7e% zEiplk1S-FgFAW<>$Bf6d_G$v2-wzInav%U_NoD;iuZGEsech4%ZnZzsb){RaLaOs< zIsf#_Nfb9NgKpZm$y?5}=!9d~m0jwGlF6}{na~-~qDjX|j?ncZC`b-+Cz+~1=^(U> gxKp9NgLEvP`KZ!c0(wltHa_E8Dg26~W*WEt1|-z>X#fBK delta 283 zcmZoTV9;sQurh2C_{Yy^*!*9<{l7dT z5HoH6FVD>Sfsti9s{qR~E+*D+pgF;;Z3-;g6j+%8BxW#hGUPDuG4b?pzT${uUBFz( zn#qvEY(9Bneb9C`S)S8O)6dB8SZyyXX8pl9{h~aNJ`2zuj_q?wSwFCC@2X=hW8`YC zj$#-0^<`|!oPJ(_MQXd69Lp`nwg%R=2DW7l>;^nQ4KT12X#0Eqi2;Sg{029Vf5C8xG