Skip to content

Releases: heitzmann/gdstk

Release v0.8.1

05 Jan 00:20
fb5f555
Compare
Choose a tag to compare

Fixed

  • Missing flag in OASIS bounding box property
  • Bug in bounding box when using explicit repetitions
  • Segfault when loading GDSII files with missing cells

Changed

  • GdsWriter C++ API
  • Safer initializers C++ API

Release v0.8.0

08 Oct 19:33
a92f2b4
Compare
Choose a tag to compare

Added

  • Cell.get_polygons, Cell.get_paths, and Cell.get_labels return a copy of a cell’s polygons, paths or labels, including references, with the possibility of filtering by layer and type
  • Library.layers_and_datatypes and Library.layers_and_texttypes return tuples with the layer and data/text types found in the library.
  • gdstk.gds_info provide information about a GDSII file without fully loading it
  • Several FlexPath and RobustPath attributes.

Fixed

  • Label transforms in SVG output
  • Label styling in SVG output
  • Default label magnification when loading a GDSII file
  • Bugs when loading some OASIS files
  • Bug in OASIS output for some Manhattan geometry.
  • Bug fix in Map::del
  • Bounding box calculations take all repetitions into account
  • Memory leaks

Changed

  • Removed LAPACK dependency
  • The implementation of layer and data/text type for shapes and labels use the type Tag in the C++ API
  • Style arguments renamed in Cell.write_svg

Release v0.7.0

02 Aug 21:47
5217d27
Compare
Choose a tag to compare

This version includes some breaking changes to the API. Most notably, the change in the gdstk.inside function and the addition of the dedicated short-circuit versions gdstk.all_inside and gdstk.any_inside, plus methods Polygon.contain, Polygon.contain_all, and Polygon.contain_any.

This version also introduces the new function gdstk.contour for the parametric generation of geometries similarly to contour plots.

Added

  • contour function
  • Polygon.transform to apply a general transformation to the polygon vertices
  • Polygon.contain tests whether single points are inside the polygon
  • Polygon.contain_all and Polygon.contain_any test multiple points with short circuit
  • all_inside and any_inside test multiple points against multiple polygons with short circuit
  • Alternative function interfaces in the C++ API

Fixed

  • Holes in boolean results could lead to incorrect geometry in specific cases
  • Bug in boolean operations resulting in self-intersecting polygons
  • Bug in boolean operations with clockwise-oriented polygons
  • Unsupported reccords found when loading a library generate a warning, not an error.

Changed

  • inside has changed to use the better interfaces: grouping has been removed, scaling is not necessary, and short-circuit is implemented in all_inside and any_inside

Release v0.6.1

03 Jul 15:55
cbe85b4
Compare
Choose a tag to compare

Minor bug fix release to fix the Library.read_oas (in Python) and gdstk::read_oas (in C++).

Release v0.6.0

29 Jun 11:35
cec74b2
Compare
Choose a tag to compare

Added

  • Library.replace, used when adding cells with substitution of duplicate cell names
  • Added pyproject.toml (thanks Ben Gollmer for the fix)

Changed

  • Reference.cell is now writable

Fixed

  • Bug in Array::insert not incerasing the array count

Release v0.5.0

11 Jun 13:54
808ec0e
Compare
Choose a tag to compare

Added

  • Argument precision in Cell.write_svg controls the maximum number of digits of coordinates in the SVG
  • Function gds_timestamp can be used to query or set the timestamp in a GDSII file
  • Better error handling in the C++ API and argument validation for the Python wrapper

Changed

  • oas_validate returns None if the file has no checksum information
  • Library.write_gds and GdsWriter accept a timestamp setting

Fixed

  • Bend calculation for FlexPath correctly accounts for bending angle to make sure the bend fits
  • Missing files in the source distribution

Release v0.4.0

11 Apr 13:18
822f4a6
Compare
Choose a tag to compare

Besides the changes indicated in the CHANGELOG (copied below), this releases includes the documentation of the C++ API (all examples, a short introduction, and header files). However, the C++ API is not yet to be considered stable (neither is the Python wrapper, but there shouldn't be many braking changes there).

Added

  • Cell.filter to remove elements by layer and data/text type
  • Cell.convex_hull and Reference.convex_hull
  • FlexPath.path_spines() and RobustPath.path_spines()
  • Library.unit and Library.precision
  • Shapes can be sorted in Cell.write_svg (sorting works within each cell, references remain on top)

Changed

  • Bounding box calculations use convex hull for efficiency
  • Bounding box and convex hull calculations cache intermediate results for efficiency

Fixed

  • Robustpath.parametric docstring.
  • Accept None as a possible value for arguments in several RobustPath methods

Release v0.3.2

15 Feb 16:12
0fd37dc
Compare
Choose a tag to compare

Fixed

  • Build system fixes for conda recipe

Release v0.3.1

12 Feb 23:50
b8da322
Compare
Choose a tag to compare

Fixed

  • Missing constant definition

Release v0.3.0

12 Feb 19:02
113d277
Compare
Choose a tag to compare

0.3.0 - 2021-02-12

Added

  • Support for OASIS files
  • Repetition property for geometric objects, labels and references
  • Library and cells can have properties

Changed

  • Use cmake to properly install library
  • More efficient bounding box calculation for rotations multiple of 90°
  • Labels are now included in bounding box calculations
  • Properties can be general or GDSII-specific. Only the latter are stored in gds files.
  • Attribute gdsii_path renamed to simple_path in FlexPath and RobustPath.