You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
import klayout.db as kdb
ly = kdb.Layout()
top = ly.create_cell("TOP")
l1 = ly.layer(1, 0)
dss = kdb.DeepShapeStore()
rr = kdb.Region(kdb.Box(0, 0, 100, 100))
r = kdb.Region(top.begin_shapes_rec(l1), dss)
r += kdb.Region(kdb.Box(0, 0, 1000, 1000))
# this spoils the dss object, if
# 1. the first region is a deep region
# 2. the second region is a flat region
# 3. both regions are boxes
# after this operation, bounding boxes are no
# longer updated inside the DSS.
randrr = r & rr
r += kdb.Region(kdb.Box(1000, 1000, 2000, 2000))
# bbox should be 0,0;2000,2000
# bbox is 0,0;1000,1000!
print(f"r={r} bbox={r.bbox()}")
Problem was caused by a leaking PolygonIteratorDelegate that locked the
DSS layout object. Solved by wrapping in PolygonIterator and
changing the interface such that PolygonIteratorDelegegate is no
longer useful.
This code illustrates the problem
Expected output is:
Actual output is:
This problem does not happen with version 0.29.8, but with 0.29.10.
The text was updated successfully, but these errors were encountered: