Commit Graph

125 Commits

Author SHA1 Message Date
Matthias Koefferlein 94387529d6 Fixed #134
The issue was caused by an internal error in the edge processor.
Effectively the weak attractor scheme was causing this problem.
As the weak attractors are making things worse rather than
better I dropped them.

In theory, the weak attractors render an edge undisturbed by
neighboring intersection points, but in cases or parallel edges
this lead to problems: omitting cut points violates the output
edge configuration warranties the the polygon stitcher fails.

In addition, to maintain the solution for bug #74, the cut point
capture condition was relaxed, so that edge crossing the exact
corner of the snapping rectangle of a point are not considered
captured.
2018-06-26 01:04:20 +02:00
Matthias Koefferlein f74f2d3416 Fixed bug #121 (reopening of PCell's in GDS and - partially - in OASIS) 2018-05-17 22:24:32 +02:00
Matthias Koefferlein 89b4397aa4 Fixed some doc typos. 2018-04-28 00:32:23 +02:00
Matthias Koefferlein ff9be6219d Fixed some doc typos. 2018-04-28 00:31:41 +02:00
Matthias Koefferlein c94723bbce New RBA/pya methods
More Shapes#insert flavours with Shapes and RecursiveShapeIterator,
RecursiveShapeIterator#dtrans.
2018-04-28 00:21:36 +02:00
Matthias Koefferlein 08bcd1e418 Fixed #117 (DTrans#itype broken) 2018-04-24 21:26:21 +02:00
Matthias Koefferlein a4b396535f Fixed #116 (polygon cutting issue)
Last step: polygon cut algorithm with fallback: merge before cut on invalid polygons.
2018-04-24 20:58:00 +02:00
Matthias Koefferlein 9622a2e669 WIP: added testcases for extreme polygon decomposition on GDS writing. 2018-04-24 19:28:45 +02:00
Matthias Koefferlein e183323d9a WIP: new version of polygon cut algorithm which is simpler and more stable. 2018-04-24 01:09:28 +02:00
Matthias Koefferlein ca9a6db8a5 Scanline polygon generator: avoid spikes
The implementation of the scanline polygon generator
will avoid spikes as hole cutlines. Helps
fixing #116.
2018-04-23 22:22:32 +02:00
Matthias Koefferlein e710b28a6d FEATURE: added RBA::Polygon#split, RBA::Polygon#split, RBA::DSimplePolygon#split, RBA::DSimplePolygon#split 2018-04-20 22:26:57 +02:00
Matthias Koefferlein 34b534e8b4 Fixed memory statistics for polygons. 2018-04-19 00:13:28 +02:00
Matthias Koefferlein 067d52a269 FEATURE: DXF accuracy and "keep layer names" feature
* "keep layer name" will not try to modify layer names into
  GDS layer/datatypes. The feature is available in the DXF
  reader options and for the buddy scripts as "--keep-layer-names"
  It applies to CIF too.
* "contour accuracy": when merging lines into contours, this
  accuracy is applied to find neighbors. By default this value
  is 0. If set to a value >0, points with distances (square
  metrics) less than this value will be connected.
  The buddy script option is --dxf-contour-accuracy=value.
