mirror of https://github.com/KLayout/klayout.git
Fixed issue #2060 - the precision of the check was too low.
This commit is contained in:
parent
7b865451ee
commit
6d28c78eeb
|
|
@ -250,8 +250,8 @@ EdgeAngleChecker::EdgeAngleChecker (double angle_start, bool include_angle_start
|
|||
include_angle_start = true;
|
||||
}
|
||||
|
||||
m_t_start = db::CplxTrans(1.0, angle_start, false, db::DVector ());
|
||||
m_t_end = db::CplxTrans(1.0, angle_end, false, db::DVector ());
|
||||
m_t_start = db::ICplxTrans (1.0, angle_start, false, db::Vector ());
|
||||
m_t_end = db::ICplxTrans (1.0, angle_end, false, db::Vector ());
|
||||
|
||||
m_include_start = include_angle_start;
|
||||
m_include_end = include_angle_end;
|
||||
|
|
@ -266,10 +266,10 @@ EdgeAngleChecker::EdgeAngleChecker (double angle_start, bool include_angle_start
|
|||
bool
|
||||
EdgeAngleChecker::check (const db::Vector &a, const db::Vector &b) const
|
||||
{
|
||||
db::DVector vout (b);
|
||||
db::Vector vout (b);
|
||||
|
||||
db::DVector v1 = m_t_start * a;
|
||||
db::DVector v2 = m_t_end * a;
|
||||
db::Vector v1 = m_t_start * a;
|
||||
db::Vector v2 = m_t_end * a;
|
||||
|
||||
int vps1 = db::vprod_sign (v1, vout);
|
||||
int vps2 = db::vprod_sign (v2, vout);
|
||||
|
|
|
|||
|
|
@ -155,7 +155,7 @@ public:
|
|||
}
|
||||
|
||||
private:
|
||||
db::CplxTrans m_t_start, m_t_end;
|
||||
db::ICplxTrans m_t_start, m_t_end;
|
||||
bool m_include_start, m_include_end;
|
||||
bool m_big_angle, m_all;
|
||||
bool m_inverse, m_absolute;
|
||||
|
|
|
|||
|
|
@ -261,6 +261,19 @@ TEST(4)
|
|||
db::EdgeOrientationFilter f1 (89.0, true, 90.0, false, false, false);
|
||||
EXPECT_EQ (r.filtered (f1).to_string (), "");
|
||||
}
|
||||
|
||||
// issue-2060
|
||||
{
|
||||
db::EdgeOrientationFilter f1 (90.0, true, false);
|
||||
|
||||
db::Edges rr;
|
||||
rr.insert (db::Box (db::Point (0, 0), db::Point (1000, 4000000)));
|
||||
EXPECT_EQ (db::compare (rr.filtered (f1), "(1000,0;0,0);(0,4000000;1000,4000000)"), true);
|
||||
|
||||
rr.clear ();
|
||||
rr.insert (db::Box (db::Point (0, 0), db::Point (1000, 400000)));
|
||||
EXPECT_EQ (db::compare (rr.filtered (f1), "(1000,0;0,0);(0,400000;1000,400000)"), true);
|
||||
}
|
||||
}
|
||||
|
||||
TEST(5)
|
||||
|
|
|
|||
Loading…
Reference in New Issue