Merge branch 'master' of github.com:KLayout/klayout

This commit is contained in:
Matthias Koefferlein
2026-08-20 21:05:53 +02:00
14 changed files with 43 additions and 17 deletions
+3 -3
View File
@@ -297,10 +297,10 @@ public:
* @brief Get the interactions between the stored objects
*
* Two objects interact if the boxes of the objects enlarged by the given value overlap.
* The enlargement is specified in units of width and height, i.e. half of the enlargement
* is applied to one side before the overlap check.
*
* An enlargement of 1 means that boxes have to touch only in order to get an interaction.
* An enlargement of 1 means that boxes have to touch in order to get an interaction.
* An enlargement of 0 means that boxes have to overlap in order to get an interaction.
* To capture interactions between object precisely spaced d, use d+1 for the enlargement.
*
* The box scanner will report all interactions to the receiver object. See box_scanner_receiver
* for details about the methods that this object must provide.
+2 -1
View File
@@ -114,7 +114,8 @@ public:
/**
* @brief Gets the interaction distance
* A distance of means the shapes must overlap in order to interact.
* A distance of zero means the shapes must overlap in order to interact.
* A distance of 1 means the shapes need to touch in order to interact.
*/
virtual db::Coord dist () const { return 0; }
+2 -2
View File
@@ -888,10 +888,10 @@ std::map<unsigned int, db::Coord>
check_local_operation<TS, TI>::override_distance () const
{
// makes sure, the "foreign"-type pseudo-intruder used for merging only
// does not use the full search range, but only "touching".
// does not use the full search range, but only "touching" (distance 1).
std::map<unsigned int, db::Coord> od;
if (check_local_operation_base<TS, TI>::m_has_other) {
od.insert (std::make_pair (1, 0));
od.insert (std::make_pair (1, 1));
}
return od;
}
+11
View File
@@ -2154,3 +2154,14 @@ TEST(152d_sep_with_props)
{
run_test (_this, "152", true);
}
// issue #2423
TEST(153_issue_2423)
{
run_test (_this, "153", false);
}
TEST(153d_issue_2423)
{
run_test (_this, "153", true);
}
+1 -1
View File
@@ -1962,7 +1962,7 @@ PartialService::mouse_press_event (const db::DPoint &p, unsigned int buttons, bo
m_p1 = p;
m_p2 = p;
mp_box = new lay::RubberBox (ui (), m_color, p, p);
mp_box->set_stipple (6); // coarse hatched
mp_box->set_line_style (3); // long dashed dotted
ui ()->grab_mouse (this, true);
+5 -5
View File
@@ -34,7 +34,7 @@ namespace lay
RubberBox::RubberBox (lay::ViewObjectUI *widget, unsigned int color, const db::DPoint &p1, const db::DPoint &p2)
: lay::ViewObject (widget, false /*not static*/),
m_p1 (p1), m_p2 (p2), m_color (color), m_stipple (0)
m_p1 (p1), m_p2 (p2), m_color (color), m_line_style (0)
{ }
void
@@ -47,10 +47,10 @@ RubberBox::set_color (unsigned int color)
}
void
RubberBox::set_stipple (unsigned int s)
RubberBox::set_line_style (unsigned int s)
{
if (m_stipple != s) {
m_stipple = s;
if (m_line_style != s) {
m_line_style = s;
redraw ();
}
}
@@ -60,7 +60,7 @@ RubberBox::render (const Viewport &vp, ViewObjectCanvas &canvas)
{
lay::Renderer &r = canvas.renderer ();
int lw = int (0.5 + 1.0 / r.resolution ());
lay::CanvasPlane *plane = canvas.plane (lay::ViewOp (m_color, lay::ViewOp::Copy, 0, m_stipple, 0, lay::ViewOp::Rect, lw));
lay::CanvasPlane *plane = canvas.plane (lay::ViewOp (m_color, lay::ViewOp::Copy, m_line_style, 0, 0, lay::ViewOp::Rect, lw));
if (plane) {
r.draw (vp.trans () * db::DBox (m_p1, m_p2), 0, plane, 0, 0);
}
+2 -2
View File
@@ -37,7 +37,7 @@ public:
RubberBox (lay::ViewObjectUI *canvas, unsigned int color, const db::DPoint &p1, const db::DPoint &p2);
void set_color (unsigned int color);
void set_stipple (unsigned int s);
void set_line_style (unsigned int s);
void set_points (const db::DPoint &begin, const db::DPoint &end);
private:
@@ -45,7 +45,7 @@ private:
db::DPoint m_p1, m_p2;
unsigned int m_color;
unsigned int m_stipple;
unsigned int m_line_style;
};
}
+1 -1
View File
@@ -311,7 +311,7 @@ SelectionService::begin (const db::DPoint &pos)
m_p1 = pos;
m_p2 = pos;
mp_box = new lay::RubberBox (ui (), m_color, pos, pos);
mp_box->set_stipple (6); // coarse hatched
mp_box->set_line_style (4); // short dashed
ui ()->grab_mouse (this, true);
}
-2
View File
@@ -5,8 +5,6 @@ if $drc_test_deep
deep
end
deep
l1 = input(1, 0, enable_props)
l1.output(1, 0)
+16
View File
@@ -0,0 +1,16 @@
source $drc_test_source
target $drc_test_target
if $drc_test_deep
deep
end
l1 = polygons(1, 0)
l2 = polygons(2, 0)
l1.output(1, 0)
l2.output(2, 0)
l1.separation(l2, 10.um).output(100, 0)
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.