2018-04-18 23:34:59 +02:00
Matthias Koefferlein 86a90571e6 WIP: DXF keep layer names option, refactoring, added tests, UI, XML serialization. 2018-04-16 19:47:12 +02:00
Matthias Koefferlein 085a2ee2b1 WIP: keep DXF and CIF layer names, DXF contour accuracy. 2018-04-16 00:55:57 +02:00
Matthias Koefferlein 1b0317c120 Memory statistics: demangle symbol names. 2018-04-15 01:19:28 +02:00
Matthias Koefferlein e1922da3b2 Better memory statistics. 2018-04-15 00:54:30 +02:00
Matthias Koefferlein 4acc336d69 Fixed DXF display issue (see https://www.klayout.de/forum/comments.php?DiscussionID=1053) 2018-04-11 22:53:55 +02:00
Matthias Koefferlein 256de9bc84 Small DXF bugfix: persist name of subcells of cell variants. 2018-04-11 21:52:23 +02:00
Matthias Koefferlein d3227b5bda Merge branch 'master' of https://github.com/Kazzz-S/klayout 2018-04-07 16:02:39 -07:00
Matthias Koefferlein da1daae1d8 Fixed #107 (Undo not working with shapes) 2018-04-07 16:00:37 -07:00
Matthias Koefferlein 829966d9a1 Fixed #108 (Box#enlarge, Box#move on empty boxes) 2018-04-07 09:21:50 +02:00
Matthias Koefferlein 3d5780db2b Bugfix #109 (part 3): OASIS/GDS writer fixed + unit test added. 2018-04-06 23:27:29 +02:00
Matthias Koefferlein 415d52f35d Fixed some issues found by Coverity scan. 2018-03-19 18:24:09 +01:00
Matthias Koefferlein 802237141b Fixed #90 (DRC issue with 'extended' and joined = true) 2018-03-12 00:47:04 +01:00
Matthias Koefferlein 5f4e715dcf Fixed #77 (copy_tree should work in non-editable mode too) 2018-02-21 07:47:41 +01:00
Matthias Koefferlein 2f46f0d1c6 Fixed some issues found with Coverity. 2018-02-21 00:21:19 +01:00
Matthias Koefferlein 6052a04429 A few enhancements and unit tests for PCells
This commit adds unit tests for implementation helper-based
PCells in Python and Ruby.
2018-02-17 01:26:25 +01:00
Matthias Koefferlein f6f75cd791 A small rework of the Python PCell helpers
The aim of this rework was to enable PCell implementations
that use the basic methods rather than the "_impl" variants.
For the latter, potential variable name clashes happen when
parameters are called "cell", "layout", "layer" or similar.

New methods enable implementation on the level of the
non-"impl" methods. For example:

  def produce(self, layout, layers, parameters, cell):
    self.init_values(parameters, layers)
    ...
    self.finish()
2018-02-13 00:59:11 +01:00
Matthias Koefferlein 12bb664a80 Fixed the default implementation of transformation_from_shape in Python 2018-02-13 00:09:54 +01:00
Matthias Koefferlein 6d0fe85425 Fixed #75 (Python PCell issue when parameters are called 'layer')
This commit
- Ignores exceptions when checking for PCells that accept shapes.
  Hence a single rogue one does not break the feature.
- Prevents errors when parameters named "layer" are present
  by making the implementation safe against this case.
- In addition, guiding shape parameters of type "Path", "Box" etc.
  (i.e. integer types) are supported too although they are
  not recommended for portability.
2018-02-11 00:34:28 +01:00
Matthias Koefferlein d6adadcad4 Added file source to 'stream has unknown format' message. 2018-02-09 22:56:03 +01:00
Matthias Koefferlein 6df645a917 Fixed #74 (small-corner boolean issue). Tests need update 2018-02-08 23:12:58 +01:00
Matthias Koefferlein 363c0c9fed Fixed #73 (allow 'change layers' on PCells which support a single layer parameter) 2018-02-06 22:51:06 +01:00
Matthias Koefferlein 808159bcab Fixed #72 (Edges/Region NOT issue) 2018-02-01 22:35:47 +01:00
Matthias Koefferlein 23c2ae7306 Fixed #69 (DRC: 'inside' does not merge shapes of second input) 2018-01-30 00:40:17 +01:00
Matthias Koefferlein 04b4c21e82 Fixed #68 (OASIS reader issue with degenerated shapes) 2018-01-24 21:21:02 +01:00
Matthias Koefferlein 53328d1767 Merge branch 'macos-build' from kazzz 2018-01-14 17:29:59 +01:00
Matthias Koefferlein ed945a28d4 Fixed #63 (wrong output on DRC non_interacting with empty second input) 2018-01-10 23:20:34 +01:00
Matthias Koefferlein 2de6b691b4 64bit coordinate support enhanced
- int128 to string support for output
- unit tests
- some compiler issues fixed
2018-01-10 22:12:55 +01:00
Matthias Koefferlein 02f84181f5 Merge remote-tracking branch 'origin/macos-build' into macos-build 2018-01-07 11:24:54 -08:00
Matthias Koefferlein ef67790d2c Implemented #54 (more typeinfo visibility) 2018-01-02 16:24:31 -08:00
Matthias Koefferlein 8003d1bb47 Merge branch 'master' into macos-build-on-master 2018-01-02 23:37:45 +01:00
Matthias Koefferlein ffb56335fb Updated copyright note to 2018. 2018-01-01 21:08:06 +01:00
klayoutmatthias 7e0f1522ac Windows build compatibility
The issue is with "dllexport": previously, dllexport was present on
exposed templates tool (= visibility(default) for gcc/clang). This
ensured MacOS compatibility since then the typeinfo is corretly
shared and dynamic_cast/typeid works.

For Windows, the "dllexport" equivalent requires the template
instantiations to be declared "external" which is a coding nightmare.

The solution is to provide separate macros for real (non-specialized,
not explicitly instantiated) templates (.._PUBLIC_TEMPLATE) which
is defined as empty for Windows and "visiblity(default)" for gcc/clang.
2018-01-01 18:55:11 +01:00
Matthias Koefferlein 93572a8f0b Fixed dbEdges iterator (ported fix of dbRegion iterator for MacOS/clang to dbEdges too) 2017-12-30 17:15:24 -08:00
Matthias Koefferlein 167df7eae6 Fixed a unit test bug - the dbCell test was working by coincidence on other systems. 2017-12-30 16:46:49 -08:00
matthias 063811edc4 Solved the clang/MacOS startup failure and menu issue
1.) Startup issue:

This is solved by making sure templates with virtual functions
are made visible in the DSO. This way, dynamic_cast is possible
across DSO's.

Scary: clang/MacOS wants the forward declarations be declared visible as well.

2.) Menu issue:

The best solution is to have only one QMenuBar. The navigator
now gets a synthetic menu bar composed of QToolButtons.
2017-12-30 15:22:16 -08:00
Matthias Koefferlein 4855231342 Fixed #40 (Crash in Python binding)
Plus the same effect was observed for Ruby and fixed there as well.
2017-12-21 00:55:40 +01:00
Matthias Koefferlein 6f66e04c8e Fixed #41 (Polygon#touches? method) 2017-12-20 22:55:15 +01:00