Skip to content

Commit 6d28c78

Browse files
author
Matthias Koefferlein
committed
Fixed issue #2060 - the precision of the check was too low.
1 parent 7b86545 commit 6d28c78

3 files changed

Lines changed: 19 additions & 6 deletions

File tree

src/db/db/dbEdgesUtils.cc

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -250,8 +250,8 @@ EdgeAngleChecker::EdgeAngleChecker (double angle_start, bool include_angle_start
250250
include_angle_start = true;
251251
}
252252

253-
m_t_start = db::CplxTrans(1.0, angle_start, false, db::DVector ());
254-
m_t_end = db::CplxTrans(1.0, angle_end, false, db::DVector ());
253+
m_t_start = db::ICplxTrans (1.0, angle_start, false, db::Vector ());
254+
m_t_end = db::ICplxTrans (1.0, angle_end, false, db::Vector ());
255255

256256
m_include_start = include_angle_start;
257257
m_include_end = include_angle_end;
@@ -266,10 +266,10 @@ EdgeAngleChecker::EdgeAngleChecker (double angle_start, bool include_angle_start
266266
bool
267267
EdgeAngleChecker::check (const db::Vector &a, const db::Vector &b) const
268268
{
269-
db::DVector vout (b);
269+
db::Vector vout (b);
270270

271-
db::DVector v1 = m_t_start * a;
272-
db::DVector v2 = m_t_end * a;
271+
db::Vector v1 = m_t_start * a;
272+
db::Vector v2 = m_t_end * a;
273273

274274
int vps1 = db::vprod_sign (v1, vout);
275275
int vps2 = db::vprod_sign (v2, vout);

src/db/db/dbEdgesUtils.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ class DB_PUBLIC EdgeAngleChecker
155155
}
156156

157157
private:
158-
db::CplxTrans m_t_start, m_t_end;
158+
db::ICplxTrans m_t_start, m_t_end;
159159
bool m_include_start, m_include_end;
160160
bool m_big_angle, m_all;
161161
bool m_inverse, m_absolute;

src/db/unit_tests/dbEdgesTests.cc

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -261,6 +261,19 @@ TEST(4)
261261
db::EdgeOrientationFilter f1 (89.0, true, 90.0, false, false, false);
262262
EXPECT_EQ (r.filtered (f1).to_string (), "");
263263
}
264+
265+
// issue-2060
266+
{
267+
db::EdgeOrientationFilter f1 (90.0, true, false);
268+
269+
db::Edges rr;
270+
rr.insert (db::Box (db::Point (0, 0), db::Point (1000, 4000000)));
271+
EXPECT_EQ (db::compare (rr.filtered (f1), "(1000,0;0,0);(0,4000000;1000,4000000)"), true);
272+
273+
rr.clear ();
274+
rr.insert (db::Box (db::Point (0, 0), db::Point (1000, 400000)));
275+
EXPECT_EQ (db::compare (rr.filtered (f1), "(1000,0;0,0);(0,400000;1000,400000)"), true);
276+
}
264277
}
265278

266279
TEST(5)

0 commit comments

Comments
 (0)