From a9d52b7a70b746137ca6cd477c3903c5382ad59c Mon Sep 17 00:00:00 2001 From: Matthias Koefferlein Date: Fri, 5 Sep 2025 08:05:27 +0200 Subject: [PATCH] Fixing case of point vs. edge in projecting mode --- src/db/db/dbEdgePairRelations.cc | 3 ++- testdata/drc/drcSimpleTests_au146.gds | Bin 7546 -> 7930 bytes testdata/drc/drcSimpleTests_au146d.gds | Bin 8910 -> 9294 bytes 3 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/db/db/dbEdgePairRelations.cc b/src/db/db/dbEdgePairRelations.cc index 5d32bcc27..de4f46078 100644 --- a/src/db/db/dbEdgePairRelations.cc +++ b/src/db/db/dbEdgePairRelations.cc @@ -330,6 +330,7 @@ static bool var_near_part_of_edge (zero_distance_mode zd_mode, db::coord_traits< } // handle the parallel case + // NOTE: a point is "parallel" to an edge if (e.parallel (g)) { if (std::abs (double (e.distance (g.p1 ()))) >= double (d)) { @@ -387,7 +388,7 @@ static bool var_near_part_of_edge (zero_distance_mode zd_mode, db::coord_traits< l1 = std::max (0.0, l1); l2 = std::min (1.0, l2); - if (l1 >= l2) { + if (l1 > l2 + db::epsilon) { return false; } else { if (output) { diff --git a/testdata/drc/drcSimpleTests_au146.gds b/testdata/drc/drcSimpleTests_au146.gds index 66262fc23a950bd571f55429ba6cf32ffdf6c9b7..d85bb1933ae7815c9da5a0f5f58d47d1fe5744ac 100644 GIT binary patch delta 459 zcmZvYJr05}7>3_gsHo9s8kn3&oWu)|cn{-AOdJ|_6C@sicmU&~qepS{3QYDFN^pAM z{rY@;q0Z}V3IkzvjtF9Q_Wmi|(K)?M7HimSEwP^s E0N?BmMF0Q* diff --git a/testdata/drc/drcSimpleTests_au146d.gds b/testdata/drc/drcSimpleTests_au146d.gds index 8621421d653e54fb6efaa41ea90a9c9f53ee2d1f..7ea9e5329918294c7d7637c7f741075eb3000fbe 100644 GIT binary patch delta 508 zcmZvZI|>3p42J(5bsvhN*jNZYz|I4B0m0HzJc+Q%Vq-5`ig!>fyoI%eU~MhhD8__g za7MQJhCh6hker66Q5QaxnxN^a;D!hVgz!+e-|KF#o)Pb-*D#sEuP6ZhY7WS?fWk#H z2$>zg(B#Z~4ajrZFDqC+5pBfR3_|8sd`*+PemaPjN$kwf2E04>7CyMq&Z5ch&J2G( z(K{BOxe(u?$z$73;C|2|dW~fXEY4*KKbo9rFTwJOJ|*!r-*aYJd`*)(etL{nS@$`N Mi)kgZ@NAr;FZ(5a5&!@I delta 124 zcmX@-an4nVfsKKQDS|